Project

General

Profile

« Previous | Next » 

Revision 6484f4e1

Added by Patrick Plitzner over 8 years ago

Removed OccurrenceView

View differences:

eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/DerivatePerspective.java
13 13
import org.eclipse.ui.IPlaceholderFolderLayout;
14 14
import org.eclipse.ui.progress.IProgressConstants;
15 15

  
16
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
16 17
import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
17 18
import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
18 19
import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart;
19
import eu.etaxonomy.taxeditor.view.derivative.OccurrenceView;
20 20
import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
21 21

  
22 22
/**
......
36 36

  
37 37
        layout.addView(DetailsViewPart.ID, IPageLayout.RIGHT, 0.6f, layout.getEditorArea());
38 38

  
39
        layout.addView(OccurrenceView.ID, IPageLayout.BOTTOM, 0.5f, layout.getEditorArea());
39
        layout.addView(DerivateView.ID, IPageLayout.BOTTOM, 0.5f, layout.getEditorArea());
40 40

  
41 41
        layout.addView(DescriptiveViewPart.ID, IPageLayout.BOTTOM, 0.6f, TaxonNavigator.ID);
42 42

  
eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF
15 15
 eu.etaxonomy.taxeditor.editor.name.operation,
16 16
 eu.etaxonomy.taxeditor.editor.view.concept,
17 17
 eu.etaxonomy.taxeditor.editor.view.dataimport,
18
 eu.etaxonomy.taxeditor.editor.view.derivate,
18 19
 eu.etaxonomy.taxeditor.editor.view.descriptive,
19 20
 eu.etaxonomy.taxeditor.editor.view.media,
20 21
 eu.etaxonomy.taxeditor.editor.view.uses
eu.etaxonomy.taxeditor.editor/plugin.xml
390 390
            </visibleWhen>
391 391
         </command>
392 392
         <separator
393
               name="eu.etaxonomy.taxeditor.editor.separator1">
393
               name="eu.etaxonomy.taxeditor.editor.separator1"
394
               visible="true">
394 395
         </separator>
395 396
      </menuContribution>
396 397
      <menuContribution
eu.etaxonomy.taxeditor.store/META-INF/MANIFEST.MF
53 53
 eu.etaxonomy.taxeditor.view.datasource,
54 54
 eu.etaxonomy.taxeditor.view.datasource.handler,
55 55
 eu.etaxonomy.taxeditor.view.derivateSearch,
56
 eu.etaxonomy.taxeditor.view.derivative,
57 56
 eu.etaxonomy.taxeditor.view.detail,
58 57
 eu.etaxonomy.taxeditor.view.specimenSearch,
59 58
 eu.etaxonomy.taxeditor.view.supplementaldata,
eu.etaxonomy.taxeditor.store/plugin.xml
270 270
        id="eu.etaxonomy.taxeditor.view.sessions.SessionsViewPart"
271 271
        name="Sessions"
272 272
        restorable="false">
273
  </view>
274
  <view
275
        class="eu.etaxonomy.taxeditor.view.derivative.OccurrenceView"
276
        id="eu.etaxonomy.taxeditor.view.derivative.OccurrenceView"
277
        name="Derivative Editor (taxon-based)"
278
        restorable="true">
279 273
  </view>
280 274
   </extension>
281 275
   <extension
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivative/OccurrenceView.java
1
// $Id$
2
/**
3
* Copyright (C) 2015 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10
package eu.etaxonomy.taxeditor.view.derivative;
11

  
12
import java.util.Collection;
13

  
14
import org.eclipse.core.runtime.IProgressMonitor;
15
import org.eclipse.core.runtime.NullProgressMonitor;
16
import org.eclipse.jface.action.MenuManager;
17
import org.eclipse.jface.viewers.AbstractTreeViewer;
18
import org.eclipse.jface.viewers.ISelection;
19
import org.eclipse.jface.viewers.IStructuredSelection;
20
import org.eclipse.jface.viewers.TreeViewer;
21
import org.eclipse.jface.viewers.Viewer;
22
import org.eclipse.swt.SWT;
23
import org.eclipse.swt.layout.GridData;
24
import org.eclipse.swt.widgets.Composite;
25
import org.eclipse.swt.widgets.Control;
26
import org.eclipse.swt.widgets.Menu;
27
import org.eclipse.swt.widgets.Tree;
28
import org.eclipse.ui.ISaveablePart2;
29
import org.eclipse.ui.ISelectionService;
30
import org.eclipse.ui.IWorkbenchPart;
31

  
32
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
33
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
34
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
35
import eu.etaxonomy.cdm.model.taxon.Taxon;
36
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
37
import eu.etaxonomy.taxeditor.store.CdmStore;
38
import eu.etaxonomy.taxeditor.view.AbstractCdmViewPart;
39
import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateContentProvider;
40
import eu.etaxonomy.taxeditor.view.derivateSearch.DerivateLabelProvider;
41

  
42
/**
43
 * @author pplitzner
44
 * @date Oct 7, 2015
45
 *
46
 */
47
public class OccurrenceView extends AbstractCdmViewPart implements IPartContentHasDetails, ISaveablePart2{
48

  
49
    public static String ID = "eu.etaxonomy.taxeditor.view.derivative.OccurrenceView";
50

  
51
    private TreeViewer viewer;
52
    private DerivateContentProvider contentProvider;
53
    private DerivateLabelProvider labelProvider;
54

  
55
    private ISelectionService selectionService;
56

  
57
    private ConversationHolder conversation;
58

  
59
    private boolean dirty;
60

  
61

  
62
    public OccurrenceView() {
63
        if(conversation==null && CdmStore.isActive()){
64
            conversation = CdmStore.createConversation();
65
        }
66
    }
67

  
68
    /**
69
     * {@inheritDoc}
70
     */
71
    @Override
72
    public void createPartControl(Composite parent) {
73

  
74
        //listen to selection changes
75
        selectionService = getSite().getWorkbenchWindow().getSelectionService();
76
        selectionService.addSelectionListener(this);
77

  
78
      //---tree viewer---
79
        viewer = new TreeViewer(new Tree(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION));
80
        GridData gridDataTree = new GridData();
81
        gridDataTree.horizontalAlignment = GridData.FILL;
82
        gridDataTree.verticalAlignment = GridData.FILL;
83
        gridDataTree.grabExcessVerticalSpace = true;
84
        gridDataTree.grabExcessHorizontalSpace = true;
85
        viewer.getTree().setLayoutData(gridDataTree);
86
        contentProvider = new DerivateContentProvider();
87
        viewer.setContentProvider(contentProvider);
88
        labelProvider = new DerivateLabelProvider();
89
        viewer.setLabelProvider(labelProvider);
90
        viewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
91
        // Propagate selection from viewer
92
        getSite().setSelectionProvider(viewer);
93

  
94
        //create context menu
95
        MenuManager menuManager = new MenuManager();
96
        getSite().registerContextMenu(menuManager, viewer);
97
        Control control = viewer.getControl();
98
        Menu menu = menuManager.createContextMenu(control);
99
        control.setMenu(menu);
100

  
101
    }
102

  
103
    /**
104
     * {@inheritDoc}
105
     */
106
    @Override
107
    public void setFocus() {
108
        if(!conversation.isBound()){
109
            conversation.bind();
110
        }
111
    }
112

  
113
    /**
114
     * {@inheritDoc}
115
     */
116
    @Override
117
    public void dispose() {
118
        selectionService.removeSelectionListener(this);
119
        if(conversation!=null){
120
            conversation.close();
121
        }
122
    }
123

  
124
    /**
125
     * {@inheritDoc}
126
     */
127
    @Override
128
    public void selectionChanged(IWorkbenchPart part, ISelection selection) {
129
        if(selection instanceof IStructuredSelection){
130
            Object selectedElement = ((IStructuredSelection) selection).getFirstElement();
131
            if(selectedElement instanceof Taxon){
132
                Collection<SpecimenOrObservationBase> fieldUnits = CdmStore.getService(IOccurrenceService.class).listFieldUnitsByAssociatedTaxon((Taxon) selectedElement, null, null);
133
                viewer.setInput(fieldUnits);
134
            }
135
        }
136
    }
137

  
138
    @Override
139
    public boolean onComplete() {
140
        return false;
141
    }
142

  
143
    @Override
144
    public Viewer getViewer() {
145
        return viewer;
146
    }
147

  
148
    @Override
149
    public void createViewer(Composite parent) {
150
    }
151

  
152
    @Override
153
    public void changed(Object object) {
154
        this.dirty = true;
155
        firePropertyChange(PROP_DIRTY);
156
    }
157

  
158
    @Override
159
    public void doSave(IProgressMonitor monitor) {
160
        if(conversation.isBound()){
161
//            input.merge(); TODO remote merging
162
            conversation.commit(true);
163
        }
164
        this.dirty = false;
165
        firePropertyChange(PROP_DIRTY);
166
    }
167

  
168
    @Override
169
    public void doSaveAs() {
170
        doSave(new NullProgressMonitor());
171
    }
172

  
173
    @Override
174
    public boolean isDirty() {
175
        return this.dirty;
176
    }
177

  
178
    @Override
179
    public boolean isSaveAsAllowed() {
180
        return false;
181
    }
182

  
183
    @Override
184
    public boolean isSaveOnCloseNeeded() {
185
        return isDirty();
186
    }
187

  
188
    @Override
189
    public int promptToSaveOnClose() {
190
        return ISaveablePart2.DEFAULT;
191
    }
192
}

Also available in: Unified diff