@Override public void setLayer(GraphicLayer layer) { Objects.requireNonNull(layer, NULL_MSG); this.layer = layer; // Adapt the default layerType setLayerType(layer.getType()); }
private static Predicate<GraphicLayer> isLayerTypeEquals(LayerType type) { // Compare type and if the layer name is null => default layer return layer -> Objects.equals(layer.getType(), type) && layer.getName() == null; } }
@Override public void deleteByLayerType(LayerType type) { Objects.requireNonNull(type); if (models.isEmpty()) { return; } synchronized (models) { for (Graphic g : models) { if (g.getLayer().getType().equals(type)) { g.removeAllPropertyChangeListener(); } } models.removeIf(g -> Objects.equals(g.getLayer().getType(), type)); layers.removeIf(l -> Objects.equals(l.getType(), type)); } }
@Override public List<GraphicLayer> groupLayerByType() { if (models.isEmpty()) { return Collections.emptyList(); } ArrayList<GraphicLayer> layerType = new ArrayList<>(); synchronized (models) { for (Graphic g : models) { LayerType type = g.getLayer().getType(); boolean notInGroup = true; for (GraphicLayer glayer : layerType) { if (Objects.equals(glayer.getType(), type)) { notInGroup = false; break; } } if (notInGroup) { layerType.add(g.getLayer()); } } } return layerType; }
private static ArrayList<GraphicLayer> readXmlModel(ViewCanvas<DicomImageElement> view, GraphicModel graphicModel) { ArrayList<GraphicLayer> layers = new ArrayList<>(); int k = 0; for (GraphicLayer layer : graphicModel.getLayers()) { layer.setName(Optional.ofNullable(layer.getName()).orElseGet(layer.getType()::getDefaultName) + " [DICOM]"); //$NON-NLS-1$ layer.setLocked(true); layer.setSerializable(false); layer.setLevel(270 + k++); layers.add(layer); } for (Graphic g : graphicModel.getModels()) { AbstractGraphicModel.addGraphicToModel(view, g.getLayer(), g); } return layers; }
private static void writeGraphics(GraphicModel model, Attributes attributes) { List<GraphicLayer> layers = model.getLayers(); Sequence annotationSeq = attributes.newSequence(Tag.GraphicAnnotationSequence, layers.size()); Sequence layerSeq = attributes.newSequence(Tag.GraphicLayerSequence, layers.size()); for (int i = 0; i < layers.size(); i++) { GraphicLayer layer = layers.get(i); if (layer.getSerializable()) { String layerName = layer.getType().name(); List<Graphic> graphics = getGraphicsByLayer(model, layer.getUuid()); Attributes l = new Attributes(2); l.setString(Tag.GraphicLayer, VR.CS, layerName); l.setInt(Tag.GraphicLayerOrder, VR.IS, i); float[] lab = PresentationStateReader .colorToLAB(Optional.ofNullable(MeasureTool.viewSetting.getLineColor()).orElse(Color.YELLOW)); if (lab != null) { l.setInt(Tag.GraphicLayerRecommendedDisplayCIELabValue, VR.US, CIELab.convertToDicomLab(lab)); } l.setString(Tag.GraphicLayerDescription, VR.LO, layer.toString()); layerSeq.add(l); Attributes a = new Attributes(2); a.setString(Tag.GraphicLayer, VR.CS, layerName); Sequence graphicSeq = a.newSequence(Tag.GraphicObjectSequence, graphics.size()); Sequence textSeq = a.newSequence(Tag.TextObjectSequence, graphics.size()); for (Graphic graphic : graphics) { buildDicomGraphic(graphic, graphicSeq, textSeq); } annotationSeq.add(a); } } }
@Override public void applyNextValues() { ViewCanvas<ImageElement> view = getView(); if (view != null) { AcquireImageInfo imageInfo = getImageInfo(); int rotation = (imageInfo.getNextValues().getFullRotation() + 360) % 360; RectangleGraphic cropGraphic = rectifyAction.getCurrentCropArea(); if (cropGraphic != null) { GraphicModel graphicManager = view.getGraphicManager(); graphicManager.getModels().removeIf(g -> g.getLayer().getType() == cropGraphic.getLayerType()); } if (rotation % 90 != 0) { GraphicHelper.newGridLayer(view); } view.setActionsInView(ActionW.ROTATION.cmd(), rotation); } } }
@Override public void applyNextValues() { ViewCanvas<ImageElement> view = getView(); if (view != null) { AcquireImageInfo imageInfo = getImageInfo(); int rotation = (imageInfo.getNextValues().getFullRotation() + 360) % 360; RectangleGraphic cropGraphic = rectifyAction.getCurrentCropArea(); if (cropGraphic != null) { GraphicModel graphicManager = view.getGraphicManager(); graphicManager.getModels().removeIf(g -> g.getLayer().getType() == cropGraphic.getLayerType()); } if (rotation % 90 != 0) { GraphicHelper.newGridLayer(view); } view.setActionsInView(ActionW.ROTATION.cmd(), rotation); } } }
ViewCanvas<ImageElement> view = AcquireObject.getView(); GraphicModel graphicManager = view.getGraphicManager(); if (graphicManager.getModels().removeIf(g -> g.getLayer().getType() == getLayerType() && g != this)) { graphicManager.fireChanged();