📄 mpdmon.java
字号:
memtable.update_data(data, memtypes); } if (datatypes.indexOf("myrinfo") != -1) { java.util.LinkedList columnnames = new java.util.LinkedList(); java.util.LinkedList data = new java.util.LinkedList(); java.util.LinkedList tempv = new java.util.LinkedList(); java.util.LinkedList myrtypes = new java.util.LinkedList(); Node tempnode; int index; columnnames.add("Node"); javax.swing.JPanel myrpanel = (javax.swing.JPanel)myrboxes.getContentPane().getComponent(0); for (int i = 0; i < myrpanel.getComponentCount() - 1; i++) { if (((javax.swing.JCheckBox)myrpanel.getComponent(i)).isSelected()) { myrtypes.add(((javax.swing.JCheckBox)myrpanel.getComponent(i)).getText()); } } for (int i = 0; i < nodepanel.getComponentCount(); i++) { if (((javax.swing.JCheckBox)nodepanel.getComponent(i)).isSelected()) { index = procs.indexOf(((javax.swing.JCheckBox)nodepanel.getComponent(i)).getText()); tempv.add(procs.getData(index, "name")); for (int j = 0; j < myrtypes.size(); j++) { tempv.add(procs.getData(index, (String)myrtypes.get(j))); } data.add(tempv.clone()); tempv.clear(); } } myrtypes.addFirst("Node"); myrtable.update_data(data, myrtypes); } repaint(); } private int findPort() { return Integer.parseInt(javax.swing.JOptionPane.showInputDialog(null, "Input MPD local port number", "Port input", javax.swing.JOptionPane.QUESTION_MESSAGE)); } private java.util.LinkedList getData(String id, int jobid) { Node tempNode = null; String writestring = "src=jmon cmd=moninfo_req vals="; java.util.LinkedList nodenames = new java.util.LinkedList(); java.util.LinkedList removed = new java.util.LinkedList(); java.util.TreeSet checkboxes = new java.util.TreeSet(); for (int i = 0; i < datatypes.size(); i++) { writestring = writestring.concat((String)datatypes.get(i)); } if (selecttype.equals("all")) writestring = writestring.concat(" monwhat=all"); else if (selecttype.equals("range")) writestring = writestring.concat(" monwhat=" + nodesstring); else writestring = writestring.concat(" monwhat=" + nodesstring); try { out.write(writestring + "\n"); out.flush(); } catch (Exception e) { System.err.println(e); } tempNode = nparser.parse(response(in)); while (!(tempNode.name).equals(id)) { nodenames.add(tempNode.name); if (!procs.contains(tempNode.name)) { procs.addProc(tempNode); checkboxes.add(new NodeCheckBox(tempNode.name, true)); // System.out.println("adding " + tempNode.name + " to checkboxes"); } else { procs.replaceProc(tempNode.name, tempNode); for (int i = 0; i < nodepanel.getComponentCount(); i++) { if (((NodeCheckBox)nodepanel.getComponent(i)).getText().equals(tempNode.name)) { checkboxes.add((NodeCheckBox)nodepanel.getComponent(i)); } } } tempNode = nparser.parse(response(in)); } if (!tempNode.emptyLastNode) { nodenames.add((String)tempNode.getProperty("name")); if (!procs.contains(tempNode.name)) { procs.addProc(tempNode); checkboxes.add(new NodeCheckBox(tempNode.name, true)); // System.out.println("adding " + tempNode.getProperty("name") + " to checkboxes"); } else { procs.replaceProc(tempNode.name, tempNode); for (int i = 0; i < nodepanel.getComponentCount(); i++) { if (((NodeCheckBox)nodepanel.getComponent(i)).getText().equals(tempNode.name)) { checkboxes.add((NodeCheckBox)nodepanel.getComponent(i)); } } } } if (procs.getSize() > nodenames.size()) { // System.out.println("procs.getSize(" + procs.getSize() + " is greater than nodenames.size(" + nodenames.size() + ")"); java.util.ArrayList procVector = procs.toArrayList(); for (int i = 0; i < procs.getSize(); i++) { // System.out.println("at index " + i + " in procs.getSize()"); if (!nodenames.contains(((Node)procVector.get(i)).name)) { // System.out.println(((Node)procVector.get(i)).name + " is not in nodenames so adding to removed"); removed.add(((Node)procVector.get(i)).name); // System.out.println("nodepanel.getComponentCount() is " + nodepanel.getComponentCount()); for (int j = 0; j < nodepanel.getComponentCount(); j++) { // System.out.println("at index " + j + " in nodepanel"); if (((javax.swing.JCheckBox)nodepanel.getComponent(j)).getText().equals(((Node)procVector.get(i)).name)) { nodepanel.remove(nodepanel.getComponent(j)); } } procs.remProc(((Node)procVector.get(i)).name); } } } nodepanel.removeAll(); java.util.Iterator it = checkboxes.iterator(); while (it.hasNext()) nodepanel.add((NodeCheckBox)it.next()); repaint(); if (removed.size() > 0) { // System.out.println("REMOVED A NODE!!"); } return removed; } private String getHostName() { return javax.swing.JOptionPane.showInputDialog(null, "Hostname?", "Hostname input", javax.swing.JOptionPane.QUESTION_MESSAGE); } public String response(java.io.InputStreamReader buf_in) { String retstring = ""; int bytes_read; char[] buf = new char[1]; boolean isReady = false; buf[0] = '\0'; try { isReady = buf_in.ready(); } catch (java.io.IOException e) { System.err.println("response: Communication error! aborting..."); System.exit(2); } while (!isReady) { try { isReady = buf_in.ready(); } catch (java.io.IOException e) { System.err.println("response: Communcation error! aborting..."); System.exit(2); } } while (isReady && buf[0] != '\n') { try { bytes_read = buf_in.read(buf); retstring = retstring.concat(new String(buf, 0, bytes_read)); } catch (java.io.IOException e) { System.err.println("response: Communication error! aborting..."); System.exit(2); } try { isReady = buf_in.ready(); } catch (java.io.IOException e) { System.err.println("response: Communication error! aborting..."); System.exit(2); } } return retstring; } private class WindowCloser extends java.awt.event.WindowAdapter { public void windowClosing(java.awt.event.WindowEvent e) { // System.out.println("WindowCloser::windowClosing: starting..."); try { out.write("src=jmon cmd=moninfo_conn_close\n"); out.flush(); in.close(); out.close(); mpdsock.close(); } catch (java.io.IOException i) { System.err.println("WindowCloser::windowClosing: Could not close streams!"); } System.exit(0); } } private class WindowResizer extends java.awt.event.ComponentAdapter { public void componentResized(java.awt.event.ComponentEvent e) { javax.swing.JFrame source = (javax.swing.JFrame)e.getSource(); java.awt.Dimension d = source.getSize(); java.awt.Insets i1 = source.getInsets(); java.awt.Dimension f = new java.awt.Dimension((int)d.getWidth() - (i1.left + i1.right) - 0, (int)d.getHeight() - (i1.top + i1.bottom) - 0); // System.out.println("got resize call, setting preferred size to " + f); main_tabpane.setPreferredSize(f); source.pack(); } } private class SliderListener implements javax.swing.event.ChangeListener { javax.swing.JLabel label; javax.swing.JPanel panel; public SliderListener(javax.swing.JPanel p, javax.swing.JLabel l) { panel = p; label = l; } public SliderListener(javax.swing.JLabel l) { label = l; } public void stateChanged(javax.swing.event.ChangeEvent e) { javax.swing.JSlider slider = (javax.swing.JSlider)e.getSource(); label.setText(Integer.toString(slider.getValue())); if (!slider.getValueIsAdjusting()) { if (panel != null) { for (int i = 0; i < panel.getComponentCount(); i++) { ((LoadGraph)panel.getComponent(i)).setSize(slider.getValue()); } } else { updatetime = slider.getValue(); } } } } private class NodeSelectListener implements java.awt.event.ActionListener { public void actionPerformed(java.awt.event.ActionEvent e) { String command = e.getActionCommand(); if (command.equals("nodes_all")) { rangetext.setEnabled(false); jobidtext.setEnabled(false); nodes_jobid_button.setEnabled(false); nodes_range_button.setEnabled(false); selecttype = "all"; } else if (command.equals("nodes_range")) { jobidtext.setEnabled(false); rangetext.setEnabled(true); nodes_jobid_button.setEnabled(false); nodes_range_button.setEnabled(true); } else if (command.equals("nodes_jobid")) { jobidtext.setEnabled(true); rangetext.setEnabled(false); nodes_jobid_button.setEnabled(true); nodes_range_button.setEnabled(false); } } } private class ReqTypeOKButtonListener implements java.awt.event.ActionListener { public void actionPerformed(java.awt.event.ActionEvent e) { String command = e.getActionCommand(); if (command.equals("range")) { selecttype = "range"; nodesstring = rangetext.getText(); } else { selecttype = "jobid"; nodesstring = jobidtext.getText(); } // System.out.println("selecttype set to " + selecttype); } } private class CheckBoxListener implements java.awt.event.ItemListener { private javax.swing.JCheckBox load; private javax.swing.JCheckBox mem; private javax.swing.JCheckBox myr; public CheckBoxListener(javax.swing.JCheckBox a, javax.swing.JCheckBox b, javax.swing.JCheckBox c) { load = a; mem = b; myr = c; } public void itemStateChanged(java.awt.event.ItemEvent e) { javax.swing.JCheckBox source = (javax.swing.JCheckBox)e.getItemSelectable(); if (source == load) { toggleVal("loadavg", source.isSelected()); // System.out.println("loadavg toggled to " + source.isSelected()); } else if (source == mem) { toggleVal("memusage", source.isSelected()); // System.out.println("memusage toggled to " + source.isSelected()); } else if (source == myr) { toggleVal("myrinfo", source.isSelected()); // System.out.println("myrinfo toggled to " + source.isSelected()); } } } private class NodeCheckBox extends javax.swing.JCheckBox implements Comparable { public int compareTo(Object o) { NodeCheckBox n = (NodeCheckBox)o; String myhost = this.getText().substring(0, this.getText().indexOf("_")); String otherhost = n.getText().substring(0, n.getText().indexOf("_")); if (myhost.equals("cct1m")) return -1; if (otherhost.equals("cct1m")) return -1; if (myhost.equals(otherhost)) { int myport = Integer.parseInt(this.getText().substring(this.getText().indexOf("_") + 1)); int otherport = Integer.parseInt(n.getText().substring(n.getText().indexOf("_") + 1)); if (myport > otherport) return 1; else return -1; } String[] myhostsplit = stripnums(myhost); String[] otherhostsplit = stripnums(otherhost); if (!(myhostsplit[0].equals(otherhostsplit[0]))) { return myhostsplit[0].compareTo(otherhostsplit[0]); } else { int myhostnum = Integer.parseInt(myhostsplit[1]); int otherhostnum = Integer.parseInt(otherhostsplit[1]); if (myhostnum > otherhostnum) return 1; else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -