diff options
Diffstat (limited to 'TAO/examples/Simulator/DOVEBrowser/WeaponsVisComp.java')
-rw-r--r-- | TAO/examples/Simulator/DOVEBrowser/WeaponsVisComp.java | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/TAO/examples/Simulator/DOVEBrowser/WeaponsVisComp.java b/TAO/examples/Simulator/DOVEBrowser/WeaponsVisComp.java new file mode 100644 index 00000000000..8c81bfc9c11 --- /dev/null +++ b/TAO/examples/Simulator/DOVEBrowser/WeaponsVisComp.java @@ -0,0 +1,144 @@ +// $Id$ +// +// = FILENAME +// WeaponsVisComp.java +// +// = AUTHOR +// Seth Widoff (core functionality) +// Michael Kircher (mk1@cs.wustl.edu) +// +// = DESCRIPTION +// This is a Visualization Component for displaying weapons. +// +// ============================================================================ + + +import java.io.*; +import java.util.*; +import java.awt.*; + + +public class WeaponsVisComp extends Panel implements VisComp +{ + private final static String ONLINE = "Online"; + private final static String OFFLINE = "Offline"; + private final static Font FONT_BIG = new Font ("Dialog", Font.BOLD, 14); + private final static Font FONT_SMALL = new Font ("Dialog", Font.BOLD, 10); + private final static Color BLUE = new Color (30, 144, 255); + + private int count_ = 0; + private Hashtable weapons_table_ = new Hashtable (); + private GridBagLayout gbl_= new GridBagLayout (); + private GridBagConstraints gbc_ = new GridBagConstraints (); + + Label default_label_ = new Label ("No weapons available", Label.CENTER); + + public WeaponsVisComp () + { + default_label_.setFont (FONT_BIG); + default_label_.setForeground (BLUE); + + setLayout (gbl_); + gbc_.gridx = 0; + gbc_.gridy = 0; + gbc_.gridheight = 1; + gbc_.gridwidth = 1; + gbc_.anchor = GridBagConstraints.NORTH; + gbc_.fill = GridBagConstraints.NONE; + setBackground (Color.black); + + gbl_.setConstraints (default_label_, gbc_); + add (default_label_); + } + + public void setName (String title) { + } + + public int getProperty () { + return Properties.WEAPONS; + } + + public Dimension getPreferredSize () { + return new Dimension (250, 200); + } + + public Dimension getMinimumSize () { + return new Dimension (80, 80); + } + + public void update (java.util.Observable observable, java.lang.Object obj) { + Weapons weapons_ = null; + try { + weapons_ = (Weapons) obj; + } + catch (Exception excp) { + System.out.println (excp); + System.out.println ("Visualization Component received wrong data type!"); + } + if (weapons_ != null) + { + for (int i = 0; i < weapons_.number_of_weapons && i < 5; i++) + { + String weapon = ""; + int status = 0; + switch (i) + { + default: + break; + case 0: weapon = weapons_.weapon1_identifier; + status = weapons_.weapon1_status; + break; + case 1: weapon = weapons_.weapon2_identifier; + status = weapons_.weapon2_status; + break; + case 2: weapon = weapons_.weapon3_identifier; + status = weapons_.weapon3_status; + break; + case 3: weapon = weapons_.weapon4_identifier; + status = weapons_.weapon4_status; + break; + case 4: weapon = weapons_.weapon5_identifier; + status = weapons_.weapon5_status; + break; + } + + + Label status_label_ = (Label)weapons_table_.get (weapon); + + if (status_label_ != null) + status_label_.setText ((status == 1) ? ONLINE : OFFLINE); + else + { + if (count_ == 0) + this.removeAll (); + + count_++; + Label weapon_label_ = new Label (count_ + ". " + weapon, Label.LEFT); + status_label_ = new Label ((status == 1) ? ONLINE : OFFLINE, Label.RIGHT); + + status_label_.setFont (FONT_SMALL); + weapon_label_.setFont (FONT_SMALL); + weapon_label_.setForeground (BLUE); + + gbc_.gridx = 0; + gbc_.anchor = GridBagConstraints.WEST; + gbl_.setConstraints (weapon_label_, gbc_); + add (weapon_label_); + gbc_.gridx = 1; + gbc_.anchor = GridBagConstraints.EAST; + gbl_.setConstraints (status_label_, gbc_); + add (status_label_); + + gbc_.gridy++; + weapons_table_.put (weapon, status_label_); + } + + status_label_.setForeground ((status == 1) ? + Color.lightGray : + Color.darkGray); + } + + validate (); + } + } +} |