public void addRenderer(String klass, Map<String, String> props, String uniqueId) { WaveletViewRenderer renderer = null; try { renderer = RendererRegistry.findRenderer(klass); } catch (Exception ex) { LOGGER.error("Cannot find renderer " + klass); LOGGER.error(" message: " + ex.getMessage()); } if (renderer == null) { return; } // set the data entity to be rendered and add renderer to viewer Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); Map<String, Object> results = ServiceProvider.getRepository().get(new EntityUniqueIdSpecification(uniqueId)); Object[] objects = results.values().toArray(); renderer.setData(shell, WaveletViewer.this, objects, false); // Put wavelet info on the tool bar Wavelet wavelet = (Wavelet) renderer.getRenderedObjects()[0]; IPlotPolyline waveletPolyline = (IPlotPolyline) renderer.getShapes()[0]; _legendToolbar.addLabel(wavelet.getDisplayName() + ":"); _legendToolbar.addColorRectangle(waveletPolyline.getLineColor()); // set the renderer's model properties Model model = renderer.getSettingsModel(); // Note: if model is null, renderer is TraceSectionRenderer (at least) if (model != null) { model.unpickle(props); } }
@Override protected List<IConfigurationElement> findRenderer(Shell shell, Object object) { return RendererRegistry.findRenderer(shell, object, WAVELET_SUBPLOT); }