use of org.eclipse.zest.core.viewers.IEntityStyleProvider in project archi by archimatetool.
the class GraphItemStyler method styleItem.
public static void styleItem(GraphItem item, final IBaseLabelProvider labelProvider) {
if (item instanceof GraphNode) {
GraphNode node = (GraphNode) item;
// set defaults.
if (node.getGraphModel().getNodeStyle() != ZestStyles.NONE) {
node.setNodeStyle(node.getGraphModel().getNodeStyle());
} else {
node.setNodeStyle(SWT.NONE);
}
Object entity = node.getData();
if (labelProvider instanceof IEntityStyleProvider) {
styleNode(node, (IEntityStyleProvider) labelProvider);
}
if (labelProvider instanceof IColorProvider) {
IColorProvider colorProvider = (IColorProvider) labelProvider;
node.setForegroundColor(colorProvider.getForeground(entity));
node.setBackgroundColor(colorProvider.getBackground(entity));
}
if (labelProvider instanceof IFontProvider) {
IFontProvider fontProvider = (IFontProvider) labelProvider;
node.setFont(fontProvider.getFont(entity));
}
if (labelProvider instanceof ILabelProvider) {
String text = ((ILabelProvider) labelProvider).getText(node.getData());
// $NON-NLS-1$
node.setText((text != null) ? text : "");
node.setImage(((ILabelProvider) labelProvider).getImage(node.getData()));
}
if (labelProvider instanceof ISelfStyleProvider) {
((ISelfStyleProvider) labelProvider).selfStyleNode(entity, node);
}
} else if (item instanceof GraphConnection) {
GraphConnection conn = (GraphConnection) item;
// set defaults
if (conn.getGraphModel().getConnectionStyle() != ZestStyles.NONE) {
int s = conn.getGraphModel().getConnectionStyle();
conn.setConnectionStyle(s);
} else {
conn.setConnectionStyle(SWT.NONE);
}
if (labelProvider instanceof ILabelProvider) {
String text = ((ILabelProvider) labelProvider).getText(conn.getExternalConnection());
// $NON-NLS-1$
conn.setText((text != null) ? text : "");
conn.setImage(((ILabelProvider) labelProvider).getImage(conn.getExternalConnection()));
}
if (labelProvider instanceof IEntityConnectionStyleProvider) {
styleEntityConnection(conn, (IEntityConnectionStyleProvider) labelProvider);
} else if (labelProvider instanceof IConnectionStyleProvider) {
styleConnection(conn, (IConnectionStyleProvider) labelProvider);
}
int swt = getLineStyleForZestStyle(conn.getConnectionStyle());
conn.setLineStyle(swt);
if (labelProvider instanceof ISelfStyleProvider) {
((ISelfStyleProvider) labelProvider).selfStyleConnection(conn.getData(), conn);
}
}
}
Aggregations