=== modified file 'dhis-live/src/main/java/org/hisp/dhis/SettingsWindow.java' --- dhis-live/src/main/java/org/hisp/dhis/SettingsWindow.java 2010-09-17 09:30:55 +0000 +++ dhis-live/src/main/java/org/hisp/dhis/SettingsWindow.java 2010-09-17 11:47:18 +0000 @@ -78,10 +78,12 @@ connTypePane = new javax.swing.JScrollPane(); connTypeTable = new javax.swing.JTable(); connTypeAddButton = new javax.swing.JButton(); + connTypeDelButton = new javax.swing.JButton(); connPanel = new javax.swing.JPanel(); connPane = new javax.swing.JScrollPane(); connTable = new javax.swing.JTable(); connAddButton = new javax.swing.JButton(); + connDelButton = new javax.swing.JButton(); saveButton = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); @@ -233,31 +235,43 @@ connTypePane.setViewportView(connTypeTable); connTypeTable.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); - connTypeAddButton.setText("Add New Connection Type"); + connTypeAddButton.setText("Add"); connTypeAddButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { connTypeAddButtonActionPerformed(evt); } }); + connTypeDelButton.setText("Remove"); + connTypeDelButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + connTypeDelButtonActionPerformed(evt); + } + }); + javax.swing.GroupLayout connTypePanelLayout = new javax.swing.GroupLayout(connTypePanel); connTypePanel.setLayout(connTypePanelLayout); connTypePanelLayout.setHorizontalGroup( connTypePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, connTypePanelLayout.createSequentialGroup() + .addGroup(connTypePanelLayout.createSequentialGroup() .addContainerGap() - .addGroup(connTypePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(connTypePane, javax.swing.GroupLayout.DEFAULT_SIZE, 573, Short.MAX_VALUE) - .addComponent(connTypeAddButton)) + .addGroup(connTypePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(connTypePane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 573, Short.MAX_VALUE) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, connTypePanelLayout.createSequentialGroup() + .addComponent(connTypeAddButton) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(connTypeDelButton))) .addContainerGap()) ); connTypePanelLayout.setVerticalGroup( connTypePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, connTypePanelLayout.createSequentialGroup() + .addGroup(connTypePanelLayout.createSequentialGroup() .addComponent(connTypePane, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(connTypeAddButton) - .addGap(6, 6, 6)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(connTypePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(connTypeAddButton) + .addComponent(connTypeDelButton)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); connPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Connections")); @@ -272,6 +286,7 @@ columnBinding.setColumnClass(String.class); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${type.id}")); columnBinding.setColumnName("Type"); + columnBinding.setColumnClass(String.class); columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${name}")); columnBinding.setColumnName("Name"); columnBinding.setColumnClass(String.class); @@ -285,27 +300,36 @@ columnBinding.setColumnName("Password"); columnBinding.setColumnClass(String.class); bindingGroup.addBinding(jTableBinding); - jTableBinding.bind();binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, config, org.jdesktop.beansbinding.ELProperty.create("${databaseConfiguration.databaseConnections.selected}"), connTable, org.jdesktop.beansbinding.BeanProperty.create("selectedElement")); - bindingGroup.addBinding(binding); - + jTableBinding.bind(); connPane.setViewportView(connTable); connTable.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); + connTable.getColumnModel().getColumn(1).setCellEditor(null); + connTable.getColumnModel().getColumn(1).setCellRenderer(null); connTable.getColumnModel().getColumn(3).setPreferredWidth(60); - connAddButton.setText("Add New Connection"); + connAddButton.setText("Add"); connAddButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { connAddButtonActionPerformed(evt); } }); + connDelButton.setText("Remove"); + connDelButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + connDelButtonActionPerformed(evt); + } + }); + javax.swing.GroupLayout connPanelLayout = new javax.swing.GroupLayout(connPanel); connPanel.setLayout(connPanelLayout); connPanelLayout.setHorizontalGroup( connPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, connPanelLayout.createSequentialGroup() - .addContainerGap(450, Short.MAX_VALUE) + .addContainerGap(455, Short.MAX_VALUE) .addComponent(connAddButton) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(connDelButton) .addContainerGap()) .addGroup(connPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(connPanelLayout.createSequentialGroup() @@ -316,13 +340,15 @@ connPanelLayout.setVerticalGroup( connPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, connPanelLayout.createSequentialGroup() - .addContainerGap(101, Short.MAX_VALUE) - .addComponent(connAddButton) + .addContainerGap(99, Short.MAX_VALUE) + .addGroup(connPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(connDelButton) + .addComponent(connAddButton)) .addContainerGap()) .addGroup(connPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(connPanelLayout.createSequentialGroup() .addComponent(connPane, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(41, Short.MAX_VALUE))) + .addContainerGap(39, Short.MAX_VALUE))) ); javax.swing.GroupLayout databaseConfigPanelLayout = new javax.swing.GroupLayout(databaseConfigPanel); @@ -385,6 +411,7 @@ private void saveButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_saveButtonActionPerformed {//GEN-HEADEREND:event_saveButtonActionPerformed TrayApp.getInstance().writeConfigToFile(); + TrayApp.getInstance().updateDatabaseMenus(); this.dispose(); }//GEN-LAST:event_saveButtonActionPerformed @@ -414,6 +441,26 @@ bindingGroup.bind(); }//GEN-LAST:event_connAddButtonActionPerformed + private void connTypeDelButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_connTypeDelButtonActionPerformed + {//GEN-HEADEREND:event_connTypeDelButtonActionPerformed + if ( connTypeTable.getSelectedRow() != -1 ) + { + TrayApp.databaseConfig.getConnectionTypes().getConnectionType().remove( connTypeTable.getSelectedRow() ); + } + bindingGroup.unbind(); + bindingGroup.bind(); + }//GEN-LAST:event_connTypeDelButtonActionPerformed + + private void connDelButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_connDelButtonActionPerformed + {//GEN-HEADEREND:event_connDelButtonActionPerformed + if ( connTable.getSelectedRow() != -1 ) + { + TrayApp.databaseConfig.getDatabaseConnections().getConnection().remove( connTable.getSelectedRow() ); + } + bindingGroup.unbind(); + bindingGroup.bind(); + }//GEN-LAST:event_connDelButtonActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPanel appConfigPanel; private javax.swing.JButton browserPathButton; @@ -421,10 +468,12 @@ private javax.swing.JLabel browserPathLabel; private org.hisp.dhis.config.ConfigType config; private javax.swing.JButton connAddButton; + private javax.swing.JButton connDelButton; private javax.swing.JScrollPane connPane; private javax.swing.JPanel connPanel; private javax.swing.JTable connTable; private javax.swing.JButton connTypeAddButton; + private javax.swing.JButton connTypeDelButton; private javax.swing.JScrollPane connTypePane; private javax.swing.JPanel connTypePanel; private javax.swing.JTable connTypeTable; === modified file 'dhis-live/src/main/java/org/hisp/dhis/TrayApp.java' --- dhis-live/src/main/java/org/hisp/dhis/TrayApp.java 2010-09-17 09:18:13 +0000 +++ dhis-live/src/main/java/org/hisp/dhis/TrayApp.java 2010-09-17 11:47:18 +0000 @@ -101,6 +101,8 @@ private JAXBElement configElement; + private Menu databaseMenu; + public static ConfigType config; public static DatabaseConfiguration databaseConfig; @@ -232,9 +234,77 @@ // // - final Menu databaseMenu = new Menu( messageService.getString( "menuitem.database" ) ); + databaseMenu = new Menu( messageService.getString( "menuitem.database" ) ); + updateDatabaseMenus(); + popup.add( databaseMenu ); + // + + // + MenuItem settingsItem = new MenuItem( messageService.getString( "menuitem.settings" ) ); + settingsItem.addActionListener( new ActionListener() + { + + @Override + public void actionPerformed( ActionEvent e ) + { + if(settingsWindow!= null && settingsWindow.isVisible()){ + settingsWindow.dispose(); + } + settingsWindow = new SettingsWindow(); + settingsWindow.setVisible( true ); + } + } ); + popup.add( settingsItem ); + // + + // + MenuItem exitItem = new MenuItem( messageService.getString( "menuitem.exit" ) ); + exitItem.addActionListener( new ActionListener() + { + + @Override + public void actionPerformed( ActionEvent e ) + { + shutdown(); + } + } ); + popup.add( exitItem ); + // + + trayIcon = new TrayIcon( image, "DHIS 2 Live", popup ); + trayIcon.setImageAutoSize( true ); + tray.add( trayIcon ); + + new Thread( new Runnable() + { + + @Override + public void run() + { + appServer = new WebAppServer(); + try + { + appServer.init(); + } catch ( Exception e ) + { + log.fatal( "Application server could not be initialized" ); + } + try + { + appServer.start(); + } catch ( Exception e ) + { + log.fatal( "Application server could not be started" ); + } + } + } ).start(); + } + + public void updateDatabaseMenus() + { + databaseMenu.removeAll(); + MenuItem blankItem = new MenuItem( messageService.getString( "menuitem.blank" ) ); - blankItem.addActionListener( new ActionListener() { @@ -334,64 +404,6 @@ } ); databaseMenu.add( connItem ); } - popup.add( databaseMenu ); - // - - // - MenuItem settingsItem = new MenuItem( messageService.getString( "menuitem.settings" ) ); - settingsItem.addActionListener( new ActionListener() - { - - @Override - public void actionPerformed( ActionEvent e ) - { - getSettingsWindow().setVisible( true ); - } - } ); - popup.add( settingsItem ); - // - - // - MenuItem exitItem = new MenuItem( messageService.getString( "menuitem.exit" ) ); - exitItem.addActionListener( new ActionListener() - { - - @Override - public void actionPerformed( ActionEvent e ) - { - shutdown(); - } - } ); - popup.add( exitItem ); - // - - trayIcon = new TrayIcon( image, "DHIS 2 Live", popup ); - trayIcon.setImageAutoSize( true ); - tray.add( trayIcon ); - - new Thread( new Runnable() - { - - @Override - public void run() - { - appServer = new WebAppServer(); - try - { - appServer.init(); - } catch ( Exception e ) - { - log.fatal( "Application server could not be initialized" ); - } - try - { - appServer.start(); - } catch ( Exception e ) - { - log.fatal( "Application server could not be started" ); - } - } - } ).start(); } // ------------------------------------------------------------------------- @@ -708,19 +720,4 @@ System.exit( 1 ); } } - - /** - * Writes the hibernate.properties file to the /conf folder based on the selected - * connection from the config.xml or the defaultConfig.xml - * - * @return Returns whether successful in writing hibernate.properties - */ - private SettingsWindow getSettingsWindow() - { - if ( settingsWindow == null ) - { - settingsWindow = new SettingsWindow(); - } - return settingsWindow; - } }