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: PersonView.java,v 1.4 2002/09/05 15:41:50 ludovicc Exp $
37 */
38 package samples.swing.timesheet.view;
39
40 import java.awt.BorderLayout;
41 import javax.swing.JLabel;
42 import javax.swing.JPanel;
43 import javax.swing.JScrollPane;
44 import javax.swing.JSplitPane;
45 import org.scopemvc.core.Selector;
46 import org.scopemvc.view.swing.SList;
47 import org.scopemvc.view.swing.SPanel;
48 import org.scopemvc.view.swing.STextField;
49
50 /***
51 * <p>
52 *
53 * The Model, rather than view model part of the timesheet application. This
54 * contains the timesheet view, the list of projects and of course the persons
55 * name.</p>
56 *
57 * @author <a href="mailto:steve.jones@netdecisions.co.uk>Steve Jones</a>
58 * @created 05 September 2002
59 * @since Scope v0.8
60 * @version $Revision: 1.4 $ $Date: 2002/09/05 15:41:50 $
61 */
62 public class PersonView extends SPanel {
63
64 /***
65 * Constructor for the PersonView object
66 */
67 public PersonView() {
68 // Add the list to the left
69 SList list = new SList();
70 list.setSelector(Selector.fromString("projects"));
71 JPanel listPanel = new JPanel();
72 listPanel.setLayout(new BorderLayout());
73 list.setToolTipText("Select project to start work");
74 listPanel.add(new JLabel("Project List"), BorderLayout.NORTH);
75 listPanel.add(list, BorderLayout.CENTER);
76
77 setLayout(new BorderLayout());
78
79 // Add the Timesheet bit in the centre
80 TimesheetView timesheetView = new TimesheetView();
81 timesheetView.setSelector(Selector.fromString("timesheet"));
82 JSplitPane s = new JSplitPane();
83 s.setLeftComponent(new JScrollPane(listPanel));
84 s.setRightComponent(new JScrollPane(timesheetView));
85 add(s, BorderLayout.CENTER);
86
87 // Add the text field to the top
88 JPanel subPanel = new JPanel();
89 subPanel.setLayout(new BorderLayout());
90 STextField textField = new STextField();
91 textField.setSelector(Selector.fromString("name"));
92 textField.setName("Name");
93 textField.setToolTipText("The name of the person for the timesheet");
94 subPanel.add(textField, BorderLayout.CENTER);
95 JLabel label = new JLabel();
96 label.setText("Name : ");
97 subPanel.add(label, BorderLayout.WEST);
98 add(subPanel, BorderLayout.NORTH);
99
100 // Finally set the selected item of the list to be the current project of the timesheet
101 list.setSelectionSelector(Selector.fromString("timesheet.currentProject"));
102 }
103
104 }
This page was automatically generated by Maven