/** * Makes sure that managedRenderers contains every renderer existing implementations. If some renderers are not in the list, they are added in default implementation order at the end of the list * and not enabled. */ private void completeManagedRenderersListIfNecessary() { if (managedRenderers != null) { Set<String> existing = new HashSet<>(); for (ManagedRenderer mr : managedRenderers) { existing.add(mr.getRenderer().getClass().getName()); } List<ManagedRenderer> completeManagedRenderersList = new ArrayList<>(); completeManagedRenderersList.addAll(Arrays.asList(managedRenderers)); for (Renderer renderer : previewController.getRegisteredRenderers()) { if (!existing.contains(renderer.getClass().getName())) { completeManagedRenderersList.add(new ManagedRenderer(renderer, false)); } } managedRenderers = completeManagedRenderersList.toArray(new ManagedRenderer[0]); } }
@Override public Renderer[] getManagedEnabledRenderers() { if (managedRenderers != null) { ArrayList<Renderer> renderers = new ArrayList<>(); for (ManagedRenderer mr : managedRenderers) { if (mr.isEnabled()) { renderers.add(mr.getRenderer()); } } return renderers.toArray(new Renderer[0]); } else { return null; } }
/** * Makes sure that, if more than one plugin extends a default renderer, only the one with the lowest position is enabled initially. */ private void initManagedRenderers() { Renderer[] registeredRenderers = previewController.getRegisteredRenderers(); Set<String> replacedRenderers = new HashSet<>(); managedRenderers = new ManagedRenderer[registeredRenderers.length]; for (int i = 0; i < registeredRenderers.length; i++) { Renderer r = registeredRenderers[i]; Class superClass = r.getClass().getSuperclass(); if (superClass != null && superClass.getName().startsWith("org.gephi.preview.plugin.renderers.")) { managedRenderers[i] = new ManagedRenderer(r, !replacedRenderers.contains(superClass.getName())); replacedRenderers.add(superClass.getName()); } else { managedRenderers[i] = new ManagedRenderer(r, true); } } }
/** * Sets current renderers enabled state and order to the preview model. */ private void updateModelManagedRenderers() { PreviewModel model = previewController.getModel(); if (model != null) { ArrayList<ManagedRenderer> managedRenderers = new ArrayList<>(); for (RendererCheckBox rendererCheckBox : renderersList) { managedRenderers.add(new ManagedRenderer(rendererCheckBox.renderer, rendererCheckBox.isSelected())); } model.setManagedRenderers(managedRenderers.toArray(new ManagedRenderer[0])); } }
/** * Obtain renderers enabled state and order from the preview model. */ private void loadModelManagedRenderers() { renderersList.clear(); PreviewModel model = previewController.getModel(); if (model != null) { if (model.getManagedRenderers() != null) { for (ManagedRenderer mr : model.getManagedRenderers()) { renderersList.add(new RendererCheckBox(mr.getRenderer(), mr.isEnabled())); } } else { restoreRenderersList(); } } }
String rendererClass = reader.getAttributeValue(null, "class"); if (availableRenderers.containsKey(rendererClass)) { managedRenderersList.add(new ManagedRenderer(availableRenderers.get(rendererClass), Boolean.parseBoolean(reader.getAttributeValue(null, "enabled"))));
for (ManagedRenderer managedRenderer : managedRenderers) { writer.writeStartElement("managedrenderer"); writer.writeAttribute("class", managedRenderer.getRenderer().getClass().getName()); writer.writeAttribute("enabled", String.valueOf(managedRenderer.isEnabled())); writer.writeEndElement();
enabledRenderers = new HashSet<>(); for (ManagedRenderer mr : controller.getModel().getManagedRenderers()) { if (mr.isEnabled()) { enabledRenderers.add(mr.getRenderer());