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

// Configure the graph layout
GraphLayout { 
  class: 'busLayout.IncrementalBusLayout';
  horizontalOffset: 50;
  verticalOffsetToLevel: 50;
  verticalOffsetToPreviousLevel: 40;
  margin: 30;
  marginOnBus: 50;
}

// Configure the view
View {
  keepingAspectRatio: true;
  maxZoomXFactor: 10;
  maxZoomYFactor: 10;
}

// Configure the toolbar to disallow moving of objects.
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;
}

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

#ZoomInButton {
  actionType: "ZoomIn";
}

#ZoomOutButton {
  actionType: "ZoomOut";
}

#ZoomBackButton {
  actionType: "ZoomBack";
}

#ZoomResetButton {
  actionType: "ZoomReset";
}

#FitToContentsButton {
  actionType: "FitToContents";
  margins: "5";
}

#ZoomViewButton {
  actionType: "ZoomView";
  usingObjectInteractor: false;
}

// Configure the default interactor
Interactor {
  name: "Select";
}

// Set the Mixed zoom policy.
Zooming {
  type: "Mixed";
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Customize Layout Properties
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Configure the bus object as the bus in the layout
// All layout configuration uses the 'graphLayoutRenderer'
// and the graph layout name pseudoclasses
#BUS:graphLayoutRenderer:bus { 
  bus: true;
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Customize Objects
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Configure the bus object
#BUS { 
  linksConnectToBase: true;
}

// Configure the alarm balloon to be displayed at the
// right position as the links are always vertically
// placed connecting the node to the bus layout
object."ilog.tgo.model.IltLink" { 
  alarmBalloonPosition: Right;
}