Author: DartPeng
Date: 2008-09-19 05:48:39 -0400 (Fri, 19 Sep 2008)
New Revision: 10376
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/AbstractStructuredDataModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/LineConnectionModel.java
Log:
modify some codes for reselecting target/source data
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-09-19
08:59:14 UTC (rev 10375)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-09-19
09:48:39 UTC (rev 10376)
@@ -530,7 +530,7 @@
TreeItem item = (TreeItem) items[i];
if (item == null)
continue;
- if (item.getData(REFERENCE_MODEL) != null) {
+ if (item.getData(REFERENCE_MODEL) != null && !item.isDisposed()) {
} else {
AbstractStructuredDataModel model = null;
@@ -561,9 +561,49 @@
protected void createSourceGraphModels() {
Tree tree = sourceViewer.getTree();
TreeItem[] items = tree.getItems();
+ clearExsitingGraphModels(SourceModel.class);
createGraphModels(items, SourceModel.class);
}
+
+ private void disConnectGraphModel(Class clazz,TreeItemRelationModel model){
+ if(clazz == SourceModel.class){
+ List list = model.getModelSourceConnections();
+ List temp = new ArrayList(list);
+ for (Iterator iterator = temp.iterator(); iterator.hasNext();) {
+ LineConnectionModel line = (LineConnectionModel) iterator.next();
+ line.disConnect();
+ }
+ temp.clear();
+ }
+
+ if(clazz == TargetModel.class){
+ List list = model.getModelTargetConnections();
+ List temp = new ArrayList(list);
+ for (Iterator iterator = temp.iterator(); iterator.hasNext();) {
+ LineConnectionModel line = (LineConnectionModel) iterator.next();
+ line.disConnect();
+ }
+ temp.clear();
+ }
+ }
+
+ private void clearExsitingGraphModels(Class<? extends Object> clazz) {
+ if(rootModel != null){
+ List children = rootModel.getChildren();
+ List removeList = new ArrayList();
+ for (Iterator iterator = children.iterator(); iterator.hasNext();) {
+ Object object = (Object) iterator.next();
+ if(object.getClass() == clazz){
+ removeList.add(object);
+ disConnectGraphModel(clazz,(TreeItemRelationModel)object);
+ }
+ }
+ rootModel.removeChildrenList(removeList);
+ }
+ }
+
+
protected void createTargetGraphModels() {
Tree tree = targetViewer.getTree();
TreeItem[] items = tree.getItems();
@@ -920,6 +960,15 @@
.getCurrentCreationWizard();
String typeID = cw.getInputDataTypeID();
if (UIUtils.setTheProvidersForTreeViewer(viewer, typeID)) {
+ if (viewer.getInput() != null) {
+ if (!MessageDialog
+ .openQuestion(
+ getSite().getShell(),
+ "Changed Data?",
+ "Do you want to change the data?if you do this , all connections will be
losted")) {
+ return;
+ }
+ }
viewer.setInput(cw.getTreeViewerInputContents());
try {
// viewer.expandAll();
@@ -932,7 +981,6 @@
targetDataTypeID = typeID;
}
} catch (Exception e) {
- e.printStackTrace();
MessageDialog.openError(getSite().getShell(), "Error",
"a error occurs during filling Data into the viewer:\n"
+ e.toString());
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/AbstractStructuredDataModel.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/AbstractStructuredDataModel.java 2008-09-19
08:59:14 UTC (rev 10375)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/AbstractStructuredDataModel.java 2008-09-19
09:48:39 UTC (rev 10376)
@@ -3,6 +3,7 @@
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -130,7 +131,7 @@
}
/**
- * ���ýڵ��Java���͡��������Ҫ������ȫ������<code>java.lang.String</code>
+ * ���ýڵ��Java���͡��������Ҫ������ȫ�����ᅣ1�7code>java.lang.String</code>
* ���������Ǹ������ͣ�������Ϊ<code>null</code>��
*
* @param typeString
@@ -150,12 +151,12 @@
/**
* ��ģ�������ü������ģ�ͷ���ı�ʱ����������Ѹı�֪ͨEditPart��
* EditPart��Ҫʵ��PropertyChangeListener�ӿ�
- * �����������ʱ�����PropertyChangeListener�ӿ��е�peopertyChange����4��ɴ�����
+ * �����������ʱ�����PropertyChangeListener�ӿ��е�peopertyChange����4��ɴ����ᅣ1�7
*/
private PropertyChangeSupport listeners = new PropertyChangeSupport(this);
/**
- * Ϊģ����Ӽ�����
+ * Ϊģ����Ӽ����ᅣ1�7
*
* @param listener
* PropertyChangeSupport ������
@@ -175,10 +176,10 @@
}
/**
- * ��ģ�ͷ���仯ʱ��Ҫ��������4����������
+ * ��ģ�ͷ���仯ʱ��Ҫ�������ᅣ1�7����������
*
* @param propName
- * �ı������
+ * �ı�����ᅣ1�7
* @param oldValue
* @param newValue
*/
@@ -188,7 +189,7 @@
}
/**
- * ���ص�ǰģ�����е���Ԫ�ء����ǰģ��û����Ԫ��
+ * ���ص�ǰģ�����е���Ԫ�ء����ǰģ��û����Ԫ�ᅣ1�7
*
* @return ��ǰģ�����е���Ԫ��
*/
@@ -238,9 +239,17 @@
protected void setLeftValueToChild(AbstractStructuredDataModel child) {
child.setLeft(this.isLeft);
}
+
+
+ public void removeChildrenList(Collection children){
+ if(this.children != null && children != null){
+ this.children.removeAll(children);
+ firePropertyChange(P_CHILDREN, children, null);
+ }
+ }
/**
- * ɾ����Ԫ�أ���֪ͨģ����Ԫ�ط���ı�
+ * ɾ����Ԫ�أ���֪ͨģ����Ԫ�ط���ıᅣ1�7
*
* @param child
* ��Ԫ��
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/LineConnectionModel.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/LineConnectionModel.java 2008-09-19
08:59:14 UTC (rev 10375)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/LineConnectionModel.java 2008-09-19
09:48:39 UTC (rev 10376)
@@ -12,6 +12,11 @@
super();
}
+ public void disConnect(){
+ this.detachSource();
+ this.detachTarget();
+ }
+
public void connect() {
this.attachSource();
this.attachTarget();
Show replies by date