View Javadoc

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   * The releases panel - shows the list of releases
25   * @author Carsten Maneg
26   * Date Nov 12, 2004
27   * Time 11:10:59 PM
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      	//table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
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 }