|
@@ -116,13 +116,68 @@ public class NewElementDlg extends javax.swing.JDialog { |
|
|
* Enable or disable buttons |
|
|
* Enable or disable buttons |
|
|
*/ |
|
|
*/ |
|
|
private void enableButtons() { |
|
|
private void enableButtons() { |
|
|
if (_elementText.getText().length() > 0) { |
|
|
|
|
|
|
|
|
if (isInputValid()) { |
|
|
_buttonOK.setEnabled(true); |
|
|
_buttonOK.setEnabled(true); |
|
|
} else { |
|
|
} else { |
|
|
_buttonOK.setEnabled(false); |
|
|
_buttonOK.setEnabled(false); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* Returns true if the user input is valid. |
|
|
|
|
|
*/ |
|
|
|
|
|
private boolean isInputValid() { |
|
|
|
|
|
return ( isXMLName( _elementText.getText() ) ); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* Returns true if the value is a legal XML name. |
|
|
|
|
|
* |
|
|
|
|
|
* @param value the string being tested |
|
|
|
|
|
*/ |
|
|
|
|
|
public boolean isXMLName (String value) |
|
|
|
|
|
{ |
|
|
|
|
|
if (value == null || value.length() == 0) |
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
|
|
char c = value.charAt (0); |
|
|
|
|
|
if (!isLetter (c) && c != '_' && c != ':') |
|
|
|
|
|
return false; |
|
|
|
|
|
for (int i = 1; i < value.length (); i++) |
|
|
|
|
|
if (!isNameChar (value.charAt (i))) |
|
|
|
|
|
return false; |
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* Returns true if the character is allowed to be a non-initial |
|
|
|
|
|
* character in an XML name. |
|
|
|
|
|
*/ |
|
|
|
|
|
public boolean isNameChar (char c) |
|
|
|
|
|
{ |
|
|
|
|
|
if (isLetter (c)) |
|
|
|
|
|
return true; |
|
|
|
|
|
else if (c == '>') |
|
|
|
|
|
return false; |
|
|
|
|
|
else if (c == '.' || c == '-' || c == '_' || c == ':') |
|
|
|
|
|
return true; |
|
|
|
|
|
else |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* Returns true if the character is a letter. |
|
|
|
|
|
*/ |
|
|
|
|
|
public boolean isLetter (char c) |
|
|
|
|
|
{ |
|
|
|
|
|
if (c >= 'a' && c <= 'z') |
|
|
|
|
|
return true; |
|
|
|
|
|
if (c >= 'A' && c <= 'Z') |
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* This method is called from within the constructor to |
|
|
* This method is called from within the constructor to |
|
|
* initialize the form. |
|
|
* initialize the form. |
|
@@ -210,6 +265,12 @@ public class NewElementDlg extends javax.swing.JDialog { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
); |
|
|
); |
|
|
|
|
|
_elementList.addMouseListener(new java.awt.event.MouseAdapter() { |
|
|
|
|
|
public void mouseClicked(java.awt.event.MouseEvent evt) { |
|
|
|
|
|
itemMouseClicked(evt); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
); |
|
|
_listScrollPane.setViewportView(_elementList); |
|
|
_listScrollPane.setViewportView(_elementList); |
|
|
|
|
|
|
|
|
_selectPanel.add(_listScrollPane, java.awt.BorderLayout.CENTER); |
|
|
_selectPanel.add(_listScrollPane, java.awt.BorderLayout.CENTER); |
|
@@ -224,22 +285,49 @@ public class NewElementDlg extends javax.swing.JDialog { |
|
|
|
|
|
|
|
|
/** Called when an item is selected from the list */ |
|
|
/** Called when an item is selected from the list */ |
|
|
private void itemSelected(javax.swing.event.ListSelectionEvent evt) { |
|
|
private void itemSelected(javax.swing.event.ListSelectionEvent evt) { |
|
|
|
|
|
// Update the text field |
|
|
_elementText.setText((String) _elementList.getSelectedValue()); |
|
|
_elementText.setText((String) _elementList.getSelectedValue()); |
|
|
enableButtons(); |
|
|
enableButtons(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** Called when the list is clicked */ |
|
|
|
|
|
private void itemMouseClicked(java.awt.event.MouseEvent evt) { |
|
|
|
|
|
|
|
|
|
|
|
int count = evt.getClickCount(); |
|
|
|
|
|
Object obj = _elementList.getSelectedValue(); |
|
|
|
|
|
|
|
|
|
|
|
// Double click on an item? |
|
|
|
|
|
if (count == 2 && obj != null) { |
|
|
|
|
|
|
|
|
|
|
|
// Update the text field |
|
|
|
|
|
_elementText.setText((String) _elementList.getSelectedValue()); |
|
|
|
|
|
|
|
|
|
|
|
// Process like OK was pressed |
|
|
|
|
|
if (isInputValid()) { |
|
|
|
|
|
clickOK(null); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/** Called when the Cancel button is pressed */ |
|
|
/** Called when the Cancel button is pressed */ |
|
|
private void clickCancel(java.awt.event.ActionEvent evt) { |
|
|
private void clickCancel(java.awt.event.ActionEvent evt) { |
|
|
// Add your handling code here: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Make us invisible |
|
|
setVisible(false); |
|
|
setVisible(false); |
|
|
dispose(); |
|
|
dispose(); |
|
|
|
|
|
|
|
|
|
|
|
// Set the cancel flag |
|
|
_cancel = true; |
|
|
_cancel = true; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** Called when the OK button is pressed */ |
|
|
/** Called when the OK button is pressed */ |
|
|
private void clickOK(java.awt.event.ActionEvent evt) { |
|
|
private void clickOK(java.awt.event.ActionEvent evt) { |
|
|
|
|
|
|
|
|
|
|
|
// Make us invisible |
|
|
setVisible(false); |
|
|
setVisible(false); |
|
|
dispose(); |
|
|
dispose(); |
|
|
|
|
|
|
|
|
|
|
|
// Return selected item. |
|
|
_cancel = false; |
|
|
_cancel = false; |
|
|
_elementName = _elementText.getText(); |
|
|
_elementName = _elementText.getText(); |
|
|
} |
|
|
} |
|
|