⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 managecontrol.java

📁 sifi-0.1.6.tar.gz 出自http://www.ifi.unizh.ch/ikm/SINUS/firewall/ 一个linux的防火墙工具。
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
      UserDialog.ErrorBox("Error writing file! ("+Communicator.commError+")");    }    finally {      bb.done();    parent.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));    parent.setEnabled(true);    }  }  /**   * generate configuration report   */  private void writeConfigReport(PrintWriter ps) {    ps.println("<html><head><title>sf Configuration Report</title></head><body>");    ps.println("<h1>sf Configuration Report</h1>");    ps.println("<p>Report generated "+(new Date()).toString());    if (mgDomain.DomainName.length() > 0)      ps.println("<h2>Management domain <i>"+mgDomain.DomainName+"</i></h2>");    Enumeration en = mgDomain.getTopology().getAllVertices();    ManageObject mo;    Host h;    Net n;    Internet in;    while (en.hasMoreElements()) {      mo = (ManageObject)en.nextElement();      if (mo instanceof Host) {        h = (Host)mo;        ps.println("<h3><a name="+mo.identString()+">Host <i>"+h.objectID+"</i></a></h3>");        ps.println("<ul>");        if (h.level == 1)          ps.println("<li>Level: "+h.level+" firewall hop to nearest Internet connection");        else if (h.level >= 0)          ps.println("<li>Level: "+h.level+" firewall hops to nearest Internet connection");        else          ps.println("<li>No Internet connection");        if (h.isFirewall)          if (h.transparent)            ps.println("<li>Firewall (allows packets from outside to outside)");          else            ps.println("<li>Firewall (blocks packets from outside to outside)");        if (h.isServer && h.publicServer)          ps.println("<li>Server (public access)");        if (h.isServer && !h.publicServer)          ps.println("<li>Server (internal access only)");        ps.println("<li>Addresses:");        writeAddresses(ps, h.HostAddresses);        if (h.isFirewall) {          ps.println("<li>Internalnets:");          writeAddresses(ps, h.internalAddresses);        }        writeNeighbors(ps, mo);        ps.println("</ul>");      }      else if (mo instanceof Net) {        n = (Net)mo;        ps.println("<h3><a name="+mo.identString()+">Network <i>"+n.objectID+"</i></a></h3>");        ps.println("<ul>");        if (n.level == 1)          ps.println("<li>Level: "+n.level+" firewall hop to nearest Internet connection");        else if (n.level >= 0)          ps.println("<li>Level: "+n.level+" firewall hops to nearest Internet connection");        else          ps.println("<li>No Internet connection");        ps.println("<li>Addresses:");        writeAddresses(ps, n.NetAddresses);        writeNeighbors(ps, mo);        ps.println("</ul>");      }      else if (mo instanceof Internet) {        in = (Internet)mo;      }      else {        ps.println("<h3><a name="+mo.identString()+">Unknown object: <i>"+mo+"</i></a></h3>");      }    }    ps.println("</body></html>");  }  private void writeAddresses(PrintWriter ps, AddrList al) {    if (al==null)      return;    Enumeration en = al.getAddresses().elements();    AddrObj ao;    ps.println("<ul>");    while (en.hasMoreElements()) {      ao = (AddrObj)en.nextElement();      ps.println("<li><tt>"+ao.toString()+"</tt>");    }    ps.println("</ul>");  }  private void writeNeighbors(PrintWriter ps, ManageObject mo) {    Enumeration en = mgDomain.getTopology().findNeighbors(mo);    ManageObject n;    ps.println("<li>Connected to:<ul>");    while (en.hasMoreElements()) {      n = (ManageObject)en.nextElement();      if (n.objectID.length() > 0)        if (n instanceof Internet)          ps.println("<li>"+n.objectID);        else          ps.println("<li><a href=\"#"+n.identString()+"\">"+n.objectID+"</a>");      else if (n instanceof Host)        ps.println("<li><a href=\"#"+n.identString()+"\">Unnamed host"+"</a>");      else if (n instanceof Net)        ps.println("<li><a href=\"#"+n.identString()+"\">Unnamed network"+"</a>");      else        ps.println("<li><a href=\"#"+n.identString()+"\">Unnamed object"+"</a>");    }    ps.println("</ul>");  }  public static final int REPORT_CONFIG = 1; // configuration report  private ManageDomain mgDomain;  private Frame parent;  private BusyBox busybox;  private int reportType;} // ReportThread// This dialog box is used to enter the general access profile// and the configuration client addressesclass GeneralSettings	extends Dialog	implements ActionListener, TextListener, ItemListener {  public GeneralSettings(Frame p, String title, ManageDomain md) {    super(p, title, true);    parent = p;    mgDomain = md;    GridBagLayout gbl = new GridBagLayout();    GridBagConstraints gbc = new GridBagConstraints();    gbc.fill = GridBagConstraints.BOTH;    gbc.insets = new Insets(5,5,5,5);    setLayout(gbl);    // Name panel    Utils.add_component(this, new Label("Name: "), gbl, gbc, 0, 0, 1, 1, 0, 0);    DNameText = new TextField(mgDomain.DomainName);	 DNameText.addTextListener(this);    Utils.add_component(this, DNameText, gbl, gbc, 1, 0, 3, 1, 100, 0);    // Default mail addresses    Utils.add_component(this, new Label("Default mail:"),	 													gbl, gbc, 0, 1, 1, 1, 0, 0);    mailText = new TextField(mgDomain.defaultMail);	 mailText.addTextListener(this);    Utils.add_component(this, mailText, gbl, gbc, 1, 1, 3, 1, 100, 0);    int half = (int)Math.floor(((double)Templates.numberGeneral / 2.0) + 0.5);    // Address Panel (configuration clients)    addrPanel = mgDomain.configClients.editPanel();    Utils.add_component(this, new Label("Configuration clients:"),	 													gbl, gbc, 0, 2, 2, 1, 0, 0);    Utils.add_component(this, addrPanel, gbl, gbc, 0, 3, 2, half-1, 100, 100);    // Checkboxes    gbc.fill = GridBagConstraints.NONE;    gbc.anchor = GridBagConstraints.NORTHWEST;    CheckboxArray = new Checkbox[Templates.numberGeneral];    for (int i=0; i < Templates.numberGeneral; i++) {      CheckboxArray[i] = new Checkbox(Templates.prompt[i],													mgDomain.generalTemplates[i]);      CheckboxArray[i].addItemListener(this);      if (i < half)        Utils.add_component(this, CheckboxArray[i], gbl, gbc,                             2, i+2, 1, 1, 0, 0);      else        Utils.add_component(this, CheckboxArray[i], gbl, gbc,                             3, i+2-half, 1, 1, 0, 0);    }    // Buttons    OKbutton = new Button("OK");	 OKbutton.addActionListener(this);    Utils.add_component(this, OKbutton, gbl, gbc, 0, 2+half, 4, 1, 0, 0);    // Window size    pack();	 addWindowListener(new GSAdapter());  } // GeneralSettings  class GSAdapter extends WindowAdapter {  	public void windowClosing(WindowEvent we) {      if (isEnabled())        dispose();	}  } // Class GSAdapter	// Eventhandling routines  public void textValueChanged(TextEvent te) {  Object source = te.getSource();  	if (source == DNameText) {      mgDomain.DomainName = (DNameText.getText().trim());      setTitle(mgDomain.DomainName);      parent.setTitle(mgDomain.DomainName);      return;		}	} // textValueChanged  public void actionPerformed(ActionEvent ae) {  Object source = ae.getSource();	 if (source == OKbutton) {		mgDomain.DomainName = DNameText.getText().trim();		if (mgDomain.DomainName.length() > 0)		  parent.setTitle(mgDomain.DomainName);		dispose();		return;    }	} // actionPerformed	public void itemStateChanged(ItemEvent ie) {	Object source = ie.getSource();   if (source instanceof Checkbox) {      for (int i=0; i < Templates.numberGeneral; i++)         if (source==CheckboxArray[i])          mgDomain.generalTemplates[i] = CheckboxArray[i].getState();      return;    }  } // itemStateChanged  private ManageDomain mgDomain;  private Frame parent;	private TextField DNameText;	private TextField mailText;	private Panel addrPanel;	private Checkbox CheckboxArray[]; 	private Button OKbutton;} // Class GeneralSettings// This dialog box provides a selection list for editing notification levelsclass NotificationSelect	extends Dialog	implements Refreshable, ActionListener {  public NotificationSelect(ManageDomain md, ManageControl p) {    super(p, "Notification Levels", true);    p.setCursor(new Cursor(Cursor.WAIT_CURSOR));    mgDomain = md;    parent = p;    gbl = new GridBagLayout();    gbc = new GridBagConstraints();    gbc.fill = GridBagConstraints.BOTH;    gbc.insets = new Insets(3,3,3,3);    setLayout(gbl);    nList = new List(15, false);    Notification.constructList(nList, mgDomain.NLevels);    OKbutton = new Button("OK");    AddButton = new Button("Add new level");    DeleteButton = new Button("Delete");    ChangeButton = new Button("Change");	 OKbutton.addActionListener(this);	 AddButton.addActionListener(this);	 DeleteButton.addActionListener(this);	 ChangeButton.addActionListener(this);    Utils.add_component(this, nList, gbl, gbc, 0, 0, 3, 15, 100, 100);    Utils.add_component(this, OKbutton, gbl, gbc, 3, 0, 1, 1, 0, 0);    Utils.add_component(this, AddButton, gbl, gbc, 3, 1, 1, 1, 0, 0);    Utils.add_component(this, DeleteButton, gbl, gbc, 3, 2, 1, 1, 0, 0);    Utils.add_component(this, ChangeButton, gbl, gbc, 3, 3, 1, 1, 0, 0);    pack();    p.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));  }  public void actionPerformed(ActionEvent ae) {  Object source = ae.getSource();	// Process OKbutton    if (source == OKbutton) {      dispose();      return;    }	// Process AddButton    else if (source == AddButton) {      Notification ln;      try {        ln = (Notification)mgDomain.NLevels.lastElement();      }      catch (NoSuchElementException e) {        ln = null;      }      Notification not = new Notification        (ln == null ? Notification.firstDynamic : ln.levelNumber + 1);      mgDomain.NLevels.addElement(not);      not.edit(this, parent, mgDomain, true);      return;    }	// Process DeleteButton    else if (source == DeleteButton) {      String str = nList.getSelectedItem();      if (str == null)        return;      Notification not = Notification.getLevel(str, mgDomain.NLevels);      if (not == null)        return;      if (not.levelNumber < Notification.firstDynamic) {        UserDialog.ErrorBox("Cannot delete static notification level!");        return;      }// !!! this doesn't work, cause we are in the event loop//      OkCancelBox oc = new OkCancelBox(parent, "Deleting notification level "+str+".");//      oc.show();//      if (oc.getAnswer() != OkCancelBox.OK)//        return true;      mgDomain.NLevels.removeElement(not);      refresh();      return;    }	 	 // Process ChangeButton    else if (source == ChangeButton) {      String str = nList.getSelectedItem();      if (str == null)        return;      Notification not = Notification.getLevel(str, mgDomain.NLevels);      if (not == null)        return;      not.edit(this, parent, mgDomain, false);      return;    }  } // actionPerformed  public void refresh() {    parent.setCursor(new Cursor(Cursor.WAIT_CURSOR));    remove(nList);    nList = new List(15, false);    Notification.constructList(nList, mgDomain.NLevels);    Utils.add_component(this, nList, gbl, gbc, 0, 0, 3, 15, 100, 100);    validate();    parent.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));  }  private ManageDomain mgDomain;  private ManageControl parent;   private GridBagLayout gbl;  private GridBagConstraints gbc;  private List nList;  private Button OKbutton;  private Button AddButton;  private Button DeleteButton;  private Button ChangeButton;} // NotificationSelect// This dialog box implements a selection list for editing macrosclass MacroSelect	extends Dialog	implements Refreshable, ActionListener {  public MacroSelect(ManageDomain md, ManageControl p) {    super(p, "Address and Service Macros", true);    p.setCursor(new Cursor(Cursor.WAIT_CURSOR));    mgDomain = md;    parent = p;    gbl = new GridBagLayout();    gbc = new GridBagConstraints();    gbc.fill = GridBagConstraints.BOTH;    gbc.insets = new Insets(3,3,3,3);    setLayout(gbl);    nList = new List(15, false);    Macro.constructList(nList, mgDomain.Macros);    OKbutton = new Button("OK");    AddButton = new Button("Add new macro");    DeleteButton = new Button("Delete");    ChangeButton = new Button("Change");	 OKbutton.addActionListener(this);	 AddButton.addActionListener(this);	 DeleteButton.addActionListener(this);	 ChangeButton.addActionListener(this);    Utils.add_component(this, nList, gbl, gbc, 0, 0, 3, 15, 100, 100);    Utils.add_component(this, OKbutton, gbl, gbc, 3, 0, 1, 1, 0, 0);    Utils.add_component(this, AddButton, gbl, gbc, 3, 1, 1, 1, 0, 0);    Utils.add_component(this, DeleteButton, gbl, gbc, 3, 2, 1, 1, 0, 0);    Utils.add_component(this, ChangeButton, gbl, gbc, 3, 3, 1, 1, 0, 0);    pack();    p.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));  }  public void actionPerformed(ActionEvent ae) {  Object source = ae.getSource();	// Process OKbutton    if (source == OKbutton) {      dispose();      return;    }	 // Process AddButton    else if (source == AddButton) {      Macro ln;      try {        ln = (Macro)mgDomain.Macros.lastElement();      }      catch (NoSuchElementException e) {        ln = null;      }      Macro m = new Macro        (ln == null ? Macro.firstDynamic : ln.macroNumber - 1);      mgDomain.Macros.addElement(m);      m.edit(this, parent, mgDomain, true);      return;    }	 // Process DeleteButton    else if (source == DeleteButton) {      String str = nList.getSelectedItem();      if (str == null)        return;      Macro m = Macro.getMacro(str, mgDomain.Macros);      if (m == null)        return;      if (m.macroNumber > Macro.firstDynamic) {        UserDialog.ErrorBox("Cannot delete static macro!");        return;      }// !!! this doesn't work, cause we are in the event loop//      OkCancelBox oc = new OkCancelBox(parent, "Deleting macro "+str+".");//      oc.show();//      if (oc.getAnswer() != OkCancelBox.OK)//        return true;      mgDomain.Macros.removeElement(m);      refresh();      return;    }	 // Process ChangeButton    else if (source == ChangeButton) {      String str = nList.getSelectedItem();      if (str == null)        return;      Macro m = Macro.getMacro(str, mgDomain.Macros);      if (m == null)        return;      m.edit(this, parent, mgDomain, false);      return;    }  } // actionPerformed  public void refresh() {    parent.setCursor(new Cursor(Cursor.WAIT_CURSOR));    remove(nList);    nList = new List(15, false);    Macro.constructList(nList, mgDomain.Macros);    Utils.add_component(this, nList, gbl, gbc, 0, 0, 3, 15, 100, 100);    validate();    parent.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));  }  private ManageDomain mgDomain;  private ManageControl parent;   private GridBagLayout gbl;  private GridBagConstraints gbc;  private List nList;  private Button OKbutton;  private Button AddButton;  private Button DeleteButton;  private Button ChangeButton;} // MacroSelect

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -