DATABIND : Change the remove UX 59/18559/1
authorjaeyeol lee <jaeyeol148.lee@samsung.com>
Wed, 26 Mar 2014 06:10:52 +0000 (15:10 +0900)
committerjaeyeol lee <jaeyeol148.lee@samsung.com>
Wed, 26 Mar 2014 06:10:52 +0000 (15:10 +0900)
remove the X button
add the del key input

Change-Id: I104a3cfa98b145ab936fa658bde3e9457d87e843
Signed-off-by: jaeyeol lee <jaeyeol148.lee@samsung.com>
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/DataBindingDnDManager.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/DataBindingPage.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/databinding/SetSourceDialog.java

index e6461dc..f2044f2 100644 (file)
@@ -254,7 +254,7 @@ public class DataBindingDnDManager {
             }
             
             public void drop(DropTargetEvent event) {
-                if (event.data == null) {
+                if ((event == null) || (event.data == null)) {
                     event.detail = DND.DROP_NONE;
                     return;
                 }
index 43b3793..bbaea7a 100644 (file)
@@ -40,7 +40,6 @@ import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.custom.TableEditor;
 import org.eclipse.swt.custom.TreeEditor;
 import org.eclipse.swt.events.FocusAdapter;
 import org.eclipse.swt.events.FocusEvent;
@@ -49,15 +48,12 @@ import org.eclipse.swt.events.KeyAdapter;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.events.MouseAdapter;
 import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.layout.FormAttachment;
 import org.eclipse.swt.layout.FormData;
 import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Table;
@@ -190,12 +186,7 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
         if (project != null) {
             dataSourceTree.removeAll();
             viewModelTree.removeAll();
-            //infoTableViewer.getTable().removeAll();
-            //TODO remove the X Button.. and "TABLEEDITOR"
-            TableItem[] items = infoTableViewer.getTable().getItems();
-            for (TableItem item : items) {
-               removeTableItem(item, (TableEditor) item.getData("TABLEEDITOR"));
-            }
+            infoTableViewer.getTable().removeAll();
 
             refreshDataSourceTree(dataSourceTree);
             refreshViewModelTree(viewModelTree);
@@ -662,25 +653,6 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
     }
 
     /**
-     * Remove the duplicated binding information.
-     * 
-     * @param modelName
-     * @param widgetName
-     * @param bindingInfoStr
-     * @return
-     */
-    public void removeDuplicatedTableItem(String modelName, String widgetName, String bindingInfoStr) {
-        TableItem[] items = infoTableViewer.getTable().getItems();
-        for (TableItem item : items) {
-            if (item.getText(2).equals(widgetName)) {
-                if (item.getText(3).equals(bindingInfoStr)) {
-                    removeTableItem(item, (TableEditor) item.getData("TABLEEDITOR"));
-                }
-            }
-        }
-    }
-
-    /**
      * Adds a binding information to the binding info panel.
      * 
      * @param part
@@ -691,24 +663,9 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
     public void addInfoTableItem(final Part part, String modelName, String widgetName,
                                  String bindingInfoStr) {
         final TableItem item = new TableItem(infoTableViewer.getTable(), SWT.NONE);
-        item.setText(new String[] { modelName, "", widgetName, bindingInfoStr });
-
-        final TableEditor editor = new TableEditor(infoTableViewer.getTable());
-
-        final Button deleteButton = new Button(infoTableViewer.getTable(), SWT.FLAT);
-        deleteButton.setText("X");
-        deleteButton.pack();
-        deleteButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                removeInfoTableItem(part, item, editor);
-            }
-        });
+        item.setText(new String[] { modelName, widgetName, bindingInfoStr });
 
         item.setData("PART", part);
-        item.setData("TABLEEDITOR", editor);
-        editor.minimumWidth = deleteButton.getSize().x;
-        editor.horizontalAlignment = SWT.CENTER;
-        editor.setEditor(deleteButton, item, 1);
     }
 
     /**
@@ -718,31 +675,12 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
      * @param item
      * @param editor
      */
-    public void removeInfoTableItem(Part part, TableItem item, TableEditor editor) {
+    public void removeInfoTableItem(Part part) {
        if (delegater != null) {
                delegater.valueChanged(part, BuilderConstants.ATTRIBUTE_DATA_BIND, "", true);
         }
     }
 
-    /**
-     * Removes a binding information to the binding info panel.
-     * 
-     * @param part
-     * @param item
-     * @param editor
-     */
-    public void removeTableItem(TableItem item, TableEditor editor) {
-
-        editor.getEditor().dispose();
-        editor.dispose();
-        item.dispose();
-        // for redraw
-        infoTableViewer.getTable().setSize(infoTableViewer.getTable().getSize().x,
-                                           infoTableViewer.getTable().getSize().y - 1);
-        infoTableViewer.getTable().setSize(infoTableViewer.getTable().getSize().x,
-                                           infoTableViewer.getTable().getSize().y + 1);
-
-    }
 
     /**
      * Gets the view model tree.
@@ -801,31 +739,33 @@ public class DataBindingPage extends Page implements IBindingDataSetListener {
         TableColumn tc1 = new TableColumn(infoTableViewer.getTable(), SWT.LEFT);
         TableColumn tc2 = new TableColumn(infoTableViewer.getTable(), SWT.LEFT);
         TableColumn tc3 = new TableColumn(infoTableViewer.getTable(), SWT.LEFT);
-        TableColumn tc4 = new TableColumn(infoTableViewer.getTable(), SWT.LEFT);
-        // TableColumn tc5 = new TableColumn(infoTableViewer.getTable(),
-        // SWT.LEFT);
-        // TableColumn tc6 = new TableColumn(infoTableViewer.getTable(),
-        // SWT.LEFT);
-        // TableColumn tc7 = new TableColumn(infoTableViewer.getTable(),
-        // SWT.LEFT);
 
         tc1.setText("Data");
-        tc3.setText("Widget");
-        tc4.setText("Binding");
-        // tc5.setText("Parent");
-        // tc6.setText("Action Widget");
-        // tc7.setText("Action");
-
-        tc1.setWidth(70);
-        tc2.setWidth(20);
-        tc3.setWidth(70);
-        tc4.setWidth(70);
-        // tc5.setWidth(70);
-        // tc6.setWidth(70);
-        // tc7.setWidth(70);
+        tc2.setText("Widget");
+        tc3.setText("Binding");
+
+        tc1.setWidth(150);
+        tc2.setWidth(100);
+        tc3.setWidth(60);
 
         infoTableViewer.getTable().setHeaderVisible(true);
         infoTableViewer.getTable().setLinesVisible(true);
+        
+        infoTableViewer.getTable().addKeyListener(new KeyAdapter() {
+               public void keyPressed(KeyEvent event) {
+                       switch (event.keyCode) {
+                               case SWT.DEL:
+                                       TableItem[] tableItems = infoTableViewer.getTable().getSelection();
+                                       for (TableItem tableItem : tableItems) {
+                                               Part part = (Part) tableItem.getData("PART");
+                                               if (part != null) {
+                                                       removeInfoTableItem(part);
+                                               }
+                                       }                                       
+                                       break;
+                       }
+               }
+        });
     }
 
     private void makeDataModelParentPanel(SashForm parentSashForm) {
index 23ed1d2..ee22e86 100644 (file)
@@ -24,6 +24,7 @@
 package org.tizen.webuibuilder.ui.views.databinding;
 
 import java.io.BufferedReader;
+import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
@@ -1453,12 +1454,23 @@ public class SetSourceDialog extends Dialog {
         }
     }
 
-    private static JSONObject readJsonFromFile(String file) throws IOException {
-        BufferedReader rd = new BufferedReader(new FileReader(file));
-        String jsonText = readAll(rd);
-        JSONObject json = (JSONObject) JSONValue.parse(jsonText);
+    private static JSONObject readJsonFromFile(String file) {
+        BufferedReader rd;
+               try {
+                       rd = new BufferedReader(new FileReader(file));
+                       String jsonText;
+                       try {
+                               jsonText = readAll(rd);
+                               JSONObject json = (JSONObject) JSONValue.parse(jsonText);
+                       return json;
+                       } catch (IOException e) {
+                               return null;
+                       }
+               
+               } catch (FileNotFoundException e) {
+                       return null;
+               }
         
-        return json;
     }
 
     private void makeTreeItemsFromJson(JSONObject json, String str, TreeItem parentTreeItem,
@@ -1704,13 +1716,9 @@ public class SetSourceDialog extends Dialog {
         if ((file == null) || (file.equals(""))) {
             return;
         }
+        
+        json = readJsonFromFile(file);
 
-        try {
-            json = readJsonFromFile(file);
-
-        } catch (IOException e) {
-            return;
-        }
     }
 
     private void makeDataModelFromFile(String file, TreeItem parentTreeItem) {
@@ -1718,15 +1726,9 @@ public class SetSourceDialog extends Dialog {
             return;
         }
 
-        try {
-            json = readJsonFromFile(file);
-
-            makeDataModelFromJson(null, parentTreeItem);
-
-        } catch (IOException e) {
-            return;
-        }
+        json = readJsonFromFile(file);
 
+        makeDataModelFromJson(null, parentTreeItem);
     }
 
     private void makeDataModelFromJson(String string, TreeItem parentTreeItem) {