BGBM BDI Projects
/
taxeditor.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
005c39a
)
done: #3097 (disable editors if a user has insufficient grants for a taxon or taxon...
author
Andreas Kohlbecker
<a.kohlbecker@bgbm.org>
Wed, 12 Sep 2012 13:18:19 +0000
(13:18 +0000)
committer
Andreas Kohlbecker
<a.kohlbecker@bgbm.org>
Wed, 12 Sep 2012 13:18:19 +0000
(13:18 +0000)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
patch
|
blob
|
history
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
patch
|
blob
|
history
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmEditorViewPart.java
patch
|
blob
|
history
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmViewPart.java
patch
|
blob
|
history
diff --git
a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
index 405820023da87c67cf9e94d527fd22f7ff862df6..669c354dc6d268f6a44b04402f8d47f805c64af5 100644
(file)
--- a/
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
+++ b/
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
@@
-50,7
+50,7
@@
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
*/
public class MultiPageTaxonEditor extends FormEditor implements
IConversationEnabled, IPostOperationEnabled,
*/
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";
/** Constant <code>ID="eu.etaxonomy.taxeditor.editor.taxon"{trunked}</code> */
public static final String ID = "eu.etaxonomy.taxeditor.editor.taxon";
@@
-535,4
+535,13
@@
public class MultiPageTaxonEditor extends FormEditor implements
public String toString() {
return String.format("%s[%s]", this.getClass().getSimpleName(), getEditorInput());
}
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;
+ }
}
}
diff --git
a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
index 9700d00cee042f2312b099d4716f22563eac8765..02d88917d398171990f385e90d263c8e697cca9f 100644
(file)
--- a/
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
+++ b/
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
@@
-57,6
+57,7
@@
import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.IDropTargetable;
import eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage;
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;
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
import eu.etaxonomy.taxeditor.editor.SimpleSelectionProvider;
import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
@@
-90,7
+91,7
@@
import eu.etaxonomy.taxeditor.store.StoreUtil;
public class TaxonNameEditor extends EditorPart implements
IMultiPageTaxonEditorPage, IAdaptable, IConversationEnabled,
IPostOperationEnabled, IPartContentHasDetails, IPartChangeListener,
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";
/** Constant <code>ID="eu.etaxonomy.taxeditor.editor.taxon.name"</code> */
public static final String ID = "eu.etaxonomy.taxeditor.editor.taxon.name";
@@
-279,11
+280,18
@@
public class TaxonNameEditor extends EditorPart implements
getSelectedContainer().setSelected();
// check permissions
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);
TaxonNode taxonNode = ((TaxonEditorInput)getEditorInput()).getTaxonNode();
boolean doEnable = CdmStore.currentAuthentiationHasPermission(taxonNode, RequiredPermissions.TAXONNODE_EDIT);
- if(!doEnable){
- setDisabled();
- }
+ return doEnable;
}
/** {@inheritDoc} */
}
/** {@inheritDoc} */
@@
-889,7
+897,7
@@
public class TaxonNameEditor extends EditorPart implements
*/
public void setOnError() {
Color disabledColor = StoreUtil.getColor(Resources.COLOR_EDITOR_ERROR);
*/
public void setOnError() {
Color disabledColor = StoreUtil.getColor(Resources.COLOR_EDITOR_ERROR);
- set
Disabled(
disabledColor);
+ set
Enabled(false,
disabledColor);
}
/* (non-Javadoc)
}
/* (non-Javadoc)
@@
-898,32
+906,27
@@
public class TaxonNameEditor extends EditorPart implements
@Override
public void setDisabled(){
Color disabledColor = StoreUtil.getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND);
@Override
public void setDisabled(){
Color disabledColor = StoreUtil.getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND);
- set
Disabled(disabledColor
);
+ set
Enabled(false
);
}
}
- protected void set
Disabled(Color disabledColor
) {
+ protected void set
Enabled(boolean enabled, Color background
) {
for(AbstractGroupedContainer groupedContainer : getGroupedContainers()){
for(AbstractGroupedContainer groupedContainer : getGroupedContainers()){
- groupedContainer.set
Disabled(true
);
+ groupedContainer.set
Enabled(enabled
);
}
// send an empty selection to the current provider - TODO only on error ???
getManagedForm().setInput(null);
for(AbstractGroupedContainer groupedContainer : getGroupedContainers()){
}
// 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) {
}
@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);
}
}
}
}
diff --git
a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmEditorViewPart.java
b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmEditorViewPart.java
index afa592fa171aa06f0426f840532ede686655fd36..1c4c3e82d5ee8a3ff17fac5811f5d7f846a89421 100644
(file)
--- a/
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmEditorViewPart.java
+++ b/
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmEditorViewPart.java
@@
-6,6
+6,7
@@
package eu.etaxonomy.taxeditor.view;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IEditorPart;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IEditorPart;
+import eu.etaxonomy.taxeditor.editor.ISecuredEditor;
import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider;
import eu.etaxonomy.taxeditor.store.StoreUtil;
@@
-45,6
+46,17
@@
public abstract class AbstractCdmEditorViewPart extends AbstractCdmViewPart {
public IEditorPart getEditor() {
return StoreUtil.getActiveEditor();
}
public IEditorPart getEditor() {
return StoreUtil.getActiveEditor();
}
+
+ /** {@inheritDoc} */
+ @Override
+ public void setFocus() {
+ super.setFocus();
+
+ if(getEditor() != null && ISecuredEditor.class.isAssignableFrom(getEditor().getClass())){
+ boolean doEnable = ((ISecuredEditor)getEditor()).permissionsSatisfied();
+ setEnabled(doEnable);
+ }
+ }
/** {@inheritDoc} */
@Override
/** {@inheritDoc} */
@Override
diff --git
a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmViewPart.java
b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmViewPart.java
index 5a48d1831a3802a1037a7c9bb4b34e1a5727c224..5535d297e4a6254c624852faf101d1d0d63e0b54 100644
(file)
--- a/
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmViewPart.java
+++ b/
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/AbstractCdmViewPart.java
@@
-126,6
+126,9
@@
public abstract class AbstractCdmViewPart extends ViewPart implements ISelection
pageBook.showPage(viewerComposite);
}
pageBook.showPage(viewerComposite);
}
+ public void setEnabled(boolean enabled){
+ pageBook.setEnabled(enabled);
+ }
/** {@inheritDoc} */
@Override
/** {@inheritDoc} */
@Override