node.setIfName(cbqIfNameStr);
if (icon!=null)
{
node.defaultIcon=icon;
node.wasSelected=true;
}
}
else
node = new interfaceTreeNode(cbqStr,2,index); //create a tree node with type = not CBQ
treeModel.insertNodeInto(node, apRoot, 0);
addChildrenNode(index,node);
}
tree.show();
expandAll(tree);
//Listen for when the selection changes.
tree.addTreeSelectionListener(this);
}
public void valueChanged(TreeSelectionEvent e)
{
if (tree.getSelectionCount() == 1)
{
TreePath[] selected = tree.getSelectionPaths();
interfaceTreeNode selectedNode = (interfaceTreeNode)selected[0].getLastPathComponent();
if ((selectedNode.wasSelected==true) && (selectedNode.type==1))
{
selectedNode.wasSelected =false;
selectedNode.defaultIcon=null;
}
else if ((selectedNode.wasSelected==false) && (selectedNode.type==1))
{
selectedNode.wasSelected =true;
selectedNode.defaultIcon=null;
}
}
}
public void expandAll(JTree tree)
{
int row = 0;
while (row < tree.getRowCount())
tree.expandRow(row++);
}
public void addChildrenNode(int index,interfaceTreeNode parentNode)
{
int[] indexArray = selectAp.findHighIfIndex(index);
CbqTreeModel treeModel = (CbqTreeModel)tree.getModel();
for (int j=0;j<indexArray.length;j++)
{
int index2 = indexArray[j];
if (index2==0) //no more child, break
break;
String cbqStr = selectAp.findIfIndexName(index2);
int[] slotPort=selectAp.findSlotPortInfo(index2);
if (slotPort!=null)
cbqStr = "slot."+slotPort[0]+"."+slotPort[1]+" "+ cbqStr;
else
cbqStr = "virtual " + cbqStr;
interfaceTreeNode node = new interfaceTreeNode(cbqStr,2,index2); //create a tree node with type = not CBQ
treeModel.insertNodeInto(node, parentNode, 0);
addChildrenNode(index2,node);
}
}
class CbqTreeModel extends DefaultTreeModel
{
public CbqTreeModel(TreeNode root)
{
super(root, false);
}
public void insertNodeInto(MutableTreeNode newChild,MutableTreeNode parent, int index)
{
parent.insert(newChild, index);
int[] newIndexs = new int[1];
newIndexs[0] = parent.getIndex(newChild);
nodesWereInserted(parent, newIndexs);
}
}
class SymWindow extends java.awt.event.WindowAdapter
{
public void windowClosing(java.awt.event.WindowEvent event)
{
Object object = event.getSource();
if (object == RuleInterfaceDlg.this)
{
if (apply)
applyAction();
closeDialog();
}
}
}
}
(Review ID: 96047)
======================================================================
Name: skT88420 Date: 10/01/99
In the midst of a compile that has worked before (and works every
night on our nightly build machine) the compiler emitted the
following messages:
sun.tools.java.CompilerError: invalid slot: 0: aload -1
This error possibly resulted from poorly constructed class paths.
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Error.<init>(Error.java:50)
at sun.tools.java.CompilerError.<init>(CompilerError.java:29)
at sun.tools.asm.Instruction.size(Compiled Code)
at sun.tools.asm.Assembler.write(Compiled Code)
at sun.tools.javac.SourceClass.compileClass(Compiled Code)
at sun.tools.javac.SourceClass.compile(Compiled Code)
at sun.tools.javac.Main.compile(Compiled Code)
at sun.tools.javac.Main.main(Main.java:733)
(Review ID: 96049)
======================================================================
Name: skT88420 Date: 10/01/99
sun.tools.java.CompilerError: invalid slot: 0: aload -1
This error possibly resulted from poorly constructed class paths.
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Error.<init>(Error.java:50)
at sun.tools.java.CompilerError.<init>(CompilerError.java:29)
at sun.tools.asm.Instruction.size(Compiled Code)
at sun.tools.asm.Assembler.write(Compiled Code)
at sun.tools.javac.SourceClass.compileClass(Compiled Code)
at sun.tools.javac.SourceClass.compile(Compiled Code)
at sun.tools.javac.Main.compile(Compiled Code)
at sun.tools.javac.Main.main(Main.java:733)
error: An error has occurred in the compiler; please file a bug report (http://java.sun.com/cgi-bin/bugreport.cgi).
package xedia.ruleset;
/*
A basic implementation of the JDialog class.
*/
import java.awt.*;
import javax.swing.*;
import javax.swing.JTree;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.util.Enumeration;
import xedia.database.DbAccessPoint;
import xedia.builder.BuilderProgressListener;
import xedia.builder.Doc;
import xedia.builder.snmp.SnmpVpn;
import xedia.builder.AppEventStrings;
import xedia.builder.Doc;
import xedia.log.LogMessage;
import xedia.builder.BuilderLogMessage;
import xedia.database.*;
public class RuleInterfaceDlg extends javax.swing.JDialog implements xedia.builder.BuilderProgressListener, TreeSelectionListener
{
interfaceTreeNode root = null;
interfaceTreeNode apRoot = null;
DbAccessPoint selectAp;
int cbqInterfaceArraySize=0;
private DbRuleSet ruleset = null;
DbRuleInterface currentInterface;
public boolean apply = false;
public RuleInterfaceDlg(Frame parent)
{
super(parent);
setModal(true);
setLocationRelativeTo(parent);
// This code is automatically generated by Visual Cafe when you add
// components to the visual environment. It instantiates and initializes
// the components. To modify the code, only use code syntax that matches
// what Visual Cafe can generate, or Visual Cafe may be unable to back
// parse your Java file into its visual environment.
//{{INIT_CONTROLS
setTitle("Interface Dialog");
getContentPane().setLayout(null);
setSize(510,488);
setVisible(false);
doneButton.setText("OK");
doneButton.setActionCommand("Done");
getContentPane().add(doneButton);
doneButton.setBounds(384,36,96,24);
refreshButton.setText("Refresh");
refreshButton.setActionCommand("Refresh");
getContentPane().add(refreshButton);
refreshButton.setBounds(384,156,96,24);
applyButton.setText("Apply");
applyButton.setActionCommand("Apply");
getContentPane().add(applyButton);
applyButton.setBounds(384,116,96,24);
cancelButton.setText("Cancel");
cancelButton.setActionCommand("Cancel");
getContentPane().add(cancelButton);
cancelButton.setBounds(384,76,96,24);
getContentPane().add(refreshButton);
JScrollPane1.setOpaque(true);
getContentPane().add(JScrollPane1);
JScrollPane1.setBounds(12,36,336,408);
JScrollPane1.getViewport().add(tree);
tree.setBounds(0,0,333,405);
tree.hide();
JLabel1.setText("To override, select CBQ Interface(s) and click Apply:");
getContentPane().add(JLabel1);
JLabel1.setBounds(12,0,408,36);
JLabel2.setText("");
getContentPane().add(JLabel2);
JLabel2.setBounds(12,456,336,24);
//}}
//{{REGISTER_LISTENERS
SymWindow aSymWindow = new SymWindow();
this.addWindowListener(aSymWindow);
SymAction lSymAction = new SymAction();
doneButton.addActionListener(lSymAction);
applyButton.addActionListener(lSymAction);
cancelButton.addActionListener(lSymAction);
refreshButton.addActionListener(lSymAction);
//}}
}
public RuleInterfaceDlg(Frame parent, DbAccessPoint ap, DbRuleInterface rInterface)
{
this(parent);
this.selectAp=ap;
this.ruleset=ruleset;
this.currentInterface=rInterface;
if (rInterface.cbqInterfaceArray!=null)
cbqInterfaceArraySize=rInterface.cbqInterfaceArray.length;
}
public RuleInterfaceDlg()
{
this((Frame)null);
}
public RuleInterfaceDlg(String sTitle)
{
this();
setTitle(sTitle);
}
public void setVisible(boolean b)
{
if (b)
setLocation(50, 50);
super.setVisible(b);
}
public void addNotify()
{
// Record the size of the window prior to calling parents addNotify.
Dimension size = getSize();
super.addNotify();
if (frameSizeAdjusted)
return;
frameSizeAdjusted = true;
// Adjust size of frame according to the insets
Insets insets = getInsets();
setSize(insets.left + insets.right + size.width, insets.top + insets.bottom + size.height);
}
// Used by addNotify
boolean frameSizeAdjusted = false;
//{{DECLARE_CONTROLS
javax.swing.JButton doneButton = new javax.swing.JButton();
javax.swing.JButton applyButton = new javax.swing.JButton();
javax.swing.JButton cancelButton = new javax.swing.JButton();
javax.swing.JButton refreshButton = new javax.swing.JButton();
javax.swing.JScrollPane JScrollPane1 = new javax.swing.JScrollPane();
javax.swing.JTree tree = new javax.swing.JTree();
javax.swing.JLabel JLabel1 = new javax.swing.JLabel();
javax.swing.JLabel JLabel2 = new javax.swing.JLabel();
//}}
class SymAction implements java.awt.event.ActionListener
{
public void actionPerformed(java.awt.event.ActionEvent event)
{
Object object = event.getSource();
if (object == doneButton)
doneButton_actionPerformed(event);
else if (object == applyButton)
applyButton_actionPerformed(event);
else if (object == cancelButton)
cancelButton_actionPerformed(event);
else if (object == refreshButton)
refreshButton_actionPerformed(event);
}
}
void refreshButton_actionPerformed(java.awt.event.ActionEvent event)
{
JLabel2.setText("Refresh button was clicked...");
tree.removeTreeSelectionListener(this);
getInterfaceData(true);
}
public void getInterfaceData(boolean bGetNow)
{
if (!isDataAvailable() || bGetNow)
{
setButtonsState(false);
JLabel2.setText("Get Interface Table is in progress. Please wait...");
DbAccessPoint[] apArray={selectAp};
Doc.log.sendMessage(new BuilderLogMessage(LogMessage.APP, LogMessage.INFO, "Get Interface Table is in progress for hub: " + selectAp.getSysName()+ "..."));
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
SnmpVpn snmpVpn;
snmpVpn = new SnmpVpn(Doc.getCurrentVpn());
snmpVpn.apArray = apArray;
snmpVpn.requestType = SnmpVpn.QueryInterfaceTable;
snmpVpn.addBuilderProgressListener((xedia.builder.BuilderProgressListener)this);
snmpVpn.start();
}
else
loadTree();
}
public void progressAction (xedia.builder.BuilderProgressEvent e)
{
final int type = e.type;
final int failureCount = e.failureCount;
SwingUtilities.invokeLater(new Runnable() {
public void run()
{
switch (type)
{
case xedia.builder.BuilderProgressEvent.COMPLETE:
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
if (failureCount > 0)
{
cancelButton.setEnabled(true);
String str="Get Interface Table failed for Hub: " + selectAp.getSysName();
JLabel2.setText("Get Interface Table failed...");
JOptionPane.showMessageDialog(null,
str + "\nCheck the Application Log Panel for full details.",
"Get Interface Table Failure" ,
JOptionPane.OK_OPTION);
}
else
{
setButtonsState(true);
JLabel2.setText("Get Interface Table is complete...");
Doc.log.sendMessage(new BuilderLogMessage(LogMessage.APP, LogMessage.INFO, "Get Interface Table succeeded for hub: " + selectAp.getSysName()+ "."));
}
if ( (root!=null) && (apRoot!=null) )
{
deleteTreeNodes(root);
CbqTreeModel treeModel = (CbqTreeModel)tree.getModel();
treeModel.removeNodeFromParent(apRoot);
root=null;
}
loadTree();
break;
}
}
});
}
void applyAction()
{
CbqTreeModel treeModel = (CbqTreeModel)tree.getModel();
interfaceTreeNode child;
initializeCbqInterfaceArray();
for (int i = 0; i < apRoot.getChildCount(); i++)
{
child = (interfaceTreeNode)apRoot.getChildAt(i);
if ( (child.type==1) && (child.wasSelected) )
addtoCbqInterfaceArray(child.getIfName());
}
selectAp.mergeAssociationOverride(currentInterface);
apply = true;
}
void setButtonsState(boolean mode)
{
doneButton.setEnabled(mode);
applyButton.setEnabled(mode);
cancelButton.setEnabled(mode);
refreshButton.setEnabled(mode);
}
void applyButton_actionPerformed(java.awt.event.ActionEvent event)
{
JLabel2.setText("Apply button was clicked...");
applyAction();
}
public void initializeCbqInterfaceArray()
{
if (cbqInterfaceArraySize==0)
return;
for(int i=0;i<cbqInterfaceArraySize;i++)
{
String entry=currentInterface.cbqInterfaceArray[i];
entry =null;
}
cbqInterfaceArraySize=0;
currentInterface.cbqInterfaceArray=null;
}
public void addtoCbqInterfaceArray(String target)
{
if (currentInterface.cbqInterfaceArray == null)
resizeCbqInterfaceArray(1);
if (currentInterface.cbqInterfaceArray.length == cbqInterfaceArraySize)
resizeCbqInterfaceArray(currentInterface.cbqInterfaceArray.length+1);
currentInterface.cbqInterfaceArray[cbqInterfaceArraySize++] = target;
}
protected void resizeCbqInterfaceArray(int newSize)
{
String[] oldArray = currentInterface.cbqInterfaceArray;
currentInterface.cbqInterfaceArray = new String[newSize];
if (oldArray != null)
System.arraycopy(oldArray, 0 , currentInterface.cbqInterfaceArray, 0, cbqInterfaceArraySize);
}
void cancelButton_actionPerformed(java.awt.event.ActionEvent event)
{
closeDialog();
}
void doneButton_actionPerformed(java.awt.event.ActionEvent event)
{
JLabel2.setText("OK button was clicked...");
applyAction();
closeDialog();
}
void closeDialog()
{
setVisible(false);
}
void deleteTreeNodes(interfaceTreeNode parentNode)
{
CbqTreeModel treeModel = (CbqTreeModel)tree.getModel();
interfaceTreeNode parent=parentNode;
int childCount=treeModel.getChildCount(parentNode);
for (int i=childCount-1;i >=0 ;i--)
{
interfaceTreeNode node = (interfaceTreeNode)treeModel.getChild(parentNode,i);
int count=treeModel.getChildCount(node);
if (count > 0)
deleteTreeNodes(node);
else
{
if (!node.isRoot() && (node.type!=0))
treeModel.removeNodeFromParent(node);
}
}
if (!parentNode.isRoot() && (parentNode.type!=0))
treeModel.removeNodeFromParent(parentNode);
}
boolean isDataAvailable()
{
if ( (selectAp.snmpIfTableArray==null) || (selectAp.snmpIfArray==null)
|| (selectAp.snmpIfStackArray==null) )
{
return false;
}
return true;
}
public void loadTree()
{
String rootStr=currentInterface.name;
root = new interfaceTreeNode(rootStr,2,0);
tree.setModel(new CbqTreeModel(root));
tree.addSelectionRow(0);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
interfaceTreeCellRenderer renderer = new interfaceTreeCellRenderer();
tree.setCellRenderer(renderer);
apRoot = new interfaceTreeNode(selectAp.getIpAddress(),0,0);
CbqTreeModel treeModel = (CbqTreeModel)tree.getModel();
treeModel.insertNodeInto(apRoot, root, 0);
int [] cbqIndex = selectAp.findHighIfIndex(0);
String cbqStr,cbqIfNameStr;
interfaceTreeNode node;
if (cbqIndex==null)
return;
// Add tree nodes on CBQ level
for (int i=0;i<cbqIndex.length;i++)
{
int index = cbqIndex[i];
cbqStr = selectAp.findIfIndexName(index);
cbqIfNameStr = cbqStr;
int cbqX = cbqStr.indexOf("cbq");
int[] slotPort=selectAp.findSlotPortInfo(index);
if (slotPort!=null)
cbqStr = "slot."+slotPort[0]+"."+slotPort[1]+" "+ cbqStr;
else
cbqStr = "virtual " + cbqStr;
if (cbqX!=-1)
{
ImageIcon icon=null;
if (currentInterface.cbqInterfaceArray!=null)
{
for (int j=0;j<currentInterface.cbqInterfaceArray.length;j++)
{
String entry=currentInterface.cbqInterfaceArray[j];
if ( entry.compareTo(cbqIfNameStr) == 0 )
{
icon=interfaceTreeCellRenderer.ifCheckIcon;
break;
}
}
}
node = new interfaceTreeNode(cbqStr,1,index); //create a tree node with type = CBQ
if (icon!=null)
{
node.defaultIcon=icon;
node.wasSelected=true;
}
}
else
node = new interfaceTreeNode(cbqStr,2,index); //create a tree node with type = not CBQ
treeModel.insertNodeInto(node, apRoot, 0);
addChildrenNode(index,node);
}
tree.show();
expandAll(tree);
//Listen for when the selection changes.
tree.addTreeSelectionListener(this);
}
public void valueChanged(TreeSelectionEvent e)
{
if (tree.getSelectionCount() == 1)
{
TreePath[] selected = tree.getSelectionPaths();
interfaceTreeNode selectedNode = (interfaceTreeNode)selected[0].getLastPathComponent();
if ((selectedNode.wasSelected==true) && (selectedNode.type==1))
{
selectedNode.wasSelected =false;
selectedNode.defaultIcon=null;
}
else if ((selectedNode.wasSelected==false) && (selectedNode.type==1))
{
selectedNode.wasSelected =true;
selectedNode.defaultIcon=null;
}
}
}
public void expandAll(JTree tree)
{
int row = 0;
while (row < tree.getRowCount())
tree.expandRow(row++);
}
public void addChildrenNode(int index,interfaceTreeNode parentNode)
{
int[] indexArray = selectAp.findHighIfIndex(index);
CbqTreeModel treeModel = (CbqTreeModel)tree.getModel();
for (int j=0;j<indexArray.length;j++)
{
int index2 = indexArray[j];
if (index2==0) //no more child, break
break;
String cbqStr = selectAp.findIfIndexName(index2);
int[] slotPort=selectAp.findSlotPortInfo(index2);
if (slotPort!=null)
cbqStr = "slot."+slotPort[0]+"."+slotPort[1]+" "+ cbqStr;
else
cbqStr = "virtual " + cbqStr;
interfaceTreeNode node = new interfaceTreeNode(cbqStr,2,index2); //create a tree node with type = not CBQ
treeModel.insertNodeInto(node, parentNode, 0);
addChildrenNode(index2,node);
}
}
class CbqTreeModel extends DefaultTreeModel
{
public CbqTreeModel(TreeNode root)
{
super(root, false);
}
public void insertNodeInto(MutableTreeNode newChild,MutableTreeNode parent, int index)
{
parent.insert(newChild, index);
int[] newIndexs = new int[1];
newIndexs[0] = parent.getIndex(newChild);
nodesWereInserted(parent, newIndexs);
}
}
class SymWindow extends java.awt.event.WindowAdapter
{
public void windowClosing(java.awt.event.WindowEvent event)
{
Object object = event.getSource();
if (object == RuleInterfaceDlg.this)
{
if (apply)
applyAction();
closeDialog();
}
}
}
}
(Review ID: 96047)
======================================================================
Name: skT88420 Date: 10/01/99
In the midst of a compile that has worked before (and works every
night on our nightly build machine) the compiler emitted the
following messages:
sun.tools.java.CompilerError: invalid slot: 0: aload -1
This error possibly resulted from poorly constructed class paths.
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Error.<init>(Error.java:50)
at sun.tools.java.CompilerError.<init>(CompilerError.java:29)
at sun.tools.asm.Instruction.size(Compiled Code)
at sun.tools.asm.Assembler.write(Compiled Code)
at sun.tools.javac.SourceClass.compileClass(Compiled Code)
at sun.tools.javac.SourceClass.compile(Compiled Code)
at sun.tools.javac.Main.compile(Compiled Code)
at sun.tools.javac.Main.main(Main.java:733)
(Review ID: 96049)
======================================================================
Name: skT88420 Date: 10/01/99
sun.tools.java.CompilerError: invalid slot: 0: aload -1
This error possibly resulted from poorly constructed class paths.
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Error.<init>(Error.java:50)
at sun.tools.java.CompilerError.<init>(CompilerError.java:29)
at sun.tools.asm.Instruction.size(Compiled Code)
at sun.tools.asm.Assembler.write(Compiled Code)
at sun.tools.javac.SourceClass.compileClass(Compiled Code)
at sun.tools.javac.SourceClass.compile(Compiled Code)
at sun.tools.javac.Main.compile(Compiled Code)
at sun.tools.javac.Main.main(Main.java:733)
error: An error has occurred in the compiler; please file a bug report (http://java.sun.com/cgi-bin/bugreport.cgi).
package xedia.ruleset;
/*
A basic implementation of the JDialog class.
*/
import java.awt.*;
import javax.swing.*;
import javax.swing.JTree;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.util.Enumeration;
import xedia.database.DbAccessPoint;
import xedia.builder.BuilderProgressListener;
import xedia.builder.Doc;
import xedia.builder.snmp.SnmpVpn;
import xedia.builder.AppEventStrings;
import xedia.builder.Doc;
import xedia.log.LogMessage;
import xedia.builder.BuilderLogMessage;
import xedia.database.*;
public class RuleInterfaceDlg extends javax.swing.JDialog implements xedia.builder.BuilderProgressListener, TreeSelectionListener
{
interfaceTreeNode root = null;
interfaceTreeNode apRoot = null;
DbAccessPoint selectAp;
int cbqInterfaceArraySize=0;
private DbRuleSet ruleset = null;
DbRuleInterface currentInterface;
public boolean apply = false;
public RuleInterfaceDlg(Frame parent)
{
super(parent);
setModal(true);
setLocationRelativeTo(parent);
// This code is automatically generated by Visual Cafe when you add
// components to the visual environment. It instantiates and initializes
// the components. To modify the code, only use code syntax that matches
// what Visual Cafe can generate, or Visual Cafe may be unable to back
// parse your Java file into its visual environment.
//{{INIT_CONTROLS
setTitle("Interface Dialog");
getContentPane().setLayout(null);
setSize(510,488);
setVisible(false);
doneButton.setText("OK");
doneButton.setActionCommand("Done");
getContentPane().add(doneButton);
doneButton.setBounds(384,36,96,24);
refreshButton.setText("Refresh");
refreshButton.setActionCommand("Refresh");
getContentPane().add(refreshButton);
refreshButton.setBounds(384,156,96,24);
applyButton.setText("Apply");
applyButton.setActionCommand("Apply");
getContentPane().add(applyButton);
applyButton.setBounds(384,116,96,24);
cancelButton.setText("Cancel");
cancelButton.setActionCommand("Cancel");
getContentPane().add(cancelButton);
cancelButton.setBounds(384,76,96,24);
getContentPane().add(refreshButton);
JScrollPane1.setOpaque(true);
getContentPane().add(JScrollPane1);
JScrollPane1.setBounds(12,36,336,408);
JScrollPane1.getViewport().add(tree);
tree.setBounds(0,0,333,405);
tree.hide();
JLabel1.setText("To override, select CBQ Interface(s) and click Apply:");
getContentPane().add(JLabel1);
JLabel1.setBounds(12,0,408,36);
JLabel2.setText("");
getContentPane().add(JLabel2);
JLabel2.setBounds(12,456,336,24);
//}}
//{{REGISTER_LISTENERS
SymWindow aSymWindow = new SymWindow();
this.addWindowListener(aSymWindow);
SymAction lSymAction = new SymAction();
doneButton.addActionListener(lSymAction);
applyButton.addActionListener(lSymAction);
cancelButton.addActionListener(lSymAction);
refreshButton.addActionListener(lSymAction);
//}}
}
public RuleInterfaceDlg(Frame parent, DbAccessPoint ap, DbRuleInterface rInterface)
{
this(parent);
this.selectAp=ap;
this.ruleset=ruleset;
this.currentInterface=rInterface;
if (rInterface.cbqInterfaceArray!=null)
cbqInterfaceArraySize=rInterface.cbqInterfaceArray.length;
}
public RuleInterfaceDlg()
{
this((Frame)null);
}
public RuleInterfaceDlg(String sTitle)
{
this();
setTitle(sTitle);
}
public void setVisible(boolean b)
{
if (b)
setLocation(50, 50);
super.setVisible(b);
}
public void addNotify()
{
// Record the size of the window prior to calling parents addNotify.
Dimension size = getSize();
super.addNotify();
if (frameSizeAdjusted)
return;
frameSizeAdjusted = true;
// Adjust size of frame according to the insets
Insets insets = getInsets();
setSize(insets.left + insets.right + size.width, insets.top + insets.bottom + size.height);
}
// Used by addNotify
boolean frameSizeAdjusted = false;
//{{DECLARE_CONTROLS
javax.swing.JButton doneButton = new javax.swing.JButton();
javax.swing.JButton applyButton = new javax.swing.JButton();
javax.swing.JButton cancelButton = new javax.swing.JButton();
javax.swing.JButton refreshButton = new javax.swing.JButton();
javax.swing.JScrollPane JScrollPane1 = new javax.swing.JScrollPane();
javax.swing.JTree tree = new javax.swing.JTree();
javax.swing.JLabel JLabel1 = new javax.swing.JLabel();
javax.swing.JLabel JLabel2 = new javax.swing.JLabel();
//}}
class SymAction implements java.awt.event.ActionListener
{
public void actionPerformed(java.awt.event.ActionEvent event)
{
Object object = event.getSource();
if (object == doneButton)
doneButton_actionPerformed(event);
else if (object == applyButton)
applyButton_actionPerformed(event);
else if (object == cancelButton)
cancelButton_actionPerformed(event);
else if (object == refreshButton)
refreshButton_actionPerformed(event);
}
}
void refreshButton_actionPerformed(java.awt.event.ActionEvent event)
{
JLabel2.setText("Refresh button was clicked...");
tree.removeTreeSelectionListener(this);
getInterfaceData(true);
}
public void getInterfaceData(boolean bGetNow)
{
if (!isDataAvailable() || bGetNow)
{
setButtonsState(false);
JLabel2.setText("Get Interface Table is in progress. Please wait...");
DbAccessPoint[] apArray={selectAp};
Doc.log.sendMessage(new BuilderLogMessage(LogMessage.APP, LogMessage.INFO, "Get Interface Table is in progress for hub: " + selectAp.getSysName()+ "..."));
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
SnmpVpn snmpVpn;
snmpVpn = new SnmpVpn(Doc.getCurrentVpn());
snmpVpn.apArray = apArray;
snmpVpn.requestType = SnmpVpn.QueryInterfaceTable;
snmpVpn.addBuilderProgressListener((xedia.builder.BuilderProgressListener)this);
snmpVpn.start();
}
else
loadTree();
}
public void progressAction (xedia.builder.BuilderProgressEvent e)
{
final int type = e.type;
final int failureCount = e.failureCount;
SwingUtilities.invokeLater(new Runnable() {
public void run()
{
switch (type)
{
case xedia.builder.BuilderProgressEvent.COMPLETE:
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
if (failureCount > 0)
{
cancelButton.setEnabled(true);
String str="Get Interface Table failed for Hub: " + selectAp.getSysName();
JLabel2.setText("Get Interface Table failed...");
JOptionPane.showMessageDialog(null,
str + "\nCheck the Application Log Panel for full details.",
"Get Interface Table Failure" ,
JOptionPane.OK_OPTION);
}
else
{
setButtonsState(true);
JLabel2.setText("Get Interface Table is complete...");
Doc.log.sendMessage(new BuilderLogMessage(LogMessage.APP, LogMessage.INFO, "Get Interface Table succeeded for hub: " + selectAp.getSysName()+ "."));
}
if ( (root!=null) && (apRoot!=null) )
{
deleteTreeNodes(root);
CbqTreeModel treeModel = (CbqTreeModel)tree.getModel();
treeModel.removeNodeFromParent(apRoot);
root=null;
}
loadTree();
break;
}
}
});
}
void applyAction()
{
CbqTreeModel treeModel = (CbqTreeModel)tree.getModel();
interfaceTreeNode child;
initializeCbqInterfaceArray();
for (int i = 0; i < apRoot.getChildCount(); i++)
{
child = (interfaceTreeNode)apRoot.getChildAt(i);
if ( (child.type==1) && (child.wasSelected) )
addtoCbqInterfaceArray(child.getIfName());
}
selectAp.mergeAssociationOverride(currentInterface);
apply = true;
}
void setButtonsState(boolean mode)
{
doneButton.setEnabled(mode);
applyButton.setEnabled(mode);
cancelButton.setEnabled(mode);
refreshButton.setEnabled(mode);
}
void applyButton_actionPerformed(java.awt.event.ActionEvent event)
{
JLabel2.setText("Apply button was clicked...");
applyAction();
}
public void initializeCbqInterfaceArray()
{
if (cbqInterfaceArraySize==0)
return;
for(int i=0;i<cbqInterfaceArraySize;i++)
{
String entry=currentInterface.cbqInterfaceArray[i];
entry =null;
}
cbqInterfaceArraySize=0;
currentInterface.cbqInterfaceArray=null;
}
public void addtoCbqInterfaceArray(String target)
{
if (currentInterface.cbqInterfaceArray == null)
resizeCbqInterfaceArray(1);
if (currentInterface.cbqInterfaceArray.length == cbqInterfaceArraySize)
resizeCbqInterfaceArray(currentInterface.cbqInterfaceArray.length+1);
currentInterface.cbqInterfaceArray[cbqInterfaceArraySize++] = target;
}
protected void resizeCbqInterfaceArray(int newSize)
{
String[] oldArray = currentInterface.cbqInterfaceArray;
currentInterface.cbqInterfaceArray = new String[newSize];
if (oldArray != null)
System.arraycopy(oldArray, 0 , currentInterface.cbqInterfaceArray, 0, cbqInterfaceArraySize);
}
void cancelButton_actionPerformed(java.awt.event.ActionEvent event)
{
closeDialog();
}
void doneButton_actionPerformed(java.awt.event.ActionEvent event)
{
JLabel2.setText("OK button was clicked...");
applyAction();
closeDialog();
}
void closeDialog()
{
setVisible(false);
}
void deleteTreeNodes(interfaceTreeNode parentNode)
{
CbqTreeModel treeModel = (CbqTreeModel)tree.getModel();
interfaceTreeNode parent=parentNode;
int childCount=treeModel.getChildCount(parentNode);
for (int i=childCount-1;i >=0 ;i--)
{
interfaceTreeNode node = (interfaceTreeNode)treeModel.getChild(parentNode,i);
int count=treeModel.getChildCount(node);
if (count > 0)
deleteTreeNodes(node);
else
{
if (!node.isRoot() && (node.type!=0))
treeModel.removeNodeFromParent(node);
}
}
if (!parentNode.isRoot() && (parentNode.type!=0))
treeModel.removeNodeFromParent(parentNode);
}
boolean isDataAvailable()
{
if ( (selectAp.snmpIfTableArray==null) || (selectAp.snmpIfArray==null)
|| (selectAp.snmpIfStackArray==null) )
{
return false;
}
return true;
}
public void loadTree()
{
String rootStr=currentInterface.name;
root = new interfaceTreeNode(rootStr,2,0);
tree.setModel(new CbqTreeModel(root));
tree.addSelectionRow(0);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
interfaceTreeCellRenderer renderer = new interfaceTreeCellRenderer();
tree.setCellRenderer(renderer);
apRoot = new interfaceTreeNode(selectAp.getIpAddress(),0,0);
CbqTreeModel treeModel = (CbqTreeModel)tree.getModel();
treeModel.insertNodeInto(apRoot, root, 0);
int [] cbqIndex = selectAp.findHighIfIndex(0);
String cbqStr,cbqIfNameStr;
interfaceTreeNode node;
if (cbqIndex==null)
return;
// Add tree nodes on CBQ level
for (int i=0;i<cbqIndex.length;i++)
{
int index = cbqIndex[i];
cbqStr = selectAp.findIfIndexName(index);
cbqIfNameStr = cbqStr;
int cbqX = cbqStr.indexOf("cbq");
int[] slotPort=selectAp.findSlotPortInfo(index);
if (slotPort!=null)
cbqStr = "slot."+slotPort[0]+"."+slotPort[1]+" "+ cbqStr;
else
cbqStr = "virtual " + cbqStr;
if (cbqX!=-1)
{
ImageIcon icon=null;
if (currentInterface.cbqInterfaceArray!=null)
{
for (int j=0;j<currentInterface.cbqInterfaceArray.length;j++)
{
String entry=currentInterface.cbqInterfaceArray[j];
if ( entry.compareTo(cbqIfNameStr) == 0 )
{
icon=interfaceTreeCellRenderer.ifCheckIcon;
break;
}
}
}
node = new interfaceTreeNode(cbqStr,1,index); //create a tree node with type = CBQ
- duplicates
-
JDK-4137473 Invalid slot error brought on by bad paths
-
- Closed
-