public boolean isRedrawing();
/**
+ * Sets the editor page into enabled or disabled state depending on the
+ * value of the supplied parameter <code>enabled</code>.
*
* @param enabled
*/
public void setEnabled(boolean enabled);
/**
- *
+ * Sets the editor page into disabled state and changes the
+ * appearance accordingly.
*/
void setDisabled();
+ /**
+ * Sets the editor page into disabled state and changes the
+ * appearance in order to indicate that an error has occurred.
+ */
+ public void setOnError();
+
}
getClass(),
"An error occurred while saving the editor. Please close and reopen the taxon again.",
e);
- disableEditor();
+ disableEditor(true);
} finally {
monitor.done();
}
}
- private void disableEditor() {
+ private void disableEditor(boolean isOnError) {
for (IMultiPageTaxonEditorPage editorPage : getPages()) {
- editorPage.setDisabled();
+ if(isOnError){
+ editorPage.setOnError();
+ }else {
+ editorPage.setDisabled();
+ }
}
conversation.unregisterForDataStoreChanges(this);
conversation.close();
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.model.TaxeditorPartService;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.security.RequiredPermissions;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
/**
* <p>
"There should always be a selected object.");
}
getSelectedContainer().setSelected();
+
+ // check permissions
+ TaxonNode taxonNode = ((TaxonEditorInput)getEditorInput()).getTaxonNode();
+ boolean doEnable = CdmStore.currentAuthentiationHasPermission(taxonNode, RequiredPermissions.TAXONNODE_EDIT);
+ if(!doEnable){
+ setDisabled();
+ }
}
/** {@inheritDoc} */
getSite().setSelectionProvider(simpleSelectionProvider);
}
+
/**
*
*/
allGroups.add(getAcceptedGroup());
- List<HomotypicalSynonymGroup> grps = getHeterotypicSynonymGroups();
+// List<HomotypicalSynonymGroup> grps = getHeterotypicSynonymGroups(); // UNUSED => remove
heterotypicSynonymGroups = getHeterotypicSynonymGroups();
}
return getAcceptedNameContainer();
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage#setOnError()
+ */
+ public void setOnError() {
+ Color disabledColor = StoreUtil.getColor(Resources.COLOR_EDITOR_ERROR);
+ setDisabled(disabledColor);
+ }
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage#setDisabled()
+ */
@Override
public void setDisabled(){
+ Color disabledColor = StoreUtil.getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND);
+ setDisabled(disabledColor);
+ }
+
+ protected void setDisabled(Color disabledColor) {
+
for(AbstractGroupedContainer groupedContainer : getGroupedContainers()){
groupedContainer.setDisabled(true);
}
- // send an empty selection to the current provider
+ // send an empty selection to the current provider - TODO only on error ???
getManagedForm().setInput(null);
- // coloring the widgets
-
- // TODO move this to resources and make configurable via Preferences
- Color disabledColor = Display.getDefault().getSystemColor(SWT.COLOR_RED);
-
for(AbstractGroupedContainer groupedContainer : getGroupedContainers()){
groupedContainer.setBackground(disabledColor);
}
@Override
public void setEnabled(boolean enabled) {
+ //FIXME this method seems incomplete
for(AbstractGroupedContainer groupedContainer : getGroupedContainers()){
groupedContainer.setEnabled(getManagedForm().setInput(selection));
}
focusListener = new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
- if(disabled){
+ if(!enabled){
return;
}
for (AbstractGroupedContainer container : getEditor()
private boolean enabled;
- private boolean disabled;
-
/**
* nonEditableInfo is a label displayed underneath a GroupedComposite's
* input field. For instance, NameComposites display things like name
}
public void setDisabled(boolean disabled) {
- this.disabled = disabled;
- setEnabled(disabled);
+ this.enabled = !disabled;
+ setEnabled(enabled);
}
public void setEnabled(boolean enabled) {
Color color = enabled ? control.getForeground() : EditorUtil.getColor(Resources.COLOR_DISABLED_EDITOR);
getNameViewer().getTextWidget().setEditable(enabled);
+ getNameViewer().getTextWidget().setEnabled(enabled);
getNameViewer().getTextWidget().setForeground(color);
}
- public boolean getEnabled(){
+ public boolean isEnabled(){
return enabled;
}
}
Styler styler = null;
if(!CdmStore.currentAuthentiationHasPermission((CdmBase)element, RequiredPermissions.TAXONNODE_EDIT)){
styler = getNotGrantedStyler();
- }
+ }
return new StyledString(getText(element), styler);
}
label="Disabled Name Editor Field"
value="105,114,124">
</colorDefinition>
+ <colorDefinition
+ categoryId="eu.etaxonomy.taxeditor.preferences.themeElementCategory"
+ id="eu.etaxonomy.taxeditor.preferences.colorDefinition.editorError"
+ label="Editor On Error"
+ value="255,0,0">
+ </colorDefinition>
</extension>
<extension
point="org.eclipse.core.expressions.propertyTesters">
public static final String COLOR_DISABLED_EDITOR = "eu.etaxonomy.taxeditor.preferences.colorDefinition.disabledEditor";
+ public static final String COLOR_EDITOR_ERROR = "eu.etaxonomy.taxeditor.preferences.colorDefinition.editorError";
+
}
public static final EnumSet<CRUD> TAXONNODE_EDIT = Operation.UPDATE;
+ public static final EnumSet<CRUD> TAXON_EDIT = Operation.UPDATE;
+
+ public static final EnumSet<CRUD> DESCRIPTION_EDIT = Operation.UPDATE;
+
}
</prerequisites>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>3.0.12-SNAPSHOT</version>
+ <version>3.0.13-SNAPSHOT</version>
<name>EDIT Taxonomic Editor</name>
<description>The Taxonomic Editor for EDIT's platform for cybertaxonomy</description>
<url>http://wp5.e-taxonomy.eu</url>
<packaging>pom</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <cdmlib.version>3.0.12-SNAPSHOT</cdmlib.version><!-- TODO can we use project.version ????? -->
+ <cdmlib.version>3.0.13-SNAPSHOT</cdmlib.version><!-- TODO can we use project.version ????? -->
<tycho.version>0.14.0</tycho.version>
- <taxeditor.version>3.0.12-SNAPSHOT</taxeditor.version>
+ <taxeditor.version>3.0.13-SNAPSHOT</taxeditor.version>
</properties>
<modules>
<module>eu.etaxonomy.taxeditor.cdmlib</module>
<developers>
<developer>
<!-- your SVN account id please! -->
- <id>n.hoffmann</id>
+ <id>a.kohlbecker</id>
<name>
- Niels Hoffmann
+ Andreas Kohlbecker
</name>
- <email>n.hoffmann [at] bgbm.org</email>
+ <email>a.kohlbecker [at] bgbm.org</email>
+ <organization>
+ Botanic Garden Botanical Museum Berlin
+ </organization>
+ <organizationUrl>http://www.bgbm.org/BioDivInf/</organizationUrl>
+ <timezone>+1</timezone>
+ <roles>
+ <role>Java Developer</role>
+ <role>Architect</role>
+ </roles>
+ <url/>
+ </developer>
+ <developer>
+ <!-- your SVN account id please! -->
+ <id>a.mueller</id>
+ <name>
+ Andreas Müller
+ </name>
+ <email>a.mueller [at] bgbm.org</email>
<organization>
Botanic Garden Botanical Museum Berlin
</organization>