public static void main(String[] args) { String name=null, props="udp.xml"; for(int i=0; i < args.length; i++) { if(args[i].equals("-name")) { name=args[++i]; continue; } if(args[i].equals("-props")) { props=args[++i]; continue; } System.out.println("Topology [-props config file] [-name name]"); return; } try { Topology top=new Topology(props, name); top.setLayout(null); top.setSize(240, 507); top.start(); } catch(Exception e) { e.printStackTrace(); System.exit(0); } }
public Topology(String props, String name) { this.props=props; this.name=name; addWindowListener(this); fm=getFontMetrics(new Font("Helvetica", Font.PLAIN, 12)); myFont=new Font("Helvetica", Font.PLAIN, 12); }
public void start() throws Exception { channel=new JChannel(props).name(name); channel.setReceiver(new ReceiverAdapter() { public void viewAccepted(View view) { setInternalState(view.getMembers()); } public void setInternalState(java.util.List<Address> mbrs) { members.clear(); for(Address mbr : mbrs) addNode(mbr); coordinator=mbrs.size() <= 1 || (mbrs.size() > 1 && mbrs.iterator().next().equals(my_addr)); repaint(); } }); channel.connect(channel_name); my_addr=channel.getAddress(); if(my_addr != null) setTitle(my_addr.toString()); pack(); setVisible(true); }
public void drawTopology(Graphics g) { int x=20, y=50; String label; Dimension box=getSize(); Color old=g.getColor(); if(coordinator) { g.setColor(Color.cyan); g.fillRect(11, 31, box.width - 21, box.height - 61); g.setColor(old); } g.drawRect(10, 30, box.width - 20, box.height - 60); g.setFont(myFont); for(int i=0; i < members.size(); i++) { label=members.get(i).toString(); drawNode(g, x, y, label, NormalStyle); y+=50; } }
public void coordinatorChosen() { coordinator=true; repaint(); }
public void paint(Graphics g) { drawTopology(g); }
public void start() throws Exception { channel=new JChannel(props).name(name); channel.setReceiver(new ReceiverAdapter() { public void viewAccepted(View view) { setInternalState(view.getMembers()); } public void setInternalState(java.util.List<Address> mbrs) { members.clear(); for(Address mbr : mbrs) addNode(mbr); coordinator=mbrs.size() <= 1 || (mbrs.size() > 1 && mbrs.iterator().next().equals(my_addr)); repaint(); } }); channel.connect(channel_name); my_addr=channel.getAddress(); if(my_addr != null) setTitle(my_addr.toString()); pack(); setVisible(true); }
public void drawTopology(Graphics g) { int x=20, y=50; String label; Dimension box=getSize(); Color old=g.getColor(); if(coordinator) { g.setColor(Color.cyan); g.fillRect(11, 31, box.width - 21, box.height - 61); g.setColor(old); } g.drawRect(10, 30, box.width - 20, box.height - 60); g.setFont(myFont); for(int i=0; i < members.size(); i++) { label=members.elementAt(i).toString(); drawNode(g, x, y, label, NormalStyle); y+=50; } }
public void addNode(Address member) { Address tmp; for(int i=0; i < members.size(); i++) { tmp=members.get(i); if(member.equals(tmp)) return; } members.add(member); repaint(); }
public void paint(Graphics g) { drawTopology(g); }
public Topology() { addWindowListener(this); //g=getGraphics(); fm=getFontMetrics(new Font("Helvetica", Font.PLAIN, 12)); myFont=new Font("Helvetica", Font.PLAIN, 12); }
public void drawTopology(Graphics g) { int x=20, y=50; String label; Dimension box=getSize(); Color old=g.getColor(); if(coordinator) { g.setColor(Color.cyan); g.fillRect(11, 31, box.width - 21, box.height - 61); g.setColor(old); } g.drawRect(10, 30, box.width - 20, box.height - 60); g.setFont(myFont); for(int i=0; i < members.size(); i++) { label=members.get(i).toString(); drawNode(g, x, y, label, NormalStyle); y+=50; } }
public void removeNode(Object member) { Object tmp; for(int i=0; i < members.size(); i++) { tmp=members.get(i); if(member.equals(tmp)) { members.remove(members.get(i)); break; } } repaint(); }
public void paint(Graphics g) { drawTopology(g); }
public static void main(String[] args) { String name=null, props="udp.xml"; for(int i=0; i < args.length; i++) { if(args[i].equals("-name")) { name=args[++i]; continue; } if(args[i].equals("-props")) { props=args[++i]; continue; } System.out.println("Topology [-props config file] [-name name]"); return; } try { Topology top=new Topology(props, name); top.setLayout(null); top.setSize(240, 507); top.start(); } catch(Exception e) { e.printStackTrace(); System.exit(0); } }