// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Network component additional customization
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Network {
  view: true;
  toolbar: true;
  interactor: true;
}

View {
  keepingAspectRatio: true;
  maxZoomXFactor: 10;
  maxZoomYFactor: 10;
}

StyleSheet {
  styleSheetDebugMask: "BAD_CLASS_MASK|BAD_PROP_MASK|FAILED_CONVERSIONS_MASK";
}

ToolBar {
  enabled: true;
  button[0]: @+SelectButton;
  button[1]: @+PanButton;
  button[2]: @+ZoomInButton;
  button[3]: @+ZoomOutButton;
  button[4]: @+ZoomBackButton;
  button[5]: @+ZoomResetButton;
  button[6]: @+FitToContentsButton;
  button[7]: @+ZoomViewButton;
}

#SelectButton {
  actionType: "Select";
  usingObjectInteractor: true;
  opaqueMove: true;
  action[0]: @+action0;
}

#action0 {
  key: "DELETE";
  class: "ilog.cpl.graph.action.IlpRemoveSelectedObjectsAction";
}

#PanButton {
  actionType: "Pan";
  usingObjectInteractor: false;
}

#ZoomInButton {
  actionType: "ZoomIn";
}

#ZoomOutButton {
  actionType: "ZoomOut";
}

#ZoomBackButton {
  actionType: "ZoomBack";
}

#ZoomResetButton {
  actionType: "ZoomReset";
}

#FitToContentsButton {
  actionType: "FitToContents";
}

#ZoomViewButton {
  actionType: "ZoomView";
}

Interactor {
  name: "Select";
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Customize object representation
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
object.NetworkElement {
  label: @name;
  toolTipText: @site;
}

object.Workstation {
  iconVisible: true;
  icon: '@|image("workstation.png")';
  labelFont: "arial-plain-10";
  shapeType: ROUND_RECTANGLE;
  fillStyle: RADIAL_GRADIENT;
  borderColor: '#00000000';
  background: blue;
  foreground: cyan;
  fillAngle: 0;
  fillStart: 0.5;
  fillEnd: 1;
}

object.Domain {
  iconVisible: true;
  icon: '@|image("domain.png")';
  expansion: IN_PLACE;
  labelFont: "arial-plain-12";
  subnetworkBackground: '#A3A5F5';
  subnetworkForeground: '#00000000';
}

object.Server {
  iconVisible: true;
  icon: '@|image("server.png")';
  shapeType: ROUND_RECTANGLE;
  fillStyle: RADIAL_GRADIENT;
  borderColor: '#00000000';
  background: blue;
  foreground: white;
  fillAngle: 0;
  fillStart: 0.5;
  fillEnd: 1;
  labelFont: "arial-plain-10";
}

object.NMW {
  toolTipText: @site;
}

object.NMW[vendor="Vendor A"] {
  labelForeground: red;
}

object.NMW[vendor="Vendor B"] {
  labelForeground: blue;
}

object.LinkElement {
  labelFont: "arial-plain-8";
  label: @name;
  labelSpacing: 8;
  foreground: gray;
  alternateColor: lightGray;
  animateSpeed: 0.5;
}

#Domain1 {
  fillStyle: RADIAL_GRADIENT;
  borderColor: '#00000000';
  background: '#00000000';
  foreground: white;
  fillAngle: 90;
  fillStart: 0.5;
  fillEnd: 0;
  shapeWidth: 100;
  labelFont: "arial-plain-20";
}

#Domain2 {
  fillStyle: RADIAL_GRADIENT;
  borderColor: '#00000000';
  background: '#00000000';
  foreground: white;
  fillAngle: 0;
  fillStart: 0.5;
  fillEnd: 0;
  shapeWidth: 100;
  labelFont: "arial-plain-20";
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Customize attributes to be displayed inside
// the object System Window
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

object."NMW/vendor" {
  label: @vendor;
  visibleInSystemWindow: true;
  captionLabel: Vendor;
  captionLabelVisible: true;
}

object."NMW/site" {
  visibleInSystemWindow: true;
  label: @site;
  captionLabel: Site;
  captionLabelVisible: true;
}