Back to index

wims  3.65+svn20090927
ObjectsEditDialog.java
Go to the documentation of this file.
00001 package rene.zirkel.dialogs;
00002 
00003 // file: PointObject.java
00004 
00005 import java.awt.*;
00006 import java.awt.event.*;
00007 import java.util.*;
00008 
00009 import rene.gui.*;
00010 import rene.zirkel.*;
00011 import rene.zirkel.objects.*;
00012 
00020 public class ObjectsEditDialog extends HelpCloseDialog
00021        implements IconBarListener
00022 {      protected TextField Name,Text;
00023        protected IconBar ColorIB,ThicknessIB,TypeIB,IB;
00024        protected Frame F;
00025        Button OK;
00026        Vector V;
00027        
00028        public ObjectsEditDialog (Frame f, Vector v)
00029        {      super(f,Zirkel.name("objectsedit.title"),true);
00030               F=f;
00031               V=v;
00032               setLayout(new BorderLayout());
00033               
00034               // edit options:
00035               Panel center=new MyPanel();
00036               center.setLayout(new GridLayout(0,1));
00037 
00038               ColorIB=new IconBar(F);
00039               ColorIB.addToggleGroupLeft("color",6);
00040               Enumeration e=V.elements();
00041               int col=((ConstructionObject)e.nextElement()).getColorIndex();
00042               boolean unique=true;
00043               while (e.hasMoreElements())
00044               {      if (((ConstructionObject)e.nextElement()).getColorIndex()
00045                             !=col)
00046                      {      unique=false; break;
00047                      }
00048               }
00049               if (unique) ColorIB.setState("color"+col,true);
00050               center.add(ColorIB);
00051 
00052               ThicknessIB=new IconBar(F);
00053               ThicknessIB.addToggleGroupLeft("thickness",4);
00054               e=V.elements();
00055               int th=((ConstructionObject)e.nextElement()).getColorType();
00056               unique=true;
00057               while (e.hasMoreElements())
00058               {      if (((ConstructionObject)e.nextElement()).getColorType()
00059                             !=th)
00060                      {      unique=false; break;
00061                      }
00062               }
00063               if (unique) ThicknessIB.setState("thickness"+th,true);
00064               center.add(ThicknessIB);
00065 
00066               TypeIB=new IconBar(F);
00067               TypeIB.addToggleGroupLeft("type",6);
00068               e=V.elements();
00069               unique=true;
00070               try
00071               {      int ty=((PointObject)e.nextElement()).getType();
00072                      while (e.hasMoreElements())
00073                      {      if (((PointObject)e.nextElement()).getType()
00074                                    !=ty)
00075                             {      unique=false; break;
00076                             }
00077                      }
00078                      if (unique) TypeIB.setState("thickness"+ty,true);
00079                      center.add(TypeIB);
00080               }
00081               catch (ClassCastException ex) { TypeIB=null; }
00082 
00083               IB=new IconBar(F);
00084               IB.setIconBarListener(this);
00085               IB.addToggleLeft("hide");
00086               e=V.elements();
00087               boolean flag=((ConstructionObject)e.nextElement()).isHidden();
00088               unique=true;
00089               while (e.hasMoreElements())
00090               {      if (((ConstructionObject)e.nextElement()).isHidden()
00091                             !=flag)
00092                      {      unique=false; break;
00093                      }
00094               }
00095               if (unique) IB.setState("hide",flag);
00096               else IB.unset("hide");
00097               IB.addSeparatorLeft();
00098               IB.addToggleLeft("showname");
00099               e=V.elements();
00100               flag=((ConstructionObject)e.nextElement()).showName();
00101               unique=true;
00102               while (e.hasMoreElements())
00103               {      if (((ConstructionObject)e.nextElement()).showName()
00104                             !=flag)
00105                      {      unique=false; break;
00106                      }
00107               }
00108               if (unique) IB.setState("showname",flag);
00109               else IB.unset("showname");
00110               IB.addToggleLeft("showvalue");
00111               e=V.elements();
00112               flag=((ConstructionObject)e.nextElement()).showValue();
00113               unique=true;
00114               while (e.hasMoreElements())
00115               {      if (((ConstructionObject)e.nextElement()).showValue()
00116                             !=flag)
00117                      {      unique=false; break;
00118                      }
00119               }
00120               if (unique) IB.setState("showvalue",flag);
00121               else IB.unset("showvalue");
00122               IB.addSeparatorLeft();
00123               IB.addToggleLeft("large");
00124               e=V.elements();
00125               flag=((ConstructionObject)e.nextElement()).isLarge();
00126               unique=true;
00127               while (e.hasMoreElements())
00128               {      if (((ConstructionObject)e.nextElement()).isLarge()
00129                             !=flag)
00130                      {      unique=false; break;
00131                      }
00132               }
00133               if (unique) IB.setState("large",flag);
00134               else IB.unset("large");
00135               IB.addToggleLeft("bold");
00136               e=V.elements();
00137               flag=((ConstructionObject)e.nextElement()).isBold();
00138               unique=true;
00139               while (e.hasMoreElements())
00140               {      if (((ConstructionObject)e.nextElement()).isBold()
00141                             !=flag)
00142                      {      unique=false; break;
00143                      }
00144               }
00145               if (unique) IB.setState("bold",flag);
00146               else IB.unset("bold");
00147               IB.addSeparatorLeft();
00148               IB.addToggleLeft("isback");
00149               e=V.elements();
00150               flag=((ConstructionObject)e.nextElement()).isBack();
00151               unique=true;
00152               while (e.hasMoreElements())
00153               {      if (((ConstructionObject)e.nextElement()).isBack()
00154                             !=flag)
00155                      {      unique=false; break;
00156                      }
00157               }
00158               if (unique) IB.setState("isback",flag);
00159               else IB.unset("isback");
00160               center.add(IB);
00161               
00162               add("Center",new Panel3D(center));
00163               
00164               // button panel:
00165               Panel p=new MyPanel();
00166               OK=new ButtonAction(this,Zirkel.name("edit.ok"),"OK");
00167               p.add(OK);
00168               p.add(new ButtonAction(this,Zirkel.name("edit.cancel"),"Close"));
00169               addHelp(p,"edit");
00170               
00171               add("South",new Panel3D(p));
00172               
00173               pack();
00174               center(f);
00175        }
00176 
00177        public void focusGained (FocusEvent e)
00178        {      OK.requestFocus();
00179        }
00180        
00181        public void doAction (String o)
00182        {      if (o.equals("OK"))
00183               {      Enumeration e=V.elements();
00184                      while (e.hasMoreElements())
00185                      {      ConstructionObject O=(ConstructionObject)e.nextElement();
00186                             if (IB.isSet("hide")) O.setHidden(IB.getState("hide"));
00187                             O.setColor(ColorIB.getToggleState("color"));
00188                             O.setColorType(ThicknessIB.getToggleState("thickness"));
00189                             if (IB.isSet("showname")) O.setShowName(IB.getState("showname"));
00190                             if (IB.isSet("isback")) O.setBack(IB.getState("isback"));
00191                             if (IB.isSet("showvalue")) O.setShowValue(IB.getState("showvalue"));
00192                             if (IB.isSet("large")) O.setLarge(IB.getState("large"));
00193                             if (IB.isSet("bold")) O.setBold(IB.getState("bold"));
00194                             if (TypeIB!=null && O instanceof PointObject &&
00195                                           TypeIB.getToggleState("type")>=0)
00196                                    ((PointObject)O).setType(TypeIB.getToggleState("type"));
00197                      }
00198                      doclose();
00199               }
00200               else super.doAction(o);
00201        }
00202 
00203        public void iconPressed (String o)
00204        {
00205        }
00206 }