Object treeMenu ;
if(XPWidgetTheme.isPlatform()) {
PopupMenu popupMenu = new PopupMenu(tree, XPWidgetTheme.THEME);
treeMenu = new CMenu();
popupMenu.setMenu((CMenu)treeMenu);
} else {
treeMenu = new Menu(getShell(), SWT.POP_UP);
tree.setMenu((Menu)treeMenu);
}
factory.createStyleMenuItem( treeMenu, "itemAdd", "+.gif", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
try {
traverseTree(TreeHandler.SELECT, addItems());
} catch (Exception e) {
ClientLog.getInstance().setMessage(tree.getShell(), e);
}
}
});
factory.createStyleMenuItem(treeMenu, "itemRemove", "-.gif", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
try {
traverseTree(TreeHandler.REMOVE, new String[]{});
removeItem();
traverseTree(TreeHandler.SELECT, lstPath.getItems());
} catch (Exception e) {
ClientLog.getInstance().setMessage(tree.getShell(), e);
}
}
});
factory.createStyleMenuItem(treeMenu, SWT.SEPARATOR);
factory.createStyleMenuItem(treeMenu, "itemExpand", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
expand(true);
}
});
factory.createStyleMenuItem(treeMenu, "itemCollapse", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
expand(false);
}
});
factory.createStyleMenuItem(treeMenu, SWT.SEPARATOR);
factory.createStyleMenuItem(treeMenu, "itemExpandDataNode", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
expandDataNode();
}
});
factory.createStyleMenuItem(treeMenu, "itemCollapseTree", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
TreeItem [] items = tree.getItems();
if(items == null) return;
for(TreeItem item : items) {
expand(item, false);
}
}
});
factory.createStyleMenuItem(treeMenu, SWT.SEPARATOR);
factory.createStyleMenuItem( treeMenu, "itemView", "view.gif", new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent evt) {
viewItem();
}
});
sash0.setWeights( new int[]{500, 300});
handler = new TreeHandler();
Composite bottom = new Composite(this, SWT.NONE);
gridData = new GridData(GridData.FILL_HORIZONTAL);
bottom.setLayoutData(gridData);
factory.setComposite(bottom);
gridLayout = new GridLayout(1, false);
gridLayout.marginHeight = 2;
gridLayout.horizontalSpacing = 5;
gridLayout.verticalSpacing = 0;
gridLayout.marginWidth = 2;
bottom.setLayout(gridLayout);
txtPath = new NodeEditor2(bottom, this);
txtPath.setFont(UIDATA.FONT_10B);
gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.heightHint = 70;
if(UIDATA.isMacOS) {
// gridData.heightHint = 30;
txtPath.setFont(UIDATA.FONT_11B);
}
txtPath.setLayoutData(gridData);
/*txtPath.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent event) {
if(event.keyCode == SWT.CR) {
addEditItem();
event.doit = false;
}
}
});*/
/*txtPath.text.setDoubleClickEnabled(false);
txtPath.text.addMouseListener(new MouseAdapter() {
public void mouseDown(MouseEvent e) {
if(e.count == 3) {
txtPath.setText("");
return;
}
if(e.button == 2) {
if(txtPath.getText().trim().isEmpty()) return;
addEditItem();
}
}
@SuppressWarnings("unused")
public void mouseDoubleClick(MouseEvent e) {
new TemplateHandlerAction(new char[]{'[', ']'}).handle(txtPath.text);
}
});*/
lstPath = factory.createList(bottom, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL | SWT.H_SCROLL);
lstPath.setFont(UIDATA.FONT_10B);
lstPath.addSelectionListener(new SelectionAdapter(){
@SuppressWarnings("unused")
public void widgetSelected(SelectionEvent e){
int selectedIndex = lstPath.getSelectionIndex();
if(selectedIndex < 0) return;
String path = lstPath.getItem(selectedIndex);
txtPath.setText(path);
List<String> removes = null;
try {
removes = traverseTree(TreeHandler.SELECT, new String[]{path});
} catch (Exception exp) {
ClientLog.getInstance().setMessage(tree.getShell(), exp);
}
if(removes == null) return ;
for(String ele : removes) lstPath.remove(ele);
if(removes.size() > 0 && lstPath.getItemCount() > 0) lstPath.select(0);
}
});
Object menu;
if(XPWidgetTheme.isPlatform()) {
PopupMenu popupMenu = new PopupMenu(lstPath, XPWidgetTheme.THEME);
menu = new CMenu();
popupMenu.setMenu((CMenu)menu);
} else {
menu = new Menu(getShell(), SWT.POP_UP);
lstPath.setMenu((Menu)menu);
}