*
*/
+
package org.tizen.webuibuilder.gef.viewer;
import java.util.List;
import org.eclipse.ui.PlatformUI;
import org.tizen.webuibuilder.gef.editparts.DesignerEditPart;
import org.tizen.webuibuilder.gef.editparts.HoverViewerEditPart;
+import org.tizen.webuibuilder.model.Part;
import org.tizen.webuibuilder.ui.quickstyle.QuickStyleConstants;
import org.tizen.webuibuilder.ui.selector.CSSSelectorDialog;
+
public class DesignerEventDelegator extends HoverBrowserEventDelegator {
- private DesignerBrowserViewer designEditPartViewer;
-
- public DesignerEventDelegator(DesignerBrowserViewer viewer) {
- super(viewer);
- designEditPartViewer = viewer;
- }
-
- @Override
- public void mouseDoubleClick(MouseEvent e) {
- System.out.println("test double click!");
- @SuppressWarnings("unchecked")
- List<DesignerEditPart> selectionParts = designEditPartViewer
- .getSelectedEditParts();
- if (selectionParts == null || selectionParts.isEmpty()) {
- return;
- } // else : keep going
- DesignerEditPart selectionDesignerPart = selectionParts.get(0);
- // Part model = (Part) selectionDesignerPart.getModel();
- // String partId = selectionDesignerPart.getId();
- Control control = designEditPartViewer.getControl();
- HoverViewerEditPart hpart = designEditPartViewer.getCurrentPage();
- EditPartViewer viewer = hpart.getViewer();
- Control control2 = viewer.getControl();
- Rectangle rect = selectionDesignerPart.getFigure().getBounds();
- org.eclipse.swt.graphics.Point p = control.toDisplay(rect.x, rect.y);
-
- int x = p.x + rect.width, y = p.y;
-
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
- .getShell();
- CSSSelectorDialog selector = new CSSSelectorDialog(shell);
- selector.setPosition(x, y);
- String obj = (String)selector.open();
- System.out.println(obj);
-
- // DescriptorManager descriptorManager =
- // (DescriptorManager)selectionDesignerPart.getViewer().getProperty("DescriptorManager");
- // TODO : apply to all widgets
- // if (model.getDescriptorId().equals("html.htmlblock")) {
- // WidgetPosition pos =
- // designEditPartViewer.getBrowser().getWidgetPosition(partId);
- // if (pos == null) {
- // return;
- // } // else : keep going
- // if (pos.contains(e.x, e.y)) {
- // // TODO : do default action from part descriptor
- // HTMLBlockPropertyModifier.getInstance(model).openEditor(model);
- // } // else : do nothing
- // }
-
- }
-
- @Override
- public void keyReleased(KeyEvent e) {
- if (e.keyCode == SWT.SPACE) {
- @SuppressWarnings("unchecked")
- List<DesignerEditPart> selectionParts = designEditPartViewer
- .getSelectedEditParts();
- if (selectionParts == null || selectionParts.isEmpty()) {
- return;
- } // else : keep going
- DesignerEditPart selectionDesignerPart = selectionParts.get(0);
- Rectangle rect = selectionDesignerPart.getFigure().getBounds();
- Point pt = new Point(rect.x, rect.y);
- LocationRequest request = new LocationRequest(
- QuickStyleConstants.REQ_LOCATION);
- request.setLocation(pt);
- selectionDesignerPart.showTargetFeedback(request);
- }
- }
-
- private DesignerEditPart selectedEditPart = null;
- private boolean openFlag = false;
-
- @Override
- public void mouseUp(MouseEvent e) {
- super.mouseUp(e);
- if ((e.stateMask & SWT.BUTTON1) != 0) {
- @SuppressWarnings("unchecked")
- List<DesignerEditPart> selectionParts = designEditPartViewer
- .getSelectedEditParts();
- if (selectionParts == null || selectionParts.isEmpty()) {
- return;
- } // else : keep going
-
- DesignerEditPart selectionDesignerPart = selectionParts.get(0);
-
- if (selectedEditPart != selectionDesignerPart) {
- selectedEditPart = selectionDesignerPart;
- openFlag = false;
- } else if (!openFlag) {
- openFlag = true;
- Point pt = new Point(e.x, e.y);
- LocationRequest request = new LocationRequest(
- QuickStyleConstants.REQ_LOCATION);
- request.setLocation(pt);
- selectionDesignerPart.showTargetFeedback(request);
- }
- }
- }
+ private DesignerBrowserViewer designEditPartViewer;
+
+ public DesignerEventDelegator(DesignerBrowserViewer viewer) {
+ super(viewer);
+ designEditPartViewer = viewer;
+ }
+
+ @Override
+ public void mouseDoubleClick(MouseEvent e) {
+ @SuppressWarnings("unchecked")
+ List<DesignerEditPart> selectionParts = designEditPartViewer.getSelectedEditParts();
+ if (selectionParts == null || selectionParts.isEmpty()) {
+ return;
+ } // else : keep going
+ DesignerEditPart selectionDesignerPart = selectionParts.get(0);
+ // Part model = (Part) selectionDesignerPart.getModel();
+ // String partId = selectionDesignerPart.getId();
+ Control control = designEditPartViewer.getControl();
+ HoverViewerEditPart hpart = designEditPartViewer.getCurrentPage();
+ EditPartViewer viewer = hpart.getViewer();
+ Rectangle rect = selectionDesignerPart.getFigure().getBounds();
+
+ Part part = (Part) selectionDesignerPart.getModel();
+ String id = part.getIdPropertyValue();
+
+ org.eclipse.swt.graphics.Point p = control.toDisplay(rect.x, rect.y);
+
+ int x = p.x + rect.width, y = p.y;
+
+ Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
+
+ CSSSelectorDialog selector = new CSSSelectorDialog(shell, id);
+ selector.setGoingBridge(designEditPartViewer.getGoingBridge());
+
+ selector.setPosition(x, y);
+ String obj = (String) selector.open();
+ System.out.println(obj);
+
+ // DescriptorManager descriptorManager =
+ // (DescriptorManager)selectionDesignerPart.getViewer().getProperty("DescriptorManager");
+ // TODO : apply to all widgets
+ // if (model.getDescriptorId().equals("html.htmlblock")) {
+ // WidgetPosition pos =
+ // designEditPartViewer.getBrowser().getWidgetPosition(partId);
+ // if (pos == null) {
+ // return;
+ // } // else : keep going
+ // if (pos.contains(e.x, e.y)) {
+ // // TODO : do default action from part descriptor
+ // HTMLBlockPropertyModifier.getInstance(model).openEditor(model);
+ // } // else : do nothing
+ // }
+
+ }
+
+ @Override
+ public void keyReleased(KeyEvent e) {
+ if (e.keyCode == SWT.SPACE) {
+ @SuppressWarnings("unchecked")
+ List<DesignerEditPart> selectionParts = designEditPartViewer.getSelectedEditParts();
+ if (selectionParts == null || selectionParts.isEmpty()) {
+ return;
+ } // else : keep going
+ DesignerEditPart selectionDesignerPart = selectionParts.get(0);
+ Rectangle rect = selectionDesignerPart.getFigure().getBounds();
+ Point pt = new Point(rect.x, rect.y);
+ LocationRequest request = new LocationRequest(QuickStyleConstants.REQ_LOCATION);
+ request.setLocation(pt);
+ selectionDesignerPart.showTargetFeedback(request);
+ }
+ }
+
+ private DesignerEditPart selectedEditPart = null;
+ private boolean openFlag = false;
+
+ @Override
+ public void mouseUp(MouseEvent e) {
+ super.mouseUp(e);
+ if ((e.stateMask & SWT.BUTTON1) != 0) {
+ @SuppressWarnings("unchecked")
+ List<DesignerEditPart> selectionParts = designEditPartViewer.getSelectedEditParts();
+ if (selectionParts == null || selectionParts.isEmpty()) {
+ return;
+ } // else : keep going
+
+ DesignerEditPart selectionDesignerPart = selectionParts.get(0);
+
+ if (selectedEditPart != selectionDesignerPart) {
+ selectedEditPart = selectionDesignerPart;
+ openFlag = false;
+ } else if (!openFlag) {
+ openFlag = true;
+ Point pt = new Point(e.x, e.y);
+ LocationRequest request = new LocationRequest(QuickStyleConstants.REQ_LOCATION);
+ request.setLocation(pt);
+ selectionDesignerPart.showTargetFeedback(request);
+ }
+ }
+ }
}
\ No newline at end of file
+
+
package org.tizen.webuibuilder.ui.selector;
+import java.io.StringBufferInputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StackLayout;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;
import org.eclipse.swt.widgets.TreeItem;
-import org.tizen.webuibuilder.ui.selector.BaseMessageBox;
-import org.tizen.webuibuilder.ui.selector.SelectorElement;
+import org.tizen.webuibuilder.bridge.DesignerGoingBridge;
+import org.tizen.webuibuilder.bridge.GoingBridge;
+import org.tizen.webuibuilder.model.html.io.HtmlReader;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
public class CSSSelectorDialog extends BaseMessageBox {
- private Label label = null;
- private Button domRadio = null;
- private Button classRadio = null;
- private Combo combo = null;
- private Tree tree = null;
- private Table table = null;
- private Composite bodyComposite = null;
-
- private Button okButton = null;
- private Button cancelButton = null;
-
- public CSSSelectorDialog(Shell parentShell) {
- super(parentShell);
- }
-
- @Override
- protected boolean run() {
- shell.setLayout(new FormLayout());
- shell.setSize(340, 365);
-
- label = new Label(shell, SWT.TRANSPARENT);
- FormData data = new FormData();
- data.top = new FormAttachment(0, 11);
- data.left = new FormAttachment(0, 12);
- data.height = 15;
- data.width = 150;
- label.setLayoutData(data);
- label.setText("ID : ");
-
- domRadio = new Button(shell, SWT.RADIO);
- data = new FormData();
- data.top = new FormAttachment(label, 10);
- data.left = new FormAttachment(0, 9);
- data.height = 20;
- data.width = 80;
- domRadio.setLayoutData(data);
- domRadio.setText("DOM");
- domRadio.setSelection(true);
- domRadio.addSelectionListener(new SelectionListener() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- StackLayout layout = (StackLayout) bodyComposite.getLayout();
- layout.topControl = tree;
- bodyComposite.layout();
- }
-
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- // TODO Auto-generated method stub
-
- }
- });
-
- classRadio = new Button(shell, SWT.RADIO);
- data = new FormData();
- data.top = new FormAttachment(label, 10);
- data.left = new FormAttachment(domRadio, 9);
- data.height = 20;
- data.width = 80;
- classRadio.setLayoutData(data);
- classRadio.setText("Class");
- classRadio.addSelectionListener(new SelectionListener() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- StackLayout layout = (StackLayout) bodyComposite.getLayout();
- layout.topControl = table;
- bodyComposite.layout();
- }
-
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- // TODO Auto-generated method stub
-
- }
- });
-
- combo = new Combo(shell, SWT.READ_ONLY);
- data = new FormData();
- data.top = new FormAttachment(label, 10);
- data.left = new FormAttachment(classRadio, 20);
- data.height = 20;
- data.width = 128;
- combo.setLayoutData(data);
- combo.add("None");
- combo.add("test1");
- combo.select(0);
-
- bodyComposite = new Composite(shell, SWT.SINGLE);
- bodyComposite.setLayout(new StackLayout());
- data = new FormData();
- data.top = new FormAttachment(domRadio, 10);
- data.left = new FormAttachment(0, 9);
- data.height = 200;
- data.width = 300;
- bodyComposite.setLayoutData(data);
-
- tree = new Tree(bodyComposite, SWT.SINGLE | SWT.BORDER);
- tree.setHeaderVisible(true);
- tree.addSelectionListener(new SelectionListener() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
-
- }
-
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- // TODO Auto-generated method stub
-
- }
- });
-
- tree.addMouseListener(new MouseListener() {
-
- @Override
- public void mouseUp(MouseEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void mouseDown(MouseEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void mouseDoubleClick(MouseEvent e) {
- result = updateTree();
- shell.dispose();
- }
- });
-
- table = new Table(bodyComposite, SWT.SINGLE | SWT.BORDER);
- table.setHeaderVisible(false);
- table.addSelectionListener(new SelectionListener() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
-
- }
-
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- // TODO Auto-generated method stub
-
- }
- });
-
- table.addMouseListener(new MouseListener() {
-
- @Override
- public void mouseUp(MouseEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void mouseDown(MouseEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void mouseDoubleClick(MouseEvent e) {
- result = updateTable();
- shell.dispose();
- }
- });
-
- ((StackLayout) (bodyComposite.getLayout())).topControl = tree;
-
- cancelButton = new Button(shell, SWT.PUSH);
- data = new FormData();
- data.top = new FormAttachment(bodyComposite, 20);
- data.right = new FormAttachment(100, -9);
- data.height = 25;
- data.width = 80;
- cancelButton.setLayoutData(data);
- cancelButton.setText("Cancel");
- cancelButton.addSelectionListener(new SelectionListener() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- shell.dispose();
- }
-
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- // TODO Auto-generated method stub
-
- }
- });
-
- okButton = new Button(shell, SWT.PUSH);
- data = new FormData();
- data.top = new FormAttachment(bodyComposite, 20);
- data.right = new FormAttachment(cancelButton, -9);
- data.height = 25;
- data.width = 80;
- okButton.setLayoutData(data);
- okButton.setText("Ok");
-
- okButton.addSelectionListener(new SelectionListener() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- // DesignerGoingBridge dtr = new DesignerGoingBridge(
- // new ImageBufferedBrowser(false, false));
- // dtr.getElementDom();
-
- result = updateTree();
- shell.dispose();
- }
-
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- // TODO Auto-generated method stub
-
- }
- });
-
- createTree();
- createTable();
- return true;
- }
-
- public void setPosition(int x, int y) {
- shell.setLocation(x, y);
- }
-
- protected void createTree() {
-
- // create element from JSON format
- // example
- SelectorElement se1 = new SelectorElement(null, "span", "ui-btn-inner",
- null);
- SelectorElement se2 = new SelectorElement(null, "span", "ui-btn-text",
- se1);
-
- TreeColumn tc = new TreeColumn(tree, SWT.NONE);
- tc.setText("button1");
- tc.setWidth(100);
-
- TreeItem tr2 = new TreeItem(tree, SWT.NONE);
- tr2.setText(se1.getTagName());
- tr2.setData(se1);
-
- TreeItem tr3 = new TreeItem(tr2, SWT.NONE);
- tr3.setText(se2.getTagName());
- tr3.setData(se2);
- }
-
- protected void createTable() {
- SelectorElement se1 = new SelectorElement(null, "span", "ui-btn-inner",
- null);
- SelectorElement se2 = new SelectorElement(null, "span", "ui-btn-text",
- se1);
-
- TableColumn tc = new TableColumn(table, SWT.NONE);
- tc.setText("button1");
- tc.setWidth(100);
-
- TableItem tr2 = new TableItem(table, SWT.NONE);
- tr2.setText(se1.getClassName());
- tr2.setData(se1);
-
- TableItem tr3 = new TableItem(table, SWT.NONE);
- tr3.setText(se2.getClassName());
- tr3.setData(se2);
- }
-
- protected String updateTree() {
- TreeItem[] trs = tree.getSelection();
- if (null == trs || trs.length <= 0) {
- System.out.println("selection is bull");
- return null;
- }
- TreeItem selected = trs[0];
-
- SelectorElement se = (SelectorElement) selected.getData();
-
- StringBuffer strBuf = new StringBuffer();
- strBuf.append("DOM|").append(se.getId()).append("|")
- .append(se.getDepth());
-
- strBuf.append("|").append(combo.getText());
- return strBuf.toString();
- }
-
- protected String updateTable() {
- TableItem[] trs = table.getSelection();
- if (null == trs || trs.length <= 0) {
- System.out.println("selection is bull");
- return null;
- }
- TableItem selected = trs[0];
-
- SelectorElement se = (SelectorElement) selected.getData();
-
- StringBuffer strBuf = new StringBuffer();
- strBuf.append("CLASS|").append(se.getId()).append("|")
- .append(se.getClassName());
-
- strBuf.append("|").append(combo.getText());
- return strBuf.toString();
- }
+ private Label label = null;
+ private Button domRadio = null;
+ private Button classRadio = null;
+ private Combo combo = null;
+ private Tree tree = null;
+ private Table table = null;
+ private Composite bodyComposite = null;
+ private DesignerGoingBridge goingBridge = null;
+
+ private Element rootNode = null;
+ private SelectorElement rootElement = null;
+ private HashMap<String, SelectorElement> elementMap = null;
+
+ private Button okButton = null;
+ private Button cancelButton = null;
+
+ private String id = null;
+
+ public CSSSelectorDialog(Shell parentShell, String id) {
+ super(parentShell);
+ this.id = id;
+ }
+
+ @Override
+ protected boolean run() {
+ shell.setLayout(new FormLayout());
+ shell.setSize(340, 365);
+
+ label = new Label(shell, SWT.TRANSPARENT);
+ FormData data = new FormData();
+ data.top = new FormAttachment(0, 11);
+ data.left = new FormAttachment(0, 12);
+ data.height = 15;
+ data.width = 150;
+ label.setLayoutData(data);
+ label.setText("ID : ");
+
+ domRadio = new Button(shell, SWT.RADIO);
+ data = new FormData();
+ data.top = new FormAttachment(label, 10);
+ data.left = new FormAttachment(0, 9);
+ data.height = 20;
+ data.width = 80;
+ domRadio.setLayoutData(data);
+ domRadio.setText("DOM");
+ domRadio.setSelection(true);
+ domRadio.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ StackLayout layout = (StackLayout) bodyComposite.getLayout();
+ layout.topControl = tree;
+ bodyComposite.layout();
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+ });
+
+ classRadio = new Button(shell, SWT.RADIO);
+ data = new FormData();
+ data.top = new FormAttachment(label, 10);
+ data.left = new FormAttachment(domRadio, 9);
+ data.height = 20;
+ data.width = 80;
+ classRadio.setLayoutData(data);
+ classRadio.setText("Class");
+ classRadio.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ StackLayout layout = (StackLayout) bodyComposite.getLayout();
+ layout.topControl = table;
+ bodyComposite.layout();
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+ });
+
+ combo = new Combo(shell, SWT.READ_ONLY);
+ data = new FormData();
+ data.top = new FormAttachment(label, 10);
+ data.left = new FormAttachment(classRadio, 20);
+ data.height = 20;
+ data.width = 110;
+ combo.setLayoutData(data);
+
+ combo.add("none");
+ combo.add(":hover");
+ combo.add(":focus");
+ combo.add(":active");
+ combo.add(":link");
+ combo.add(":visited");
+ combo.add(":first-child");
+
+ combo.select(0);
+
+ bodyComposite = new Composite(shell, SWT.SINGLE);
+ bodyComposite.setLayout(new StackLayout());
+ data = new FormData();
+ data.top = new FormAttachment(domRadio, 10);
+ data.left = new FormAttachment(0, 9);
+ data.height = 200;
+ data.width = 300;
+ bodyComposite.setLayoutData(data);
+
+ tree = new Tree(bodyComposite, SWT.SINGLE | SWT.BORDER);
+ tree.setHeaderVisible(true);
+ tree.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+ });
+
+ tree.addMouseListener(new MouseListener() {
+
+ @Override
+ public void mouseUp(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void mouseDown(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void mouseDoubleClick(MouseEvent e) {
+ result = updateTree();
+ shell.dispose();
+ }
+ });
+
+ table = new Table(bodyComposite, SWT.SINGLE | SWT.BORDER);
+ table.setHeaderVisible(false);
+ table.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+ });
+
+ table.addMouseListener(new MouseListener() {
+
+ @Override
+ public void mouseUp(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void mouseDown(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void mouseDoubleClick(MouseEvent e) {
+ result = updateTable();
+ shell.dispose();
+ }
+ });
+
+ ((StackLayout) (bodyComposite.getLayout())).topControl = tree;
+
+ cancelButton = new Button(shell, SWT.PUSH);
+ data = new FormData();
+ data.top = new FormAttachment(bodyComposite, 20);
+ data.right = new FormAttachment(100, -30);
+ data.height = 25;
+ data.width = 80;
+ cancelButton.setLayoutData(data);
+ cancelButton.setText("Cancel");
+ cancelButton.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ shell.dispose();
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+ });
+
+ okButton = new Button(shell, SWT.PUSH);
+ data = new FormData();
+ data.top = new FormAttachment(bodyComposite, 20);
+ data.right = new FormAttachment(cancelButton, -9);
+ data.height = 25;
+ data.width = 80;
+ okButton.setLayoutData(data);
+ okButton.setText("Ok");
+
+ okButton.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+
+ if (domRadio.getSelection()) {
+ result = updateTree();
+ } else {
+ result = updateTable();
+ }
+ shell.dispose();
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+ });
+ createElementTree();
+ createTree();
+ createTable();
+ return true;
+ }
+
+ public void setPosition(int x, int y) {
+ shell.setLocation(x, y);
+ }
+
+ private void createElementTree() {
+ // create element from JSON format
+ if (null == goingBridge) {
+ return;
+ }
+
+ String source = goingBridge.getElementDom(id);
+ if (null == source || source.isEmpty()) {
+ return;
+ }
+ StringBufferInputStream stream = new StringBufferInputStream(source);
+ Document document = HtmlReader.parseHtml(stream);
+ // Element elem = document.getElementById(id);
+
+ NodeList nodeList = document.getChildNodes();
+ NodeList frameNodes = nodeList.item(0).getChildNodes();
+
+ NodeList children = frameNodes.item(1).getChildNodes();
+
+ Node node = children.item(0);
+ if (node.getNodeType() != Node.ELEMENT_NODE) {
+ return;
+ }
+ rootNode = (Element) node;
+ rootElement = new SelectorElement();
+ elementMap = new HashMap<String, SelectorElement>();
+
+ rootElement.setId(rootNode.getAttribute("id"));
+ rootElement.setClassName(rootNode.getAttribute("class"));
+ rootElement.setTagName(rootNode.getTagName());
+ putElementMap(rootElement);
+
+ makeElement(rootNode, rootElement);
+ }
+
+ private void putElementMap(SelectorElement element) {
+ if (null != element.getClassName() && !element.getClassName().isEmpty()) {
+ String className = element.getClassName();
+ String[] splitName = className.split(" ");
+
+ for (int i = 0; i < splitName.length; i++) {
+ String name = splitName[i];
+ if (null != name && !name.isEmpty()) {
+ if (null == elementMap.get(name)) {
+ elementMap.put(name, element);
+ }
+ }
+ }
+ }
+ }
+
+ protected void createTree() {
+ TreeColumn tc = new TreeColumn(tree, SWT.NONE);
+ tc.setText(id);
+ tc.setWidth(100);
+
+ TreeItem rootTi = new TreeItem(tree, SWT.NONE);
+ if (null == rootElement) {
+ return;
+ }
+
+ rootTi.setText(rootElement.getTagName());
+ rootTi.setData(rootElement);
+
+ makeTree(rootElement, rootTi);
+ }
+
+ private void makeTree(SelectorElement element, TreeItem parent) {
+
+ if (element.hasChild()) {
+ for (int i = 0; i < element.getChildren().size(); i++) {
+ SelectorElement child = element.getChildren().get(i);
+ TreeItem ti = new TreeItem(parent, SWT.NONE);
+ ti.setText(child.getTagName());
+ ti.setData(child);
+ makeTree(child, ti);
+ parent.setExpanded(true);
+ }
+ }
+ }
+
+ private void makeElement(Element node, SelectorElement treeElement) {
+ if (node.hasChildNodes()) {
+ for (int i = 0; i < node.getChildNodes().getLength(); i++) {
+ Node child = node.getChildNodes().item(i);
+
+ if (child.getNodeType() == Node.ELEMENT_NODE) {
+ Element childNode = (Element) child;
+ SelectorElement selectorElement = new SelectorElement();
+ selectorElement.setId(childNode.getAttribute("id"));
+ selectorElement.setClassName(childNode.getAttribute("class"));
+ selectorElement.setTagName(childNode.getTagName());
+ selectorElement.setParent(treeElement);
+ treeElement.getChildren().add(selectorElement);
+ putElementMap(selectorElement);
+
+ makeElement(childNode, selectorElement);
+ }
+ }
+ }
+ }
+
+ protected void createTable() {
+
+ List<String> classKeys = new ArrayList<String>();
+ classKeys.addAll(elementMap.keySet());
+
+ TableColumn tc = new TableColumn(table, SWT.NONE);
+ tc.setText(id);
+ tc.setWidth(100);
+
+ for (int i = 0; i < classKeys.size(); i++) {
+ String key = classKeys.get(i);
+ SelectorElement selectorElement = elementMap.get(key);
+
+ TableItem tr2 = new TableItem(table, SWT.NONE);
+ tr2.setText(key);
+ tr2.setData(selectorElement);
+ }
+ }
+
+ protected String updateTree() {
+ TreeItem[] trs = tree.getSelection();
+ if (null == trs || trs.length <= 0) {
+ System.out.println("selection is bull");
+ return null;
+ }
+ TreeItem selected = trs[0];
+
+ SelectorElement se = (SelectorElement) selected.getData();
+
+ StringBuffer strBuf = new StringBuffer();
+ strBuf.append("DOM|").append(se.getId()).append("|").append(se.getDepth());
+
+ strBuf.append("|").append(combo.getText());
+ return strBuf.toString();
+ }
+
+ protected String updateTable() {
+ TableItem[] trs = table.getSelection();
+ if (null == trs || trs.length <= 0) {
+ System.out.println("selection is null");
+ return null;
+ }
+ TableItem selected = trs[0];
+
+ SelectorElement se = (SelectorElement) selected.getData();
+
+ StringBuffer strBuf = new StringBuffer();
+ strBuf.append("CLASS|").append(se.getId()).append("|").append(selected.getText());
+
+ strBuf.append("|").append(combo.getText());
+ return strBuf.toString();
+ }
+
+ public GoingBridge getGoingBridge() {
+ return goingBridge;
+ }
+
+ public void setGoingBridge(DesignerGoingBridge goingBridge) {
+ this.goingBridge = goingBridge;
+ }
}