Author: marrs
Date: Fri Jun  5 21:49:59 2015
New Revision: 1683873

URL: http://svn.apache.org/r1683873
Log:
ACE-518 Fixed the UI to signal key validation errors to the user.

Modified:
    
ace/trunk/org.apache.ace.tageditor/src/org/apache/ace/tageditor/TagTableEntry.java

Modified: 
ace/trunk/org.apache.ace.tageditor/src/org/apache/ace/tageditor/TagTableEntry.java
URL: 
http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.tageditor/src/org/apache/ace/tageditor/TagTableEntry.java?rev=1683873&r1=1683872&r2=1683873&view=diff
==============================================================================
--- 
ace/trunk/org.apache.ace.tageditor/src/org/apache/ace/tageditor/TagTableEntry.java
 (original)
+++ 
ace/trunk/org.apache.ace.tageditor/src/org/apache/ace/tageditor/TagTableEntry.java
 Fri Jun  5 21:49:59 2015
@@ -22,6 +22,8 @@ import org.apache.ace.client.repository.
 
 import com.vaadin.data.Property.ValueChangeEvent;
 import com.vaadin.data.Property.ValueChangeListener;
+import com.vaadin.data.Validator.InvalidValueException;
+import com.vaadin.data.validator.RegexpValidator;
 import com.vaadin.ui.Button;
 import com.vaadin.ui.Table;
 import com.vaadin.ui.TextField;
@@ -44,6 +46,7 @@ public class TagTableEntry {
     public TagTableEntry(RepositoryObject repoObject) {
         m_repoObject = repoObject;
         m_keyField.setImmediate(true);
+        m_keyField.setInputPrompt("key");
         m_keyField.setWidth("100%");
         m_keyField.addListener(new ValueChangeListener() {
             public void valueChange(ValueChangeEvent event) {
@@ -52,6 +55,7 @@ public class TagTableEntry {
         });
         m_valueField.setImmediate(true);
         m_valueField.setWidth("100%");
+        m_valueField.setInputPrompt("value");
         m_valueField.addListener(new ValueChangeListener() {
             public void valueChange(ValueChangeEvent event) {
                 valueChanged();
@@ -109,7 +113,16 @@ public class TagTableEntry {
             m_lastKey = (String) m_keyField.getValue();
         }
         else {
-            m_repoObject.addTag(m_lastKey, null);
+            try {
+                m_repoObject.addTag(m_lastKey, null);
+            }
+            catch (IllegalArgumentException e) {
+                m_keyField.setValue("");
+                m_keyField.setInputPrompt("invalid key, try again");
+                m_lastKey = null;
+                m_keyField.focus();
+                return;
+            }
         }
         m_lastKey = (String) m_keyField.getValue();
         set(m_lastKey, (String) m_valueField.getValue());
@@ -122,7 +135,16 @@ public class TagTableEntry {
     private void set(String key, String value) {
         if ((key != null) && (key.trim().length() > 0)) {
             if ((value != null) && (value.trim().length() > 0)) {
-                m_repoObject.addTag(key, value); // TODO changing the tag that 
often is probably not a good idea (especially if nothing changed)
+                try {
+                    m_repoObject.addTag(key, value); // TODO changing the tag 
that often is probably not a good idea (especially if nothing changed)
+                }
+                catch (IllegalArgumentException e) {
+                    m_keyField.setValue("");
+                    m_keyField.setInputPrompt("invalid key, try again");
+                    m_keyField.focus();
+                    return;
+                }
+                
                 ChangeListener listener = m_listener;
                 if (listener != null) {
                     listener.changed(this);


Reply via email to