/** refreshes the representation */ protected void refreshRepresentation() { // TODO ImageRepresentation imageRepresentation = getResourceImage(svgHandle, resourceId); if (imageRepresentation != null) { if (useSmallImage && imageRepresentation.getSmallImage() != null) { synchronized (this) { resourceImage = new ImageIcon(imageRepresentation.getSmallImage()).getImage(); } } else if (imageRepresentation.getLargeImage() != null) { synchronized (this) { resourceImage = new ImageIcon(imageRepresentation.getLargeImage()).getImage(); } } if (resourceImage != null) { refreshParents(); } } }
/** * getting the image representing a resource given the id of a resource * * @param svgHandle a svg handle * @param resourceId the id of the resource from which the image has been created * @param useSmallImage whether the returned image should be small or large * @return the image representing the resource */ public Image getImage(SVGHandle svgHandle, String resourceId, boolean useSmallImage) { Image image = null; if (svgHandle != null && resourceId != null && !resourceId.equals("")) { Map<String, ImageRepresentation> idToImageMap = null; if (handleToIdToImages.containsKey(svgHandle)) { idToImageMap = handleToIdToImages.get(svgHandle); if (idToImageMap.containsKey(resourceId)) { ImageRepresentation imageRepresentation = idToImageMap.get(resourceId); if (imageRepresentation != null) { if (useSmallImage) { image = imageRepresentation.getSmallImage(); } else { image = imageRepresentation.getLargeImage(); } } } } } return image; }
/** * the constructor of the class * * @param svgHandle a svg handle * @param resourceId the id of a resource * @param useSmallImage whether this resource representation should display a large or a small * image * @param componentToRefresh the component to refresh */ protected ResourceRepresentation( SVGHandle svgHandle, String resourceId, boolean useSmallImage, Component componentToRefresh) { this.svgHandle = svgHandle; this.resourceId = resourceId; this.useSmallImage = useSmallImage; this.componentToRefresh = componentToRefresh; setBackground(Color.white); setLayout(null); if (useSmallImage) { setPreferredSize(new Dimension(smallImageSize.width + 2, smallImageSize.height + 2)); } else { setPreferredSize(new Dimension(imageSize.width + 2, imageSize.height + 2)); } ImageRepresentation imageRepresentation = getResourceImage(svgHandle, resourceId); Image image = null; if (imageRepresentation != null) { if (useSmallImage) { image = new ImageIcon(imageRepresentation.getSmallImage()).getImage(); } else { image = new ImageIcon(imageRepresentation.getLargeImage()).getImage(); } } if (image == null) { resourceRepresentationList.add(this); } else { synchronized (this) { resourceImage = image; } } }