Project

General

Profile

« Previous | Next » 

Revision 3a45849e

Added by Patrick Plitzner over 5 years ago

ref #7549 Add fallback tooltip

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/CategoricalChartTooltip.java
13 13
import org.eclipse.jface.window.ToolTip;
14 14
import org.eclipse.swt.SWT;
15 15
import org.eclipse.swt.graphics.Point;
16
import org.eclipse.swt.layout.FillLayout;
16 17
import org.eclipse.swt.layout.GridData;
17 18
import org.eclipse.swt.layout.GridLayout;
18 19
import org.eclipse.swt.widgets.Composite;
19 20
import org.eclipse.swt.widgets.Event;
21
import org.eclipse.swt.widgets.Label;
20 22
import org.swtchart.Chart;
21 23
import org.swtchart.IAxis;
22 24
import org.swtchart.IBarSeries;
......
25 27

  
26 28
import eu.etaxonomy.cdm.model.description.Feature;
27 29
import eu.etaxonomy.cdm.model.description.State;
30
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
28 31

  
29 32
/**
30 33
 * @author pplitzner
......
33 36
 */
34 37
public class CategoricalChartTooltip extends ToolTip {
35 38

  
39
    static final String TOOLTIP_NOT_AVAILABLE = Messages.CategoricalChartTooltip_TOOLTIP_NOT_AVAILABLE;
40

  
36 41
    private CharacterMatrix matrix;
37 42

  
38 43
    public CategoricalChartTooltip(CharacterMatrix matrix) {
......
50 55
    @Override
51 56
    protected Composite createToolTipContentArea(Event event,
52 57
            Composite parent) {
53
        parent.setLayout(new GridLayout());
54 58

  
59
        int colPos = matrix.getNatTable().getColumnPositionByX(event.x);
60
        int colIndex = matrix.getNatTable().getColumnIndexByPosition(colPos);
61
        Feature feature = matrix.getIndexToFeatureMap().get(colIndex);
62
        CategoricalDataHistogram histogram = matrix.getFeatureToHistogramMap().get(feature);
63

  
64
        Composite tooltip;
65
        if(histogram!=null && !histogram.getStates().isEmpty()){
66
            parent.setLayout(new GridLayout());
67
            tooltip = createTooltip(event, parent);
68
        }
69
        else{
70
            tooltip = new Composite(parent, SWT.NONE);
71
            tooltip.setLayout(new FillLayout());
72
            Label label = new Label(tooltip, SWT.NONE);
73
            label.setText(TOOLTIP_NOT_AVAILABLE);
74
        }
75
        return tooltip;
76
    }
77

  
78
    private Composite createTooltip(Event event, Composite parent) {
55 79
        Chart chart = new Chart(parent, SWT.NONE);
56 80
        chart.setLayoutData(new GridData(600, 300));
57 81

  
......
87 111
        chart.getLegend().setVisible(false);
88 112

  
89 113
        IBarSeries barSeries = (IBarSeries) chart.getSeriesSet()
90
            .createSeries(SeriesType.BAR, "state counts");
114
            .createSeries(SeriesType.BAR, "state counts"); //$NON-NLS-1$
91 115
        ISeriesLabel seriesLabel = barSeries.getLabel();
92 116
        seriesLabel.setVisible(true);
93 117
        barSeries.setYSeries(counts);
......
106 130
        int colIndex = matrix.getNatTable().getColumnIndexByPosition(colPos);
107 131
        int rowPos = matrix.getNatTable().getRowPositionByY(event.y);
108 132
        Feature feature = matrix.getIndexToFeatureMap().get(colIndex);
109
        CategoricalDataHistogram histogram = matrix.getFeatureToHistogramMap().get(feature);
110 133

  
111 134
        if(matrix.isShowTooltips()
112 135
                && rowPos==1
113 136
                && colIndex>=CharacterMatrix.LEADING_COLUMN_COUNT
114
                && histogram!=null
115
                && !histogram.getStates().isEmpty()) {
137
                && feature.isSupportsCategoricalData()) {
116 138
            return true;
117 139
        }
118 140
        return false;
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/matrix/QuantitativeChartTooltip.java
16 16
import org.eclipse.nebula.widgets.nattable.util.GUIHelper;
17 17
import org.eclipse.swt.SWT;
18 18
import org.eclipse.swt.graphics.Point;
19
import org.eclipse.swt.layout.FillLayout;
19 20
import org.eclipse.swt.layout.GridData;
20 21
import org.eclipse.swt.layout.GridLayout;
21 22
import org.eclipse.swt.widgets.Composite;
22 23
import org.eclipse.swt.widgets.Event;
24
import org.eclipse.swt.widgets.Label;
23 25
import org.swtchart.Chart;
24 26
import org.swtchart.IAxis;
25 27
import org.swtchart.ILineSeries;
......
53 55
    @Override
54 56
    protected Composite createToolTipContentArea(Event event,
55 57
            Composite parent) {
56
        parent.setLayout(new GridLayout());
57 58

  
59
        int colPos = matrix.getNatTable().getColumnPositionByX(event.x);
60
        int colIndex = matrix.getNatTable().getColumnIndexByPosition(colPos);
61
        Feature feature = matrix.getIndexToFeatureMap().get(colIndex);
62
        QuantitativeDataStatistics dataStatistics = matrix.getFeatureToQuantDataStatisticsMap().get(feature);
63

  
64
        Composite tooltip;
65
        if(dataStatistics!=null){
66
            parent.setLayout(new GridLayout());
67
            tooltip = createTooltip(event, parent);
68
        }
69
        else{
70
            tooltip = new Composite(parent, SWT.NONE);
71
            tooltip.setLayout(new FillLayout());
72
            Label label = new Label(tooltip, SWT.NONE);
73
            label.setText(CategoricalChartTooltip.TOOLTIP_NOT_AVAILABLE);
74
        }
75
        return tooltip;
76

  
77
    }
78

  
79
    private Composite createTooltip(Event event, Composite parent){
58 80
        Chart chart = new Chart(parent, SWT.NONE);
59 81
        chart.setLayoutData(new GridData(600, 300));
60 82

  
......
115 137
        int colIndex = matrix.getNatTable().getColumnIndexByPosition(colPos);
116 138
        int rowPos = matrix.getNatTable().getRowPositionByY(event.y);
117 139
        Feature feature = matrix.getIndexToFeatureMap().get(colIndex);
118
        QuantitativeDataStatistics dataStatistics = matrix.getFeatureToQuantDataStatisticsMap().get(feature);
119 140

  
120 141
        if(matrix.isShowTooltips()
121 142
                && rowPos==1
122
                && colIndex>=CharacterMatrix.LEADING_COLUMN_COUNT
123
                && dataStatistics!=null) {
143
                && feature.isSupportsQuantitativeData()
144
                && colIndex>=CharacterMatrix.LEADING_COLUMN_COUNT) {
124 145
            return true;
125 146
        }
126 147
        return false;
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/l10n/Messages.java
22 22
    public static String AbstractGroupedContainer_NEW_HETERO_SYNONYM;
23 23
    public static String AddDerivedUnitFacadeMediaOperation_CREATE_FAILED;
24 24
    public static String AddDerivedUnitFacadeMediaOperation_CREATE_FAILED_MESSAGE;
25
    public static String CategoricalChartTooltip_TOOLTIP_NOT_AVAILABLE;
25 26
    public static String CdmAuthorityEditor_SAVING_AUTHORITY_EDITOR;
26 27
    public static String ChangeConceptRelationshipTypeOperation_NOT_IMPLEMENTED;
27 28
    public static String ChangeConceptToSynonymOperation_MULTI_REPS;
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/l10n/messages.properties
1
CategoricalChartTooltip_TOOLTIP_NOT_AVAILABLE=Tooltip not available. First aggregate the data.
1 2
CreateFieldUnitContextMenu_CREATE_FIELD_UNIT_FOR=Create new field unit for %s
2 3
CreateDescriptiveDataSetHandler_NEW_DESCRIPTIVE_DATA_SET=New descriptive data set
3 4
SingleReadSequenceContextMenu_REMOVE_FROM_SEQUENCE=Remove from this Sequence
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/l10n/messages_de.properties
1
CategoricalChartTooltip_TOOLTIP_NOT_AVAILABLE=Tooltip nicht verf?gbar. Daten m?ssen erst aggregiert werden.
1 2
CreateFieldUnitContextMenu_CREATE_FIELD_UNIT_FOR=Erzeuge neue Field Unit f?r %s
2 3
CreateDescriptiveDataSetHandler_NEW_DESCRIPTIVE_DATA_SET=Neues Descriptive Data Set
3 4
SingleReadSequenceContextMenu_REMOVE_FROM_SEQUENCE=Von Sequenz entfernen

Also available in: Unified diff