osmocom
/
vovida-gsml
Archived
11
0
Fork 0
This repository has been archived on 2022-03-30. You can view files and clone it, but cannot push or open issues or pull requests.
vovida-gsml/data/mnet/Common/Java/AlarmApplet/FilterFrame.java

338 lines
9.6 KiB
Java

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.UIManager.*;
import java.net.*;
import com.jetcell.MibWM.*;
public class FilterFrame extends JFrame{
final FilterFrame ff = this;
Container contentPane = null;
JPanel centerPanel = null;
JPanel southPanel = null;
// Labels
JLabel alarms = null;
JLabel time = null;
JLabel severity = null;
JLabel acknowledge = null;
// Combo Boxes
JComboBox alarmCombo = new JComboBox();
JComboBox timeCombo = new JComboBox();
JComboBox severityCombo = new JComboBox();
JComboBox acknowledgeCombo = new JComboBox();
// Reference to "AlarmPanel"
AlarmPanel alarmPanel = null;
public static FilterObject filterObject = null;
public static FilterObject tempFilterObject = null;
public FilterFrame(){
if(Util.applet == null){
setIconImage(Toolkit.getDefaultToolkit().getImage("../Images/app_icon.gif"));
}
else{
String iconPath = Util.applet.getCodeBase().toString();
iconPath += "Images/app_icon.gif";
URL iconPathURL = null;
try{
iconPathURL = new URL(iconPath);
}
catch(MalformedURLException exc){
System.out.println("Bad URL.");
}
System.out.println(iconPathURL);
setIconImage(Toolkit.getDefaultToolkit().getImage(iconPathURL));
}
}
public FilterFrame(AlarmPanel panel){
this.alarmPanel = panel;
if(tempFilterObject == null)
tempFilterObject = filterObject;
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception ex){
System.out.println("Error setting Look and Feel for Filter frame");
}
if(Util.applet == null){
setIconImage(Toolkit.getDefaultToolkit().getImage("../Images/app_icon.gif"));
}
else{
String iconPath = Util.applet.getCodeBase().toString();
iconPath += "Images/app_icon.gif";
URL iconPathURL = null;
try{
iconPathURL = new URL(iconPath);
}
catch(MalformedURLException exc){
System.out.println("Bad URL.");
}
System.out.println(iconPathURL);
setIconImage(Toolkit.getDefaultToolkit().getImage(iconPathURL));
}
JButton ok = new JButton(" OK ");
JButton cancel = new JButton("CANCEL");
JButton saveDefault = new JButton("Save As Default");
contentPane = getContentPane();
getCenterPanel(tempFilterObject);
if(tempFilterObject != null){
mapFilterOnFrame(tempFilterObject);
}
southPanel = new JPanel();
southPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
southPanel.add(ok);
southPanel.add(cancel);
if(Util.applet == null){
southPanel.add(saveDefault);
}
contentPane.add(centerPanel,BorderLayout.CENTER);
contentPane.add(southPanel,BorderLayout.SOUTH);
setSize(400,200);
addWindowListener(new windowListener());
ok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
AlarmStatusApplet.logDM("Handle filter selection");
handleFilterSave();
}
});
cancel.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
dispose();
AlarmStatusApplet.logDM("No filter selection");
}
});
saveDefault.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
handleFilterSave();
filterObject = tempFilterObject;
}
});
}
public void handleFilterSave(){
// alarms selected
tempFilterObject = new FilterObject();
String alarms = (String)alarmCombo.getSelectedItem();
if(alarms.equals("All")){
tempFilterObject.NUM_ALARMS = FilterObject.NONE;
}
else{
try{
tempFilterObject.NUM_ALARMS = Integer.parseInt(alarms);
}
catch(NumberFormatException nfex){
JOptionPane.showMessageDialog(ff,"Bad Alarm number criteria.Default value assumed. ","Invalid number",JOptionPane.ERROR_MESSAGE);
tempFilterObject.NUM_ALARMS = FilterObject.NONE;
}
}
// time selected
int timeIndex = timeCombo.getSelectedIndex();
if(timeIndex == 1){
tempFilterObject.TIME = FilterObject.MIN_15;
}
else if(timeIndex == 2){
tempFilterObject.TIME = FilterObject.HR_1;
}
else if(timeIndex == 3){
tempFilterObject.TIME = FilterObject.HR_12;
}
else if(timeIndex == 4){
tempFilterObject.TIME = FilterObject.HR_24;
}
else
tempFilterObject.TIME = FilterObject.NONE;
// severity selected
int severityIndex = severityCombo.getSelectedIndex();
if(severityIndex == 1){
tempFilterObject.SEVERITY = FilterObject.CRITICAL;
}
else if(severityIndex == 2){
tempFilterObject.SEVERITY = FilterObject.MAJOR;
}
else if(severityIndex == 3){
tempFilterObject.SEVERITY = FilterObject.MINOR;
}
else
tempFilterObject.SEVERITY = FilterObject.NULL;
// acknowledge selected
int ackIndex = acknowledgeCombo.getSelectedIndex();
if(ackIndex == 1){
tempFilterObject.ACKNOWLEDGE = FilterObject.ALL_ACK;
}
else if(ackIndex == 2){
tempFilterObject.ACKNOWLEDGE = FilterObject.NO_ACK;
}
else
tempFilterObject.ACKNOWLEDGE = FilterObject.NONE;
this.dispose();
// Ananth
/*if (tempFilterObject.NUM_ALARMS == FilterObject.NONE &&
tempFilterObject.SEVERITY == FilterObject.NULL &&
tempFilterObject.TIME == FilterObject.NONE &&
tempFilterObject.ACKNOWLEDGE == FilterObject.NONE){
Util.setBorderTitle("Alarm List");
}
else{
Util.setBorderTitle("Alarm List (Filtered)");
}*/
if(alarmPanel!=null){
alarmPanel.handleFilterEvent(tempFilterObject);
alarmPanel.getAlarmTable().Refresh();
}
else{
filterObject = tempFilterObject;
}
}
private void mapFilterOnFrame(FilterObject tempFilterObject){
if(tempFilterObject.NUM_ALARMS != FilterObject.NONE){
String alarms = Integer.toString(tempFilterObject.NUM_ALARMS);
alarmCombo.getEditor().setItem(alarms);
}
else{
alarmCombo.setSelectedIndex(0);
}
if(tempFilterObject.TIME != FilterObject.NONE){
if(tempFilterObject.TIME == FilterObject.MIN_15)
timeCombo.setSelectedIndex(1);
else if(tempFilterObject.TIME == FilterObject.HR_1)
timeCombo.setSelectedIndex(2);
else if(tempFilterObject.TIME == FilterObject.HR_12)
timeCombo.setSelectedIndex(3);
else if(tempFilterObject.TIME == FilterObject.HR_24)
timeCombo.setSelectedIndex(4);
}
else{
timeCombo.setSelectedIndex(0);
}
if(!tempFilterObject.SEVERITY.equals(FilterObject.NULL)){
if(tempFilterObject.SEVERITY.equals(FilterObject.CRITICAL))
severityCombo.setSelectedIndex(1);
else if(tempFilterObject.SEVERITY.equals(FilterObject.MAJOR))
severityCombo.setSelectedIndex(2);
else if(tempFilterObject.SEVERITY.equals(FilterObject.MINOR))
severityCombo.setSelectedIndex(3);
}
else{
severityCombo.setSelectedIndex(0);
}
if(tempFilterObject.ACKNOWLEDGE != FilterObject.NONE){
if(tempFilterObject.ACKNOWLEDGE == FilterObject.ALL_ACK)
acknowledgeCombo.setSelectedIndex(1);
else if(tempFilterObject.ACKNOWLEDGE == FilterObject.NO_ACK)
acknowledgeCombo.setSelectedIndex(2);
}
else{
acknowledgeCombo.setSelectedIndex(0);
}
}
public JPanel getCenterPanel(FilterObject filterObj){
centerPanel = Util.makeBorderPanel("Filter Screen");
centerPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
alarms = new JLabel(" Alarms ");
alarms.setToolTipText("Check to set Alarm filter / Uncheck to set Default (All)");
time = new JLabel(" Time ");
time.setToolTipText("Check to set Time filter / Uncheck to set Default(All)");
severity = new JLabel(" Severity ");
severity.setToolTipText("Check to set Severity filter / Uncheck to set Default (All)");
acknowledge = new JLabel(" Acknowledge ");
acknowledge.setToolTipText("Check to set Acknowledge filter / Uncheck to set Default (All)");
// Alarms
alarmCombo.setPreferredSize(new Dimension(50,20));
alarmCombo.setEditable(true);
alarmCombo.addItem("All");
for(int i=1;i<=20;i++){
alarmCombo.addItem(Integer.toString(i));
}
// Time
timeCombo.addItem("All");
timeCombo.addItem("15 mins");
timeCombo.addItem("1 hour");
timeCombo.addItem("12 hours");
timeCombo.addItem("24 hours");
// Severity
severityCombo.addItem("All");
severityCombo.addItem("Critical");
severityCombo.addItem("Critical-Major");
severityCombo.addItem("Critical-Minor");
// Acknowledge
acknowledgeCombo.addItem("All");
acknowledgeCombo.addItem("Acknowledged");
acknowledgeCombo.addItem("Unacknowledged");
// Alarms
final JPanel p1 = new JPanel();
p1.setLayout(new FlowLayout(FlowLayout.LEFT));
p1.add(alarms);
p1.add(alarmCombo);
p1.add(acknowledge);
p1.add(acknowledgeCombo);
// Time
final JPanel p2 = new JPanel();
p2.setLayout(new FlowLayout(FlowLayout.LEFT));
p2.add(severity);
p2.add(severityCombo);
p2.add(time);
p2.add(timeCombo);
// Severity
// Acknowledge
centerPanel.add(p1);
centerPanel.add(p2);
if(filterObj != null){
mapFilterOnFrame(filterObj);
}
return centerPanel;
}
class windowListener extends WindowAdapter{
public void windowClosing(WindowEvent evt){
dispose();
AlarmStatusApplet.logDM("Closing Filter Screen");
}
}
}