1 /*
2 * Scope: a generic MVC framework.
3 * Copyright (c) 2000-2002, The Scope team
4 * All rights reserved.
5 *
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 *
14 * Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
17 *
18 * Neither the name "Scope" nor the names of its contributors
19 * may be used to endorse or promote products derived from this software
20 * without specific prior written permission.
21 *
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
27 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
28 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
29 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 *
35 *
36 * $Id: TimesheetView.java,v 1.7 2002/09/05 15:41:50 ludovicc Exp $
37 */
38 package samples.swing.timesheet.view;
39
40 import java.awt.Dimension;
41 import java.awt.GridBagConstraints;
42 import java.awt.GridBagLayout;
43 import java.awt.Insets;
44 import javax.swing.JLabel;
45 import javax.swing.JScrollPane;
46 import org.scopemvc.core.Selector;
47 import org.scopemvc.view.swing.SLabel;
48 import org.scopemvc.view.swing.SPanel;
49 import org.scopemvc.view.swing.STable;
50 import org.scopemvc.view.swing.STableModel;
51
52 /***
53 * <p>
54 *
55 * The view for the timesheet itself. This is made of a table and the
56 * information fields.</p>
57 *
58 * @author <a href="mailto:steve.jones@netdecisions.co.uk>Steve Jones</a>
59 * @created 05 September 2002
60 * @since Scope v0.8
61 * @version $Revision: 1.7 $ $Date: 2002/09/05 15:41:50 $
62 */
63 public class TimesheetView extends SPanel {
64
65 /***
66 * Constructor for the view, the view uses a Gridbag layout with the table
67 * at its centre, the current project field at the top and the total work
68 * field at the bottom.
69 */
70 public TimesheetView() {
71
72 // set the layout
73 setLayout(new GridBagLayout());
74
75 // Place the table in the centre
76 STable table = new STable();
77 JScrollPane scroll = new JScrollPane(table);
78 add(scroll, new GridBagConstraints(0, 1, 4, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 1, 1));
79 table.setSelectorString("workItems");
80
81 // Create the selector which determines which elements from the
82 // list should be used.
83 String[] columns = {"project", "start", "duration"};
84 table.setColumnSelectorStrings(columns);
85 String[] names = {"", "", ""};
86 table.setColumnNames(names);
87 boolean[] editables = {false, false, false};
88 ((STableModel) table.getModel()).setEditableColumns(editables);
89
90 scroll.setPreferredSize(new Dimension(150, 200));
91
92 // Now add the total work field at the bottom
93
94 JLabel totalWorkLabel = new JLabel();
95 totalWorkLabel.setText("Total Work:");
96 SLabel totalWorkValue = new SLabel();
97 totalWorkValue.setSelector(Selector.fromString("totalWork"));
98
99 add(totalWorkLabel, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(1, 1, 1, 1), 1, 1));
100 add(totalWorkValue, new GridBagConstraints(3, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(1, 1, 1, 1), 1, 1));
101
102 // Now add the current project fields to the top
103 JLabel currentProjectLabel = new JLabel();
104 currentProjectLabel.setText("Current Project:");
105 SLabel currentProjectValue = new SLabel();
106 currentProjectValue.setSelector(Selector.fromString("currentProject"));
107 JLabel projectTotalLabel = new JLabel();
108 projectTotalLabel.setText("Project Total:");
109 SLabel projectTotalValue = new SLabel();
110 projectTotalValue.setSelector(Selector.fromString("projectTotal"));
111
112 add(currentProjectLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(1, 1, 1, 1), 1, 1));
113 add(currentProjectValue, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(1, 1, 1, 1), 1, 1));
114
115 add(projectTotalLabel, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(1, 1, 1, 1), 1, 1));
116 add(projectTotalValue, new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(1, 1, 1, 1), 1, 1));
117 }
118 }
This page was automatically generated by Maven