Project

General

Profile

« Previous | Next » 

Revision 5a308df4

Added by Patrick Plitzner almost 10 years ago

  • generalized adding MediaSpecimen in DerivateView

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java
8 8
import org.eclipse.core.runtime.IProgressMonitor;
9 9
import org.eclipse.jface.action.MenuManager;
10 10
import org.eclipse.jface.util.LocalSelectionTransfer;
11
import org.eclipse.jface.viewers.AbstractTreeViewer;
11 12
import org.eclipse.jface.viewers.StructuredSelection;
12 13
import org.eclipse.jface.viewers.TreeNode;
13 14
import org.eclipse.jface.viewers.TreeViewer;
......
88 89
        viewer.setContentProvider(new DerivateContentProvider());
89 90
        labelProvider = new DerivateLabelProvider();
90 91
        viewer.setLabelProvider(labelProvider);
91
        viewer.setAutoExpandLevel(2);
92
        viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
92 93
        // Propagate selection from viewer
93 94
        getSite().setSelectionProvider(viewer);
94 95

  
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java
15 15
import org.eclipse.ui.actions.CompoundContributionItem;
16 16

  
17 17
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy;
18
import eu.etaxonomy.cdm.model.common.DefinedTerm;
19 18
import eu.etaxonomy.cdm.model.media.Media;
20 19
import eu.etaxonomy.cdm.model.molecular.DnaSample;
21 20
import eu.etaxonomy.cdm.model.molecular.Sequence;
......
30 29
import eu.etaxonomy.taxeditor.editor.EditorUtil;
31 30
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
32 31
import eu.etaxonomy.taxeditor.model.AbstractUtility;
33
import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
34 32

  
35 33
/**
36 34
 * Context menu for the creation of derivates in the derivate hierarchy.
......
47 45
                new ContributionItem() {
48 46
                    @Override
49 47
                    public void fill(Menu menu, int index) {
50
                        DefinedTerm artworkTerm = DerivateLabelProvider.getArtworkTerm();
51
                        DefinedTerm livingPlantPhotoTerm = DerivateLabelProvider.getLivingPlantPhotoTerm();
52
                        DefinedTerm specimenScanTerm = DerivateLabelProvider.getSpecimenScanTerm();
53 48
                        MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
54 49
                        addItem.setText("Add...");
55 50
                        Menu addMenu = new Menu(menu);
......
64 59
                                new MenuItem(addMenu, SWT.SEPARATOR);
65 60
                                createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.TissueSample);
66 61
                                createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample);
67
                                createMenuItem(addMenu, "Specimen Scan", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, specimenScanTerm);
68
                                createMenuItem(addMenu, "Artwork", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, artworkTerm);
69
                                createMenuItem(addMenu, "Living Plant Photo", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, livingPlantPhotoTerm);
62
                                createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media);
70 63
                            }
71 64
                            //context menu for Specimen
72 65
                            else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
73 66

  
74 67
                                createMenuItem(addMenu, "Tissue Sample", selectedTreeNode, DerivedUnit.class, SpecimenOrObservationType.TissueSample);
75 68
                                createMenuItem(addMenu, "DNA Sample", selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample);
76
                                createMenuItem(addMenu, "Specimen Scan", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, specimenScanTerm);
77
                                createMenuItem(addMenu, "Artwork", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, artworkTerm);
78
                                createMenuItem(addMenu, "Living Plant Photo", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, livingPlantPhotoTerm);
69
                                createMenuItem(addMenu, "Media Specimen", selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media);
79 70
                            }
80 71
                            //context menu for TissueSample
81 72
                            else if(selectedTreeNode.getValue() instanceof DerivedUnit && ((DerivedUnit)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.TissueSample){
......
104 95
        return contributionItems;
105 96
    }
106 97

  
107
    private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType, DefinedTerm kindOfUnit) {
98
    private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) {
108 99
        MenuItem menuItem = new MenuItem(menu, SWT.NONE);
109 100
        menuItem.setText(menuLabel);
110
        menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType, kindOfUnit));
111
    }
112

  
113
    private void createMenuItem(Menu menu, String menuLabel, TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) {
114
        createMenuItem(menu, menuLabel, selectedNode, childClass, specimenType, null);
101
        menuItem.addSelectionListener(new WidgetSelectionListener(selectedNode, childClass, specimenType));
115 102
    }
116 103

  
117 104
    private class WidgetSelectionListener extends SelectionAdapter{
......
120 107
        //TODO: we need a common interface for the generic like e.g. "IDerivateHierarchyNode"
121 108
        private final Class<?> childClass;
122 109
        private final SpecimenOrObservationType specimenType;
123
        private final DefinedTerm kindOfUnit;
124 110

  
125 111
        /**
126 112
         * @param selectedNode
127 113
         * @param specimenType
128
         * @param kindOfUnit
129 114
         */
130
        public WidgetSelectionListener(TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType, DefinedTerm kindOfUnit) {
115
        public WidgetSelectionListener(TreeNode selectedNode, Class<?> childClass, SpecimenOrObservationType specimenType) {
131 116
            this.selectedNode = selectedNode;
132 117
            this.childClass = childClass;
133 118
            this.specimenType = specimenType;
134
            this.kindOfUnit = kindOfUnit;
135 119
        }
136 120

  
137 121
        /* (non-Javadoc)
......
159 143
                    derivedUnit = MediaSpecimen.NewInstance(specimenType);
160 144
                    //a MediaSpecimen with no media attached does not make sense. Hence we add one
161 145
                    ((MediaSpecimen)derivedUnit).setMediaSpecimen(Media.NewInstance());
162
                    derivedUnit.setKindOfUnit(kindOfUnit);
163 146
                }
164 147
                else{
165 148
                    derivedUnit = DerivedUnit.NewInstance(specimenType);
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/media/MediaSpecimenGeneralDetailSection.java
64 64
            else if(getEntity().getKindOfUnit().equals(DerivateLabelProvider.getSpecimenScanTerm())){
65 65
                text = "Specimen Scan";
66 66
            }
67
            else if(getEntity().getKindOfUnit().equals(DerivateLabelProvider.getDetailImageTerm())){
68
                text = "Detail Image";
69
            }
67 70
        }
68 71
        if(text!=null){
69 72
            super.setText(text);
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java
49 49
    private static DefinedTerm photoTerm = null;
50 50
    private static DefinedTerm drawingTerm = null;
51 51
    private static DefinedTerm specimenScanTerm = null;
52
    private static DefinedTerm detailImageTerm = null;
52 53

  
53 54
    private static void initializeTerms() {
54 55
        List<DefinedTerm> preferredTerms = CdmStore.getTermManager().getPreferredTerms(DefinedTerm.class);
55 56
        for (DefinedTerm definedTerm : preferredTerms) {
56
            if(definedTerm.getUuid().equals(UUID.fromString("04673952-dab1-42ff-b47a-5e847c350eaf"))){//photo
57
            if(definedTerm.getUuid().equals(UUID.fromString("c5c59c42-f254-471e-96c6-09f459f7c903"))){
57 58
                photoTerm = definedTerm;
58 59
            }
59
            else if(definedTerm.getUuid().equals(UUID.fromString("76204a15-098f-4afe-9e8f-fa344ee3fdbb"))){//drawing
60
            else if(definedTerm.getUuid().equals(UUID.fromString("669b0409-4aa4-4695-aae4-a95ed27bad4c"))){
60 61
                drawingTerm = definedTerm;
61 62
            }
62
            else if(definedTerm.getUuid().equals(UUID.fromString("c0b127d6-c849-48f9-bbc3-29e3337c1d03"))){//cover TODO temporary until new term is created
63
            else if(definedTerm.getUuid().equals(UUID.fromString("acda15be-c0e2-4ea8-8783-b9b0c4ad7f03"))){
63 64
                specimenScanTerm = definedTerm;
64 65
            }
66
            else if(definedTerm.getUuid().equals(UUID.fromString("31eb8d02-bf5d-437c-bcc6-87a626445f34"))){
67
                detailImageTerm = definedTerm;
68
            }
65 69
        }
66 70
    }
67 71

  
......
86 90
        return specimenScanTerm;
87 91
    }
88 92

  
93
    public static DefinedTerm getDetailImageTerm(){
94
        if(detailImageTerm==null){
95
            initializeTerms();
96
        }
97
        return detailImageTerm;
98
    }
99

  
89 100

  
90 101
    /** {@inheritDoc} */
91 102
    @Override
......
214 225
            else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
215 226
                return ImageResources.getImage(ImageResources.SPECIMEN_DERIVATE);
216 227
            }
217
            else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.StillImage){
228
            else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.Media){
218 229
                if(derivedUnit.getKindOfUnit()!=null){
219 230
                    if(derivedUnit.getKindOfUnit().equals(getArtworkTerm())){
220 231
                        return ImageResources.getImage(ImageResources.ARTWORK_DERIVATE);
......
225 236
                    else if(derivedUnit.getKindOfUnit().equals(getSpecimenScanTerm())){
226 237
                        return ImageResources.getImage(ImageResources.SPECIMEN_SCAN_DERIVATE);
227 238
                    }
239
                    else if(derivedUnit.getKindOfUnit().equals(getDetailImageTerm())){
240
                        return ImageResources.getImage(ImageResources.DETAIL_IMAGE_DERIVATE);
241
                    }
228 242
                }
229 243
            }
230 244
        }

Also available in: Unified diff