use of org.eclipse.jface.dialogs.IInputValidator in project ACS by ACS-Community.
the class CategoriesView method createViewWidgets.
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;
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();
/* 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();
}
}
});
}
use of org.eclipse.jface.dialogs.IInputValidator in project cubrid-manager by CUBRID.
the class EditAliasNameAction method run.
/**
* Edit alias name
*
* @see org.eclipse.jface.action.Action#run()
*/
public void run() {
Object[] objArr = this.getSelectedObj();
if (objArr == null || objArr.length <= 0 || !isSupported(objArr[0])) {
setEnabled(false);
return;
}
HANode haNode = null;
if (objArr[0] instanceof HostMonitorPart) {
HostMonitorPart hostMonPart = (HostMonitorPart) objArr[0];
haNode = (HANode) hostMonPart.getModel();
} else if (objArr[0] instanceof DatabaseMonitorPart) {
DatabaseMonitorPart dbMonPart = (DatabaseMonitorPart) objArr[0];
haNode = (HANode) dbMonPart.getModel();
} else if (objArr[0] instanceof BrokerMonitorPart) {
BrokerMonitorPart brokerMonPart = (BrokerMonitorPart) objArr[0];
haNode = (HANode) brokerMonPart.getModel();
} else if (objArr[0] instanceof ClientMonitorPart) {
ClientMonitorPart clientMonitorPart = (ClientMonitorPart) objArr[0];
haNode = (HANode) clientMonitorPart.getModel();
} else if (objArr[0] instanceof BrokerDBListMonitorPart) {
BrokerDBListMonitorPart brokerDBListMonitorPart = (BrokerDBListMonitorPart) objArr[0];
haNode = (HANode) brokerDBListMonitorPart.getModel();
}
if (haNode == null) {
return;
}
InputDialog dialog = new InputDialog(getShell(), Messages.titleEditNickNameDialog, Messages.msgEditNickNameDialog, haNode.getName(), new IInputValidator() {
public String isValid(String newText) {
if (newText == null || newText.trim().length() == 0) {
return Messages.errEditNickName;
}
return null;
}
});
if (IDialogConstants.OK_ID == dialog.open()) {
String aliasName = dialog.getValue();
haNode.setName(aliasName);
}
}
use of org.eclipse.jface.dialogs.IInputValidator in project tdi-studio-se by Talend.
the class AliasDialog method open.
public boolean open() {
UIManager uiManager = this.mapperManager.getUiManager();
// String inputTableName = getCurrentSelectedInputTableView().getDataMapTable().getName();
//
//$NON-NLS-1$
String proposedAlias = "";
IInputValidator inputValidator = new //$NON-NLS-1$
IInputValidator() {
public String isValid(String newText) {
String selectedPhysicalTable = aliasInternalDialog.getTableName();
if (newText.length() == 0 && isSameAsVisibleTableName(selectedPhysicalTable)) {
//$NON-NLS-1$
return Messages.getString("AliasDialog.aliasAlreadyExists", new Object[] { selectedPhysicalTable });
}
if (selectedPhysicalTable == null || selectedPhysicalTable.length() == 0) {
//$NON-NLS-1$
return Messages.getString("AliasDialog.TableMustBeSelected");
}
if (isSameAsVisibleTableName(newText)) {
//$NON-NLS-1$
return Messages.getString("AliasDialog.aliasAlreadyExists", new Object[] { newText });
}
if (KeywordsValidator.isKeyword(newText) || KeywordsValidator.isSqlKeyword(newText)) {
//$NON-NLS-1$
return Messages.getString("AliasDialog.inputValid");
}
return null;
}
};
aliasInternalDialog = new AliasInternalDialog(mapperManager.getUiManager().getShell(), Messages.getString(//$NON-NLS-1$
"AliasDialog.addNewAlias"), Messages.getString("AliasDialog.typeAliasOfTable"), proposedAlias, //$NON-NLS-1$
inputValidator);
int response = aliasInternalDialog.open();
if (response == InputDialog.OK) {
this.tableName = aliasInternalDialog.getTableName();
this.alias = aliasInternalDialog.getValue();
return true;
}
return false;
}
use of org.eclipse.jface.dialogs.IInputValidator in project tdi-studio-se by Talend.
the class CreateHL7ElementAction method createChildNode.
/**
* Create the child node of the input node
*
* @param node
*/
private boolean createChildNode(final HL7TreeNode node) {
if (node.getColumn() != null) {
if (!MessageDialog.openConfirm(xmlViewer.getControl().getShell(), "Warning", "Do you want to disconnect the existing linker and then add an sub element for the selected element" + node.getLabel() + "\"?")) {
return false;
}
node.setColumn(null);
}
String label = "";
final String nodeLabel = node.getLabel() + "-";
while (!StringUtil.validateLabelForXML(label)) {
// add validator
IInputValidator validator = new IInputValidator() {
@Override
public String isValid(String newText) {
if (newText != null) {
String text = newText.trim();
for (HL7TreeNode children : node.getChildren()) {
if (text.equals(children.getLabel())) {
//$NON-NLS-1$
return "The name already existed.";
}
}
}
return null;
}
};
InputDialog dialog = new InputDialog(null, "Input element's label", "Input the new element's valid label", nodeLabel, validator) {
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.dialogs.Dialog#okPressed()
*/
@Override
protected void okPressed() {
super.okPressed();
}
};
dialog.setErrorMessage("name is error");
int status = dialog.open();
if (status == InputDialog.OK) {
label = dialog.getValue().trim();
}
if (status == InputDialog.CANCEL) {
return false;
}
}
HL7TreeNode child = new Element(label);
// if the root not have CurSchema
if (node.getRow() == null || node.getRow().equals("")) {
if (hl7ui != null && hl7ui.gethl7Manager() instanceof HL7OutputManager) {
if (label.length() == 3) {
child.setRow(label);
IMetadataTable table = null;
for (IMetadataTable curTable : hl7ui.gethl7Manager().getHl7Component().getMetadataList()) {
if (label.equals(curTable.getLabel())) {
table = curTable;
break;
}
}
if (table == null) {
table = new MetadataTable();
table.setLabel(label);
table.setTableName(label);
hl7ui.gethl7Manager().getHl7Component().getMetadataList().add(table);
}
List<Map<String, String>> maps = (List<Map<String, String>>) hl7ui.gethl7Manager().getHl7Component().getElementParameter("SCHEMAS").getValue();
boolean found = false;
for (Map<String, String> map : maps) {
if (map.get("SCHEMA").equals(table.getTableName())) {
found = true;
}
}
if (!found) {
Map<String, String> hl7Schema = new HashMap<String, String>();
maps.add(hl7Schema);
hl7Schema.put("SCHEMA", table.getTableName());
}
}
} else if (label.length() == 3) {
child.setRow(label);
}
} else {
child.setRow(node.getRow());
}
node.addChild(child);
this.xmlViewer.refresh();
return true;
}
use of org.eclipse.jface.dialogs.IInputValidator in project tdi-studio-se by Talend.
the class MapperUI method openNewOutputCreationDialog.
public String openNewOutputCreationDialog() {
final IProcess process = mapperManager.getMapperComponent().getProcess();
//$NON-NLS-1$
String outputName = process.generateUniqueConnectionName("out");
InputDialog id = new InputDialog(mapperShell, "Add a output", "New Output :", outputName, new IInputValidator() {
@Override
public String isValid(String newText) {
if (!process.checkValidConnectionName(newText)) {
return "Output is invalid.";
}
return null;
}
});
int response = id.open();
if (response == InputDialog.OK) {
return id.getValue();
}
return null;
}
Aggregations