List of usage examples for org.eclipse.jface.dialogs InputDialog setBlockOnOpen
public void setBlockOnOpen(boolean shouldBlock)
open method should block until the window closes. From source file:cl.utfsm.acs.acg.gui.AlarmsView.java
License:Open Source License
private void createViewWidgets(Composite parent) { Listener hoverTree = new Listener() { public void handleEvent(Event event) { Point coords = new Point(event.x, event.y); TreeItem it = _tree.getItem(coords); String tooltip = ""; if (it == null) { _tree.setToolTipText(tooltip); return; }//w w w . j a v a 2 s . c o m NodeType type = (NodeType) it.getData(); switch (type) { case FAULT_FAMILY: { tooltip = _alarmManager.getFaultFamily(it.getText()).getName(); break; } case FAULT_CODE_DATA: { tooltip = _alarmManager .getFaultCode(it.getParentItem().getParentItem().getText(), new Integer(it.getText())) .getProblemDescription(); break; } case FAULT_MEMBER_DATA: { tooltip = _alarmManager .getFaultMember(it.getParentItem().getParentItem().getText(), it.getText()).getName(); break; } } _tree.setToolTipText(tooltip); } }; _deleteElement = new Listener() { public void handleEvent(Event event) { boolean choice = MessageDialog.openQuestion(AlarmsView.this.getViewSite().getShell(), "Confirmation", "Are you sure you want to delete this element"); if (choice == true) { TreeItem sel = null; if (_tree.getSelection() == null || _tree.getSelection().length == 0) return; NodeType type = (NodeType) _tree.getSelection()[0].getData(); if (type == NodeType.FAULT_CODE_LIST || type == NodeType.FAULT_MEMBER_LIST) return; String alarm = _tree.getSelection()[0].getText(); try { if (type == NodeType.FAULT_FAMILY) _alarmManager.deleteFaultFamily(_alarmManager.getFaultFamily(alarm)); else if (type == NodeType.FAULT_CODE_DATA) { String ff = _tree.getSelection()[0].getParentItem().getParentItem().getText(); _alarmManager.deleteFaultCode(_alarmManager.getFaultFamily(ff), _alarmManager.getFaultCode(ff, new Integer(alarm).intValue())); } else if (type == NodeType.FAULT_MEMBER_DATA) { String ff = _tree.getSelection()[0].getParentItem().getParentItem().getText(); _alarmManager.deleteFaultMember(_alarmManager.getFaultFamily(ff), _alarmManager.getFaultMember(ff, alarm)); } else if (type == NodeType.FAULT_MEMBER_DEFAULT) { String ff = _tree.getSelection()[0].getParentItem().getParentItem().getText(); _alarmManager.setFaultMemberDefault(_alarmManager.getFaultFamily(ff), null); } } catch (IllegalOperationException e) { ErrorDialog error = new ErrorDialog(AlarmsView.this.getViewSite().getShell(), "Cannot delete the item", e.getMessage(), new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } catch (NullPointerException e) { ErrorDialog error = new ErrorDialog(AlarmsView.this.getViewSite().getShell(), "Cannot delete the item", e.getMessage(), new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } if (type != NodeType.FAULT_FAMILY) { sel = _tree.getSelection()[0].getParentItem(); TreeItem tff = sel.getParentItem(); FaultFamily fft = _alarmManager.getFaultFamily(tff.getText()); if (fft.getFaultCodeCount() == 0 || (fft.getFaultMemberCount() == 0 && fft.getFaultMemberDefault() == null)) { sel.setForeground(new Color(sel.getDisplay(), 255, 0, 0)); tff.setForeground(new Color(tff.getDisplay(), 255, 0, 0)); } else { sel.setForeground(new Color(sel.getDisplay(), 0, 0, 0)); tff.setForeground(new Color(tff.getDisplay(), 0, 0, 0)); } _tree.getSelection()[0].dispose(); _tree.setSelection(sel); Event e = new Event(); _tree.notifyListeners(SWT.Selection, e); } else { _tree.getSelection()[0].dispose(); if (_tree.getItemCount() > 0) _tree.setSelection(_tree.getItems()[0]); Event e = new Event(); _tree.notifyListeners(SWT.Selection, e); } } } }; _addFaultMember = new Listener() { public void handleEvent(Event event) { TreeItem tmp = _tree.getSelection()[0]; TreeItem tmp2 = null; while (tmp != null) { tmp2 = tmp; tmp = tmp.getParentItem(); } String ff = tmp2.getText(); InputDialog dialog = new InputDialog(AlarmsView.this.getViewSite().getShell(), "New Fault Member", "Enter the Fault Member name", null, new IInputValidator() { public String isValid(String newText) { if (newText.trim().compareTo("") == 0) return "The name is empty"; return null; } }); dialog.setBlockOnOpen(true); dialog.open(); int returnCode = dialog.getReturnCode(); if (returnCode == InputDialog.OK) { FaultMember newFaultMember = new FaultMember(); newFaultMember.setName(dialog.getValue()); try { _alarmManager.addFaultMember(_alarmManager.getFaultFamily(ff), newFaultMember); } catch (IllegalOperationException e) { ErrorDialog error = new ErrorDialog(AlarmsView.this.getViewSite().getShell(), "Cannot add the new Fault Member", e.getMessage(), new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } catch (NullPointerException e) { ErrorDialog error = new ErrorDialog(AlarmsView.this.getViewSite().getShell(), "Cannot add the new Fault Member", e.getMessage(), new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } sortFaultFamilyList(); selectElementFromTree(ff, dialog.getValue(), null); } } }; _addFaultMemberDefault = new Listener() { public void handleEvent(Event event) { TreeItem tmp = _tree.getSelection()[0]; TreeItem tmp2 = null; while (tmp != null) { tmp2 = tmp; tmp = tmp.getParentItem(); } String ff = tmp2.getText(); FaultMemberDefault newFaultMemberDefault = new FaultMemberDefault(); try { _alarmManager.setFaultMemberDefault(_alarmManager.getFaultFamily(ff), newFaultMemberDefault); } catch (IllegalOperationException e) { ErrorDialog error = new ErrorDialog(AlarmsView.this.getViewSite().getShell(), "Cannot add the new Default Fault Member", e.getMessage(), new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } catch (NullPointerException e) { ErrorDialog error = new ErrorDialog(AlarmsView.this.getViewSite().getShell(), "Cannot add the new Default Fault Member", e.getMessage(), new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } sortFaultFamilyList(); selectElementFromTree(ff, "Default Member", null); } }; _addFaultCode = new Listener() { public void handleEvent(Event event) { TreeItem tmp = _tree.getSelection()[0]; TreeItem tmp2 = null; while (tmp != null) { tmp2 = tmp; tmp = tmp.getParentItem(); } String ff = tmp2.getText(); InputDialog dialog = new InputDialog(AlarmsView.this.getViewSite().getShell(), "New Fault Code", "Enter the Fault Code Value", null, new IInputValidator() { public String isValid(String newText) { if (newText.trim().compareTo("") == 0) return "The value is empty"; try { new Integer(newText); } catch (NumberFormatException e) { return "The value is not a number"; } return null; } }); dialog.setBlockOnOpen(true); dialog.open(); int returnCode = dialog.getReturnCode(); if (returnCode == InputDialog.OK) { FaultCode newFaultCode = new FaultCode(); newFaultCode.setValue(new Integer(dialog.getValue()).intValue()); try { _alarmManager.addFaultCode(_alarmManager.getFaultFamily(ff), newFaultCode); } catch (IllegalOperationException e) { ErrorDialog error = new ErrorDialog(AlarmsView.this.getViewSite().getShell(), "Cannot add the new Fault Code", e.getMessage(), new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } catch (NullPointerException e) { ErrorDialog error = new ErrorDialog(AlarmsView.this.getViewSite().getShell(), "Cannot add the new Fault Code", e.getMessage(), new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } sortFaultFamilyList(); selectElementFromTree(ff, null, dialog.getValue()); } } }; _addFaultFamily = new Listener() { public void handleEvent(Event event) { InputDialog dialog = new InputDialog(AlarmsView.this.getViewSite().getShell(), "New Alarm", "Enter the Fault Family name", null, new IInputValidator() { public String isValid(String newText) { if (newText.trim().compareTo("") == 0) return "The name is empty"; return null; } }); dialog.setBlockOnOpen(true); dialog.open(); int returnCode = dialog.getReturnCode(); if (returnCode == InputDialog.OK) { FaultFamily newAlarm = new FaultFamily(); newAlarm.setName(dialog.getValue()); try { _alarmManager.addFaultFamily(newAlarm); } catch (IllegalOperationException e) { ErrorDialog error = new ErrorDialog(AlarmsView.this.getViewSite().getShell(), "Cannot add the new Alarm", e.getMessage(), new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); } catch (NullPointerException e) { ErrorDialog error = new ErrorDialog(AlarmsView.this.getViewSite().getShell(), "Cannot add the new Alarm", e.getMessage(), new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } sortFaultFamilyList(); selectElementFromTree(dialog.getValue(), null, null); } } }; _sash = new SashForm(parent, SWT.NONE); _sash.setLayout(new FillLayout()); _alarmsComp = new Composite(_sash, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 1; _alarmsComp.setLayout(layout); _treeGroup = new Group(_alarmsComp, SWT.SHADOW_ETCHED_IN); GridData gd = new GridData(); gd.horizontalAlignment = SWT.FILL; gd.verticalAlignment = SWT.FILL; gd.grabExcessHorizontalSpace = true; gd.grabExcessVerticalSpace = true; _treeGroup.setLayoutData(gd); GridLayout gl = new GridLayout(); gl.numColumns = 1; _treeGroup.setLayout(gl); _treeGroup.setText("Fault Family List"); /* The tree used to list the FF, FM and FCs */ _tree = new Tree(_treeGroup, SWT.VIRTUAL | SWT.BORDER); gd = new GridData(); gd.verticalAlignment = SWT.FILL; gd.horizontalAlignment = SWT.FILL; gd.grabExcessVerticalSpace = true; gd.grabExcessHorizontalSpace = true; _tree.setLayoutData(gd); //Menu treePopUp = new Menu(parent, SWT.POP_UP); Menu treePopUp = new Menu(parent); _tree.setMenu(treePopUp); treePopUp.addListener(SWT.Show, new Listener() { public void handleEvent(Event e) { //Point point = new Point(e.x, e.y); //TreeItem sel = _tree.getItem(point); TreeItem[] sel = _tree.getSelection(); Menu treePopUp = _tree.getMenu(); MenuItem[] items = treePopUp.getItems(); for (int i = 0; i < items.length; i++) items[i].dispose(); MenuItem mitem; if (sel == null || sel.length == 0) { mitem = new MenuItem(treePopUp, SWT.PUSH); mitem.setText("Add Fault Family"); mitem.addListener(SWT.Selection, _addFaultFamily); return; } NodeType type = (NodeType) sel[0].getData(); switch (type) { case FAULT_FAMILY: mitem = new MenuItem(treePopUp, SWT.PUSH); mitem.setText("Add Fault Family"); mitem.addListener(SWT.Selection, _addFaultFamily); mitem = new MenuItem(treePopUp, SWT.PUSH); mitem.setText("Delete Fault Family"); mitem.addListener(SWT.Selection, _deleteElement); break; case FAULT_CODE_LIST: mitem = new MenuItem(treePopUp, SWT.PUSH); mitem.setText("Add Fault Code"); mitem.addListener(SWT.Selection, _addFaultCode); break; case FAULT_CODE_DATA: mitem = new MenuItem(treePopUp, SWT.PUSH); mitem.setText("Add Fault Code"); mitem.addListener(SWT.Selection, _addFaultCode); mitem = new MenuItem(treePopUp, SWT.PUSH); mitem.setText("Delete Fault Code"); mitem.addListener(SWT.Selection, _deleteElement); break; case FAULT_MEMBER_LIST: mitem = new MenuItem(treePopUp, SWT.PUSH); mitem.setText("Add Fault Member"); mitem.addListener(SWT.Selection, _addFaultMember); if (_alarmManager.getFaultFamily(sel[0].getParentItem().getText()) .getFaultMemberDefault() == null) { mitem = new MenuItem(treePopUp, SWT.PUSH); mitem.setText("Add Default Fault Member"); mitem.addListener(SWT.Selection, _addFaultMemberDefault); } break; case FAULT_MEMBER_DATA: mitem = new MenuItem(treePopUp, SWT.PUSH); mitem.setText("Add Fault Member"); mitem.addListener(SWT.Selection, _addFaultMember); mitem = new MenuItem(treePopUp, SWT.PUSH); mitem.setText("Delete Fault Member"); mitem.addListener(SWT.Selection, _deleteElement); break; case FAULT_MEMBER_DEFAULT: mitem = new MenuItem(treePopUp, SWT.PUSH); mitem.setText("Delete Default Fault Member"); mitem.addListener(SWT.Selection, _deleteElement); break; default: for (int i = 0; i < items.length; i++) items[i].dispose(); break; } } }); _tree.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { widgetSelected(e); } public void widgetSelected(SelectionEvent e) { TreeItem[] tmp = ((Tree) e.widget).getSelection(); if (tmp == null || tmp.length == 0) { _FFgroup.setVisible(false); ((GridData) _FFgroup.getLayoutData()).exclude = true; _FMgroup.setVisible(false); ((GridData) _FMgroup.getLayoutData()).exclude = true; _FCgroup.setVisible(false); ((GridData) _FCgroup.getLayoutData()).exclude = true; _FMDgroup.setVisible(false); ((GridData) _FMDgroup.getLayoutData()).exclude = true; _FCFMgroup.setVisible(false); ((GridData) _FCFMgroup.getLayoutData()).exclude = true; return; } TreeItem item = tmp[0]; NodeType type = (NodeType) item.getData(); /* Delete the label the first time we select something */ Control c = _compInitial.getChildren()[0]; if (c instanceof Label) { c.dispose(); _compInitial.layout(); c = _compInitial.getChildren()[0]; } if (type == NodeType.FAULT_FAMILY) { _FFgroup.setVisible(true); ((GridData) _FFgroup.getLayoutData()).exclude = false; _FMgroup.setVisible(false); ((GridData) _FMgroup.getLayoutData()).exclude = true; _FCgroup.setVisible(false); ((GridData) _FCgroup.getLayoutData()).exclude = true; _FMDgroup.setVisible(false); ((GridData) _FMDgroup.getLayoutData()).exclude = true; _FCFMgroup.setVisible(false); ((GridData) _FCFMgroup.getLayoutData()).exclude = true; //_FFgroup.moveAbove(c); fillFFWidgets(item.getText()); } else if (type == NodeType.FAULT_CODE_LIST) { _FFgroup.setVisible(false); ((GridData) _FFgroup.getLayoutData()).exclude = true; _FMgroup.setVisible(false); ((GridData) _FMgroup.getLayoutData()).exclude = true; _FCgroup.setVisible(false); ((GridData) _FCgroup.getLayoutData()).exclude = true; _FMDgroup.setVisible(false); ((GridData) _FMDgroup.getLayoutData()).exclude = true; _FCFMgroup.setVisible(true); ((GridData) _FCFMgroup.getLayoutData()).exclude = false; fillFCFMWidgets(); } else if (type == NodeType.FAULT_CODE_DATA) { _FFgroup.setVisible(false); ((GridData) _FFgroup.getLayoutData()).exclude = true; _FMgroup.setVisible(false); ((GridData) _FMgroup.getLayoutData()).exclude = true; _FCgroup.setVisible(true); ((GridData) _FCgroup.getLayoutData()).exclude = false; _FMDgroup.setVisible(false); ((GridData) _FMDgroup.getLayoutData()).exclude = true; _FCFMgroup.setVisible(false); ((GridData) _FCFMgroup.getLayoutData()).exclude = true; //_FCgroup.moveAbove(c); fillFCWidgets(Integer.parseInt(item.getText()), item.getParentItem().getParentItem().getText()); } else if (type == NodeType.FAULT_MEMBER_LIST) { _FFgroup.setVisible(false); ((GridData) _FFgroup.getLayoutData()).exclude = true; _FMgroup.setVisible(false); ((GridData) _FMgroup.getLayoutData()).exclude = true; _FCgroup.setVisible(false); ((GridData) _FCgroup.getLayoutData()).exclude = true; _FMDgroup.setVisible(false); ((GridData) _FMDgroup.getLayoutData()).exclude = true; _FCFMgroup.setVisible(true); ((GridData) _FCFMgroup.getLayoutData()).exclude = false; fillFCFMWidgets(); } else if (type == NodeType.FAULT_MEMBER_DATA) { _FFgroup.setVisible(false); ((GridData) _FFgroup.getLayoutData()).exclude = true; _FMgroup.setVisible(true); ((GridData) _FMgroup.getLayoutData()).exclude = false; _FCgroup.setVisible(false); ((GridData) _FCgroup.getLayoutData()).exclude = true; _FMDgroup.setVisible(false); ((GridData) _FMDgroup.getLayoutData()).exclude = true; _FCFMgroup.setVisible(false); ((GridData) _FCFMgroup.getLayoutData()).exclude = true; //_FMgroup.moveAbove(c); fillFMWidgets(item.getText(), item.getParentItem().getParentItem().getText()); } else if (type == NodeType.FAULT_MEMBER_DEFAULT) { _FFgroup.setVisible(false); ((GridData) _FFgroup.getLayoutData()).exclude = true; _FMgroup.setVisible(false); ((GridData) _FMgroup.getLayoutData()).exclude = true; _FCgroup.setVisible(false); ((GridData) _FCgroup.getLayoutData()).exclude = true; _FMDgroup.setVisible(true); ((GridData) _FMDgroup.getLayoutData()).exclude = false; _FCFMgroup.setVisible(false); ((GridData) _FCFMgroup.getLayoutData()).exclude = true; fillFMDWidgets(item.getParentItem().getParentItem().getText()); } _compInitial.layout(); } }); _tree.addListener(SWT.MouseHover, hoverTree); _alarmsButtonsComp = new Composite(_alarmsComp, SWT.NONE); layout = new GridLayout(); layout.numColumns = 2; _alarmsButtonsComp.setLayout(layout); _addAlarmButton = new Button(_alarmsButtonsComp, SWT.None); _addAlarmButton.setText("Add"); _addAlarmButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ADD)); _deleteAlarmButton = new Button(_alarmsButtonsComp, SWT.None); _deleteAlarmButton.setText("Delete"); _deleteAlarmButton .setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ETOOL_DELETE)); _addAlarmButton.addListener(SWT.Selection, _addFaultFamily); _deleteAlarmButton.addListener(SWT.Selection, _deleteElement); /* Top widget of the right side */ _compInitial = new Composite(_sash, SWT.SHADOW_ETCHED_IN); _compInitial.setLayout(new GridLayout()); new Label(_compInitial, SWT.NONE).setText("Select an element"); /* FF/FM/FC Details */ createFFWidgets(); createFCWidgets(); createFMWidgets(); createFMDWidgets(); createFCFMWidgets(); /* At the beginning we only show a label */ _FFgroup.setVisible(false); _FCgroup.setVisible(false); _FMgroup.setVisible(false); _FMDgroup.setVisible(false); _FCFMgroup.setVisible(false); _sash.setWeights(new int[] { 3, 5 }); }
From source file:cl.utfsm.acs.acg.gui.CategoriesView.java
License:Open Source License
private void createViewWidgets(Composite parent) { SashForm sash = new SashForm(parent, SWT.HORIZONTAL); sash.setLayout(new FillLayout()); /* Left pane */ Composite categoriesComp = new Composite(sash, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 1;/*from w w w .java 2 s . c o m*/ categoriesComp.setLayout(layout); _listGroup = new Group(categoriesComp, SWT.SHADOW_ETCHED_IN); GridData gd = new GridData(); gd.horizontalAlignment = SWT.FILL; gd.verticalAlignment = SWT.FILL; gd.grabExcessHorizontalSpace = true; gd.grabExcessVerticalSpace = true; _listGroup.setLayoutData(gd); GridLayout gl = new GridLayout(); gl.numColumns = 1; _listGroup.setLayout(gl); _listGroup.setText("Categories List"); _categoriesList = new List(_listGroup, SWT.BORDER | SWT.V_SCROLL); _categoriesList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); _categoriesList.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { widgetSelected(e); } public void widgetSelected(SelectionEvent e) { Control c = _compInitial.getChildren()[0]; if (c instanceof Label) { c.dispose(); } _comp.setVisible(true); _comp.layout(); /* Fill with the contents of the selected category */ /* The default category is stored as the data of the _categoryList */ /* and is shown with a "*" in the list */ if (_categoriesList.getSelection() == null || _categoriesList.getSelection().length == 0) { _comp.setVisible(false); _comp.layout(); return; } String categoryName = _categoriesList.getSelection()[0]; if (categoryName.startsWith("*")) fillCategoryInfo((String) _categoriesList.getData()); else fillCategoryInfo(categoryName); if (_ffList.getItemCount() == 0) _errorMessageLabel.setText("You have to select at least one Fault Family"); } }); /* Add and remove buttons */ Composite categoriesButtonsComp = new Composite(categoriesComp, SWT.NONE); layout = new GridLayout(); layout.numColumns = 2; categoriesButtonsComp.setLayout(layout); categoriesButtonsComp.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, true, false)); _addCategoryButton = new Button(categoriesButtonsComp, SWT.None); _addCategoryButton.setText("Add"); _addCategoryButton .setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ADD)); _deleteCategoryButton = new Button(categoriesButtonsComp, SWT.None); _deleteCategoryButton.setText("Delete"); _deleteCategoryButton .setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ETOOL_DELETE)); Listener addCategory = new Listener() { public void handleEvent(Event event) { InputDialog dialog = new InputDialog(CategoriesView.this.getViewSite().getShell(), "New Category", "Enter the Category name", null, new IInputValidator() { public String isValid(String newText) { if (newText.trim().compareTo("") == 0) return "The name is empty"; return null; } }); dialog.setBlockOnOpen(true); dialog.open(); int returnCode = dialog.getReturnCode(); if (returnCode == InputDialog.OK) { if (_categoryManager.getCategoryByPath(dialog.getValue()) != null) { ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(), "Category already exist", "The Category " + dialog.getValue() + " already exists in the current configuration", new Status(IStatus.ERROR, "cl.utfsm.acs.acg", "The Category " + dialog.getValue() + " already exists in the current configuration"), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } Category newCategory = new Category(); newCategory.setPath(dialog.getValue()); InputDialog dialog2 = new InputDialog(CategoriesView.this.getViewSite().getShell(), "Category Description", "Enter the Description for the Category", null, new IInputValidator() { public String isValid(String newText) { if (newText.trim().compareTo("") == 0) return "The name is empty"; return null; } }); dialog2.setBlockOnOpen(true); dialog2.open(); String description = dialog2.getValue(); if (description == null) return; if (returnCode == InputDialog.OK) newCategory.setDescription(description); java.util.List<String> ffnames = sortFullFaultFamilyList(); ListSelectionDialog dialog3 = new ListSelectionDialog( PlatformUI.getWorkbench().getDisplay().getActiveShell(), ffnames, new ArrayContentProvider(), new LabelProvider(), ""); dialog3.setTitle("Fault Family Selection"); dialog3.setMessage("List of Fault Families"); dialog3.setBlockOnOpen(true); dialog3.open(); Object ffselected[] = dialog3.getResult(); if (ffselected == null) return; if (ffselected.length == 0) { try { _categoryManager.addCategory(newCategory); } catch (IllegalOperationException e) { ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(), "Category already exist", "The Category " + dialog.getValue() + " already exists in the current configuration", new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } } else { Alarms alarms = new Alarms(); for (int i = 0; i < ffselected.length; i++) { try { alarms.addFaultFamily( _alarmManager.getFaultFamily((String) ffselected[i]).getName()); //alarms.setFaultFamily(i, (String)ffselected[i]); } catch (NullPointerException e) { } newCategory.setAlarms(alarms); } try { _categoryManager.addCategory(newCategory); } catch (IllegalOperationException e) { ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(), "Category already exist", "The Category " + dialog.getValue() + " already exists in the current configuration", new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } } String[] items = new String[1]; items[0] = dialog.getValue(); refreshContents(); _categoriesList.setSelection(items); Event e = new Event(); _categoriesList.notifyListeners(SWT.Selection, e); IWorkbenchWindow _window = getViewSite().getWorkbenchWindow(); IViewReference[] views = _window.getActivePage().getViewReferences(); IMyViewPart view = ((IMyViewPart) views[3].getView(false)); //view.refreshContents(); view.fillWidgets(); if (_ffList.getItemCount() == 0) _errorMessageLabel.setText("You have to select at least one Fault Family"); } else return; } }; _addCategoryButton.addListener(SWT.Selection, addCategory); Listener deleteCategory = new Listener() { public void handleEvent(Event event) { boolean choice = MessageDialog.openQuestion(CategoriesView.this.getViewSite().getShell(), "Confirmation", "Are you sure you want to delete this Category"); if (choice == true) { String tmp[] = _categoriesList.getSelection(); if (tmp == null || tmp.length == 0) { ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(), "Empty selection", "There are no Categories selected to be deleted", new Status(IStatus.ERROR, "cl.utfsm.acs.acg", ""), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } String category = tmp[0]; if (category.startsWith("*")) { ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(), "Cannot delete Category", "The Category cannot be deleted", new Status(IStatus.ERROR, "cl.utfsm.acs.acg", "There must be one default category. Please select a different one before removing this category."), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } try { _categoryManager.deleteCategory(_categoryManager.getCategoryByPath(category)); } catch (IllegalOperationException e) { ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(), "Cannot delete Category", "The Category cannot be deleted", new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } String[] items = null; if (_categoriesList.getSelection() != null && _categoriesList.getSelection().length != 0) { items = _categoriesList.getSelection(); refreshContents(); if (items == null) if (_categoriesList.getItemCount() > 0) _categoriesList.setSelection(0); } else _categoriesList.setSelection(items); Event e = new Event(); _categoriesList.notifyListeners(SWT.Selection, e); IWorkbenchWindow _window = getViewSite().getWorkbenchWindow(); IViewReference[] views = _window.getActivePage().getViewReferences(); IMyViewPart view = ((IMyViewPart) views[3].getView(false)); //view.refreshContents(); view.fillWidgets(); } } }; _deleteCategoryButton.addListener(SWT.Selection, deleteCategory); /* To delete a FF from a given Category */ Listener deleteFaultFamily = new Listener() { public void handleEvent(Event event) { Category c = _categoryManager.getCategoryByPath(_pathText.getText()); try { String[] ff = c.getAlarms().getFaultFamily(); Alarms alarms = new Alarms(); String[] temp = _ffList.getSelection(); //int j = 0; for (int i = 0; i < ff.length; i++) { if (ff[i].compareTo(temp[0]) == 0) { _ffList.remove(temp[0]); c.getAlarms().removeFaultFamily(ff[i]); } else { alarms.addFaultFamily(ff[i]); //alarms.setFaultFamily(j, ff[i]); //j++; } } c.setAlarms(alarms); _categoryManager.updateCategory(c, c); if (_ffList.getItemCount() == 0) _errorMessageLabel.setText("You have to select at least one Fault Family"); IWorkbenchWindow _window = getViewSite().getWorkbenchWindow(); IViewReference[] views = _window.getActivePage().getViewReferences(); IMyViewPart view = ((IMyViewPart) views[3].getView(false)); //view.refreshContents(); view.fillWidgets(); boolean inUse = false; boolean def = false; String defCat = ""; for (Category cat : _categoryManager.getAllCategories()) { String[] ffs = cat.getAlarms().getFaultFamily(); for (String tff : ffs) { if (tff.compareTo(temp[0]) == 0) inUse = true; } if (cat.getIsDefault()) { def = true; defCat = cat.getPath(); } } if (!inUse) { String msg; if (def) msg = "Default category: " + defCat; else msg = "No default category"; ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(), "Fault Family isn't in any Categoty", "The Fault Family is not part of any Category", new Status(IStatus.WARNING, "cl.utfsm.acs.acg", "The Fault Family " + temp[0] + " is not part of any Category (" + msg + ")"), IStatus.WARNING); error.setBlockOnOpen(true); error.open(); } } catch (Exception e) { e.printStackTrace(); } } }; /* To delete all FF from a given Category */ Listener deleteAllFaultFamily = new Listener() { public void handleEvent(Event event) { Category c = _categoryManager.getCategoryByPath(_pathText.getText()); try { String[] ff = c.getAlarms().getFaultFamily(); Alarms alarms = new Alarms(); for (int i = 0; i < ff.length; i++) { _ffList.remove(ff[i]); c.getAlarms().removeFaultFamily(ff[i]); } c.setAlarms(alarms); _categoryManager.updateCategory(c, c); IWorkbenchWindow _window = getViewSite().getWorkbenchWindow(); IViewReference[] views = _window.getActivePage().getViewReferences(); IMyViewPart view = ((IMyViewPart) views[3].getView(false)); //view.refreshContents(); view.fillWidgets(); java.util.List<String> ffList = new ArrayList<String>(); boolean def = false; String defCat = ""; for (String cff : ff) { Boolean inUse = false; for (Category cat : _categoryManager.getAllCategories()) { String[] ffs = cat.getAlarms().getFaultFamily(); for (String tff : ffs) { if (tff.compareTo(cff) == 0) inUse = true; } if (cat.getIsDefault()) { def = true; defCat = cat.getPath(); } } if (!inUse) ffList.add(cff); } if (ffList.size() > 0) { String list = ""; for (String ffel : ffList) list = list + ffel + ", "; list.substring(0, list.length() - 2); String msg; if (def) msg = "Default category: " + defCat; else msg = "No default category"; ErrorDialog error = new ErrorDialog(CategoriesView.this.getViewSite().getShell(), "Fault Family isn't in any Categoty", "The Fault Family is not part of any Category", new Status(IStatus.WARNING, "cl.utfsm.acs.acg", "The Fault Family(ies) " + list + " is not part of any Category (" + msg + ")"), IStatus.WARNING); error.setBlockOnOpen(true); error.open(); } } catch (Exception e) { e.printStackTrace(); } if (_ffList.getItemCount() == 0) _errorMessageLabel.setText("You have to select at least one Fault Family"); } }; /* To add a new FF to a Category */ Listener addFaultFamily = new Listener() { public void handleEvent(Event event) { Category c = _categoryManager.getCategoryByPath(_pathText.getText()); java.util.List<String> currentffs = new ArrayList<String>(); try { String[] ffss = c.getAlarms().getFaultFamily(); for (int i = 0; i < ffss.length; i++) { currentffs.add(ffss[i]); } } catch (NullPointerException e) { e.printStackTrace(); } java.util.List<String> ffnames = sortFullFaultFamilyList(); ListSelectionDialog dialog3 = new ListSelectionDialog( PlatformUI.getWorkbench().getDisplay().getActiveShell(), ffnames, new ArrayContentProvider(), new LabelProvider(), ""); dialog3.setTitle("Fault Family Selection"); dialog3.setMessage("List of Fault Families"); dialog3.setBlockOnOpen(true); if (currentffs != null) dialog3.setInitialElementSelections(currentffs); dialog3.open(); if (dialog3.getReturnCode() == InputDialog.OK) { Object ffselected[] = dialog3.getResult(); try { Alarms alarms = new Alarms(); for (int i = 0; i < ffselected.length; i++) alarms.addFaultFamily(_alarmManager.getFaultFamily((String) ffselected[i]).getName()); c.setAlarms(alarms); _categoryManager.updateCategory(c, c); sortCategoryFaultFamilyList(c.getPath()); } catch (Exception e) { e.printStackTrace(); } String[] items = _categoriesList.getSelection(); refreshContents(); _categoriesList.setSelection(items); Event e = new Event(); _categoriesList.notifyListeners(SWT.Selection, e); IWorkbenchWindow _window = getViewSite().getWorkbenchWindow(); IViewReference[] views = _window.getActivePage().getViewReferences(); IMyViewPart view = ((IMyViewPart) views[3].getView(false)); //view.refreshContents(); view.fillWidgets(); if (_ffList.getItemCount() == 0) _errorMessageLabel.setText("You have to select at least one Fault Family"); } } }; /* Initial label when no categories are selected */ _compInitial = new Composite(sash, SWT.NONE); _compInitial.setLayout(new GridLayout()); new Label(_compInitial, SWT.NONE).setText("Select a category"); /* Fill the right pane Group that will be shown when * a category is selected in the left list */ layout = new GridLayout(); layout.numColumns = 2; GridData gridData = new GridData(); gridData.grabExcessHorizontalSpace = true; gridData.grabExcessVerticalSpace = true; gridData.horizontalAlignment = SWT.FILL; gridData.verticalAlignment = SWT.FILL; _comp = new Group(_compInitial, SWT.SHADOW_ETCHED_IN); _comp.setText("Category information"); _comp.setLayout(layout); _comp.setLayoutData(gridData); _pathLabel = new Label(_comp, SWT.NONE); _pathLabel.setText("Category name"); _pathText = new Text(_comp, SWT.SINGLE | SWT.BORDER); gridData = new GridData(); gridData.horizontalAlignment = SWT.FILL; gridData.grabExcessHorizontalSpace = true; _pathText.setLayoutData(gridData); _descriptionLabel = new Label(_comp, SWT.NONE); _descriptionLabel.setText("Category description"); _descriptionText = new Text(_comp, SWT.SINGLE | SWT.BORDER); gridData = new GridData(); gridData.horizontalAlignment = SWT.FILL; gridData.grabExcessHorizontalSpace = true; _descriptionText.setLayoutData(gridData); _isDefaultLabel = new Label(_comp, SWT.NONE); _isDefaultLabel.setText("Is default category?"); _isDefaultCheck = new Button(_comp, SWT.CHECK); _ffLabel = new Label(_comp, SWT.NONE); _ffLabel.setText("Fault Families:"); gridData = new GridData(); gridData.verticalAlignment = SWT.TOP; gridData.horizontalSpan = 2; _ffLabel.setLayoutData(gridData); _ffList = new List(_comp, SWT.V_SCROLL | SWT.BORDER); gridData = new GridData(); gridData.horizontalAlignment = SWT.FILL; gridData.grabExcessHorizontalSpace = true; gridData.verticalAlignment = SWT.FILL; gridData.grabExcessVerticalSpace = true; gridData.horizontalSpan = 2; _ffList.setLayoutData(gridData); _errorMessageLabel = new Label(_comp, SWT.NONE); _errorMessageLabel.setText("A"); _errorMessageLabel.setForeground(getViewSite().getShell().getDisplay().getSystemColor(SWT.COLOR_RED)); gd = new GridData(); gd.grabExcessHorizontalSpace = true; gd.horizontalAlignment = SWT.FILL; gd.horizontalSpan = 2; _errorMessageLabel.setLayoutData(gd); /* Adding a click right menu to modify the FF of a given Category */ Menu treePopUp1 = new Menu(parent); MenuItem treePopUpAddFF = new MenuItem(treePopUp1, SWT.PUSH); treePopUpAddFF.setText("Add a new Fault Family"); treePopUpAddFF.addListener(SWT.Selection, addFaultFamily); MenuItem treePopUpDeleteFF = new MenuItem(treePopUp1, SWT.PUSH); treePopUpDeleteFF.setText("Delete this Fault Family"); treePopUpDeleteFF.addListener(SWT.Selection, deleteFaultFamily); MenuItem treePopUpDeleteAllFF = new MenuItem(treePopUp1, SWT.PUSH); treePopUpDeleteAllFF.setText("Delete All Fault Families"); treePopUpDeleteAllFF.addListener(SWT.Selection, deleteAllFaultFamily); _ffList.setMenu(treePopUp1); /* Adding a click menu to add/delete Categories */ Menu treePopUp2 = new Menu(parent); MenuItem treePopUpaddCategory = new MenuItem(treePopUp2, SWT.PUSH); treePopUpaddCategory.setText("Add a new Category"); treePopUpaddCategory.addListener(SWT.Selection, addCategory); MenuItem treePopUpdeleteCategory = new MenuItem(treePopUp2, SWT.PUSH); treePopUpdeleteCategory.setText("Delete this Category"); treePopUpdeleteCategory.addListener(SWT.Selection, deleteCategory); _categoriesList.setMenu(treePopUp2); _comp.setVisible(false); /* Set a weight for each side of the view */ sash.setWeights(new int[] { 3, 5 }); Listener updateCategory = new Listener() { public void handleEvent(Event e) { updateName(); } }; _descriptionText.addListener(SWT.Modify, updateCategory); _pathText.addListener(SWT.Modify, updateCategory); _isDefaultCheck.addListener(SWT.Selection, new Listener() { public void handleEvent(Event e) { String category; if (_categoriesList.getSelection()[0].startsWith("*")) category = (String) _categoriesList.getData(); else category = _categoriesList.getSelection()[0]; if (_categoryManager.getCategoryByPath(category).getIsDefault() == true) { _isDefaultCheck.setSelection(true); MessageBox messageBox = new MessageBox(PlatformUI.getWorkbench().getDisplay().getActiveShell(), SWT.ICON_ERROR); messageBox.setMessage("The Default Category always must exist, you can only change it"); messageBox.open(); } else { _categoryManager.updateDefaultCategory( _categoryManager.getCategoryByPath(_categoriesList.getSelection()[0])); String[] items = _categoriesList.getSelection(); refreshContents(); items[0] = "* " + items[0]; _categoriesList.setSelection(items); Event e2 = new Event(); _categoriesList.notifyListeners(SWT.Selection, e2); IWorkbenchWindow _window = getViewSite().getWorkbenchWindow(); IViewReference[] views = _window.getActivePage().getViewReferences(); IMyViewPart view = ((IMyViewPart) views[3].getView(false)); //view.refreshContents(); view.fillWidgets(); } } }); }
From source file:cl.utfsm.acs.acg.gui.SourcesView.java
License:Open Source License
private void createViewWidgets(final Composite parent) { _sash = new SashForm(parent, SWT.HORIZONTAL); _sash.setLayout(new FillLayout()); /* Left pane */ _sourcesComp = new Composite(_sash, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 1;/*from ww w . j a v a 2s. c o m*/ _sourcesComp.setLayout(layout); _listGroup = new Group(_sourcesComp, SWT.SHADOW_ETCHED_IN); GridData gd = new GridData(); gd.horizontalAlignment = SWT.FILL; gd.verticalAlignment = SWT.FILL; gd.grabExcessHorizontalSpace = true; gd.grabExcessVerticalSpace = true; _listGroup.setLayoutData(gd); GridLayout gl = new GridLayout(); gl.numColumns = 1; _listGroup.setLayout(gl); _listGroup.setText("Sources List"); _sourcesList = new List(_listGroup, SWT.BORDER); gd = new GridData(); gd.verticalAlignment = SWT.FILL; gd.horizontalAlignment = SWT.FILL; gd.grabExcessVerticalSpace = true; gd.grabExcessHorizontalSpace = true; _sourcesList.setLayoutData(gd); _sourcesButtonsComp = new Composite(_sourcesComp, SWT.NONE); layout = new GridLayout(); layout.numColumns = 2; _sourcesButtonsComp.setLayout(layout); _addSourceButton = new Button(_sourcesButtonsComp, SWT.None); _addSourceButton.setText("Add"); _addSourceButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ADD)); _deleteSourceButton = new Button(_sourcesButtonsComp, SWT.None); _deleteSourceButton.setText("Delete"); _deleteSourceButton .setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ETOOL_DELETE)); /* Please change this in the future when more SOURCES will be available */ _addSourceButton.setEnabled(false); _deleteSourceButton.setEnabled(false); _sourcesList.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { widgetSelected(e); } public void widgetSelected(SelectionEvent e) { String source = _sourcesList.getSelection()[0]; Control c = _compInitial.getChildren()[0]; if (c instanceof Label) { c.dispose(); _group.setVisible(true); _group.layout(); } fillSource(source); _compInitial.layout(); } }); _addSourceButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { InputDialog dialog = new InputDialog(SourcesView.this.getViewSite().getShell(), "New source", "Enter the source name", null, new IInputValidator() { public String isValid(String newText) { if (newText.trim().compareTo("") == 0) return "The name is empty"; return null; } }); dialog.setBlockOnOpen(true); dialog.open(); int returnCode = dialog.getReturnCode(); if (returnCode == InputDialog.OK) { Source newSource = new Source(); newSource.setSourceId(dialog.getValue()); try { _sourceManager.addSource(newSource); } catch (IllegalOperationException e) { ErrorDialog error = new ErrorDialog(SourcesView.this.getViewSite().getShell(), "Source already exist", "The source " + dialog.getValue() + " already exists in the current configuration", new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); return; } refreshContents(); if (_sourcesList.getItems().length != 0) { int lenght = _sourcesList.getItems().length; lenght -= 1; _sourcesList.select(lenght); _descriptionText.setText(_sourcesList.getItem(lenght).toString()); } } } }); _deleteSourceButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { boolean choice = MessageDialog.openQuestion(SourcesView.this.getViewSite().getShell(), "Confirmation", "Are you sure you want to delete this Source"); if (choice == true) { String tmp[] = _sourcesList.getSelection(); if (tmp.length == 0) { MessageBox box = new MessageBox(getViewSite().getShell(), SWT.OK | SWT.ICON_ERROR | SWT.APPLICATION_MODAL); box.setText("Empty selection"); box.setMessage("There are no sources selected to be deleted"); box.open(); return; } String source = tmp[0]; try { _sourceManager.deleteSource(_sourceManager.getSource(source)); } catch (IllegalOperationException e) { ErrorDialog error = new ErrorDialog(SourcesView.this.getViewSite().getShell(), "Cannot delete source", "The source cannot be deleted", new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR); error.setBlockOnOpen(true); error.open(); } refreshContents(); if (_sourcesList.getItems().length != 0) { int lenght = _sourcesList.getItems().length; lenght -= 1; _sourcesList.select(lenght); _sourceNameText.setText(_sourcesList.getItem(lenght).toString()); } } } }); /* Right pane */ _compInitial = new Composite(_sash, SWT.NONE); _compInitial.setLayout(new GridLayout()); new Label(_compInitial, SWT.NONE).setText("Select a source"); layout = new GridLayout(); layout.numColumns = 2; gd = new GridData(); gd.horizontalAlignment = SWT.FILL; gd.verticalAlignment = SWT.FILL; gd.grabExcessHorizontalSpace = true; gd.grabExcessVerticalSpace = true; _group = new Group(_compInitial, SWT.SHADOW_ETCHED_IN); _group.setText("Source information"); _group.setLayout(layout); _group.setLayoutData(gd); _sourceNameLabel = new Label(_group, SWT.NONE); _sourceNameLabel.setText("Source name"); _sourceNameText = new Text(_group, SWT.BORDER); _descriptionLabel = new Label(_group, SWT.NONE); _descriptionLabel.setText("Description"); _descriptionText = new Text(_group, SWT.BORDER); gd = new GridData(); gd.horizontalAlignment = SWT.FILL; gd.grabExcessHorizontalSpace = true; _sourceNameText.setLayoutData(gd); _descriptionText.setLayoutData(gd); _group.setVisible(false); _sash.setWeights(new int[] { 3, 5 }); /* TODO: This is temporal, since there is currently only * one source defined in the AS, and it's hardcoded */ //setEnabled(false); _descriptionText.addListener(SWT.Modify, new Listener() { public void handleEvent(Event e) { updateSource(); } }); _errorMessageLabel = new Label(_group, SWT.NONE); _errorMessageLabel.setText(""); _errorMessageLabel.setForeground(getViewSite().getShell().getDisplay().getSystemColor(SWT.COLOR_RED)); gd = new GridData(); gd.grabExcessHorizontalSpace = true; gd.horizontalAlignment = SWT.FILL; gd.horizontalSpan = 2; _errorMessageLabel.setLayoutData(gd); /* Please change this in the future when more SOURCES will be available */ _sourceNameText.setEnabled(false); _descriptionText.setEnabled(false); }
From source file:com.amalto.workbench.actions.XSDEditComplexTypeAction.java
License:Open Source License
@Override public IStatus doAction() { try {//from w ww . j ava 2 s.c o m ISelection selection = page.getTreeViewer().getSelection(); IStructuredContentProvider provider = (IStructuredContentProvider) page.getSchemaContentProvider(); XSDComplexTypeDefinition decl = (XSDComplexTypeDefinition) ((IStructuredSelection) selection) .getFirstElement(); String oldName = decl.getName(); InputDialog id = new InputDialog(page.getSite().getShell(), Messages.XSDEditComplexTypeAction_EditComplexType, Messages.XSDEditComplexTypeAction_EnterNameForEntity, oldName, new IInputValidator() { public String isValid(String newText) { if ((newText == null) || "".equals(newText)) //$NON-NLS-1$ return Messages.XSDEditComplexTypeAction_ComplexTypeCannotBeEmpty; if (Pattern.compile("^\\s+\\w+\\s*").matcher(newText).matches()//$NON-NLS-1$ || newText.trim().replaceAll("\\s", "").length() != newText.trim().length())//$NON-NLS-1$//$NON-NLS-2$ return Messages.XSDEditComplexTypeAction_NameCannotContainEmpty; if (!XSDUtil.isValidatedXSDName(newText)) { return Messages.InvalidName_Message; } EList list = schema.getTypeDefinitions(); for (Iterator iter = list.iterator(); iter.hasNext();) { Object d = iter.next(); if (d instanceof XSDComplexTypeDefinition) { XSDComplexTypeDefinition type = (XSDComplexTypeDefinition) d; if (type.getName().equals(newText.trim())) return Messages.XSDEditComplexTypeAction_ComplexAlreadyExists; } } return null; }; }); id.setBlockOnOpen(true); int ret = id.open(); if (ret == Dialog.CANCEL) { return Status.CANCEL_STATUS; } decl.setName(id.getValue().trim()); Util.updateReferenceToXSDTypeDefinition(page.getSite(), decl, provider); page.refresh(); page.markDirty(); } catch (Exception e) { log.error(e.getMessage(), e); MessageDialog.openError(page.getSite().getShell(), Messages._Error, Messages.XSDEditComplexTypeAction_ErrorEditEntity + e.getLocalizedMessage()); return Status.CANCEL_STATUS; } return Status.OK_STATUS; }
From source file:com.amalto.workbench.actions.XSDEditConceptAction.java
License:Open Source License
@Override public IStatus doAction() { try {/* w ww .ja v a2s. co m*/ ISelection selection = page.getTreeViewer().getSelection(); XSDElementDeclaration decl = (XSDElementDeclaration) ((IStructuredSelection) selection) .getFirstElement(); ArrayList<Object> objList = new ArrayList<Object>(); IStructuredContentProvider provider = (IStructuredContentProvider) page.getTreeViewer() .getContentProvider(); String oldName = decl.getName(); InputDialog id = new InputDialog(page.getSite().getShell(), Messages.XSDEditConceptAction_Text, Messages.XSDEditConceptAction_DialogTip, oldName, new IInputValidator() { public String isValid(String newText) { if ((newText == null) || "".equals(newText)) { return Messages.XSDEditConceptAction_NameCannotBeEmpty; } if (Pattern.compile("^\\s+\\w+\\s*").matcher(newText).matches()//$NON-NLS-1$ || newText.trim().replaceAll("\\s", "").length() != newText.trim().length()) { return Messages.XSDEditConceptAction_NameCannotContainEmpty; } if (!XSDUtil.isValidatedXSDName(newText)) { return Messages.InvalidName_Message; } EList list = schema.getElementDeclarations(); for (Iterator iter = list.iterator(); iter.hasNext();) { XSDElementDeclaration d = (XSDElementDeclaration) iter.next(); if (d.getName().equalsIgnoreCase(newText.trim())) { return Messages.XSDEditConceptAction_EntityAlreadyExist; } } return null; }; }); id.setBlockOnOpen(true); int ret = id.open(); if (ret == Dialog.CANCEL) { return Status.CANCEL_STATUS; } Object[] objs = Util.getAllObject(page.getSite(), objList, provider); Object[] allForeignKeyRelatedInfos = Util.getAllForeignKeyRelatedInfos(page.getSite(), new ArrayList<Object>(), provider, new HashSet<Object>()); String newName = id.getValue().trim(); decl.setName(newName); decl.updateElement(); Util.updateReference(decl, objs, allForeignKeyRelatedInfos, oldName, newName); EntitySyncProcessor.syncNameForAnnotation(decl, oldName, newName); if (mapinfoExAdapter != null) { mapinfoExAdapter.renameEntityMapinfo(oldName, newName); } if (elementExAdapter != null) { elementExAdapter.renameEntityName(decl.getSchema(), oldName, newName); } // change unique key with new name of concept EList list = decl.getIdentityConstraintDefinitions(); XSDIdentityConstraintDefinition toUpdate = null; for (Iterator iter = list.iterator(); iter.hasNext();) { XSDIdentityConstraintDefinition icd = (XSDIdentityConstraintDefinition) iter.next(); if (icd.getName().equals(oldName)) { toUpdate = icd; break; } } if (toUpdate != null) { toUpdate.setName(newName); toUpdate.updateElement(); } page.refresh(); page.markDirty(); // page.refreshPage(); } catch (Exception e) { log.error(e.getMessage(), e); MessageDialog.openError(page.getSite().getShell(), Messages._Error, Messages.bind(Messages.XSDEditConceptAction_ErrorMsg, e.getLocalizedMessage())); return Status.CANCEL_STATUS; } return Status.OK_STATUS; }
From source file:com.amalto.workbench.actions.XSDEditElementAction.java
License:Open Source License
@Override public IStatus doAction() { try {//from w w w .j a v a2 s. co m ISelection selection = page.getTreeViewer().getSelection(); XSDElementDeclaration decl = (XSDElementDeclaration) ((IStructuredSelection) selection) .getFirstElement(); ArrayList<Object> objList = new ArrayList<Object>(); IStructuredContentProvider provider = (IStructuredContentProvider) page.getTreeViewer() .getContentProvider(); String oldName = decl.getName(); InputDialog id = new InputDialog(page.getSite().getShell(), Messages.XSDEditElementAction_EditElement, Messages.XSDEditElementAction_EnterNameForElement, oldName, new EditXSDEleDecNameValidator(schema) // new IInputValidator() { // public String isValid(String newText) { // if ((newText==null) || "".equals(newText)) return "The Entity Name cannot be empty"; // EList list = schema.getElementDeclarations(); // for (Iterator iter = list.iterator(); iter.hasNext(); ) { // XSDElementDeclaration d = (XSDElementDeclaration) iter.next(); // if (d.getName().equals(newText)) return "This Entity already exists"; // } // return null; // }; // } ); id.setBlockOnOpen(true); int ret = id.open(); if (ret == Window.CANCEL) { return Status.CANCEL_STATUS; } Object[] objs = Util.getAllObject(page.getSite(), objList, provider); Object[] allForeignKeyRelatedInfos = Util.getAllForeignKeyRelatedInfos(page.getSite(), new ArrayList<Object>(), provider, new HashSet<Object>()); decl.setName(id.getValue()); decl.updateElement(); Util.updateReference(decl, objs, allForeignKeyRelatedInfos, oldName, id.getValue()); // change unique key with new name of concept EList list = decl.getIdentityConstraintDefinitions(); XSDIdentityConstraintDefinition toUpdate = null; for (Iterator iter = list.iterator(); iter.hasNext();) { XSDIdentityConstraintDefinition icd = (XSDIdentityConstraintDefinition) iter.next(); if (icd.getName().equals(oldName)) { toUpdate = icd; break; } } if (toUpdate != null) { toUpdate.setName(id.getValue()); toUpdate.updateElement(); } page.refresh(); page.markDirty(); } catch (Exception e) { log.error(e.getMessage(), e); MessageDialog.openError(page.getSite().getShell(), Messages._Error, Messages.bind(Messages.XSDEditElementAction_ErrorEditElement, e.getLocalizedMessage())); return Status.CANCEL_STATUS; } return Status.OK_STATUS; }
From source file:com.amalto.workbench.actions.XSDEditIdentityConstraintAction.java
License:Open Source License
public IStatus doAction() { try {//from ww w . ja va 2 s . c om ISelection selection = page.getTreeViewer().getSelection(); constraint = (XSDIdentityConstraintDefinition) ((IStructuredSelection) selection).getFirstElement(); String oldName = constraint.getName(); InputDialog id = new InputDialog(page.getSite().getShell(), Messages.XSDEditIdentityXX_EditKey, Messages.XSDEditIdentityXX_EnterANameForKey, oldName, new EditXSDIdentityConstraintNameValidator(constraint) // new IInputValidator() { // public String isValid(String newText) { // if ((newText==null) || "".equals(newText)) return "The Entity Name cannot be empty"; // XSDSchema schema = XSDEditIdentityConstraintAction.this.constraint.getSchema(); // EList list = schema.getIdentityConstraintDefinitions(); // for (Iterator iter = list.iterator(); iter.hasNext(); ) { // XSDIdentityConstraintDefinition icd = (XSDIdentityConstraintDefinition) iter.next(); // if (icd.getName().equals(newText)) return "This Key already exists"; // } // return null; // }; // } ); id.setBlockOnOpen(true); int ret = id.open(); if (ret == Dialog.CANCEL) { return Status.CANCEL_STATUS; } if (XSDIdentityConstraintCategory.UNIQUE_LITERAL.equals(constraint.getIdentityConstraintCategory()) && !((XSDElementDeclaration) constraint.getContainer()).getName().equals(id.getValue())) { MessageDialog.openWarning(page.getSite().getShell(), Messages.Warning, Messages.XSDEditIdentityXX_WarningMsg); return Status.CANCEL_STATUS; } constraint.setName(id.getValue()); constraint.updateElement(); page.refresh(); page.markDirty(); } catch (Exception e) { log.error(e.getMessage(), e); MessageDialog.openError(page.getSite().getShell(), Messages._Error, Messages.bind(Messages.XSDEditIdentityXX_ErrorEditEntity, e.getLocalizedMessage())); return Status.CANCEL_STATUS; } return Status.OK_STATUS; }
From source file:com.amalto.workbench.actions.XSDPasteConceptAction.java
License:Open Source License
@Override public IStatus doAction() { try {/*from w ww. j a va 2s. c o m*/ conceptList = WorkbenchClipboard.getWorkbenchClipboard().getConcepts(); XSDFactory factory = XSDFactory.eINSTANCE; if (!conceptList.isEmpty()) { // List<String> concepts = new ArrayList<String>(); int index = 0; for (Iterator<XSDElementDeclaration> it = conceptList.iterator(); it.hasNext();) { if (conceptList.get(index).getSchema() != null) { // concepts = Util.getConcepts(conceptList.get(index).getSchema()); typeList = Util.getTypeDefinition(conceptList.get(index).getSchema()); } index++; Object concept = it.next(); if (concept instanceof XSDElementDeclaration) { // edit by ymli,fix the bug:0011523. let the element(simple or complex) can be pasted // if (concepts.contains(((XSDElementDeclaration) concept).getName())) { XSDElementDeclaration copy_concept = (XSDElementDeclaration) concept; XSDElementDeclaration new_copy_concept = factory.createXSDElementDeclaration(); new_copy_concept = (XSDElementDeclaration) copy_concept.cloneConcreteComponent(true, false); InputDialog id = new InputDialog(page.getSite().getShell(), Messages.XSDPasteConceptAction_CopyElement, Messages.XSDPasteConceptAction_DialogTip, Messages.bind(Messages.XSDPasteConceptAction_CopyOf, copy_concept.getName()), new IInputValidator() { public String isValid(String newText) { if ((newText == null) || "".equals(newText)) { return Messages.XSDPasteConceptAction_NameCannNotbeEmpty; } EList<XSDElementDeclaration> list = schema.getElementDeclarations(); for (XSDElementDeclaration d : list) { if (d.getName().equalsIgnoreCase(newText)) { return Messages.XSDPasteConceptAction_EntityAlreadyExists; } } return null; }; }); id.setBlockOnOpen(true); int ret = id.open(); if (ret == Window.CANCEL) { return Status.CANCEL_STATUS; } new_copy_concept.setName(id.getValue()); for (int i = 0; i < new_copy_concept.getIdentityConstraintDefinitions().size(); i++) { String name = new_copy_concept.getIdentityConstraintDefinitions().get(i).getName() .replaceAll(copy_concept.getName(), new_copy_concept.getName()); new_copy_concept.getIdentityConstraintDefinitions().get(i).setName(name); } ///modified by xie to fix the bug 22077 if (new_copy_concept.getAnonymousTypeDefinition() == null) { XSDComplexTypeDefinition copyType = (XSDComplexTypeDefinition) copy_concept .getTypeDefinition().cloneConcreteComponent(true, false); String originalName = copyType.getName(); String typeName = "Copy_of_" + originalName; //$NON-NLS-1$ copyType.setName(typeName); schema.getContents().add(copyType); new_copy_concept.setTypeDefinition(copyType); } new_copy_concept.updateElement(); schema.getContents().add(new_copy_concept); addAnnotationForXSDElementDeclaration(copy_concept, new_copy_concept); } } Map<String, XSDTypeDefinition> typeDef = Util.getTypeDefinition(schema); for (XSDTypeDefinition type : copyTypeSet) { if (typeDef.containsKey(type.getName())) { continue; } XSDTypeDefinition typedefinitionClone = null; if (type instanceof XSDComplexTypeDefinition) { typedefinitionClone = factory.createXSDComplexTypeDefinition(); typedefinitionClone = (XSDComplexTypeDefinition) type.cloneConcreteComponent(true, false); schema.getContents().add(typedefinitionClone); addAnnotationForComplexType((XSDComplexTypeDefinition) type, (XSDComplexTypeDefinition) typedefinitionClone); } else if (type instanceof XSDSimpleTypeDefinition) { schema.getContents() .add((XSDSimpleTypeDefinition) type.cloneConcreteComponent(true, false)); } } schema.getElement(); // WSDataModel wsObject = (WSDataModel) // (page.getXObject().getWsObject()); // wsObject.getXsdSchema();//.setXsdSchema(Util.nodeToString( // schema.getDocument())); /* * String schema1 = ((XSDTreeContentProvider) page.getViewer() * .getContentProvider()).getXSDSchemaAsString(); wsObject.setXsdSchema(schema1); XMLEditor * xmleditor=((XObjectEditor)page.getEditor()).getXmlEditor(); xmleditor.refresh(page.getXObject()); */ page.markDirty(); page.refresh(); // page.refreshData(); getOperationHistory(); WorkbenchClipboard.getWorkbenchClipboard().conceptsReset(); typeList.clear(); return Status.OK_STATUS; } else if (WorkbenchClipboard.getWorkbenchClipboard().getParticles().size() > 0) { copyElements(); WorkbenchClipboard.getWorkbenchClipboard().particlesReset(); page.markDirty(); page.refresh(); // page.refreshData(); getOperationHistory(); return Status.OK_STATUS; } else { return Status.CANCEL_STATUS; } } catch (Exception e) { log.error(e.getMessage(), e); MessageDialog.openError(page.getSite().getShell(), Messages._Error, Messages.bind(Messages.XSDPasteConceptAction_ErrorMsg1, e.getLocalizedMessage())); } return Status.OK_STATUS; }
From source file:com.amalto.workbench.actions.XSDSetAnnotationDocumentationAction.java
License:Open Source License
public IStatus doAction() { try {//w ww . j a va2s . c o m IStructuredSelection selection = (IStructuredSelection) page.getTreeViewer().getSelection(); XSDAnnotationsStructure struc = new XSDAnnotationsStructure((XSDComponent) selection.getFirstElement()); if (struc.getAnnotation() == null) { throw new RuntimeException(Messages.bind(Messages.XSDSetXX_ExceptionInfo, selection.getFirstElement().getClass().getName())); } InputDialog id = new InputDialog(page.getSite().getShell(), Messages.XSDSetXX_DialogTitle, Messages.XSDSetXX_DialogTip, struc.getDocumentation(), new IInputValidator() { public String isValid(String newText) { return null; }; }); id.setBlockOnOpen(true); int ret = id.open(); if (ret == Window.CANCEL) { return Status.CANCEL_STATUS; } struc.setDocumentation("".equals(id.getValue()) ? null : id.getValue());//$NON-NLS-1$ if (struc.hasChanged()) { page.refresh(); page.getTreeViewer().expandToLevel(selection.getFirstElement(), 2); page.markDirty(); } } catch (Exception e) { log.error(e.getMessage(), e); MessageDialog.openError(page.getSite().getShell(), Messages._Error, Messages.bind(Messages.XSDSetXX_ErrorMsg, e.getLocalizedMessage())); return Status.CANCEL_STATUS; } return Status.OK_STATUS; }
From source file:com.amalto.workbench.actions.XSDSetAnnotationSourceSystemAction.java
License:Open Source License
public IStatus doAction() { try {// w w w . ja v a 2 s . co m IStructuredSelection selection = (TreeSelection) page.getTreeViewer().getSelection(); XSDComponent xSDCom = null; if (selection.getFirstElement() instanceof Element) { TreePath tPath = ((TreeSelection) selection).getPaths()[0]; for (int i = 0; i < tPath.getSegmentCount(); i++) { if (tPath.getSegment(i) instanceof XSDAnnotation) xSDCom = (XSDAnnotation) (tPath.getSegment(i)); } } else xSDCom = (XSDComponent) selection.getFirstElement(); XSDAnnotationsStructure struc = new XSDAnnotationsStructure(xSDCom); // IStructuredSelection selection = (IStructuredSelection)page.getTreeViewer().getSelection(); // XSDAnnotationsStructure struc = new XSDAnnotationsStructure((XSDComponent)selection.getFirstElement()); if (struc.getAnnotation() == null) { throw new RuntimeException(Messages.bind(Messages.ExceptionInfo, xSDCom.getClass().getName())); } InputDialog id = new InputDialog(page.getSite().getShell(), Messages.XSDSetAnnoXX_DialogTitle1, Messages.XSDSetAnnoXX_DialogTip, struc.getSourceSystem(), new IInputValidator() { public String isValid(String newText) { return null; }; }); id.setBlockOnOpen(true); int ret = id.open(); if (ret == Window.CANCEL) { return Status.CANCEL_STATUS; } struc.setSourceSystem("".equals(id.getValue()) ? null : id.getValue());//$NON-NLS-1$ if (struc.hasChanged()) { page.refresh(); page.getTreeViewer().expandToLevel(xSDCom, 2); page.markDirty(); } } catch (Exception e) { log.error(e.getMessage(), e); MessageDialog.openError(page.getSite().getShell(), Messages._Error, Messages.bind(Messages.XSDSetAnnoXX_ErrorMsg1, e.getLocalizedMessage())); return Status.CANCEL_STATUS; } return Status.OK_STATUS; }