View Javadoc

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