1
2 package org.xrn.gui;
3
4 import java.awt.Color;
5 import java.awt.event.MouseEvent;
6 import java.awt.event.MouseListener;
7 import java.util.Vector;
8
9 import javax.swing.JComponent;
10 import javax.swing.JPanel;
11 import javax.swing.JScrollPane;
12 import javax.swing.JTable;
13 import javax.swing.ListSelectionModel;
14 import javax.swing.border.TitledBorder;
15 import javax.swing.event.ListSelectionEvent;
16 import javax.swing.event.ListSelectionListener;
17
18 import org.xrn.xsd2java.Release.FeaturesType;
19 import org.xrn.xsd2java.impl.FeatureImpl;
20 import org.xrn.xsd2java.impl.ReleaseImpl.FeaturesTypeImpl;
21
22
23
24
25
26
27
28
29 public class FeaturesPanel extends JPanel implements MouseListener, ListSelectionListener{
30
31 private JPanel panelOwner = null;
32 private JTable table = null;
33 private MyTableModel tableModel = null;
34 private JScrollPane scrollPane = null;
35
36 private OneFeaturePanel featurePanel = null;
37
38 private FeaturesType features = new FeaturesTypeImpl();
39
40 /***
41 * Constructor
42 * @param owner - parent of the panel
43 */
44 public FeaturesPanel( JPanel owner ){
45
46 setBorder( new TitledBorder( "" ) );
47 setLayout( null );
48
49 panelOwner = owner;
50
51 featurePanel = new OneFeaturePanel( this );
52 dlgObjHinzufuegen( featurePanel, 185, 20, 495, 335 );
53
54 createTable();
55 dlgObjHinzufuegen( scrollPane, 25, 25, 150, 200 );
56 }
57
58 /***
59 *
60 *
61 */
62 public void createTable( ){
63
64 Vector spaltenNamen = new Vector( 1 );
65 spaltenNamen.addElement( "Feature" );
66
67 tableModel = new MyTableModel( spaltenNamen, 0 );
68 table = new JTable( tableModel );
69
70
71
72 table.getColumnModel().getColumn( 0 ).setPreferredWidth( 150 );
73 table.getSelectionModel().addListSelectionListener( this );
74 table.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
75 table.addMouseListener( this );
76 scrollPane = new JScrollPane( table );
77 dlgObjHinzufuegen( scrollPane, 25, 25, 150, 250 );
78 }
79
80 /***
81 *
82 * @param c
83 * @param x0
84 * @param y0
85 * @param width
86 * @param height
87 */
88 public void dlgObjHinzufuegen( JComponent c, int x0, int y0, int width, int height ){
89 c.setBounds( x0, y0, width, height );
90 c.setForeground( Color.black );
91 add(c);
92 }
93
94 /***
95 * Delete the input fields
96 *
97 */
98 public void resetFields( ){
99
100 featurePanel.resetFields();
101 }
102
103 /***
104 *
105 * @return
106 */
107 public FeaturesType getFeatures(){
108 return this.features;
109 }
110
111 /***
112 *
113 * @param features
114 */
115 public void setFeatures( FeaturesType features ){
116 this.features = features;
117 if( features != null )
118 writeTable();
119 }
120
121 /***
122 * Write the releases list to the table
123 *
124 */
125 public void writeTable(){
126 int i = 0;
127 Vector sv = new Vector();
128 FeatureImpl feature = null;
129
130 resetTable();
131 for( i=0; i < features.getFeature().size(); i++ ){
132 feature = (FeatureImpl)features.getFeature().get( i );
133 sv = new Vector();
134 sv.addElement( feature.getID() );
135 tableModel.addRow( sv );
136 }
137 if( features.getFeature().size() > 0 )
138 table.setRowSelectionInterval( 0, 0 );
139 }
140
141 /***
142 * Delete the table input
143 *
144 */
145 public void resetTable( ){
146 for ( int i = tableModel.getRowCount() - 1; i >= 0 ; i-- )
147 tableModel.removeRow( i );
148 }
149
150 /***
151 * The table the shows the features
152 * @return
153 */
154 public JTable getFeatureTable(){
155 return table;
156 }
157
158 /***
159 * Handle the table selection events
160 */
161 public void valueChanged( ListSelectionEvent e ){
162 if( table.getSelectedRow() > -1 ){
163 FeatureImpl feature = (FeatureImpl)features.getFeature().get( table.getSelectedRow() );
164 featurePanel.setFeature( feature );
165 }
166 }
167
168 public void mouseClicked( MouseEvent me ){
169
170 }
171
172 public void mouseEntered( MouseEvent me ){
173 }
174
175 public void mouseExited( MouseEvent me ){
176 }
177
178 public void mousePressed( MouseEvent me ){
179 }
180
181 public void mouseReleased( MouseEvent me ){
182 }
183
184 }