*/
public class MultiPageTaxonEditor extends FormEditor implements
IConversationEnabled, IPostOperationEnabled,
- IDirtyMarkableSelectionProvider, IPartContentHasDetails {
+ IDirtyMarkableSelectionProvider, IPartContentHasDetails, ISecuredEditor {
/** Constant <code>ID="eu.etaxonomy.taxeditor.editor.taxon"{trunked}</code> */
public static final String ID = "eu.etaxonomy.taxeditor.editor.taxon";
public String toString() {
return String.format("%s[%s]", this.getClass().getSimpleName(), getEditorInput());
}
+
+ @Override
+ public boolean permissionsSatisfied() {
+ IEditorPart activeEditor = getActiveEditor();
+ if(activeEditor != null && ISecuredEditor.class.isAssignableFrom(activeEditor.getClass())){
+ return ((ISecuredEditor)activeEditor).permissionsSatisfied();
+ }
+ return true;
+ }
}
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.IDropTargetable;
import eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage;
+import eu.etaxonomy.taxeditor.editor.ISecuredEditor;
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
import eu.etaxonomy.taxeditor.editor.SimpleSelectionProvider;
import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
public class TaxonNameEditor extends EditorPart implements
IMultiPageTaxonEditorPage, IAdaptable, IConversationEnabled,
IPostOperationEnabled, IPartContentHasDetails, IPartChangeListener,
- ISelectionListener, IDropTargetable {
+ ISelectionListener, IDropTargetable, ISecuredEditor {
/** Constant <code>ID="eu.etaxonomy.taxeditor.editor.taxon.name"</code> */
public static final String ID = "eu.etaxonomy.taxeditor.editor.taxon.name";
getSelectedContainer().setSelected();
// check permissions
+ boolean doEnable = permissionsSatisfied();
+ setEnabled(doEnable);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.name.ISecuredEditorPart#permissionsSatisfied()
+ */
+ @Override
+ public boolean permissionsSatisfied() {
TaxonNode taxonNode = ((TaxonEditorInput)getEditorInput()).getTaxonNode();
boolean doEnable = CdmStore.currentAuthentiationHasPermission(taxonNode, RequiredPermissions.TAXONNODE_EDIT);
- if(!doEnable){
- setDisabled();
- }
+ return doEnable;
}
/** {@inheritDoc} */
*/
public void setOnError() {
Color disabledColor = StoreUtil.getColor(Resources.COLOR_EDITOR_ERROR);
- setDisabled(disabledColor);
+ setEnabled(false, disabledColor);
}
/* (non-Javadoc)
@Override
public void setDisabled(){
Color disabledColor = StoreUtil.getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND);
- setDisabled(disabledColor);
+ setEnabled(false);
}
- protected void setDisabled(Color disabledColor) {
+ protected void setEnabled(boolean enabled, Color background) {
for(AbstractGroupedContainer groupedContainer : getGroupedContainers()){
- groupedContainer.setDisabled(true);
+ groupedContainer.setEnabled(enabled);
}
// send an empty selection to the current provider - TODO only on error ???
getManagedForm().setInput(null);
for(AbstractGroupedContainer groupedContainer : getGroupedContainers()){
- groupedContainer.setBackground(disabledColor);
+ groupedContainer.setBackground(background);
}
- getControl().setBackground(disabledColor);
+ getControl().setBackground(background);
}
@Override
public void setEnabled(boolean enabled) {
- //FIXME this method seems incomplete
- for(AbstractGroupedContainer groupedContainer : getGroupedContainers()){
- groupedContainer.setEnabled(getManagedForm().setInput(selection));
- }
-
- // send an empty selection to the current provider
- getManagedForm().setInput(null);
+ Color background = StoreUtil.getColor(enabled ? Resources.COLOR_COMPOSITE_BACKGROUND : Resources.COLOR_TEXT_DISABLED_BACKGROUND);
+ setEnabled(enabled, background);
}
}