import eu.etaxonomy.taxeditor.editor.AppModelId;
import eu.etaxonomy.taxeditor.editor.definedterm.TermTreeViewerComparator;
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.event.EventUtility;
import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
private TermVocabulary vocabulary;
private TreeViewer structureViewer;
private TreeViewer propertyViewer;
+ private Button btnAddCharacter;
+ private Button btnAddRatioTo;
private List<AbstractPostOperation> operations = new ArrayList<>();
composite_1.setLayout(gl_composite_1);
propertyViewer = createTreeViewer(composite_1, TermType.Property, Messages.CharacterEditor_PROPERTIES);
+ propertyViewer.addSelectionChangedListener(this);
int ops = DND.DROP_COPY | DND.DROP_MOVE;
Transfer[] transfers = new Transfer[] {CharacterTransfer.getInstance()};
gl_composite_4.marginWidth = 0;
composite_4.setLayout(gl_composite_4);
- Button btnAddCharacter = new Button(composite_4, SWT.NONE);
+ btnAddCharacter = new Button(composite_4, SWT.NONE);
btnAddCharacter.setText(">>"); //$NON-NLS-1$
formToolkit.adapt(btnAddCharacter, true, true);
btnAddCharacter.addSelectionListener(new SelectionAdapter() {
refresh();
}
});
+ btnAddCharacter.setEnabled(false);
- Button btnAddRatioTo = new Button(composite_4, SWT.NONE);
+ btnAddRatioTo = new Button(composite_4, SWT.NONE);
btnAddRatioTo.setText("ratio to"); //$NON-NLS-1$
btnAddRatioTo.setSize(btnAddCharacter.getSize());
+ btnAddRatioTo.setEnabled(false);
formToolkit.adapt(btnAddRatioTo, true, true);
btnAddRatioTo.addSelectionListener(new SelectionAdapter() {
dto.setRatioTo(TermNodeDto.fromNode(ratioToNode, null));
}
-// Collection<Character> characters = createCharacters((TreeSelection)structureTreeSelection, (TreeSelection)propertyTreeSelection);
- TermNodeDto parent = characterTreeEditorComposite.getFeatureTree().getRoot();
-
-// for (Character character : characters) {
-// //add new Character to feature tree
-// CharacterNodeDto nodeDto = new CharacterNodeDto(CharacterDto.fromCharacter(character), parent, 0, parent.getTree(), null, null, null);
-// nodesToSave.put(character, nodeDto);
-// setDirty();
-// // result = CdmStore.getService(IFeatureNodeService.class).createChildFeatureNode(parent.getUuid(), character, vocabulary.getUuid());
-//
-// }
setDirty();
nodesToUpdate.add(character);
refresh();
+
characterTreeEditorComposite.getViewer().setSelection(new StructuredSelection(character));
+ EventUtility.postEvent(WorkbenchEventConstants.REFRESH_DETAILS, true);
}
});
//create all combinations of structures and properties
while(structureIterator.hasNext()){
- TermNode<DefinedTerm> structureNode = structureIterator.next();
+ Object o = structureIterator.next();
+ TermNode<DefinedTerm> structureNode = null;
+ if (o instanceof TermNode){
+ structureNode = (TermNode<DefinedTerm>) o;
+ }else{
+ return null;
+
+ }
+
Iterator<TermNode<DefinedTerm>> propertiesIterator = propertyTreeSelection.iterator();
while(propertiesIterator.hasNext()){
TermNode<DefinedTerm> propertyNode = propertiesIterator.next();
public void selectionChanged(SelectionChangedEvent event) {
//propagate selection
selService.setSelection(event.getSelection());
+ ISelection selStructure = null;
+ ISelection selProperty = null;
+ selStructure = structureViewer.getSelection();
+ selProperty = propertyViewer.getSelection();
+ if (selStructure != null && selProperty != null && selStructure instanceof TreeSelection && selProperty instanceof TreeSelection && ((TreeSelection)selStructure).getFirstElement() instanceof TermNode && ((TreeSelection)selProperty).getFirstElement() instanceof TermNode) {
+ btnAddCharacter.setEnabled(true);
+ }else {
+ btnAddCharacter.setEnabled(false);
+ }
+ ISelection selCharacter = this.characterTreeEditorComposite.getViewer().getSelection();
+ if (selStructure != null && selCharacter != null && selStructure instanceof TreeSelection && selCharacter instanceof TreeSelection && ((TreeSelection)selStructure).getFirstElement() instanceof TermNode && ((TreeSelection)selCharacter).getFirstElement() instanceof CharacterNodeDto) {
+ btnAddRatioTo.setEnabled(true);
+ }else {
+ btnAddRatioTo.setEnabled(false);
+ }
}