1 19 20 package org.netbeans.modules.j2ee.ddloaders.web.multiview; 21 22 import org.netbeans.modules.j2ee.dd.api.common.InitParam; 23 import org.netbeans.modules.j2ee.dd.api.web.Filter; 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 FilterParamsPanel extends DefaultTablePanel { 36 private InitParamTableModel model; 37 private Filter filter; 38 private DDDataObject dObj; 39 40 41 public FilterParamsPanel(final DDDataObject dObj, final InitParamTableModel 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(Filter filter, InitParam[] params) { 59 model.setData(filter,params); 60 this.filter=filter; 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 final int row = (add?-1:getTable().getSelectedRow()); 70 String [] labels = new String []{ 71 NbBundle.getMessage(FilterParamsPanel.class,"LBL_initParamName"), 72 NbBundle.getMessage(FilterParamsPanel.class,"LBL_initParamValue"), 73 NbBundle.getMessage(FilterParamsPanel.class,"LBL_description") 74 }; 75 char[] mnem = new char[] { 76 NbBundle.getMessage(FilterParamsPanel.class,"LBL_initParamName_mnem").charAt(0), 77 NbBundle.getMessage(FilterParamsPanel.class,"LBL_initParamValue_mnem").charAt(0), 78 NbBundle.getMessage(FilterParamsPanel.class,"LBL_description_mnem").charAt(0) 79 }; 80 SimpleDialogPanel.DialogDescriptor descriptor = new SimpleDialogPanel.DialogDescriptor(labels); 81 if (!add) { 82 String [] initValues = new String [] { 83 (String )model.getValueAt(row,0), 84 (String )model.getValueAt(row,1), 85 (String )model.getValueAt(row,2) 86 }; 87 descriptor.setInitValues(initValues); 88 } 89 descriptor.setMnemonics(mnem); 90 descriptor.setTextField(new boolean[]{true,true,false}); 91 92 final SimpleDialogPanel dialogPanel = new SimpleDialogPanel(descriptor); 93 94 EditDialog dialog = new EditDialog(dialogPanel,NbBundle.getMessage(FilterParamsPanel.class,"TTL_InitParam"),add) { 95 protected String validate() { 96 String [] values = dialogPanel.getValues(); 97 String name = values[0]; 98 String value = values[1]; 99 if (name.length()==0) { 100 return NbBundle.getMessage(FilterParamsPanel.class,"TXT_EmptyInitParamName"); 101 } else { 102 InitParam[] params = filter.getInitParam(); 103 boolean exists=false; 104 for (int i=0;i<params.length;i++) { 105 if (row!=i && name.equals(params[i].getParamName())) { 106 exists=true; 107 break; 108 } 109 } 110 if (exists) { 111 return NbBundle.getMessage(FilterParamsPanel.class,"TXT_InitParamNameExists",name); 112 } 113 } 114 if (value.length()==0) { 115 return NbBundle.getMessage(FilterParamsPanel.class,"TXT_EmptyInitParamValue"); 116 } 117 return null; 118 } 119 }; 120 121 if (add) dialog.setValid(false); javax.swing.event.DocumentListener docListener = new EditDialog.DocListener(dialog); 123 dialogPanel.getTextComponents()[0].getDocument().addDocumentListener(docListener); 124 dialogPanel.getTextComponents()[1].getDocument().addDocumentListener(docListener); 125 126 java.awt.Dialog d = org.openide.DialogDisplayer.getDefault().createDialog(dialog); 127 d.setVisible(true); 128 dialogPanel.getTextComponents()[0].getDocument().removeDocumentListener(docListener); 129 dialogPanel.getTextComponents()[1].getDocument().removeDocumentListener(docListener); 130 131 if (dialog.getValue().equals(EditDialog.OK_OPTION)) { 132 String [] values = dialogPanel.getValues(); 133 String name = values[0]; 134 String value = values[1]; 135 String description = values[2]; 136 dObj.modelUpdatedFromUI(); 137 dObj.setChangedFromUI(true); 138 if (add) model.addRow(new String []{name,value,description}); 139 else model.editRow(row,new String []{name,value,description}); 140 dObj.setChangedFromUI(false); 141 } 142 } 143 } 144 145 } 146 | Popular Tags |