Example usage for org.jfree.chart.entity CategoryItemEntity getRowKey

List of usage examples for org.jfree.chart.entity CategoryItemEntity getRowKey

Introduction

In this page you can find the example usage for org.jfree.chart.entity CategoryItemEntity getRowKey.

Prototype

public Comparable getRowKey() 

Source Link

Document

Returns the row key.

Usage

From source file:org.talend.dataprofiler.chart.TOPChartService.java

@Override
public void addMouseListenerForChart(Object chartComposite, final Map<String, Object> menuMap,
        final boolean useRowFirst) {
    final ChartComposite chartComp = (ChartComposite) chartComposite;
    final ChartMouseListener listener = new ChartMouseListener() {

        @Override//from   w  ww. j a v a2  s.  c  om
        public void chartMouseClicked(ChartMouseEvent event) {
            boolean flag = event.getTrigger().getButton() != MouseEvent.BUTTON3;
            chartComp.setDomainZoomable(flag);
            chartComp.setRangeZoomable(flag);
            if (flag) {
                return;
            }

            ChartEntity chartEntity = event.getEntity();
            if (chartEntity != null && chartEntity instanceof CategoryItemEntity) {
                CategoryItemEntity cateEntity = (CategoryItemEntity) chartEntity;

                Menu menu = getCurrentMenu(cateEntity);
                if (menu != null) {
                    chartComp.setMenu(menu);
                    menu.setVisible(true);
                }
            }
        }

        private Menu getCurrentMenu(CategoryItemEntity cateEntity) {
            if (useRowFirst) {
                return findCurrentMenu(cateEntity.getRowKey(), cateEntity.getColumnKey());
            } else {
                return findCurrentMenu(cateEntity.getColumnKey(), cateEntity.getRowKey());
            }
        }

        /**
         * DOC yyin Comment method "findCurrentMenu".
         * 
         * @param firstKey
         * @param secondKey
         * @return
         */
        private Menu findCurrentMenu(final Object firstKey, Object secondKey) {
            Object menu = menuMap.get(firstKey);
            if (menu != null) {
                return (Menu) menu;
            }
            menu = menuMap.get(secondKey);
            if (menu != null) {
                return (Menu) menu;
            }
            return null;
        }

        @Override
        public void chartMouseMoved(ChartMouseEvent event) {
            // no action here

        }

    };
    chartComp.addChartMouseListener(listener);
    chartComp.addDisposeListener(new DisposeListener() {

        @Override
        public void widgetDisposed(DisposeEvent e) {
            chartComp.removeChartMouseListener(listener);
            chartComp.dispose();
        }

    });
}

From source file:org.talend.dataprofiler.chart.TOPChartService.java

@Override
public void addMouseListenerForConceptChart(Object chartComposite, final Map<String, Object> actionMap) {
    final ChartComposite chartComp = (ChartComposite) chartComposite;
    final ChartMouseListener listener = new ChartMouseListener() {

        @Override/*from  w w w . j a v  a  2s . c  om*/
        public void chartMouseClicked(ChartMouseEvent event) {
            boolean flag = event.getTrigger().getButton() == MouseEvent.BUTTON1;
            chartComp.setDomainZoomable(flag);
            chartComp.setRangeZoomable(flag);
            if (!flag) {
                return;
            }

            ChartEntity chartEntity = event.getEntity();
            if (chartEntity != null && chartEntity instanceof CategoryItemEntity) {
                CategoryItemEntity cateEntity = (CategoryItemEntity) chartEntity;
                // highlight current selected bar
                Plot plot = event.getChart().getPlot();
                if (plot != null) {
                    // ((CategoryPlot) plot).getRenderer().setSeriesPaint(cateEntity.getSeries(), Green);
                    CustomConceptRenderer render = new CustomConceptRenderer(cateEntity.getCategoryIndex());
                    render.setShadowVisible(false);
                    render.setDrawBarOutline(false);
                    ((CategoryPlot) plot).setRenderer(render);
                    // ChartDecorator.decorateConceptChart(event.getChart(), PlotOrientation.HORIZONTAL);

                }
                Object action = getCurrentAction(cateEntity);
                Class<? extends Object> actionClass = action.getClass();
                try {
                    Method actionRunMethod = actionClass.getDeclaredMethod("run"); //$NON-NLS-1$
                    actionRunMethod.invoke(action);

                } catch (NoSuchMethodException e) {
                    log.error(e, e);
                } catch (SecurityException e) {
                    log.error(e, e);
                } catch (IllegalAccessException e) {
                    log.error(e, e);
                } catch (IllegalArgumentException e) {
                    log.error(e, e);
                } catch (InvocationTargetException e) {
                    log.error(e, e);
                }

            }
        }

        private Object getCurrentAction(CategoryItemEntity cateEntity) {
            return findCurrentAction(cateEntity.getColumnKey(), cateEntity.getRowKey());
        }

        /**
         * Find current action
         * 
         * @param firstKey
         * @param secondKey
         * @return
         */
        private Object findCurrentAction(final Object firstKey, Object secondKey) {
            Object action = actionMap.get(firstKey);
            if (action != null) {
                return action;
            }
            action = actionMap.get(secondKey);
            if (action != null) {
                return action;
            }
            return null;
        }

        @Override
        public void chartMouseMoved(ChartMouseEvent event) {
            // no action here

        }

    };
    chartComp.addChartMouseListener(listener);
    chartComp.addDisposeListener(new DisposeListener() {

        @Override
        public void widgetDisposed(DisposeEvent e) {
            chartComp.removeChartMouseListener(listener);
            chartComp.dispose();
        }

    });
}