📄 net.java
字号:
continue; } n.processText(text, data); } tcnt++; } com.d("Behandler listRouterLinkText", 2); tcnt=0; while ( (tList = (String[])lRouterLinkText.get("t"+tcnt)) != null) { String text = tList[1]; for (int i=2; i < tList.length; i++) { String[] data = (String[])lRouterLinkText.get(tList[i]); if (data == null) { com.d("ERROR in buildBynett(), linkid "+tList[i]+" in t"+tcnt+" is not found in list, check vPServer", 2); continue; } Link l = (Link)lh.get(tList[i]); if (l == null) { com.d("ERROR in buildBynett(), could not find link with id "+tList[i], 2); continue; } String pText = l.processText(text, data); } tcnt++; } } private int[] topRowLayout(int topLayoutCnt) { int CANVAS_X = 500; int CANVAS_Y = 500; int SPACE_X = 25; int SPACE_Y = 0; int NUM_ROW = CANVAS_X / (Nettel.sizeX + SPACE_X); int TOP_X = 10; int TOP_Y = 25; int x = TOP_X + (topLayoutCnt % NUM_ROW) * (Nettel.sizeX + SPACE_X); int y = TOP_Y + (topLayoutCnt / NUM_ROW) * (Nettel.sizeY + SPACE_Y); return new int[] { x, y }; } public void applyLast(Hashtable lRouterText, Hashtable lRouterLinkText) { ApplyLoadThread t = new ApplyLoadThread(lRouterText, lRouterLinkText); t.start(); } class ApplyLoadThread extends Thread { Hashtable lRouterText, lRouterLinkText; public ApplyLoadThread(Hashtable h1, Hashtable h2) { lRouterText = h1; lRouterLinkText = h2; } public void run() { com.d("Henter last-data", 1); com.d("----------------", 1); com.getMainPanel().setWaitCursor(); Hashtable h = com.getInput().getDefaultLast(); if (h == null) return; Hashtable boksLast = (Hashtable)h.get("listBoxLoad"); com.d("boksLast size: " + boksLast.size(), 2); // Sett boks-last Enumeration e = boksLast.elements(); while (e.hasMoreElements()) { String[] s = (String[])e.nextElement(); if (!nh.containsKey(s[0])) continue; Nettel n = (Nettel)nh.get(s[0]); try { n.setNettelLast( Double.valueOf(s[1]).doubleValue() ); } catch (NumberFormatException exp) { } } Hashtable linkOctetLast = (Hashtable)h.get("listLinkLoad"); com.d("linkOctetLast size: " + linkOctetLast.size(), 2); // Sett link-last e = linkOctetLast.elements(); while (e.hasMoreElements()) { String[] s = (String[])e.nextElement(); if (!lh.containsKey(s[0])) continue; Link l = (Link)lh.get(s[0]); com.d(" Satt last: " + Double.valueOf(s[1]).doubleValue() , 5); l.setLast( Double.valueOf(s[1]).doubleValue() ); l.recalc(); if (s.length == 3) { // Det er gitt last begge veier her if (lh.containsKey("-"+s[0]) ) { // Vi forventet også last begge veier, så det er riktig l = (Link)lh.get("-"+s[0]); l.setLast( Double.valueOf(s[2]).doubleValue() ); l.recalc(); } else { // Vi forventet ikke last andre veien, men finn likevel linken l = l.getLinkOtherWay(); if (l != null) { l.setLast( Double.valueOf(s[2]).doubleValue() ); l.recalc(); } else { com.d(" Last funnet andre veien, men fant ikke linken tilbake!!", 4); } } } } applyText(lRouterText, lRouterLinkText); repaint(); com.getMainPanel().setDefaultCursor(); } } public void applyLast2() { com.d("Henter last-data", 1); com.d("----------------", 1); com.getMainPanel().setWaitCursor(); Hashtable h = com.getInput().getDefaultLast(); Hashtable gwportOctetLast = (Hashtable)h.get("listGwportOctetLast"); Hashtable swportOctetLast = (Hashtable)h.get("listSwportOctetLast"); Hashtable boksCPULast = (Hashtable)h.get("listBoksCPULast"); Hashtable boksBakplanLast = (Hashtable)h.get("listBoksBakplanLast"); if (gwportOctetLast == null) gwportOctetLast = new Hashtable(); if (swportOctetLast == null) swportOctetLast = new Hashtable(); if (boksCPULast == null) boksCPULast = new Hashtable(); if (boksBakplanLast == null) boksBakplanLast = new Hashtable(); com.d("gwportOctetLast size: " + gwportOctetLast.size(), 2); com.d("swportOctetLast size: " + swportOctetLast.size(), 2); com.d("boksCPULast size: " + boksCPULast.size(), 2); com.d("boksBakplanLast size: " + boksBakplanLast.size(), 2); // Sett boks-last Hashtable[] boksLast = { boksCPULast, boksBakplanLast }; for (int i=0; i < boksLast.length; i++) { Enumeration e = boksLast[i].elements(); while (e.hasMoreElements()) { String[] s = (String[])e.nextElement(); if (!nh.containsKey(s[0])) continue; Nettel n = (Nettel)nh.get(s[0]); n.setNettelLast( Double.valueOf(s[1]).doubleValue() ); } } // Sett link-last Hashtable[] linkLast = { gwportOctetLast, swportOctetLast }; for (int i=0; i < linkLast.length; i++) { Enumeration e = linkLast[i].elements(); while (e.hasMoreElements()) { String[] s = (String[])e.nextElement(); if (!lh.containsKey(s[0])) continue; Link l = (Link)lh.get(s[0]); //com.d(" Satt last: " + Double.valueOf(s[1]).doubleValue() , 5); l.setLast( Double.valueOf(s[1]).doubleValue() ); l.recalc(); if (s.length == 3) { // Det er gitt last begge veier her if (lh.containsKey("-"+s[0]) ) { // Vi forventet også last begge veier, så det er riktig l = (Link)lh.get("-"+s[0]); l.setLast( Double.valueOf(s[2]).doubleValue() ); l.recalc(); } else { // Vi forventet ikke last andre veien, men finn likevel linken l = l.getLinkOtherWay(); if (l != null) { l.setLast( Double.valueOf(s[2]).doubleValue() ); l.recalc(); } else { com.d(" Last funnet andre veien, men fant ikke linken tilbake!!", 4); } } } } } com.getMainPanel().setDefaultCursor(); } public void getNettelLinks(Nettel n) { com.d("Viser sentrisk rundt: " + n.getName() + " Boksid: " + n.getBoksid() + " Type: " + n.getKat() + " Vlan: " + n.getVlan(), 2); // Klargjør for å bygge opp "verden" på nytt nh.clear(); lh.clear(); n.transform(); bynettView = false; // struktur-data String[] param; { Vector v = new Vector(); if (!setConfig) v.addElement("listConfig"); if (!com.getLeft().getNetFinalized()) v.addElement("listRouterGroups"); String[] def = { "listBoks" }; param = new String[v.size()+def.length]; for (int i=0; i < v.size(); i++) param[i] = (String)v.elementAt(i); for (int i=0; i < def.length; i++) param[v.size()+i] = def[i]; } String kat = (n.getKat().length() > 0) ? "&kat="+n.getKat() : ""; Hashtable h = com.getInput().fetch(param, "boksid="+n.getBoksid()+kat, Input.vPServerURL, String.valueOf(n.getBoksid()) ); if (!setConfig) { Hashtable lConfig = (Hashtable)h.get("listConfig"); setConfig(lConfig); } if (!com.getLeft().getNetFinalized()) { // Legg til gruppenavnet til GUI-menyen Enumeration e = ((Hashtable)h.get("listRouterGroups")).elements(); while (e.hasMoreElements()) { String[] s = (String[])e.nextElement(); if (s.length <= 4 && !s[0].equals("0")) continue; // Det er ingen bokser i denne gruppen // Legg til gruppenavnet til GUI-menyen com.getLeft().addNettNavn(s[1]); } com.getLeft().addNettNavn(null); // Listen blir sortert og lukket } Hashtable lNettel = (Hashtable)h.get("listBoks"); Hashtable lNettelLinks = (Hashtable)h.get("listBoksLinks"); Hashtable lNettelLinkInfo = (Hashtable)h.get("listBoksLinkInfo"); Hashtable lLinkVlans = (Hashtable)h.get("listLinkVlans"); Hashtable lVlanNames = (Hashtable)h.get("listVlanNames"); Hashtable vlanSet = new Hashtable(); if (lNettel == null) lNettel = new Hashtable(); if (lNettelLinks == null) lNettelLinks = new Hashtable(); if (lNettelLinkInfo == null) lNettelLinkInfo = new Hashtable(); if (lLinkVlans == null) lLinkVlans = new Hashtable(); if (lVlanNames == null) lVlanNames = new Hashtable(); // Fix senter boks { String[] boksInfo = (String[])lNettel.get(n.getBoksidS()); if (boksInfo != null) { // Lag enhet com.d("Oppdaterer senter-nettel: " + n.getName(), 3); nh.put(boksInfo[0], n); n.setName(boksInfo[1]); n.setKat(boksInfo[2]); } else { com.d("Error, kan ikke oppdaterer senter-nettel, boksid " + n.getBoksidS() + " finnes ikke i svar fra server.", 3); } } // Sjekk om vi skal vise et bestemt vlan eller alle (kun på gw-nivå) visVlan = n.getVlan(); boolean selectVlan = !n.getKat().equalsIgnoreCase("gw"); if (selectVlan && visVlan == 0) { // Vlan ikke spesifisert, da tar vi bare det første over 1 hvis det eksisterer, ellers 1 Enumeration e = lVlanNames.elements(); while (e.hasMoreElements()) { String[] s = (String[])e.nextElement(); int v = Integer.parseInt(s[0]); com.d(" found vlan: " + v, 1); if (v != 1 && (v < visVlan || visVlan == 0)) visVlan = v; } if (visVlan == 0) { //com.d("ERROR! Can't happen, selectVlan && visVlan == 0, n.getName() = " + n.getName() + ", n.getKat() = " + n.getKat(), 2); //return; com.d("Notice: only vlan 1 found, so using that.", 2); visVlan = 1; } else { com.d("visVlan was 0, using lowest found: " + visVlan, 2); } n.setVlan(visVlan); } n.setDrawVlan(false); com.d("SelectVlan: " + selectVlan + " Vlan: " + visVlan, 3); // sett overskrift if (selectVlan) { String[] vlanName = (String[])lVlanNames.get(String.valueOf(visVlan)); if (vlanName != null) { setOverskrift(preHeader + n.getName() + " Vlan " + visVlan + " ("+vlanName[1]+")"); } else { com.d("Error, vlanName not found for vlan: " + visVlan, 2); setOverskrift(preHeader + n.getName() + " Vlan " + visVlan + " (unknown)"); } vlanVandring = true; } else { setOverskrift(preHeader + n.getName() ); vlanVandring = false; } // Gjør klar for å legge til enheter lnTop.reset(); lnBottom.reset(); // Det er kun en link til hver enhet, vi går derfor over linkene og legger til enhetene fortløpende Enumeration e = lNettelLinks.elements(); while (e.hasMoreElements()) { String[] s = (String[])e.nextElement(); if (s[0].equals("cn")) continue; if (s.length != 3) { com.d("Error, s[] has wrong length: " + s.length + ", s[0] = " + s[0],3); continue; } String linkIdUt = s[0]; String linkIdInn = s[1]; String boksidTo = s[2]; // Ser kun på vlan på utgående link String[] vlanA = (String[])lLinkVlans.get(linkIdUt); if (vlanA == null) { com.d("Error, vlan not found for linkIdUt: " + linkIdUt,4); continue; } StringTokenizer st = new StringTokenizer(vlanA[1], ","); // Som default velger vi bare det første vlanet String vlan = st.nextToken(); String retning = st.nextToken(); int curVlan = (vlan.equals("null")) ? -1 : Integer.parseInt(vlan); Vector curVlanList = new Vector(); if (selectVlan) { // Sjekk om enheten virkelig er på dette vlanet boolean ok = false; for (int j=1; j<vlanA.length; j++) { st = new StringTokenizer(vlanA[j], ","); vlan = st.nextToken(); vlanSet.put(vlan, vlan); curVlanList.addElement(vlan); if (visVlan == Integer.parseInt(vlan)) { ok=true; retning = st.nextToken(); } } if (!ok) continue; curVlan = visVlan; } com.d(" Behandler link til enhet: " + boksidTo,6); // Hent info om enhet String[] boksInfo = (String[])lNettel.get(boksidTo); if (boksInfo == null) continue; // Lag enhet com.d(" Legger til Nettel, id: " + boksInfo[0] + ", " + boksInfo[1] + ", type: " + boksInfo[2] + " Retning: " + retning + " Vlan: " + curVlan, 5); Nettel linkTo = new Nettel(com, Integer.parseInt(boksInfo[0]), boksInfo[1], boksInfo[2], "1", curVlan); if (!selectVlan) linkTo.setDrawVlan(true); // Skal tegne vlan-bokser på linkene når det er gw i sentrum if (boksInfo.length >= 4 && !boksInfo[3].equals("0")) { st = new StringTokenizer(boksInfo[3], ","); if (st.countTokens() == 2) { linkTo.setIsClickable(true); linkTo.setClickId(Integer.parseInt(st.nextToken()) ); linkTo.setClickKat(st.nextToken() ); } } // Legg til enheten i nh og i scrollbaren nh.put(boksInfo[0], linkTo); LayoutNettel layoutNettel = (retning.equals("o")) ? lnTop : lnBottom; layoutNettel.addNettel(linkTo); String[] linkInfoUt = (String[])lNettelLinkInfo.get(linkIdUt); String[] linkInfoInn = (String[])lNettelLinkInfo.get(linkIdInn); if (linkInfoUt == null || linkInfoInn == null) continue; // FIXME: Skal ikke være nødvendig if (linkInfoUt[1].equals("null")) linkInfoUt[1] = (!linkInfoInn[1].equals("null")) ? linkInfoInn[1] : "-1"; if (linkInfoInn[1].equals("null")) linkInfoInn[1] = linkInfoUt[1]; // Vi får oppgitt interface navn per link String ifNameUt = (linkInfoUt.length >= 3) ? linkInfoUt[2] : ""; String ifNameInn = (linkInfoInn.length >= 3) ? linkInfoInn[2] : ""; int last = -1; com.d(" Legger til link, utid: " + linkIdUt + ", innid: " + linkIdInn, 8); // link ut fra sentrum Link linkUt = n.addLink( linkTo, Integer.parseInt(linkIdUt), Double.valueOf(linkInfoUt[1]).doubleValue(), last, ifNameInn ); // link inn til sentrum Link linkInn = linkTo.addLink( n, Integer.parseInt(linkIdInn), Double.valueOf(linkInfoInn[1]).doubleValue(), last, ifNameInn ); // Hvis linken er blokkert, marker dette if (retning.equals("b")) { linkUt.setIsBlocked(true); linkUt.setDrawBlocked(true); linkInn.setIsBlocked(true); } // Legg til vlan, kun på linken ut if (curVlanList.size() > 1) { com.d(" curVlanList.size() = " + curVlanList.size(), 8); Com.quickSort(curVlanList); for (int i=0; i < curVlanList.size(); i++) { String vl = (String)curVlanList.elementAt(i); String[] vlanName = (String[])lVlanNames.get(vl); if (vlanName == null) continue; com.d(" Add vlan: "+vl, 9); //linkUt.addVlan(new Integer(vl)); linkUt.addVlan(vl + " ("+vlanName[1]+")"); } } // Legg linkene til linkhash lh.put(linkIdUt, linkUt); String dash = (linkIdInn.equals(linkIdUt)) ? "-" : ""; lh.put(dash+linkIdInn, linkInn); com.d(" Lagt til link OK", 8); } // while
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -