/*
* Licensed Materials - Property of Rogue Wave Software, Inc.
* © Copyright Rogue Wave Software, Inc. 2014, 2017
* © Copyright IBM Corp. 2009, 2014
* © Copyright ILOG 1996, 2009
* All Rights Reserved.
*
* Note to U.S. Government Users Restricted Rights:
* The Software and Documentation were developed at private expense and
* are "Commercial Items" as that term is defined at 48 CFR 2.101,
* consisting of "Commercial Computer Software" and
* "Commercial Computer Software Documentation", as such terms are
* used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4,
* as applicable.
*/
import java.awt.Color;
import java.awt.Font;
import javax.swing.ImageIcon;
import ilog.views.IlvPoint;
import ilog.views.IlvRect;
import ilog.views.graphic.IlvGraphicSet;
import ilog.views.graphic.IlvIcon;
import ilog.views.graphic.IlvText;
/**
* This custom graphic object is made of several objects. Some of methods of
* this objects are bound with properties of the model nodes, as defined in the
* CSS file.
*/
public class Graphic extends IlvGraphicSet {
/**
* Those images are used in the icon to represent the "color" state of the
* object
*/
private static final ImageIcon redBall = new ImageIcon(Graphic.class.getResource("ballRed.gif"));
private static final ImageIcon greenBall = new ImageIcon(Graphic.class.getResource("ballGreen.gif"));
private static final ImageIcon blueBall = new ImageIcon(Graphic.class.getResource("ballBlue.gif"));
private static final ImageIcon blackBall = new ImageIcon(Graphic.class.getResource("ballBlack.gif"));
/**
* The "color" property of this object
*/
private String color = "green";
// The graphic objects
/**
* A main icon displaying an image according to the color state of the object
*/
private IlvIcon icon;
/**
* A text used to display the name of the underlaying node of the model
*/
private IlvText label;
/**
* A text displaying the position of the object according to the properties of
* the node in the model
*/
private IlvText position;
/**
* Creates the object and its several parts
*/
public Graphic() {
super();
customize();
}
/**
* Creates all the parts of the object
*/
private void customize() {
// creates a label on the top of the object
label = new IlvText(new IlvPoint(0, 0), "");
label.setForeground(Color.YELLOW);
addObject(label, false);
// creates a central icon
icon = new IlvIcon(greenBall.getImage(), new IlvRect(0, 0, 18, 18));
addObject(icon, false);
// creates an other label under the icon
position = new IlvText(new IlvPoint(0, 30), "");
position.setFont(new Font("Arial", Font.PLAIN, 10));
position.setForeground(Color.WHITE);
addObject(position, false);
}
/**
* Returns the value of the "color" property
*/
public String getColor() {
return color;
}
/**
* Sets the new value of the "color" property and change the image of the icon
* according to this new value
*
* @param c
* The new color
*/
public void setColor(String c) {
if (c.equals(color) == false) {
this.color = c;
if (color.equals("green"))
icon.setImage(greenBall.getImage());
if (color.equals("red"))
icon.setImage(redBall.getImage());
if (color.equals("blue"))
icon.setImage(blueBall.getImage());
if (color.equals("black"))
icon.setImage(blackBall.getImage());
}
}
/**
* Returns the text displayed in the "label" part
*/
public String getLabel() {
return label.getLabel();
}
/**
* Sets the text that must be displayed in the "label" part
*
* @param str
*/
public void setLabel(String str) {
label.setLabel(str);
}
/**
* Returns the text displayed in the "position" part
*
*/
public String getPosition() {
return position.getLabel();
}
/**
* Sets the new text to display in the "position" part
*
* @param str
* The new position
*/
public void setPosition(String str) {
position.setLabel(str);
}
}