001: /*
002: * ChainBuilder ESB
003: * Visual Enterprise Integration
004: *
005: * Copyright (C) 2006 Bostech Corporation
006: *
007: * This program is free software; you can redistribute it and/or modify it
008: * under the terms of the GNU General Public License as published by the
009: * Free Software Foundation; either version 2 of the License, or (at your option)
010: * any later version.
011: *
012: * This program is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
014: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
015: * for more details.
016: *
017: * You should have received a copy of the GNU General Public License along with
018: * this program; if not, write to the Free Software Foundation, Inc.,
019: * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
020: *
021: *
022: * $Id$
023: */
024: package com.bostechcorp.cbesb.ui.util.tree;
025:
026: import org.eclipse.swt.SWT;
027: import org.eclipse.swt.widgets.Tree;
028: import org.eclipse.swt.widgets.TreeItem;
029:
030: public class ImplTransfomerTreeUtil implements ITreeUtil {
031:
032: /* (non-Javadoc)
033: * @see src.com.bostechcorp.cbesb.ui.util.ITreeUtil#isMoveLeft(int)
034: */
035: public boolean isMoveLeft(int typeNode) {
036: return true;
037: }
038:
039: /* (non-Javadoc)
040: * @see src.com.bostechcorp.cbesb.ui.util.ITreeUtil#isMoveRight(int)
041: */
042: public boolean isMoveRight(int typeNode) {
043: return true;
044: }
045:
046: /* (non-Javadoc)
047: * @see src.com.bostechcorp.cbesb.ui.util.ITreeUtil#isMoveUp(int)
048: */
049: public boolean isMoveUp(int typeNode) {
050: return true;
051: }
052:
053: /* (non-Javadoc)
054: * @see src.com.bostechcorp.cbesb.ui.util.ITreeUtil#isMoveDown(int)
055: */
056: public boolean isMoveDown(int typeNode) {
057: return true;
058: }
059:
060: /* (non-Javadoc)
061: * @see src.com.bostechcorp.cbesb.ui.util.ITreeUtil#moveLeft(org.eclipse.swt.widgets.Tree)
062: */
063: public void moveLeft(Tree tree) {
064: //move left
065: if (tree.getSelection() == null || tree.getItemCount() == 0)
066: return;
067: TreeItem oldItem = tree.getSelection()[0];
068: if (oldItem.getParentItem() == null)
069: return;
070:
071: if (tree.indexOf(oldItem.getParentItem()) < 0) {
072: TreeItem parentItem = oldItem.getParentItem()
073: .getParentItem();
074: int index = parentItem.indexOf(oldItem.getParentItem()) + 1;
075: TreeItem newItem = new TreeItem(parentItem, SWT.NONE, index);
076: copyTreeNode(oldItem, newItem);
077: tree.setSelection(newItem);
078: oldItem.dispose();
079: }
080: }
081:
082: /* (non-Javadoc)
083: * @see src.com.bostechcorp.cbesb.ui.util.ITreeUtil#moveRight(org.eclipse.swt.widgets.Tree)
084: */
085: public void moveRight(Tree tree) {
086: // move right
087: if (tree.getSelection() == null || tree.getItemCount() == 0)
088: return;
089: TreeItem oldItem = tree.getSelection()[0];
090: if (oldItem.getParentItem() == null)
091: return;
092:
093: TreeItem parentItem = oldItem.getParentItem();
094: int index = parentItem.indexOf(oldItem) - 1;
095: if (parentItem.indexOf(oldItem) == 0)
096: return;
097: TreeItem newItem = new TreeItem(parentItem.getItem(index),
098: SWT.NONE);
099: copyTreeNode(oldItem, newItem);
100: tree.setSelection(newItem);
101: oldItem.dispose();
102: }
103:
104: /* (non-Javadoc)
105: * @see src.com.bostechcorp.cbesb.ui.util.ITreeUtil#moveUp(org.eclipse.swt.widgets.Tree)
106: */
107: public void moveUp(Tree tree) {
108: //up
109: if (tree.getSelection() == null || tree.getItemCount() == 0)
110: return;
111: TreeItem oldItem = tree.getSelection()[0];
112: if (oldItem == null || oldItem.getParentItem() == null)
113: return;
114: if (oldItem.getParentItem().indexOf(oldItem) == 0)
115: return;
116:
117: TreeItem parentItem = oldItem.getParentItem();
118: int index = parentItem.indexOf(oldItem) - 1;
119: TreeItem newItem = new TreeItem(parentItem, SWT.NONE, index);
120: copyTreeNode(oldItem, newItem);
121: tree.setSelection(newItem);
122: oldItem.dispose();
123: }
124:
125: /* (non-Javadoc)
126: * @see src.com.bostechcorp.cbesb.ui.util.ITreeUtil#moveDown(org.eclipse.swt.widgets.Tree)
127: */
128: public void moveDown(Tree tree) {
129: // down
130: if (tree.getSelection() == null || tree.getItemCount() == 0)
131: return;
132: TreeItem oldItem = tree.getSelection()[0];
133: if (oldItem.getParentItem() == null
134: || tree.getSelection()[0] == null)
135: return;
136:
137: TreeItem parentItem = oldItem.getParentItem();
138: int index = oldItem.getParentItem().indexOf(oldItem) + 2;
139: try {
140: if ((index - 2) == (parentItem.getItemCount() - 1))
141: return;
142: } catch (Exception f) {
143: f.printStackTrace();
144: return;
145: }
146:
147: TreeItem newItem = new TreeItem(parentItem, SWT.NONE, index);
148: copyTreeNode(oldItem, newItem);
149: tree.setSelection(newItem);
150: oldItem.dispose();
151: }
152:
153: /* (non-Javadoc)
154: * @see src.com.bostechcorp.cbesb.ui.util.ITreeUtil#copyItems(org.eclipse.swt.widgets.Tree)
155: */
156: public void copyItems(Tree tree) {
157:
158: }
159:
160: /* (non-Javadoc)
161: * @see src.com.bostechcorp.cbesb.ui.util.ITreeUtil#pasteItems(org.eclipse.swt.widgets.Tree)
162: */
163: public void pasteItems(Tree tree) {
164:
165: }
166:
167: private void copyTreeNode(TreeItem source, TreeItem target) {
168: target.setText(source.getText());
169: target.setImage(source.getImage());
170: target.setData(source.getData());
171: //AbstractMD temp = MDManagement.getInstance().getMDData(source);
172: //MDManagement.getInstance().setMDData(target, temp);
173:
174: copyTreeChildNode(source, target);
175:
176: target.setExpanded(true);
177: target.getParentItem().setExpanded(true);
178:
179: }
180:
181: private void copyTreeChildNode(TreeItem source, TreeItem target) {
182: TreeItem[] sourceItems = source.getItems();
183: for (int i = 0; i < sourceItems.length; i++) {
184: TreeItem childItem = new TreeItem(target, SWT.NONE);
185: childItem.setText(sourceItems[i].getText());
186: childItem.setImage(sourceItems[i].getImage());
187: childItem.setData(sourceItems[i].getData());
188: //AbstractMD temp = MDManagement.getInstance().getMDData(sourceItems[i]);
189: //MDManagement.getInstance().setMDData(childItem, temp);
190:
191: copyTreeChildNode(sourceItems[i], childItem);
192:
193: childItem.setExpanded(true);
194: }
195: }
196:
197: }
|