Revision 6d460ad2
Added by Patrick Plitzner over 10 years ago
- added context menu property testers for "Create new..." command
.gitattributes | ||
---|---|---|
469 | 469 |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/CreateDerivateContextMenu.java -text |
470 | 470 |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateContentProvider.java -text |
471 | 471 |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateLabelProvider.java -text |
472 |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateMenuPropertyTester.java -text |
|
472 | 473 |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java -text |
473 | 474 |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDragListener.java -text |
474 | 475 |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptionElementDropAdapter.java -text |
eu.etaxonomy.taxeditor.editor/plugin.xml | ||
---|---|---|
544 | 544 |
</menuContribution> |
545 | 545 |
<menuContribution |
546 | 546 |
locationURI="popup:eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView"> |
547 |
<command |
|
548 |
commandId="eu.etaxonomy.taxeditor.description.commands.adddescrip" |
|
549 |
label="New DerivedUni" |
|
550 |
style="push"> |
|
551 |
</command> |
|
547 |
<menu |
|
548 |
label="New"> |
|
549 |
<dynamic |
|
550 |
class="eu.etaxonomy.taxeditor.bulkeditor.command.DynamicNewObjectMenu" |
|
551 |
id="eu.etaxonomy.taxeditor.bulkeditor.dynamicNewMenu"> |
|
552 |
</dynamic> |
|
553 |
<visibleWhen |
|
554 |
checkEnabled="true"> |
|
555 |
<or> |
|
556 |
<reference |
|
557 |
definitionId="isFieldUnit"> |
|
558 |
</reference> |
|
559 |
<reference |
|
560 |
definitionId="isDerivedUnit"> |
|
561 |
</reference> |
|
562 |
</or> |
|
563 |
</visibleWhen> |
|
564 |
</menu> |
|
552 | 565 |
<separator |
553 | 566 |
name="eu.etaxonomy.taxeditor.editor.separator1" |
554 | 567 |
visible="true"> |
... | ... | |
557 | 570 |
class="eu.etaxonomy.taxeditor.editor.view.derivate.CreateDerivateContextMenu" |
558 | 571 |
id="eu.etaxonomy.taxeditor.editor.view.derivate.CreateDerivateContextMenu"> |
559 | 572 |
</dynamic> |
560 |
<command |
|
561 |
commandId="eu.etaxonomy.taxeditor.editor.command1" |
|
562 |
label="bla" |
|
563 |
style="push" |
|
564 |
tooltip="bla"> |
|
565 |
</command> |
|
566 | 573 |
</menuContribution> |
567 | 574 |
|
568 | 575 |
|
... | ... | |
1207 | 1214 |
</test> |
1208 | 1215 |
</with> |
1209 | 1216 |
</definition> |
1217 |
<definition |
|
1218 |
id="isFieldUnit"> |
|
1219 |
<with |
|
1220 |
variable="selection"> |
|
1221 |
<test |
|
1222 |
property="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateMenuPropertyTester.isFieldUnit"> |
|
1223 |
</test> |
|
1224 |
</with> |
|
1225 |
</definition> |
|
1226 |
<definition |
|
1227 |
id="isDerivedUnit"> |
|
1228 |
<with |
|
1229 |
variable="selection"> |
|
1230 |
<test |
|
1231 |
property="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateMenuPropertyTester.isSpecimen"> |
|
1232 |
</test> |
|
1233 |
</with> |
|
1234 |
</definition> |
|
1210 | 1235 |
</extension> |
1211 | 1236 |
<extension |
1212 | 1237 |
point="org.eclipse.core.expressions.propertyTesters"> |
... | ... | |
1231 | 1256 |
properties="isGroup" |
1232 | 1257 |
type="eu.etaxonomy.taxeditor.bulkeditor.BulkEditor"> |
1233 | 1258 |
</propertyTester> |
1259 |
<propertyTester |
|
1260 |
class="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateMenuPropertyTester" |
|
1261 |
id="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateMenuPropertyTester" |
|
1262 |
namespace="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateMenuPropertyTester" |
|
1263 |
properties="isFieldUnit,isSpecimen" |
|
1264 |
type="org.eclipse.jface.viewers.TreeSelection"> |
|
1265 |
</propertyTester> |
|
1234 | 1266 |
</extension> |
1235 | 1267 |
<extension |
1236 | 1268 |
point="org.eclipse.ui.bindings"> |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/CreateDerivateContextMenu.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.eclipse.jface.action.ContributionItem; |
4 | 4 |
import org.eclipse.jface.action.IContributionItem; |
5 |
import org.eclipse.jface.viewers.ISelection; |
|
5 | 6 |
import org.eclipse.swt.SWT; |
6 | 7 |
import org.eclipse.swt.widgets.Menu; |
7 | 8 |
import org.eclipse.swt.widgets.MenuItem; |
9 |
import org.eclipse.ui.IWorkbenchWindow; |
|
10 |
import org.eclipse.ui.PlatformUI; |
|
8 | 11 |
import org.eclipse.ui.actions.CompoundContributionItem; |
9 | 12 |
|
13 |
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; |
|
14 |
import eu.etaxonomy.cdm.model.occurrence.FieldUnit; |
|
15 |
|
|
10 | 16 |
public class CreateDerivateContextMenu extends CompoundContributionItem { |
11 | 17 |
|
12 | 18 |
/* (non-Javadoc) |
... | ... | |
18 | 24 |
new ContributionItem() { |
19 | 25 |
@Override |
20 | 26 |
public void fill(Menu menu, int index) { |
27 |
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); |
|
28 |
ISelection selection = window.getActivePage().getSelection(); |
|
21 | 29 |
MenuItem menuItem = new MenuItem(menu, SWT.None); |
22 | 30 |
menuItem.setText("menuItem"); |
23 |
}; |
|
31 |
//selection is intance of TreeSelection |
|
32 |
if(selection instanceof FieldUnit){ |
|
33 |
menuItem.setText("fieldUnit"); |
|
34 |
} |
|
35 |
else if(selection instanceof DerivedUnit){ |
|
36 |
menuItem.setText("derivedUnit"); |
|
37 |
} |
|
38 |
} |
|
24 | 39 |
} |
25 | 40 |
}; |
26 | 41 |
return contributionItems; |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateMenuPropertyTester.java | ||
---|---|---|
1 |
/** |
|
2 |
* |
|
3 |
*/ |
|
4 |
package eu.etaxonomy.taxeditor.editor.view.derivate; |
|
5 |
|
|
6 |
import java.util.Arrays; |
|
7 |
|
|
8 |
import org.eclipse.core.expressions.PropertyTester; |
|
9 |
import org.eclipse.jface.viewers.IStructuredSelection; |
|
10 |
|
|
11 |
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; |
|
12 |
import eu.etaxonomy.cdm.model.occurrence.FieldUnit; |
|
13 |
|
|
14 |
/** |
|
15 |
* Property tester used by the DerivateView tree menu. |
|
16 |
* |
|
17 |
*/ |
|
18 |
public class DerivateMenuPropertyTester extends PropertyTester { |
|
19 |
|
|
20 |
private static final String IS_FIELD_UNIT = "isFieldUnit"; |
|
21 |
private static final String IS_SPECIMEN = "isSpecimen"; |
|
22 |
|
|
23 |
/* (non-Javadoc) |
|
24 |
* @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object) |
|
25 |
*/ |
|
26 |
/** {@inheritDoc} */ |
|
27 |
@Override |
|
28 |
public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { |
|
29 |
System.out.println(receiver.toString() + receiver.getClass().toString()); |
|
30 |
System.out.println(property); |
|
31 |
System.out.println(Arrays.asList(args)); |
|
32 |
System.out.println(expectedValue); |
|
33 |
|
|
34 |
Object[] selectedElements = ((IStructuredSelection) receiver).toArray(); |
|
35 |
|
|
36 |
if(selectedElements.length == 0){ |
|
37 |
// nothing selected so all tests should fail |
|
38 |
return false; |
|
39 |
} |
|
40 |
|
|
41 |
if(IS_FIELD_UNIT.equals(property)){ |
|
42 |
return isFieldUnit(selectedElements); |
|
43 |
} |
|
44 |
else if(IS_SPECIMEN.equals(property)){ |
|
45 |
return isSpecimen(selectedElements); |
|
46 |
} |
|
47 |
else{ |
|
48 |
return false; |
|
49 |
} |
|
50 |
} |
|
51 |
|
|
52 |
private boolean isFieldUnit(Object[] selectedElements) { |
|
53 |
for (Object object : selectedElements){ |
|
54 |
if(!(object instanceof FieldUnit)){ |
|
55 |
return false; |
|
56 |
} |
|
57 |
} |
|
58 |
return true; |
|
59 |
} |
|
60 |
|
|
61 |
private boolean isSpecimen(Object[] selectedElements) { |
|
62 |
for (Object object : selectedElements){ |
|
63 |
if(!(object instanceof DerivedUnit)){ |
|
64 |
return false; |
|
65 |
} |
|
66 |
} |
|
67 |
return true; |
|
68 |
} |
|
69 |
} |
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DescriptionsMenuPropertyTester.java | ||
---|---|---|
1 | 1 |
/** |
2 |
*
|
|
2 |
* |
|
3 | 3 |
*/ |
4 | 4 |
package eu.etaxonomy.taxeditor.editor.view.descriptive.handler; |
5 | 5 |
|
... | ... | |
19 | 19 |
* @version $Id: $ |
20 | 20 |
*/ |
21 | 21 |
public class DescriptionsMenuPropertyTester extends PropertyTester { |
22 |
|
|
22 |
|
|
23 | 23 |
private static final String MEDIA = "isMedia"; |
24 | 24 |
private static final String FEATURE_NODE_CONTAINER = "isFeatureNodeContainer"; |
25 | 25 |
private static final String DESCRIPTION = "isDescription"; |
26 | 26 |
private static final String DESCRIPTION_ELEMENT = "isDescriptionElement"; |
27 | 27 |
private static final String DELETABLE = "isDeletable"; |
28 | 28 |
private static final String IMAGE_GALLERY = "isImageGallery"; |
29 |
|
|
29 |
|
|
30 | 30 |
/* (non-Javadoc) |
31 | 31 |
* @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object) |
32 | 32 |
*/ |
33 | 33 |
/** {@inheritDoc} */ |
34 |
public boolean test(Object receiver, String property, Object[] args, |
|
34 |
@Override |
|
35 |
public boolean test(Object receiver, String property, Object[] args, |
|
35 | 36 |
Object expectedValue) { |
36 | 37 |
|
37 | 38 |
Object[] selectedElements = ((IStructuredSelection) receiver).toArray(); |
38 |
|
|
39 |
|
|
39 | 40 |
if(selectedElements.length == 0){ |
40 | 41 |
// nothing selected so all tests should fail |
41 | 42 |
return false; |
42 | 43 |
} |
43 |
|
|
44 |
|
|
44 | 45 |
if(MEDIA.equals(property)){ |
45 | 46 |
return isMedia(selectedElements); |
46 | 47 |
} |
... | ... | |
63 | 64 |
return false; |
64 | 65 |
} |
65 | 66 |
} |
66 |
|
|
67 |
|
|
67 | 68 |
private boolean isImageGallery(Object[] selectedElements) { |
68 |
for (Object object : selectedElements){
|
|
69 |
for (Object object : selectedElements){ |
|
69 | 70 |
if(!(object instanceof DescriptionBase) || !((DescriptionBase) object).isImageGallery()){ |
70 | 71 |
return false; |
71 | 72 |
} |
... | ... | |
84 | 85 |
|
85 | 86 |
private boolean isDeletable(Object[] selectedElements) { |
86 | 87 |
boolean result = false; |
87 |
|
|
88 |
|
|
88 | 89 |
for (Object object : selectedElements) { |
89 |
|
|
90 |
|
|
90 | 91 |
if((object instanceof DescriptionBase) |
91 | 92 |
|| (object instanceof DescriptionElementBase) |
92 | 93 |
|| (object instanceof Media) |
... | ... | |
95 | 96 |
}else{ |
96 | 97 |
return false; |
97 | 98 |
} |
98 |
|
|
99 |
|
|
99 | 100 |
} |
100 | 101 |
return result; |
101 | 102 |
} |
Also available in: Unified diff