1
2 package org.xrn.gui;
3
4 import java.awt.Color;
5 import java.awt.event.ActionEvent;
6 import java.awt.event.ActionListener;
7 import java.awt.event.MouseEvent;
8 import java.awt.event.MouseListener;
9 import java.util.Vector;
10
11 import javax.swing.JButton;
12 import javax.swing.JComponent;
13 import javax.swing.JPanel;
14 import javax.swing.JScrollPane;
15 import javax.swing.JTable;
16 import javax.swing.ListSelectionModel;
17 import javax.swing.border.TitledBorder;
18 import javax.swing.event.ListSelectionEvent;
19 import javax.swing.event.ListSelectionListener;
20
21 import org.xrn.xsd2java.ReleaseNotesType.ReleasesType;
22 import org.xrn.xsd2java.impl.ReleaseImpl;
23 import org.xrn.xsd2java.impl.ReleaseNotesTypeImpl.ReleasesTypeImpl;
24
25
26
27
28
29
30
31
32 public class ReleasesPanel extends JPanel implements ActionListener, MouseListener, ListSelectionListener{
33
34 int selectedItem = 0;
35
36 private JPanel panelOwner = null;
37 private JTable table = null;
38 private MyTableModel tableModel = null;
39 private JScrollPane scrollPane = null;
40 private JButton removeButton = new JButton( "Remove" );
41 private JButton addButton = new JButton( "Add" );
42
43 private OneReleasePanel releasePanel = null;
44
45 private ReleasesType releases = new ReleasesTypeImpl();
46 private ReleaseImpl release = new ReleaseImpl();
47
48 /***
49 * Constructor
50 * @param owner - parent of the panel
51 */
52 public ReleasesPanel( JPanel owner ){
53
54 setBorder( new TitledBorder( " Releases " ) );
55 setLayout( null );
56
57 panelOwner = owner;
58
59 releasePanel = new OneReleasePanel( this );
60 dlgObjHinzufuegen( releasePanel, 200, 25, 780, 460 );
61
62 createTable();
63 dlgObjHinzufuegen( scrollPane, 25, 25, 170, 250 );
64
65 addButton.addActionListener( this );
66 dlgObjHinzufuegen( addButton, 25, 285, 80, 20 );
67 removeButton.addActionListener( this );
68 dlgObjHinzufuegen( removeButton, 115, 285, 80, 20 );
69 }
70
71 /***
72 *
73 *
74 */
75 public void createTable( ){
76
77 Vector spaltenNamen = new Vector( 1 );
78 spaltenNamen.addElement( "Release" );
79
80 tableModel = new MyTableModel( spaltenNamen, 0 );
81 table = new JTable( tableModel );
82
83
84
85 table.getColumnModel().getColumn( 0 ).setPreferredWidth( 150 );
86 table.getSelectionModel().addListSelectionListener( this );
87 table.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
88 scrollPane = new JScrollPane( table );
89 }
90
91 /***
92 *
93 * @param c
94 * @param x0
95 * @param y0
96 * @param width
97 * @param height
98 */
99 public void dlgObjHinzufuegen( JComponent c, int x0, int y0, int width, int height ){
100 c.setBounds( x0, y0, width, height );
101 c.setForeground( Color.black );
102 add(c);
103 }
104
105 /***
106 * Handle the button events
107 *
108 */
109 public void actionPerformed( ActionEvent e ){
110
111 if ( e.getSource() == addButton ){
112 releases.getRelease().add( releasePanel.getRelease() );
113 writeTable();
114 }
115 if ( e.getSource() == removeButton ){
116 if( table.getSelectedRow() > -1 ){
117 releases.getRelease().remove( table.getSelectedRow() );
118 writeTable();
119 releasePanel.resetFields();
120 }
121 else{
122 MessageWindow.mitteilung( "No component selected !" );
123 }
124 }
125 }
126
127 /***
128 * Delete the input and set the default value if necessary
129 *
130 */
131 public void resetFields( ){
132 releasePanel.resetFields();
133 }
134
135 /***
136 * Delete the table input
137 *
138 */
139 public void resetTable( ){
140 for ( int i = tableModel.getRowCount() - 1; i >= 0 ; i-- )
141 tableModel.removeRow( i );
142 }
143
144 /***
145 *
146 * @return the releases list
147 */
148 public ReleasesType getReleases(){
149
150 return this.releases;
151 }
152
153 /***
154 *
155 * @param releases
156 */
157 public void setReleases( ReleasesType releases ){
158 this.releases = releases;
159 writeTable();
160 }
161
162 /***
163 * Write the releases list to the table
164 *
165 */
166 private void writeTable(){
167 int i = 0;
168 Vector sv = new Vector();
169 ReleaseImpl release = null;
170
171 resetTable();
172 for( i=0; i < releases.getRelease().size(); i++ ){
173 release = (ReleaseImpl)releases.getRelease().get( i );
174 sv = new Vector();
175 sv.addElement( release.getVersion() );
176 tableModel.addRow( sv );
177 }
178 if( releases.getRelease().size() > 0 )
179 table.setRowSelectionInterval( 0, 0 );
180 }
181
182 /***
183 * Handle the table selection events
184 */
185 public void valueChanged( ListSelectionEvent e ){
186 if( table.getSelectedRow() > -1 ){
187 ReleaseImpl release = (ReleaseImpl)releases.getRelease().get( table.getSelectedRow() );
188 releasePanel.setRelease( release );
189 }
190 }
191
192 public void mouseClicked( MouseEvent me ){
193 }
194
195 public void mouseEntered( MouseEvent me ){
196 }
197
198 public void mouseExited( MouseEvent me ){
199 }
200
201 public void mousePressed( MouseEvent me ){
202 }
203
204 public void mouseReleased( MouseEvent me ){
205 }
206
207 }