View Javadoc

1   /*
2    *  File: DutyMass.java 
3    *  Copyright (c) 2004-2007  Peter Kliem (Peter.Kliem@jaret.de)
4    *  A commercial license is available, see http://www.jaret.de.
5    *
6    *  This program is free software; you can redistribute it and/or modify
7    *  it under the terms of the GNU General Public License as published by
8    *  the Free Software Foundation; either version 2 of the License, or
9    *  (at your option) any later version.
10   *
11   *  This program is distributed in the hope that it will be useful,
12   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   *  GNU General Public License for more details.
15   *
16   *  You should have received a copy of the GNU General Public License
17   *  along with this program; if not, write to the Free Software
18   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19   */
20  package de.jaret.examples.timebars.pdi.model;
21  
22  import java.util.ArrayList;
23  import java.util.HashMap;
24  import java.util.List;
25  import java.util.Map;
26  
27  import de.jaret.util.ui.timebars.model.DefaultRowHeader;
28  import de.jaret.util.ui.timebars.model.DefaultTimeBarModel;
29  import de.jaret.util.ui.timebars.model.DefaultTimeBarRowModel;
30  import de.jaret.util.ui.timebars.model.TimeBarModel;
31  
32  /***
33   * @author Peter Kliem
34   * @version $Id: DutyMass.java 160 2007-01-02 22:02:40Z olk $
35   */
36  public class DutyMass {
37      protected Map _diensteProTag = new HashMap();
38      TimeBarModel _model = new DefaultTimeBarModel();
39  
40      public void addDienst(PdiDay t, Duty d) {
41          List dienste = getDienste(t);
42          if (dienste == null) {
43              dienste = new ArrayList();
44              _diensteProTag.put(t, dienste);
45          }
46          dienste.add(d);
47          addDienstToTimeBarModel(_model, d);
48      }
49  
50      public List getDienste(PdiDay t) {
51          return (List) _diensteProTag.get(t);
52      }
53  
54      public TimeBarModel getTimeBarModel(PdiCalendar kalender) {
55          return _model;
56  
57      }
58  
59      private void addDienstToTimeBarModel(TimeBarModel model, Duty d) {
60          for (int i = 0; i < model.getRowCount(); i++) {
61              DefaultTimeBarRowModel row = (DefaultTimeBarRowModel) model.getRow(i);
62              if (row.getIntervals(d.getBegin(), d.getEnd()).size() == 0) {
63                  row.addInterval(d);
64                  return;
65              }
66          }
67          DefaultTimeBarRowModel row = new DefaultTimeBarRowModel(new DefaultRowHeader(""));
68          row.addInterval(d);
69          ((DefaultTimeBarModel) model).addRow(row);
70      }
71  }