1 19 20 package org.netbeans.modules.j2ee.ddloaders.web.multiview; 21 22 import org.netbeans.modules.j2ee.dd.api.common.EnvEntry; 23 import org.netbeans.modules.j2ee.dd.api.web.WebApp; 24 import org.netbeans.modules.j2ee.ddloaders.web.DDDataObject; 25 import org.netbeans.modules.xml.multiview.ui.DefaultTablePanel; 26 import org.netbeans.modules.xml.multiview.ui.EditDialog; 27 import org.netbeans.modules.xml.multiview.ui.SimpleDialogPanel; 28 import org.openide.util.NbBundle; 29 30 35 public class EnvEntriesTablePanel extends DefaultTablePanel { 36 private EnvEntryTableModel model; 37 private WebApp webApp; 38 private DDDataObject dObj; 39 40 41 public EnvEntriesTablePanel(final DDDataObject dObj, final EnvEntryTableModel model) { 42 super(model); 43 this.model=model; 44 this.dObj=dObj; 45 removeButton.addActionListener(new java.awt.event.ActionListener () { 46 public void actionPerformed(java.awt.event.ActionEvent evt) { 47 dObj.modelUpdatedFromUI(); 48 dObj.setChangedFromUI(true); 49 int row = getTable().getSelectedRow(); 50 model.removeRow(row); 51 dObj.setChangedFromUI(false); 52 } 53 }); 54 editButton.addActionListener(new TableActionListener(false)); 55 addButton.addActionListener(new TableActionListener(true)); 56 } 57 58 void setModel(WebApp webApp, EnvEntry[] params) { 59 model.setData(webApp,params); 60 this.webApp=webApp; 61 } 62 63 private class TableActionListener implements java.awt.event.ActionListener { 64 private boolean add; 65 TableActionListener(boolean add) { 66 this.add=add; 67 } 68 public void actionPerformed(java.awt.event.ActionEvent evt) { 69 70 final int row = (add?-1:getTable().getSelectedRow()); 71 final EnvEntryPanel dialogPanel = new EnvEntryPanel(); 72 if (!add) { 73 EnvEntry envEntry = model.getEnvEntry(row); 74 dialogPanel.setEnvEntryName(envEntry.getEnvEntryName()); 75 dialogPanel.setEnvEntryType(envEntry.getEnvEntryType()); 76 dialogPanel.setEnvEntryValue(envEntry.getEnvEntryValue()); 77 dialogPanel.setDescription(envEntry.getDefaultDescription()); 78 } 79 EditDialog dialog = new EditDialog(dialogPanel,NbBundle.getMessage(EnvEntriesTablePanel.class,"TTL_EnvEntry"),add) { 80 protected String validate() { 81 String name = dialogPanel.getEnvEntryName().trim(); 82 if (name.length()==0) { 83 return NbBundle.getMessage(EnvEntriesTablePanel.class,"TXT_EmptyEnvEntryName"); 84 } else { 85 EnvEntry[] params = webApp.getEnvEntry(); 86 boolean exists=false; 87 for (int i=0;i<params.length;i++) { 88 if (row!=i && name.equals(params[i].getEnvEntryName())) { 89 exists=true; 90 break; 91 } 92 } 93 if (exists) { 94 return NbBundle.getMessage(EnvEntriesTablePanel.class,"TXT_EnvEntryNameExists",name); 95 } 96 } 97 return null; 98 } 99 }; 100 101 if (add) dialog.setValid(false); javax.swing.event.DocumentListener docListener = new EditDialog.DocListener(dialog); 103 dialogPanel.getNameTF().getDocument().addDocumentListener(docListener); 104 105 java.awt.Dialog d = org.openide.DialogDisplayer.getDefault().createDialog(dialog); 106 d.setVisible(true); 107 dialogPanel.getNameTF().getDocument().removeDocumentListener(docListener); 108 109 if (dialog.getValue().equals(EditDialog.OK_OPTION)) { 110 dObj.modelUpdatedFromUI(); 111 dObj.setChangedFromUI(true); 112 String name = dialogPanel.getEnvEntryName().trim(); 113 String type = dialogPanel.getEnvEntryType(); 114 String value = dialogPanel.getEnvEntryValue().trim(); 115 String description = dialogPanel.getDescription(); 116 if (add) model.addRow(new String []{name,type,value,description}); 117 else model.editRow(row,new String []{name,type,value,description}); 118 dObj.setChangedFromUI(false); 119 } 120 } 121 } 122 } 123 | Popular Tags |