📄 managecontrol.new
字号:
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(PrintStream 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(PrintStream 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 { 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); 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); 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]); CheckboxArray[i].setState(mgDomain.generalTemplates[i]); 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"); Utils.add_component(this, OKbutton, gbl, gbc, 0, 2+half, 4, 1, 0, 0); // Window size pack(); } public boolean action(Event evt, Object arg) { if (evt.target==DNameText) { mgDomain.DomainName = ((String)arg).trim(); setTitle(mgDomain.DomainName); parent.setTitle(mgDomain.DomainName); return true; } else if (evt.target==OKbutton) { mgDomain.DomainName = DNameText.getText().trim(); if (mgDomain.DomainName.length() > 0) parent.setTitle(mgDomain.DomainName); dispose(); return true; } else if (evt.target instanceof Checkbox) { for (int i=0; i < Templates.numberGeneral; i++) if (evt.target==CheckboxArray[i]) mgDomain.generalTemplates[i] = CheckboxArray[i].getState(); return true; } else return super.action(evt, arg); } public boolean handleEvent(Event evt) { if (evt.id == Event.WINDOW_DESTROY && evt.target == this) { if (isEnabled()) dispose(); return true; } else return super.handleEvent(evt); } private ManageDomain mgDomain; private Frame parent; private TextField DNameText; private TextField mailText; private Panel addrPanel; private Checkbox CheckboxArray[]; private Button OKbutton;} // GeneralSettings// This dialog box provides a selection list for editing notification levelsclass NotificationSelect extends Dialog implements Refreshable { public NotificationSelect(ManageDomain md, ManageControl p) { super(p, "Notification Levels", true); p.setCursor(Frame.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"); 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); Utils.add_component(this, new Spacer(1,1), gbl, gbc, 3, 4, 1, 1, 100, 100); pack(); p.setCursor(Frame.DEFAULT_CURSOR); } public boolean action(Event evt, Object arg) { if (evt.target == OKbutton) { dispose(); return true; } else if (evt.target == 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 true; } else if (evt.target == DeleteButton) { String str = nList.getSelectedItem(); if (str == null) return true; Notification not = Notification.getLevel(str, mgDomain.NLevels); if (not == null) return true; if (not.levelNumber < Notification.firstDynamic) { ErrorBox eb = new ErrorBox(parent, "Cannot delete static notification level!"); eb.show(); return true; }// !!! this doesn't work, cause we are in the event loop// OkCancelBox oc = new OkCancelBox(parent, "Deleting notification level "+str+".");// oc.setVisible(true);// if (oc.getAnswer() != OkCancelBox.OK)// return true; mgDomain.NLevels.removeElement(not); refresh(); return true; } else if (evt.target == ChangeButton) { String str = nList.getSelectedItem(); if (str == null) return true; Notification not = Notification.getLevel(str, mgDomain.NLevels); if (not == null) return true; not.edit(this, parent, mgDomain, false); return true; } else return super.action(evt, arg); } public void refresh() { parent.setCursor(Frame.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(Frame.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 { public MacroSelect(ManageDomain md, ManageControl p) { super(p, "Address and Service Macros", true); p.setCursor(Frame.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"); 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); Utils.add_component(this, new Spacer(1,1), gbl, gbc, 3, 4, 1, 1, 100, 100); pack(); p.setCursor(Frame.DEFAULT_CURSOR); } public boolean action(Event evt, Object arg) { if (evt.target == OKbutton) { dispose(); return true; } else if (evt.target == 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 true; } else if (evt.target == DeleteButton) { String str = nList.getSelectedItem(); if (str == null) return true; Macro m = Macro.getMacro(str, mgDomain.Macros); if (m == null) return true; if (m.macroNumber > Macro.firstDynamic) { ErrorBox eb = new ErrorBox(parent, "Cannot delete static macro!"); eb.show(); return true; }// !!! this doesn't work, cause we are in the event loop// OkCancelBox oc = new OkCancelBox(parent, "Deleting macro "+str+".");// oc.setVisible(true);// if (oc.getAnswer() != OkCancelBox.OK)// return true; mgDomain.Macros.removeElement(m); refresh(); return true; } else if (evt.target == ChangeButton) { String str = nList.getSelectedItem(); if (str == null) return true; Macro m = Macro.getMacro(str, mgDomain.Macros); if (m == null) return true; m.edit(this, parent, mgDomain, false); return true; } else return super.action(evt, arg); } public void refresh() { parent.setCursor(Frame.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(Frame.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 + -