List of usage examples for org.jfree.chart.entity CategoryItemEntity getRowKey
public Comparable getRowKey()
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(); } }); }