# HG changeset patch # User jrice@netbeans.org # Date 1207078265 -3600 # Node ID 9708b64d41e632fbb33f6ae26331921a5e36344d # Parent a44d3b56f2c3f8fc5da7ac041b4e408b6a2a228c #131713: Options ->Mercurial Extensions editor, clean up behavior diff -r a44d3b56f2c3 -r 9708b64d41e6 mercurial/src/org/netbeans/modules/mercurial/options/Bundle.properties --- a/mercurial/src/org/netbeans/modules/mercurial/options/Bundle.properties Tue Apr 01 10:32:57 2008 +0100 +++ b/mercurial/src/org/netbeans/modules/mercurial/options/Bundle.properties Tue Apr 01 20:31:05 2008 +0100 @@ -99,7 +99,7 @@ MercurialPanel.browseButton2.text=B&rows PropertiesPanel.jLabel2.text=Property &Name: PropertiesPanel.jLabel1.text=Property &Value: -PropertiesPanel.btnAdd.text=&Add +PropertiesPanel.btnAdd.text=&Add/ Change PropertiesPanel.btnRemove.text=&Remove jLabel3.txt=Mercurial &Properties: ACSD_PropertiesTable = Lists of mercurial properties. diff -r a44d3b56f2c3 -r 9708b64d41e6 mercurial/src/org/netbeans/modules/mercurial/options/HgExtProperties.java --- a/mercurial/src/org/netbeans/modules/mercurial/options/HgExtProperties.java Tue Apr 01 10:32:57 2008 +0100 +++ b/mercurial/src/org/netbeans/modules/mercurial/options/HgExtProperties.java Tue Apr 01 20:31:05 2008 +0100 @@ -40,7 +40,6 @@ */ package org.netbeans.modules.mercurial.options; -import java.awt.Dialog; import java.awt.EventQueue; import java.awt.Font; import java.awt.event.ActionEvent; @@ -48,19 +47,15 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.StringWriter; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Vector; import java.util.Properties; import java.util.Enumeration; -import javax.swing.JOptionPane; +import java.util.LinkedHashSet; +import java.util.Set; import javax.swing.ComboBoxModel; import javax.swing.DefaultComboBoxModel; -import javax.swing.JFileChooser; import javax.swing.JTextField; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; @@ -71,14 +66,7 @@ import org.netbeans.modules.mercurial.op import org.netbeans.modules.mercurial.options.PropertiesPanel; import org.netbeans.modules.mercurial.options.PropertiesTable; import org.netbeans.modules.mercurial.ui.properties.HgPropertiesNode; -import org.netbeans.modules.versioning.util.AccessibleJFileChooser; -import org.netbeans.modules.versioning.util.Utils; -import org.openide.DialogDescriptor; -import org.openide.DialogDisplayer; -import org.openide.ErrorManager; -import org.openide.util.NbBundle; import org.openide.util.RequestProcessor; -import org.openide.NotifyDescriptor; /** * @@ -106,7 +94,7 @@ public class HgExtProperties implements panel.getComboName().setEditable(true); panel.getBtnAdd().setEnabled(false); initPropertyNameCbx(); - refreshProperties(); + refreshProperties(); } public PropertiesPanel getPropertiesPanel() { @@ -176,6 +164,8 @@ public class HgExtProperties implements i++; } propTable.setNodes(hgProps); + setSelected(0); + propTable.getTable().getSelectionModel().setSelectionInterval(0,0); } }; support.start(rp, null, org.openide.util.NbBundle.getMessage(HgExtProperties.class, "LBL_Properties_Progress")); // NOI18N @@ -231,11 +221,15 @@ public class HgExtProperties implements } public void removeProperties() { - final int[] rows = propTable.getSelectedItems(); + final int[] rows = propTable.getSelectedItems(); // No rows selected if (rows.length == 0) return; HgPropertiesNode[] hgPropertiesNodes = propTable.getNodes(); - HgPropertiesNode[] hgProps = new HgPropertiesNode[hgPropertiesNodes.length - rows.length]; + HgPropertiesNode[] hgProps = new HgPropertiesNode[hgPropertiesNodes.length - rows.length]; + // Translate view index to model index + for(int i = 0; i < rows.length; i++){ + rows[i] = propTable.getModelIndex(rows[i]); + } int j = 0; int k = 0; for (int i = 0; i < hgPropertiesNodes.length; i++) { @@ -246,6 +240,8 @@ public class HgExtProperties implements } } propTable.setNodes(hgProps); + panel.getComboName().getEditor().setItem(""); // NOI18N + panel.getTxtAreaValue().setText(""); // NOI18N } public void insertUpdate(DocumentEvent event) { @@ -272,25 +268,34 @@ public class HgExtProperties implements panel.getBtnAdd().setEnabled(true); } } - + + private void setSelected(int index) { + HgPropertiesNode[] hgPropertiesNodes = propTable.getNodes(); + if (hgPropertiesNodes == null || hgPropertiesNodes.length == 0 || index < 0) { + return; + } + final String hgPropertyName = hgPropertiesNodes[propTable.getModelIndex(index)].getName(); + final String hgPropertyValue = hgPropertiesNodes[propTable.getModelIndex(index)].getValue(); + EventQueue.invokeLater(new Runnable() { + public void run() { + ComboBoxModel targetsModel; + Set initialSet = new LinkedHashSet(); + initialSet.add(hgPropertyName); + targetsModel = new DefaultComboBoxModel(new Vector(initialSet)); + panel.getComboName().setModel(targetsModel); + panel.getTxtAreaValue().setText(hgPropertyValue); + } + }); + } + public class TableMouseListener extends MouseAdapter { @Override public void mouseClicked(MouseEvent event) { - //super.mouseClicked(arg0); - if (event.getClickCount() == 2) { + if (event.getClickCount() == 1) { int[] rows = propTable.getSelectedItems(); - HgPropertiesNode[] hgPropertiesNodes = propTable.getNodes(); - if (hgPropertiesNodes == null) - return; - final String hgPropertyName = hgPropertiesNodes[propTable.getModelIndex(rows[0])].getName(); - final String hgPropertyValue = hgPropertiesNodes[propTable.getModelIndex(rows[0])].getValue(); - EventQueue.invokeLater(new Runnable() { - public void run() { - panel.getComboName().getEditor().setItem(hgPropertyName); - panel.getTxtAreaValue().setText(hgPropertyValue); - } - }); + if(rows != null && rows.length > 0) + setSelected(rows[0]); } } }