private void initialize() { String filename = StringUtils.defaultString(level.getName()); GridData gridDataLabel = new GridData(); gridDataLabel.widthHint = 100; gridDataLabel.verticalAlignment = GridData.CENTER; gridDataLabel.horizontalAlignment = GridData.END; GridData gridDataText = new GridData(); gridDataText.heightHint = -1; gridDataText.widthHint = 150; GridLayout gridLayoutMy = new GridLayout(); gridLayoutMy.numColumns = 2; gridLayoutMy.marginWidth = 25; gridLayoutMy.verticalSpacing = 5; gridLayoutMy.horizontalSpacing = 20; gridLayoutMy.marginHeight = 25; gridLayoutMy.makeColumnsEqualWidth = false; GridData gridDataMy = new GridData(); gridDataMy.grabExcessHorizontalSpace = true; gridDataMy.verticalAlignment = GridData.CENTER; gridDataMy.horizontalSpan = 1; gridDataMy.horizontalAlignment = GridData.FILL; this.setLayoutData(gridDataMy); this.setLayout(gridLayoutMy); Label labelTitle = new Label(this, SWT.RIGHT); labelTitle.setText( "* ".concat(LabelHolder.get("dialog.pojo.level.fields.title"))); // $NON-NLS-1$ labelTitle.setLayoutData(gridDataLabel); textTitle = new Text(this, SWT.BORDER); textTitle.setTextLimit(256); textTitle.setLayoutData(gridDataText); textTitle.setText(StringUtils.defaultString(level.getTitle())); Label labelName = new Label(this, SWT.RIGHT); labelName.setText( "* ".concat(LabelHolder.get("dialog.pojo.level.fields.name"))); // $NON-NLS-1$ labelName.setLayoutData(gridDataLabel); textName = new Text(this, SWT.BORDER); textName.setTextLimit(256); textName.setLayoutData(gridDataText); textName.setText(filename); textName.addVerifyListener(new FileNameVerifier()); textName.addModifyListener(new ModifyListenerClearErrorMessages(dialogCreator)); Collection<String> forbiddenNames = new ArrayList<String>(); Collection<Level> sisters = level.getParent().getSublevels(); if (CollectionUtils.isNotEmpty(sisters)) for (Level otherLevel : sisters) forbiddenNames.add(otherLevel.getName()); if (StringUtils.isNotBlank(filename)) forbiddenNames.remove(filename); if (level.getId() == APoormansObject .UNSET_VALUE) // suggestion of the file name should work just with new objects textTitle.addModifyListener( new FilenameSuggestorListener(dialogCreator, textName, forbiddenNames)); }
/* * (non-Javadoc) * @see de.thischwa.pmcms.gui.workspace.dialog.IValidator#isValid() */ @Override public boolean isValid() { if (StringUtils.isBlank(textName.getText())) { dialogCreator.setErrorMessage( LabelHolder.get("dialog.pojo.level.error.name.notvalid")); // $NON-NLS-1$ return false; } else if (existsName()) { dialogCreator.setErrorMessage( LabelHolder.get("dialog.pojo.level.error.name.exists")); // $NON-NLS-1$ return false; } if (StringUtils.isBlank(textTitle.getText())) { dialogCreator.setErrorMessage( LabelHolder.get("dialog.pojo.level.error.title")); // $NON-NLS-1$ return false; } level.setName(textName.getText()); level.setTitle(textTitle.getText()); return true; }