1822 lines
87 KiB
Java
1822 lines
87 KiB
Java
/*
|
|
* Decompiled with CFR 0.152.
|
|
*
|
|
* Could not load the following classes:
|
|
* com.tridium.bql.filter.BAbsTimeFilter
|
|
* com.tridium.bql.filter.BFilterEntry
|
|
* com.tridium.bql.filter.BFilterSet
|
|
* com.tridium.bql.util.BDynamicTimeRange
|
|
* com.tridium.fox.sys.BFoxClientConnection
|
|
* com.tridium.fox.sys.BFoxSession
|
|
* com.tridium.ui.BOptionDialog
|
|
* com.tridium.ui.UiEnv
|
|
* com.tridium.ui.theme.Theme
|
|
* com.tridium.workbench.bql.filter.BFilterSetEditor
|
|
* com.tridium.workbench.fieldeditors.BDynamicTimeRangeFE
|
|
* com.tridium.workbench.fieldeditors.gx.BColorFE
|
|
* javax.baja.agent.AgentFilter
|
|
* javax.baja.agent.AgentList
|
|
* javax.baja.bql.BIBqlFilter
|
|
* javax.baja.collection.BICollection
|
|
* javax.baja.data.BIDataValue
|
|
* javax.baja.file.BAbstractFile
|
|
* javax.baja.gx.BBrush
|
|
* javax.baja.gx.BColor
|
|
* javax.baja.gx.BImage
|
|
* javax.baja.gx.Graphics
|
|
* javax.baja.gx.IRectGeom
|
|
* javax.baja.log.Log
|
|
* javax.baja.naming.BLocalHost
|
|
* javax.baja.naming.BOrd
|
|
* javax.baja.naming.BOrdList
|
|
* javax.baja.naming.NullOrdException
|
|
* javax.baja.naming.SlotPath
|
|
* javax.baja.nre.util.Array
|
|
* javax.baja.nre.util.IntHashMap
|
|
* javax.baja.nre.util.SortUtil
|
|
* javax.baja.sys.Action
|
|
* javax.baja.sys.BAbsTime
|
|
* javax.baja.sys.BBoolean
|
|
* javax.baja.sys.BComplex
|
|
* javax.baja.sys.BComponent
|
|
* javax.baja.sys.BFacets
|
|
* javax.baja.sys.BModule
|
|
* javax.baja.sys.BObject
|
|
* javax.baja.sys.BString
|
|
* javax.baja.sys.BValue
|
|
* javax.baja.sys.BVector
|
|
* javax.baja.sys.BajaRuntimeException
|
|
* javax.baja.sys.Context
|
|
* javax.baja.sys.Cursor
|
|
* javax.baja.sys.LocalizableRuntimeException
|
|
* javax.baja.sys.ModuleException
|
|
* javax.baja.sys.ModuleNotFoundException
|
|
* javax.baja.sys.Property
|
|
* javax.baja.sys.Slot
|
|
* javax.baja.sys.SlotCursor
|
|
* javax.baja.sys.Sys
|
|
* javax.baja.sys.Type
|
|
* javax.baja.ui.BButton
|
|
* javax.baja.ui.BDialog
|
|
* javax.baja.ui.BLabel
|
|
* javax.baja.ui.BListDropDown
|
|
* javax.baja.ui.BMenu
|
|
* javax.baja.ui.BSeparator
|
|
* javax.baja.ui.BTextDropDown
|
|
* javax.baja.ui.BToolBar
|
|
* javax.baja.ui.BWidget
|
|
* javax.baja.ui.BWidgetShell
|
|
* javax.baja.ui.Command
|
|
* javax.baja.ui.CommandArtifact
|
|
* javax.baja.ui.ToggleCommand
|
|
* javax.baja.ui.ToggleCommandGroup
|
|
* javax.baja.ui.enums.BHalign
|
|
* javax.baja.ui.enums.BOrientation
|
|
* javax.baja.ui.enums.BValign
|
|
* javax.baja.ui.event.BKeyEvent
|
|
* javax.baja.ui.event.BMouseEvent
|
|
* javax.baja.ui.list.BList
|
|
* javax.baja.ui.pane.BBorderPane
|
|
* javax.baja.ui.pane.BEdgePane
|
|
* javax.baja.ui.pane.BGridPane
|
|
* javax.baja.ui.pane.BSplitPane
|
|
* javax.baja.ui.pane.BTextEditorPane
|
|
* javax.baja.ui.table.BTable
|
|
* javax.baja.ui.table.DynamicTableModel
|
|
* javax.baja.ui.table.TableCellRenderer
|
|
* javax.baja.ui.table.TableCellRenderer$Cell
|
|
* javax.baja.ui.table.TableController
|
|
* javax.baja.ui.table.TableModel
|
|
* javax.baja.ui.table.TableSelection
|
|
* javax.baja.ui.util.BTitlePane
|
|
* javax.baja.ui.util.UiLexicon
|
|
* javax.baja.util.BFormat
|
|
* javax.baja.workbench.BWbShell
|
|
* javax.baja.workbench.fieldeditor.BWbFieldEditor
|
|
* javax.baja.workbench.view.BIExportableTableView
|
|
* javax.baja.workbench.view.BWbComponentView
|
|
*/
|
|
package com.tridium.alarm.ui;
|
|
|
|
import com.tridium.alarm.BAlarmConsoleChannel;
|
|
import com.tridium.alarm.BConsoleRecipient;
|
|
import com.tridium.alarm.ui.AlarmTableModel;
|
|
import com.tridium.alarm.ui.BAlarmClassDef;
|
|
import com.tridium.alarm.ui.BAlarmClassMapping;
|
|
import com.tridium.alarm.ui.BAlarmClassMappingFE;
|
|
import com.tridium.alarm.ui.BAlarmConsoleOptions;
|
|
import com.tridium.alarm.ui.BAlarmConsoleUIChannel;
|
|
import com.tridium.alarm.ui.BAlarmDetailsDialog;
|
|
import com.tridium.alarm.ui.BAlarmReportDialog;
|
|
import com.tridium.alarm.ui.BAlarmTitlePane;
|
|
import com.tridium.alarm.ui.BIAlarmServiceView;
|
|
import com.tridium.alarm.ui.BNotesDialog;
|
|
import com.tridium.alarm.ui.BTimeZoneDisplay;
|
|
import com.tridium.alarm.ui.ConsoleColumns;
|
|
import com.tridium.alarm.ui.ConsoleTableModel;
|
|
import com.tridium.alarm.ui.MediaPlayer;
|
|
import com.tridium.alarm.ui.SoundPlayer;
|
|
import com.tridium.alarm.ui.SourceTableModel;
|
|
import com.tridium.bql.filter.BAbsTimeFilter;
|
|
import com.tridium.bql.filter.BFilterEntry;
|
|
import com.tridium.bql.filter.BFilterSet;
|
|
import com.tridium.bql.util.BDynamicTimeRange;
|
|
import com.tridium.fox.sys.BFoxClientConnection;
|
|
import com.tridium.fox.sys.BFoxSession;
|
|
import com.tridium.ui.BOptionDialog;
|
|
import com.tridium.ui.UiEnv;
|
|
import com.tridium.ui.theme.Theme;
|
|
import com.tridium.workbench.bql.filter.BFilterSetEditor;
|
|
import com.tridium.workbench.fieldeditors.BDynamicTimeRangeFE;
|
|
import com.tridium.workbench.fieldeditors.gx.BColorFE;
|
|
import java.lang.reflect.Field;
|
|
import java.lang.reflect.InvocationTargetException;
|
|
import java.lang.reflect.Method;
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.Comparator;
|
|
import java.util.HashMap;
|
|
import java.util.Hashtable;
|
|
import java.util.List;
|
|
import java.util.ListIterator;
|
|
import java.util.StringTokenizer;
|
|
import javax.baja.agent.AgentFilter;
|
|
import javax.baja.agent.AgentList;
|
|
import javax.baja.alarm.BAckState;
|
|
import javax.baja.alarm.BAlarmClass;
|
|
import javax.baja.alarm.BAlarmInstructions;
|
|
import javax.baja.alarm.BAlarmRecord;
|
|
import javax.baja.alarm.BAlarmService;
|
|
import javax.baja.alarm.BSourceState;
|
|
import javax.baja.bql.BIBqlFilter;
|
|
import javax.baja.collection.BICollection;
|
|
import javax.baja.data.BIDataValue;
|
|
import javax.baja.file.BAbstractFile;
|
|
import javax.baja.gx.BBrush;
|
|
import javax.baja.gx.BColor;
|
|
import javax.baja.gx.BImage;
|
|
import javax.baja.gx.Graphics;
|
|
import javax.baja.gx.IRectGeom;
|
|
import javax.baja.log.Log;
|
|
import javax.baja.naming.BLocalHost;
|
|
import javax.baja.naming.BOrd;
|
|
import javax.baja.naming.BOrdList;
|
|
import javax.baja.naming.NullOrdException;
|
|
import javax.baja.naming.SlotPath;
|
|
import javax.baja.nre.util.Array;
|
|
import javax.baja.nre.util.IntHashMap;
|
|
import javax.baja.nre.util.SortUtil;
|
|
import javax.baja.sys.Action;
|
|
import javax.baja.sys.BAbsTime;
|
|
import javax.baja.sys.BBoolean;
|
|
import javax.baja.sys.BComplex;
|
|
import javax.baja.sys.BComponent;
|
|
import javax.baja.sys.BFacets;
|
|
import javax.baja.sys.BModule;
|
|
import javax.baja.sys.BObject;
|
|
import javax.baja.sys.BString;
|
|
import javax.baja.sys.BValue;
|
|
import javax.baja.sys.BVector;
|
|
import javax.baja.sys.BajaRuntimeException;
|
|
import javax.baja.sys.Context;
|
|
import javax.baja.sys.Cursor;
|
|
import javax.baja.sys.LocalizableRuntimeException;
|
|
import javax.baja.sys.ModuleException;
|
|
import javax.baja.sys.ModuleNotFoundException;
|
|
import javax.baja.sys.Property;
|
|
import javax.baja.sys.Slot;
|
|
import javax.baja.sys.SlotCursor;
|
|
import javax.baja.sys.Sys;
|
|
import javax.baja.sys.Type;
|
|
import javax.baja.ui.BButton;
|
|
import javax.baja.ui.BDialog;
|
|
import javax.baja.ui.BLabel;
|
|
import javax.baja.ui.BListDropDown;
|
|
import javax.baja.ui.BMenu;
|
|
import javax.baja.ui.BSeparator;
|
|
import javax.baja.ui.BTextDropDown;
|
|
import javax.baja.ui.BToolBar;
|
|
import javax.baja.ui.BWidget;
|
|
import javax.baja.ui.BWidgetShell;
|
|
import javax.baja.ui.Command;
|
|
import javax.baja.ui.CommandArtifact;
|
|
import javax.baja.ui.ToggleCommand;
|
|
import javax.baja.ui.ToggleCommandGroup;
|
|
import javax.baja.ui.enums.BHalign;
|
|
import javax.baja.ui.enums.BOrientation;
|
|
import javax.baja.ui.enums.BValign;
|
|
import javax.baja.ui.event.BKeyEvent;
|
|
import javax.baja.ui.event.BMouseEvent;
|
|
import javax.baja.ui.list.BList;
|
|
import javax.baja.ui.pane.BBorderPane;
|
|
import javax.baja.ui.pane.BEdgePane;
|
|
import javax.baja.ui.pane.BGridPane;
|
|
import javax.baja.ui.pane.BSplitPane;
|
|
import javax.baja.ui.pane.BTextEditorPane;
|
|
import javax.baja.ui.table.BTable;
|
|
import javax.baja.ui.table.DynamicTableModel;
|
|
import javax.baja.ui.table.TableCellRenderer;
|
|
import javax.baja.ui.table.TableController;
|
|
import javax.baja.ui.table.TableModel;
|
|
import javax.baja.ui.table.TableSelection;
|
|
import javax.baja.ui.util.BTitlePane;
|
|
import javax.baja.ui.util.UiLexicon;
|
|
import javax.baja.util.BFormat;
|
|
import javax.baja.workbench.BWbShell;
|
|
import javax.baja.workbench.fieldeditor.BWbFieldEditor;
|
|
import javax.baja.workbench.view.BIExportableTableView;
|
|
import javax.baja.workbench.view.BWbComponentView;
|
|
|
|
public class BAlarmConsole
|
|
extends BWbComponentView
|
|
implements SoundPlayer.MediaPlayerListener,
|
|
BIExportableTableView,
|
|
BIAlarmServiceView {
|
|
public static final Property title = BAlarmConsole.newProperty((int)0, (String)new UiLexicon(class$com$tridium$alarm$ui$BAlarmConsole == null ? (class$com$tridium$alarm$ui$BAlarmConsole = BAlarmConsole.class$("com.tridium.alarm.ui.BAlarmConsole")) : class$com$tridium$alarm$ui$BAlarmConsole).getText("alarm.openAlarmSources"), null);
|
|
public static final Property showTitle = BAlarmConsole.newProperty((int)0, (BValue)BBoolean.TRUE, null);
|
|
public static final Action processAlarm = BAlarmConsole.newAction((int)0, (BValue)new BAlarmRecord(), null);
|
|
public static final Action timeRangeModified = BAlarmConsole.newAction((int)0, null);
|
|
public static final Type TYPE = Sys.loadType((Class)(class$com$tridium$alarm$ui$BAlarmConsole == null ? (class$com$tridium$alarm$ui$BAlarmConsole = BAlarmConsole.class$("com.tridium.alarm.ui.BAlarmConsole")) : class$com$tridium$alarm$ui$BAlarmConsole));
|
|
protected BTable sourceTable;
|
|
protected SourceTableModel sourceModel;
|
|
protected BTable alarmTable;
|
|
protected BList instructions;
|
|
protected BSplitPane contentPane;
|
|
protected BButton filterBtn;
|
|
protected BConsoleRecipient recipient;
|
|
protected BAlarmService alarmService;
|
|
private List remotelyAcknowledgedAlarms;
|
|
private List locallyAcknowledgedAlarms;
|
|
private BMenu menu;
|
|
private ConsoleColumns columns;
|
|
private BGridPane toolBar;
|
|
BAlarmTitlePane alarmTitlePane;
|
|
protected BDynamicTimeRangeFE timeRangeEd;
|
|
protected BDynamicTimeRange timeRange;
|
|
protected BAlarmDetailsDialog detailsDlg;
|
|
protected BAlarmReportDialog alarmReport;
|
|
protected Context ctx;
|
|
private static SoundPlayer soundPlayer = UiEnv.get().isMicroEdition() ? new SoundPlayer() : new MediaPlayer();
|
|
Hashtable sounds = new Hashtable();
|
|
protected Command ackCommand;
|
|
protected Command ackRecentCommand;
|
|
private Command silenceCommand;
|
|
private Command urlCommand;
|
|
protected Command notesCommand;
|
|
private Command filterConfigCommand;
|
|
private Command showVideoCmd;
|
|
private ToggleCommand soundOnCommand;
|
|
private ToggleCommand continuousAlarmCommand;
|
|
private Command filterCmd;
|
|
private Command alarmClassMappingCommand;
|
|
private Command priorityColorsCommand;
|
|
protected Command addColumnCommand;
|
|
protected Command removeColumnCommand;
|
|
protected Command detailsCommand;
|
|
protected Command forceClear;
|
|
private ToggleCommand sourceTimeCommand;
|
|
private ToggleCommand consoleTimeCommand;
|
|
public BAlarmConsoleOptions options;
|
|
public static final Log logger = Log.getLog((String)"alarm");
|
|
public static final UiLexicon lexicon = new UiLexicon(class$com$tridium$alarm$ui$BAlarmConsole == null ? (class$com$tridium$alarm$ui$BAlarmConsole = BAlarmConsole.class$("com.tridium.alarm.ui.BAlarmConsole")) : class$com$tridium$alarm$ui$BAlarmConsole);
|
|
public final BImage lnkImg = BImage.make((String)lexicon.get("commands.hyperlink.icon"));
|
|
public final BImage ackImg = BImage.make((String)lexicon.get("commands.acknowledge.icon"));
|
|
Object dataMutex = new Object();
|
|
static /* synthetic */ Class class$com$tridium$alarm$ui$BAlarmConsole;
|
|
static /* synthetic */ Class class$javax$baja$alarm$BAlarmRecord;
|
|
static /* synthetic */ Class class$java$lang$String;
|
|
static /* synthetic */ Class class$javax$baja$sys$BString;
|
|
static /* synthetic */ Class class$java$lang$Integer;
|
|
static /* synthetic */ Class class$com$tridium$bql$filter$BFilterEntry;
|
|
|
|
public String getTitle() {
|
|
return this.getString(title);
|
|
}
|
|
|
|
public void setTitle(String string) {
|
|
this.setString(title, string, null);
|
|
}
|
|
|
|
public boolean getShowTitle() {
|
|
return this.getBoolean(showTitle);
|
|
}
|
|
|
|
public void setShowTitle(boolean bl) {
|
|
this.setBoolean(showTitle, bl, null);
|
|
}
|
|
|
|
public void processAlarm(BAlarmRecord bAlarmRecord) {
|
|
this.invoke(processAlarm, (BValue)bAlarmRecord, null);
|
|
}
|
|
|
|
public void timeRangeModified() {
|
|
this.invoke(timeRangeModified, null, null);
|
|
}
|
|
|
|
public Type getType() {
|
|
return TYPE;
|
|
}
|
|
|
|
public BAlarmConsole() {
|
|
Object object;
|
|
this.sourceTable = new BTable();
|
|
this.sourceTable.setController((TableController)this.getController());
|
|
this.sourceTable.setCellRenderer((TableCellRenderer)new AlarmTableCellRenderer());
|
|
this.options = this.getDefaultOptions();
|
|
BGridPane bGridPane = new BGridPane(1);
|
|
bGridPane.setStretchRow(0);
|
|
bGridPane.setStretchColumn(0);
|
|
bGridPane.setHalign(BHalign.fill);
|
|
bGridPane.setColumnAlign(BHalign.fill);
|
|
bGridPane.setValign(BValign.fill);
|
|
bGridPane.setRowAlign(BValign.fill);
|
|
this.instructions = new BList();
|
|
bGridPane.add(null, (BValue)new BTitlePane(lexicon.getText("alarm.instructions"), (BWidget)this.instructions));
|
|
this.timeRangeEd = new BDynamicTimeRangeFE();
|
|
this.ackCommand = new Command((BWidget)this, BAlarmConsole.lexicon.module, "commands.acknowledge"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
BAlarmConsole.this.acknowledgeAlarms(BAlarmConsole.this.getSelectedAlarmsDeep(BAlarmConsole.this.sourceTable));
|
|
return null;
|
|
}
|
|
};
|
|
this.ackCommand.setEnabled(false);
|
|
this.ackRecentCommand = new Command((BWidget)this, BAlarmConsole.lexicon.module, "commands.acknowledgeRecent"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
BAlarmConsole.this.acknowledgeAlarms(BAlarmConsole.this.getSelectedAlarms(BAlarmConsole.this.sourceTable));
|
|
return null;
|
|
}
|
|
};
|
|
this.ackRecentCommand.setEnabled(false);
|
|
this.silenceCommand = new Command((BWidget)this, BAlarmConsole.lexicon.module, "commands.silence"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
BAlarmConsole.this.alarmSilenceSelected();
|
|
return null;
|
|
}
|
|
};
|
|
this.silenceCommand.setEnabled(false);
|
|
this.urlCommand = new Command((BWidget)this, BAlarmConsole.lexicon.module, "commands.hyperlink"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
int n = BAlarmConsole.this.sourceTable.getSelection().getRow();
|
|
if (n != -1) {
|
|
BAlarmConsole.this.hyperlink(BAlarmConsole.this.sourceModel.getRecord(n));
|
|
}
|
|
return null;
|
|
}
|
|
};
|
|
this.urlCommand.setEnabled(false);
|
|
this.notesCommand = new Command((BWidget)this, BAlarmConsole.lexicon.module, "commands.notes"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
BAlarmRecord[] bAlarmRecordArray = BAlarmConsole.this.getSelectedAlarmsDeep(BAlarmConsole.this.sourceTable);
|
|
BAlarmConsole.this.showNotes((BWidget)BAlarmConsole.this, bAlarmRecordArray);
|
|
return null;
|
|
}
|
|
};
|
|
this.notesCommand.setEnabled(false);
|
|
this.detailsCommand = new Command((BWidget)this, BAlarmConsole.lexicon.module, "commands.details"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
BAlarmConsole.this.showDetailsDialog(BAlarmConsole.this.sourceTable, BAlarmConsole.this.sourceTable.getSelection().getRow());
|
|
return null;
|
|
}
|
|
};
|
|
this.detailsCommand.setEnabled(false);
|
|
this.filterCmd = new Command((BWidget)this, BAlarmConsole.lexicon.module, "commands.filter"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
BAlarmConsole.this.configFilters();
|
|
return null;
|
|
}
|
|
};
|
|
this.showVideoCmd = new Command((BWidget)this, BAlarmConsole.lexicon.module, "commands.showVideo"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
block8: {
|
|
try {
|
|
Class clazz = Sys.loadClass((String)"videoDriver", (String)"com.tridium.videoDriver.alarm.AlarmConsoleExt");
|
|
if (clazz != null) {
|
|
Method method = clazz.getMethod("doShowVideo", class$com$tridium$alarm$ui$BAlarmConsole == null ? (class$com$tridium$alarm$ui$BAlarmConsole = BAlarmConsole.class$("com.tridium.alarm.ui.BAlarmConsole")) : class$com$tridium$alarm$ui$BAlarmConsole, class$javax$baja$alarm$BAlarmRecord == null ? (class$javax$baja$alarm$BAlarmRecord = BAlarmConsole.class$("javax.baja.alarm.BAlarmRecord")) : class$javax$baja$alarm$BAlarmRecord);
|
|
if (method != null) {
|
|
int n = BAlarmConsole.this.sourceTable.getSelection().getRow();
|
|
ConsoleTableModel consoleTableModel = (ConsoleTableModel)((DynamicTableModel)BAlarmConsole.this.sourceTable.getModel()).getRootModel();
|
|
BAlarmRecord bAlarmRecord = consoleTableModel.getRecord(n);
|
|
method.invoke((Object)clazz, new Object[]{BAlarmConsole.this, bAlarmRecord});
|
|
} else {
|
|
System.out.println("The 'doShowVideo' method was not found on class AlarmConsoleExt in videoDriver.jar. Please have my program fixed");
|
|
}
|
|
break block8;
|
|
}
|
|
throw new LocalizableRuntimeException("alarm", "VideoDriverModuleNotFound");
|
|
}
|
|
catch (ClassNotFoundException classNotFoundException) {
|
|
throw new LocalizableRuntimeException("alarm", "VideoDriverModuleNotFound", (Throwable)classNotFoundException);
|
|
}
|
|
catch (NoSuchMethodException noSuchMethodException) {
|
|
throw new LocalizableRuntimeException("alarm", "VideoDriverModuleNotFound", (Throwable)noSuchMethodException);
|
|
}
|
|
catch (InvocationTargetException invocationTargetException) {
|
|
throw new LocalizableRuntimeException("alarm", "VideoDriverModuleNotFound", (Throwable)invocationTargetException);
|
|
}
|
|
catch (IllegalAccessException illegalAccessException) {
|
|
throw new LocalizableRuntimeException("alarm", "VideoDriverModuleNotFound", (Throwable)illegalAccessException);
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
};
|
|
this.showVideoCmd.setEnabled(false);
|
|
this.soundOnCommand = new ToggleCommand((BWidget)this, BAlarmConsole.lexicon.module, "commands.soundOn"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
BAlarmConsole.this.options.setSoundsEnabled(this.isSelected());
|
|
BAlarmConsole.this.options.save();
|
|
return null;
|
|
}
|
|
};
|
|
this.soundOnCommand.setSelected(this.options.getSoundsEnabled());
|
|
this.continuousAlarmCommand = new ToggleCommand((BWidget)this, BAlarmConsole.lexicon.module, "commands.continuousAlarm"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
BAlarmConsole.this.options.setContinuousAlarm(this.isSelected());
|
|
BAlarmConsole.this.options.save();
|
|
return null;
|
|
}
|
|
};
|
|
this.continuousAlarmCommand.setSelected(this.options.getContinuousAlarm());
|
|
this.continuousAlarmCommand.setEnabled(this.soundOnCommand.isSelected());
|
|
this.alarmClassMappingCommand = new Command((BWidget)this, BAlarmConsole.lexicon.module, "commands.alarmClassMapping"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
BAlarmClassMapping bAlarmClassMapping = BAlarmConsole.this.options.getAlarmClassMapping();
|
|
BAlarmClassMappingFE bAlarmClassMappingFE = new BAlarmClassMappingFE();
|
|
BAlarmConsole.this.add("temp", (BValue)bAlarmClassMappingFE);
|
|
bAlarmClassMappingFE.loadValue((BObject)bAlarmClassMapping);
|
|
BOptionDialog bOptionDialog = new BOptionDialog((BWidget)BAlarmConsole.this, "AlarmClassMapper", bAlarmClassMappingFE.createPopup(), 3, (BImage)null, (String)null);
|
|
bOptionDialog.setBoundsCenteredOnOwner();
|
|
IRectGeom iRectGeom = bOptionDialog.getScreenBounds();
|
|
bOptionDialog.setScreenBounds(iRectGeom.x(), iRectGeom.y(), 500.0, 400.0);
|
|
bOptionDialog.open();
|
|
int n = bOptionDialog.getResult();
|
|
if (n == 1) {
|
|
try {
|
|
bAlarmClassMapping = (BAlarmClassMapping)bAlarmClassMappingFE.doSaveValue((BObject)bAlarmClassMapping, null);
|
|
BAlarmConsole.this.options.setAlarmClassMapping(bAlarmClassMapping);
|
|
}
|
|
catch (Exception exception) {
|
|
exception.printStackTrace();
|
|
}
|
|
}
|
|
BAlarmConsole.this.remove((BComplex)bAlarmClassMappingFE);
|
|
return null;
|
|
}
|
|
};
|
|
this.priorityColorsCommand = new Command((BWidget)this, BAlarmConsole.lexicon.module, "commands.priorityColors"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
BColor bColor = BAlarmConsole.this.options.getLowPriorityColor();
|
|
BColor bColor2 = BAlarmConsole.this.options.getMidPriorityColor();
|
|
BColor bColor3 = BAlarmConsole.this.options.getHighPriorityColor();
|
|
BColorFE bColorFE = new BColorFE();
|
|
bColorFE.loadValue((BObject)bColor);
|
|
BColorFE bColorFE2 = new BColorFE();
|
|
bColorFE2.loadValue((BObject)bColor2);
|
|
BColorFE bColorFE3 = new BColorFE();
|
|
bColorFE3.loadValue((BObject)bColor3);
|
|
BGridPane bGridPane = new BGridPane(2);
|
|
bGridPane.add("l1", (BValue)new BLabel("Low Priority Color"));
|
|
bGridPane.add("f1", (BValue)bColorFE);
|
|
bGridPane.add("l2", (BValue)new BLabel("Mid Priority Color"));
|
|
bGridPane.add("f2", (BValue)bColorFE2);
|
|
bGridPane.add("l3", (BValue)new BLabel("High Priority Color"));
|
|
bGridPane.add("f3", (BValue)bColorFE3);
|
|
int n = BDialog.open((BWidget)BAlarmConsole.this, (String)lexicon.getText("commands.priorityColors.label"), (Object)bGridPane, (int)3, (BImage)null);
|
|
if (n == 1) {
|
|
try {
|
|
bColor = (BColor)bColorFE.saveValue((BObject)bColor, null);
|
|
bColor2 = (BColor)bColorFE2.saveValue((BObject)bColor2, null);
|
|
bColor3 = (BColor)bColorFE3.saveValue((BObject)bColor3, null);
|
|
BAlarmConsole.this.options.setLowPriorityColor(bColor);
|
|
BAlarmConsole.this.options.setMidPriorityColor(bColor2);
|
|
BAlarmConsole.this.options.setHighPriorityColor(bColor3);
|
|
}
|
|
catch (Exception exception) {
|
|
exception.printStackTrace();
|
|
}
|
|
((AlarmTableCellRenderer)BAlarmConsole.this.sourceTable.getCellRenderer()).resetPriorityColors();
|
|
BAlarmConsole.this.repaint();
|
|
}
|
|
return null;
|
|
}
|
|
};
|
|
this.addColumnCommand = new Command((BWidget)this, BAlarmConsole.lexicon.module, "commands.addColumn"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
int n;
|
|
BGridPane bGridPane = new BGridPane(2);
|
|
bGridPane.add("lbl", (BValue)new BLabel("AlarmData."));
|
|
BTextDropDown bTextDropDown = new BTextDropDown();
|
|
Field[] fieldArray = (class$javax$baja$alarm$BAlarmRecord == null ? (class$javax$baja$alarm$BAlarmRecord = BAlarmConsole.class$("javax.baja.alarm.BAlarmRecord")) : class$javax$baja$alarm$BAlarmRecord).getDeclaredFields();
|
|
Array array = new Array(class$java$lang$String == null ? (class$java$lang$String = BAlarmConsole.class$("java.lang.String")) : class$java$lang$String);
|
|
for (int i = 0; i < fieldArray.length; ++i) {
|
|
try {
|
|
if (!(fieldArray[i].get(null) instanceof String)) continue;
|
|
array.add(fieldArray[i].get(null));
|
|
continue;
|
|
}
|
|
catch (IllegalAccessException illegalAccessException) {
|
|
// empty catch block
|
|
}
|
|
}
|
|
Object[] objectArray = (String[])array.trim();
|
|
SortUtil.sort((Object[])objectArray, (Object[])objectArray, (Comparator)new Comparator(){
|
|
|
|
public int compare(Object object, Object object2) {
|
|
return object.toString().toLowerCase().compareTo(object2.toString().toLowerCase());
|
|
}
|
|
});
|
|
for (n = 0; n < objectArray.length; ++n) {
|
|
bTextDropDown.getList().addItem(objectArray[n]);
|
|
}
|
|
bGridPane.add("dataFacet", (BValue)bTextDropDown);
|
|
n = BDialog.open((BWidget)BAlarmConsole.this, (String)lexicon.getText("commands.addColumn.label"), (Object)bGridPane, (int)3, (BImage)null);
|
|
if (n == 1) {
|
|
try {
|
|
String string = bTextDropDown.getText();
|
|
BAlarmConsole.this.columns.addDataColumn(null, string);
|
|
for (int i = 0; i < 2; ++i) {
|
|
DynamicTableModel dynamicTableModel = null;
|
|
if (i == 0) {
|
|
dynamicTableModel = (DynamicTableModel)BAlarmConsole.this.sourceTable.getModel();
|
|
} else {
|
|
if (BAlarmConsole.this.alarmTable == null) break;
|
|
dynamicTableModel = (DynamicTableModel)BAlarmConsole.this.alarmTable.getModel();
|
|
}
|
|
dynamicTableModel.setColumnShowable(BAlarmConsole.this.columns.getColumnCount() - 1, true);
|
|
dynamicTableModel.setShowColumn(BAlarmConsole.this.columns.getColumnCount() - 1, true);
|
|
dynamicTableModel.updateTable();
|
|
}
|
|
BAlarmConsole.this.options.getAlarmDataCols().add(SlotPath.escape((String)string), (BValue)BString.make((String)string));
|
|
BAlarmConsole.this.options.save();
|
|
}
|
|
catch (Exception exception) {
|
|
exception.printStackTrace();
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
};
|
|
this.removeColumnCommand = new Command((BWidget)this, BAlarmConsole.lexicon.module, "commands.removeColumn"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
int n;
|
|
BGridPane bGridPane = new BGridPane(2);
|
|
bGridPane.add("lbl", (BValue)new BLabel("AlarmData."));
|
|
ArrayList arrayList = new ArrayList();
|
|
BString[] bStringArray = (BString[])BAlarmConsole.this.options.getAlarmDataCols().getChildren(class$javax$baja$sys$BString == null ? (class$javax$baja$sys$BString = BAlarmConsole.class$("javax.baja.sys.BString")) : class$javax$baja$sys$BString);
|
|
BListDropDown bListDropDown = new BListDropDown();
|
|
for (n = 0; n < bStringArray.length; ++n) {
|
|
bListDropDown.getList().addItem((Object)bStringArray[n].toString());
|
|
}
|
|
bGridPane.add("tf", (BValue)bListDropDown);
|
|
n = BDialog.open((BWidget)BAlarmConsole.this, (String)lexicon.getText("commands.removeColumn.label"), (Object)bGridPane, (int)3, (BImage)null);
|
|
if (n == 1) {
|
|
String string = bListDropDown.getSelectedItem().toString();
|
|
int n2 = BAlarmConsole.this.columns.dataColumnIndex(string);
|
|
if (n2 == -1) {
|
|
return null;
|
|
}
|
|
for (int i = 0; i < 2; ++i) {
|
|
int n3;
|
|
DynamicTableModel dynamicTableModel = null;
|
|
if (i == 0) {
|
|
dynamicTableModel = (DynamicTableModel)BAlarmConsole.this.sourceTable.getModel();
|
|
} else {
|
|
if (BAlarmConsole.this.alarmTable == null) break;
|
|
dynamicTableModel = (DynamicTableModel)BAlarmConsole.this.alarmTable.getModel();
|
|
}
|
|
boolean[] blArray = new boolean[BAlarmConsole.this.columns.getColumnCount()];
|
|
for (n3 = 0; n3 < blArray.length; ++n3) {
|
|
blArray[n3] = dynamicTableModel.showColumn(n3);
|
|
}
|
|
for (n3 = n2; n3 < blArray.length - 1; ++n3) {
|
|
blArray[n3] = blArray[n3 + 1];
|
|
}
|
|
blArray[blArray.length - 1] = false;
|
|
for (n3 = 0; n3 < blArray.length; ++n3) {
|
|
dynamicTableModel.setShowColumn(n3, blArray[n3]);
|
|
}
|
|
}
|
|
BAlarmConsole.this.columns.removeDataColumn(string);
|
|
BAlarmConsole.this.options.getAlarmDataCols().remove(SlotPath.escape((String)string));
|
|
BAlarmConsole.this.options.save();
|
|
BAlarmConsole.this.sourceModel.updateTable();
|
|
}
|
|
return null;
|
|
}
|
|
};
|
|
this.forceClear = new Command((BWidget)this, BAlarmConsole.lexicon.module, "commands.forceClear"){
|
|
|
|
public CommandArtifact doInvoke() {
|
|
BAlarmRecord[] bAlarmRecordArray = BAlarmConsole.this.getSelectedAlarmsDeep(BAlarmConsole.this.sourceTable);
|
|
for (int i = 0; i < bAlarmRecordArray.length; ++i) {
|
|
BAlarmRecord bAlarmRecord = (BAlarmRecord)bAlarmRecordArray[i].newCopy();
|
|
bAlarmRecord.setSourceState(BSourceState.normal);
|
|
bAlarmRecord.setAckState(BAckState.acked);
|
|
bAlarmRecord.addAlarmFacet("forceCleared", (BIDataValue)BString.make((String)BAlarmConsole.this.getUsername(bAlarmRecord)));
|
|
if (bAlarmRecord.getAckTime().equals((Object)BAbsTime.NULL)) {
|
|
bAlarmRecord.setAckTime(BAbsTime.now());
|
|
}
|
|
if (bAlarmRecord.getNormalTime().equals((Object)BAbsTime.NULL)) {
|
|
bAlarmRecord.setNormalTime(BAbsTime.now());
|
|
}
|
|
try {
|
|
BAlarmConsole.this.sendUpdatedAlarm(bAlarmRecord);
|
|
BAlarmConsole.this.getAlarmService().auditForceClear(bAlarmRecord);
|
|
BAlarmConsole.this.removeAlarm(bAlarmRecord);
|
|
continue;
|
|
}
|
|
catch (Exception exception) {
|
|
exception.printStackTrace();
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
};
|
|
this.forceClear.setEnabled(false);
|
|
this.columns = this.getConsoleColumns();
|
|
BString[] bStringArray = (BString[])this.options.getAlarmDataCols().getChildren(class$javax$baja$sys$BString == null ? (class$javax$baja$sys$BString = BAlarmConsole.class$("javax.baja.sys.BString")) : class$javax$baja$sys$BString);
|
|
for (int i = 0; i < bStringArray.length; ++i) {
|
|
this.columns.addDataColumn(null, bStringArray[i].toString());
|
|
}
|
|
this.sourceModel = this.makeSourceTableModel(this.columns, this.recipient, null);
|
|
this.sourceModel.setInitialSort(this.options.getSortColumn(), this.options.getSortAscending());
|
|
String string = this.options.getDisplayColumns();
|
|
StringTokenizer stringTokenizer = new StringTokenizer(string, ",");
|
|
Array array = new Array(class$java$lang$Integer == null ? (class$java$lang$Integer = BAlarmConsole.class$("java.lang.Integer")) : class$java$lang$Integer);
|
|
while (stringTokenizer.hasMoreTokens()) {
|
|
object = stringTokenizer.nextToken();
|
|
array.add((Object)new Integer((String)object));
|
|
}
|
|
object = new int[array.size()];
|
|
for (int i = 0; i < array.size(); ++i) {
|
|
object[i] = (Integer)array.get(i);
|
|
}
|
|
this.sourceTable.setModel((TableModel)new DynamicTableModel((TableModel)this.sourceModel, (int[])object));
|
|
BEdgePane bEdgePane = new BEdgePane();
|
|
bEdgePane.setTop((BWidget)this.timeRangeEd);
|
|
this.toolBar = this.makeToolBar();
|
|
bEdgePane.setBottom((BWidget)new BBorderPane((BWidget)this.toolBar));
|
|
this.alarmTitlePane = BAlarmTitlePane.makePane(this.getTitle(), this.sourceTable);
|
|
bEdgePane.setCenter((BWidget)this.alarmTitlePane);
|
|
if (this.options.getViewInstructions()) {
|
|
double d = this.options.getInstructionsDividerPosition();
|
|
this.contentPane = new BSplitPane(BOrientation.vertical, d);
|
|
this.contentPane.setWidget1((BWidget)bEdgePane);
|
|
this.contentPane.setWidget2((BWidget)bGridPane);
|
|
this.setContent((BWidget)this.contentPane);
|
|
} else {
|
|
this.setContent((BWidget)bEdgePane);
|
|
}
|
|
}
|
|
|
|
public BTable getExportTable() {
|
|
return this.sourceTable;
|
|
}
|
|
|
|
public BToolBar getViewToolBar() {
|
|
BToolBar bToolBar = new BToolBar();
|
|
bToolBar.add("filter", this.filterCmd);
|
|
return bToolBar;
|
|
}
|
|
|
|
public void changed(Property property, Context context) {
|
|
if (property.equals(title) && this.alarmTitlePane != null) {
|
|
this.alarmTitlePane.setTitle(this.getTitle());
|
|
}
|
|
if (property.equals(showTitle) && this.alarmTitlePane != null) {
|
|
this.alarmTitlePane.setTitleVisible(this.getShowTitle());
|
|
}
|
|
}
|
|
|
|
public void stopped() throws Exception {
|
|
super.stopped();
|
|
if (this.channel() != null) {
|
|
this.channel().unregister(this.recipient);
|
|
this.channel().unregister(this);
|
|
}
|
|
if (soundPlayer != null) {
|
|
soundPlayer.stop();
|
|
soundPlayer.removeListener(this);
|
|
}
|
|
if (this.contentPane != null) {
|
|
this.options.setInstructionsDividerPosition(this.contentPane.getDividerPosition());
|
|
}
|
|
DynamicTableModel dynamicTableModel = (DynamicTableModel)this.sourceTable.getModel();
|
|
StringBuffer stringBuffer = new StringBuffer();
|
|
for (int i = 0; i < dynamicTableModel.getRootColumnCount(); ++i) {
|
|
if (!dynamicTableModel.showColumn(i)) continue;
|
|
stringBuffer.append(i + ",");
|
|
}
|
|
if (dynamicTableModel.getRootColumnCount() > 0) {
|
|
this.options.setDisplayColumns(stringBuffer.toString());
|
|
}
|
|
this.options.setSortColumn(this.sourceModel.getLastSortColumn());
|
|
this.options.setSortAscending(this.sourceModel.getLastSortAscending());
|
|
this.options.save();
|
|
}
|
|
|
|
public BAlarmConsoleOptions getDefaultOptions() {
|
|
return BAlarmConsoleOptions.getDefault();
|
|
}
|
|
|
|
public ConsoleColumns getConsoleColumns() {
|
|
return new ConsoleColumns();
|
|
}
|
|
|
|
protected Controller getController() {
|
|
return new Controller();
|
|
}
|
|
|
|
protected SourceTableModel makeSourceTableModel(ConsoleColumns consoleColumns, BConsoleRecipient bConsoleRecipient, Context context) {
|
|
return new SourceTableModel(consoleColumns, bConsoleRecipient, context);
|
|
}
|
|
|
|
public void doLoadValue(BObject bObject, Context context) throws Exception {
|
|
this.recipient = (BConsoleRecipient)bObject;
|
|
this.ctx = context;
|
|
this.locallyAcknowledgedAlarms = Collections.synchronizedList(new ArrayList());
|
|
this.remotelyAcknowledgedAlarms = new ArrayList();
|
|
this.sourceTable.setMultipleSelection(true);
|
|
BWbShell bWbShell = this.getWbShell();
|
|
if (bWbShell == null) {
|
|
bWbShell = this.getShell();
|
|
}
|
|
this.sourceTimeCommand = new ToggleCommand((BWidget)this, BAlarmConsole.lexicon.module, "commands.sourceTimeZone");
|
|
this.consoleTimeCommand = new ToggleCommand((BWidget)this, BAlarmConsole.lexicon.module, "commands.consoleTimeZone");
|
|
BTimeZoneDisplay bTimeZoneDisplay = this.options.getTimeZoneDisplay();
|
|
RadioGroup radioGroup = new RadioGroup();
|
|
radioGroup.add(this.sourceTimeCommand);
|
|
radioGroup.add(this.consoleTimeCommand);
|
|
if (bTimeZoneDisplay == BTimeZoneDisplay.console) {
|
|
this.consoleTimeCommand.setSelected(true);
|
|
} else {
|
|
this.sourceTimeCommand.setSelected(true);
|
|
}
|
|
this.timeRange = this.recipient.getDefaultTimeRange();
|
|
this.timeRangeEd.loadValue((BObject)this.timeRange);
|
|
BFilterSet bFilterSet = this.options.getAlarmFilters();
|
|
BFilterEntry[] bFilterEntryArray = (BFilterEntry[])bFilterSet.getChildren(class$com$tridium$bql$filter$BFilterEntry == null ? (class$com$tridium$bql$filter$BFilterEntry = BAlarmConsole.class$("com.tridium.bql.filter.BFilterEntry")) : class$com$tridium$bql$filter$BFilterEntry);
|
|
boolean bl = false;
|
|
for (int i = 0; i < bFilterEntryArray.length; ++i) {
|
|
if (!bFilterEntryArray[i].getActive()) continue;
|
|
bl = true;
|
|
break;
|
|
}
|
|
if (bl) {
|
|
this.filterBtn.setImage(BImage.make((String)lexicon.getText("commands.filtered.icon")));
|
|
this.filterBtn.setForeground(BBrush.makeSolid((BColor)BColor.red));
|
|
}
|
|
this.linkTo("rangeLink", (BComponent)this.timeRangeEd, (Slot)BWbFieldEditor.setModified, (Slot)timeRangeModified);
|
|
if (bWbShell instanceof BWbShell) {
|
|
new LoadThread().start();
|
|
}
|
|
}
|
|
|
|
public BGridPane makeToolBar() {
|
|
BGridPane bGridPane = new BGridPane(BAlarmConsole.isVideoDriverAvailable() ? 6 : 5);
|
|
bGridPane.setColumnAlign(BHalign.fill);
|
|
bGridPane.setUniformColumnWidth(true);
|
|
BButton bButton = new BButton(this.ackCommand, true, true);
|
|
bGridPane.add("ack", (BValue)bButton);
|
|
BButton bButton2 = new BButton(this.urlCommand, true, true);
|
|
bGridPane.add("hyp", (BValue)bButton2);
|
|
BButton bButton3 = new BButton(this.notesCommand, true, true);
|
|
bGridPane.add("notes", (BValue)bButton3);
|
|
BButton bButton4 = new BButton(this.silenceCommand, true, true);
|
|
bGridPane.add("sil", (BValue)bButton4);
|
|
this.filterBtn = new BButton(this.filterCmd, true, true);
|
|
bGridPane.add("filter", (BValue)this.filterBtn);
|
|
if (BAlarmConsole.isVideoDriverAvailable()) {
|
|
BButton bButton5 = new BButton(this.showVideoCmd, true, true);
|
|
bGridPane.add("showVideo", (BValue)bButton5);
|
|
}
|
|
return bGridPane;
|
|
}
|
|
|
|
public BMenu[] getViewMenus() {
|
|
BMenu bMenu = lexicon.buildMenu("menu.alarm.label");
|
|
bMenu.add("acknowledge", this.ackCommand);
|
|
bMenu.add("hyperlink", this.urlCommand);
|
|
bMenu.add("notes", this.notesCommand);
|
|
bMenu.add("deatils", this.detailsCommand);
|
|
bMenu.add("silence", this.silenceCommand);
|
|
bMenu.add("sep0", (BValue)new BSeparator());
|
|
if (this.getRecipientForAlarm(null) == null || this.getRecipientForAlarm(null).getPermissions(this.ctx).hasAdminWrite() || this.getRecipientForAlarm(null).getPermissions(this.ctx).hasAdminInvoke()) {
|
|
bMenu.add("forceClear", this.forceClear);
|
|
bMenu.add("sep1", (BValue)new BSeparator());
|
|
}
|
|
bMenu.add("soundOn", (Command)this.soundOnCommand);
|
|
bMenu.add("continuousAlarm", (Command)this.continuousAlarmCommand);
|
|
bMenu.add("acMap", this.alarmClassMappingCommand);
|
|
bMenu.add("pColors", this.priorityColorsCommand);
|
|
bMenu.add("sep2", (BValue)new BSeparator());
|
|
bMenu.add("sourceTime", (Command)this.sourceTimeCommand);
|
|
bMenu.add("consoleTime", (Command)this.consoleTimeCommand);
|
|
bMenu.add("sep3", (BValue)new BSeparator());
|
|
bMenu.add("addCol", this.addColumnCommand);
|
|
bMenu.add("removeCol", this.removeColumnCommand);
|
|
return new BMenu[]{bMenu};
|
|
}
|
|
|
|
public void doProcessAlarm(BAlarmRecord bAlarmRecord) {
|
|
logger.trace("BAlarmConsole.doProcess(): " + this.recipient.getName() + " got alarm: " + bAlarmRecord.getTimestamp() + " : " + (Object)((Object)bAlarmRecord.getSourceState()));
|
|
if (!bAlarmRecord.isOpen()) {
|
|
this.removeAlarm(bAlarmRecord);
|
|
} else {
|
|
BAbsTime bAbsTime = BAbsTime.now();
|
|
BAbsTime bAbsTime2 = this.timeRange.getStartTime(bAbsTime);
|
|
BAbsTime bAbsTime3 = this.timeRange.getEndTime(bAbsTime);
|
|
if (this.options.getAlarmFilters().accept((BComplex)bAlarmRecord) && (bAbsTime2.isNull() || bAbsTime2.isBefore(bAlarmRecord.getTimestamp())) && (bAbsTime3.isNull() || this.timeRange.getEndTime(bAbsTime).isAfter(bAlarmRecord.getTimestamp()))) {
|
|
this.updateAlarm(bAlarmRecord, true);
|
|
} else {
|
|
this.removeAlarm(bAlarmRecord);
|
|
}
|
|
}
|
|
this.options.setSortColumn(this.sourceModel.getLastSortColumn());
|
|
this.options.setSortAscending(this.sourceModel.getLastSortAscending());
|
|
this.sourceModel.sortByColumn(this.sourceModel.getLastSortColumn(), this.sourceModel.getLastSortAscending());
|
|
((Controller)this.sourceTable.getController()).enableCommands();
|
|
}
|
|
|
|
public void doTimeRangeModified() throws Exception {
|
|
this.timeRange = (BDynamicTimeRange)this.timeRangeEd.saveValue();
|
|
BWbShell bWbShell = this.getWbShell();
|
|
if (bWbShell == null) {
|
|
bWbShell = this.getShell();
|
|
}
|
|
if (bWbShell instanceof BWbShell) {
|
|
new LoadThread().start();
|
|
} else {
|
|
this.load();
|
|
}
|
|
}
|
|
|
|
/*
|
|
* WARNING - Removed try catching itself - possible behaviour change.
|
|
*/
|
|
public void acknowledgeAlarms(BAlarmRecord[] bAlarmRecordArray) {
|
|
Object object = this.dataMutex;
|
|
synchronized (object) {
|
|
if (this.options.getNotesRequiredOnAck()) {
|
|
BTextDropDown bTextDropDown = new BTextDropDown(false);
|
|
BEdgePane bEdgePane = new BEdgePane();
|
|
String string = lexicon.getText("alarm.multipleAlarmNotes");
|
|
if (bAlarmRecordArray.length == 1) {
|
|
string = bAlarmRecordArray[0].getAlarmData().get("notes") != null ? bAlarmRecordArray[0].getAlarmData().get("notes").toString() : "";
|
|
}
|
|
BTextEditorPane bTextEditorPane = new BTextEditorPane(string.toString(), 12, 80, false);
|
|
bEdgePane.setTop((BWidget)bTextEditorPane);
|
|
BList bList = bTextDropDown.getList();
|
|
BVector bVector = this.options.getAlarmAckResponses();
|
|
BString[] bStringArray = (BString[])bVector.getChildren(class$javax$baja$sys$BString == null ? (class$javax$baja$sys$BString = BAlarmConsole.class$("javax.baja.sys.BString")) : class$javax$baja$sys$BString);
|
|
for (int i = 0; i < bStringArray.length; ++i) {
|
|
bList.addItem((Object)BFormat.make((String)bStringArray[i].toString()).format((Object)this));
|
|
}
|
|
BEdgePane bEdgePane2 = new BEdgePane();
|
|
if (bList.getItemCount() > 0) {
|
|
bEdgePane2.setTop((BWidget)bTextDropDown);
|
|
}
|
|
BTextEditorPane bTextEditorPane2 = new BTextEditorPane("", 8, 80, true);
|
|
bEdgePane2.setCenter((BWidget)bTextEditorPane2);
|
|
bEdgePane.setCenter((BWidget)bEdgePane2);
|
|
bTextEditorPane2.getEditor().requestFocus();
|
|
int n = BDialog.open((BWidget)this, (String)lexicon.getText("commands.notes.label"), (Object)new BBorderPane((BWidget)bEdgePane), (int)3);
|
|
if (n == 2) {
|
|
return;
|
|
}
|
|
String string2 = bTextEditorPane2.getText();
|
|
if (bList.getItemCount() > 0) {
|
|
string2 = bTextDropDown.getText() + "\n" + bTextEditorPane2.getText();
|
|
}
|
|
for (int i = 0; i < bAlarmRecordArray.length; ++i) {
|
|
StringBuffer stringBuffer;
|
|
BFacets bFacets = bAlarmRecordArray[i].getAlarmData();
|
|
HashMap<String, StringBuffer> hashMap = new HashMap<String, StringBuffer>();
|
|
String[] stringArray = bFacets.list();
|
|
for (int j = 0; j < stringArray.length; ++j) {
|
|
if (stringArray[j].equals("notes")) continue;
|
|
stringBuffer = bFacets.get(stringArray[j]);
|
|
hashMap.put(stringArray[j], stringBuffer);
|
|
}
|
|
String string3 = "";
|
|
if (bFacets.get("notes") != null) {
|
|
string3 = bFacets.get("notes").toString();
|
|
}
|
|
stringBuffer = new StringBuffer();
|
|
stringBuffer.append("## " + BAbsTime.now() + " - " + this.getUsername(bAlarmRecordArray[i]) + " ##\n");
|
|
stringBuffer.append(string2);
|
|
stringBuffer.append("\n\n");
|
|
stringBuffer.append(string3);
|
|
hashMap.put("notes", (StringBuffer)BString.make((String)stringBuffer.toString()));
|
|
BFacets bFacets2 = BFacets.make(hashMap);
|
|
bAlarmRecordArray[i].setAlarmData(bFacets2);
|
|
}
|
|
}
|
|
this.ackAlarms(bAlarmRecordArray);
|
|
if (bAlarmRecordArray.length > 1) {
|
|
this.sourceTable.getSelection().deselectAll();
|
|
}
|
|
}
|
|
}
|
|
|
|
public void alarmSilenceSelected() {
|
|
if (soundPlayer != null) {
|
|
soundPlayer.stop();
|
|
}
|
|
this.mediaPlayerStopped();
|
|
}
|
|
|
|
public void mediaPlayerStopped() {
|
|
this.silenceCommand.setEnabled(false);
|
|
}
|
|
|
|
public void showError(String string, Throwable throwable) {
|
|
BDialog.error((BWidget)this, (String)"Error", (Object)string, (Throwable)throwable);
|
|
}
|
|
|
|
public void showNotes(BWidget bWidget, BAlarmRecord[] bAlarmRecordArray) {
|
|
if (bAlarmRecordArray.length == 0) {
|
|
return;
|
|
}
|
|
String string = "";
|
|
if (bAlarmRecordArray.length == 1) {
|
|
try {
|
|
string = ((BString)bAlarmRecordArray[0].getAlarmData().getFacet("notes")).getString();
|
|
}
|
|
catch (Exception exception) {}
|
|
} else {
|
|
string = lexicon.getText("alarm.multipleAlarmNotes");
|
|
}
|
|
BNotesDialog bNotesDialog = new BNotesDialog((BWidget)this, string, this.getUsername(bAlarmRecordArray[0]), this.canModifySelectedAlarms());
|
|
bNotesDialog.setBoundsCenteredOnOwner();
|
|
bNotesDialog.open();
|
|
String string2 = bNotesDialog.getNewNotes();
|
|
for (int i = 0; i < bAlarmRecordArray.length; ++i) {
|
|
if (string2 == null) continue;
|
|
try {
|
|
string = string2 + ((BString)bAlarmRecordArray[i].getAlarmData().getFacet("notes")).getString();
|
|
}
|
|
catch (Exception exception) {
|
|
string = string2;
|
|
}
|
|
BFacets bFacets = bAlarmRecordArray[i].getAlarmData();
|
|
HashMap<String, Object> hashMap = new HashMap<String, Object>();
|
|
String[] stringArray = bFacets.list();
|
|
for (int j = 0; j < stringArray.length; ++j) {
|
|
if (stringArray[j].equals("notes")) continue;
|
|
BObject bObject = bFacets.get(stringArray[j]);
|
|
hashMap.put(stringArray[j], bObject);
|
|
}
|
|
hashMap.put("notes", BString.make((String)string));
|
|
BFacets bFacets2 = BFacets.make(hashMap);
|
|
bAlarmRecordArray[i].setAlarmData(bFacets2);
|
|
try {
|
|
this.sendUpdatedAlarm(bAlarmRecordArray[i]);
|
|
continue;
|
|
}
|
|
catch (Exception exception) {
|
|
exception.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
protected String getUsername(BAlarmRecord bAlarmRecord) {
|
|
BFoxSession bFoxSession = (BFoxSession)this.getCurrentValueSession();
|
|
BFoxClientConnection bFoxClientConnection = bFoxSession.getConnection();
|
|
return bFoxClientConnection.getUsername();
|
|
}
|
|
|
|
protected boolean canModifySelectedAlarms() {
|
|
return this.canModifySelectedAlarms(this.sourceModel.getSelection());
|
|
}
|
|
|
|
protected boolean canModifySelectedAlarms(TableSelection tableSelection) {
|
|
if (tableSelection == null || tableSelection.isEmpty()) {
|
|
return false;
|
|
}
|
|
int[] nArray = tableSelection.getRows();
|
|
SourceTableModel sourceTableModel = (SourceTableModel)((DynamicTableModel)this.sourceModel.getModel()).getRootModel();
|
|
BAlarmService bAlarmService = this.getAlarmService();
|
|
for (int i = 0; i < nArray.length; ++i) {
|
|
BAlarmRecord bAlarmRecord = sourceTableModel.getRecord(nArray[i]);
|
|
BAlarmClass bAlarmClass = bAlarmService.lookupAlarmClass(bAlarmRecord.getAlarmClass());
|
|
if (!(bAlarmClass == null ? !bAlarmService.getDefaultAlarmClass().getPermissions(this.ctx).hasOperatorWrite() : !bAlarmClass.getPermissions(this.ctx).hasOperatorWrite())) continue;
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
protected void loadComplete() {
|
|
this.exitBusy();
|
|
this.exitBusy();
|
|
}
|
|
|
|
/*
|
|
* WARNING - Removed try catching itself - possible behaviour change.
|
|
*/
|
|
public void load() {
|
|
Object object = this.dataMutex;
|
|
synchronized (object) {
|
|
this.enterBusy();
|
|
try {
|
|
String string;
|
|
BAbsTimeFilter bAbsTimeFilter;
|
|
BDynamicTimeRange bDynamicTimeRange;
|
|
StringBuffer stringBuffer = new StringBuffer(this.channel().getInitialAlarmQuery(this, this.recipient).toString());
|
|
BFilterSet bFilterSet = this.options.getAlarmFilters();
|
|
StringBuffer stringBuffer2 = new StringBuffer(64);
|
|
String string2 = bFilterSet.getPredicate();
|
|
if (string2 != null && string2.length() > 0) {
|
|
if (stringBuffer2.length() != 0) {
|
|
stringBuffer2.append(" and ");
|
|
}
|
|
stringBuffer2.append(string2);
|
|
}
|
|
if (stringBuffer2.length() != 0) {
|
|
stringBuffer.append(" and ").append(stringBuffer2.toString());
|
|
}
|
|
if (!(bDynamicTimeRange = (BDynamicTimeRange)this.timeRangeEd.saveValue()).equals((Object)BDynamicTimeRange.DEFAULT)) {
|
|
bAbsTimeFilter = new BAbsTimeFilter();
|
|
bAbsTimeFilter.initFromDynamicTimeRange(bDynamicTimeRange);
|
|
string = bAbsTimeFilter.getPredicate(BAlarmRecord.timestamp.getName());
|
|
stringBuffer.append(" and ").append(string.toString());
|
|
}
|
|
stringBuffer.append(" order by timestamp desc, ");
|
|
if (this.options.getSortColumn() < this.sourceModel.getColumns().getColumnCount()) {
|
|
stringBuffer.append(this.sourceModel.getColumns().getColumn(this.options.getSortColumn()).getQueryName());
|
|
} else {
|
|
stringBuffer.append(this.sourceModel.getColumns().getColumn(0).getQueryName());
|
|
}
|
|
if (this.options.getSortAscending()) {
|
|
stringBuffer.append(" asc");
|
|
} else {
|
|
stringBuffer.append(" desc");
|
|
}
|
|
bAbsTimeFilter = BOrd.make((BOrd)this.getCurrentValueSession().getAbsoluteOrd(), (BOrd)BOrd.make((String)stringBuffer.toString()));
|
|
string = (BICollection)bAbsTimeFilter.resolve(this.getCurrentValue()).get();
|
|
Cursor cursor = string.cursor();
|
|
this.sourceModel.clear();
|
|
if (cursor.next()) {
|
|
BAlarmRecord bAlarmRecord = (BAlarmRecord)cursor.get();
|
|
if (bAlarmRecord.isOpen()) {
|
|
this.sourceModel.update(bAlarmRecord);
|
|
this.sourceTable.sizeColumnsToFit();
|
|
}
|
|
while (cursor.next()) {
|
|
bAlarmRecord = (BAlarmRecord)cursor.get();
|
|
if (bAlarmRecord.getSourceState() == BSourceState.normal && (bAlarmRecord.isAcknowledged() || !bAlarmRecord.getAckRequired())) continue;
|
|
this.sourceModel.update(bAlarmRecord, false);
|
|
}
|
|
this.sourceModel.sortByColumn(this.sourceModel.getLastSortColumn(), this.sourceModel.getLastSortAscending());
|
|
this.sourceModel.updateTable();
|
|
this.sourceTable.sizeColumnsToFit();
|
|
}
|
|
for (int i = 0; i < this.sourceModel.getRowCount(); ++i) {
|
|
if (!this.sourceModel.getRecord(i).isAlarm()) continue;
|
|
this.soundAlarmFor(this.sourceModel.getRecord(i));
|
|
}
|
|
}
|
|
catch (Exception exception) {
|
|
exception.printStackTrace();
|
|
}
|
|
finally {
|
|
this.exitBusy();
|
|
this.loadComplete();
|
|
this.sourceModel.init(this, this.ctx);
|
|
this.sourceTable.sizeColumnsToFit();
|
|
this.sourceModel.getTable().fireTableModified(null);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void configFilters() {
|
|
if (this.sourceTable == null) {
|
|
return;
|
|
}
|
|
SlotCursor slotCursor = this.options.getAlarmFilters().getProperties();
|
|
if (!slotCursor.next(class$com$tridium$bql$filter$BFilterEntry == null ? (class$com$tridium$bql$filter$BFilterEntry = BAlarmConsole.class$("com.tridium.bql.filter.BFilterEntry")) : class$com$tridium$bql$filter$BFilterEntry)) {
|
|
this.options.setAlarmFilters(this.buildFilterSet());
|
|
}
|
|
BFilterSetEditor bFilterSetEditor = new BFilterSetEditor();
|
|
bFilterSetEditor.loadValue((BObject)this.options.getAlarmFilters());
|
|
BBorderPane bBorderPane = new BBorderPane((BWidget)bFilterSetEditor, 10.0, 10.0, 10.0, 10.0);
|
|
if (BDialog.open((BWidget)this, (String)"Filters", (Object)bBorderPane, (int)3) != 2) {
|
|
try {
|
|
BWbShell bWbShell;
|
|
if (bFilterSetEditor.isModified()) {
|
|
bWbShell = (BFilterSet)bFilterSetEditor.saveValue();
|
|
this.options.setAlarmFilters((BFilterSet)bWbShell);
|
|
BFilterEntry[] bFilterEntryArray = (BFilterEntry[])bWbShell.getChildren(class$com$tridium$bql$filter$BFilterEntry == null ? (class$com$tridium$bql$filter$BFilterEntry = BAlarmConsole.class$("com.tridium.bql.filter.BFilterEntry")) : class$com$tridium$bql$filter$BFilterEntry);
|
|
boolean bl = false;
|
|
for (int i = 0; i < bFilterEntryArray.length; ++i) {
|
|
if (!bFilterEntryArray[i].getActive()) continue;
|
|
bl = true;
|
|
break;
|
|
}
|
|
if (bl) {
|
|
this.filterBtn.setImage(BImage.make((String)lexicon.getText("commands.filtered.icon")));
|
|
this.filterBtn.setForeground(BBrush.makeSolid((BColor)BColor.red));
|
|
} else {
|
|
this.filterBtn.setImage(BImage.make((String)lexicon.getText("commands.filter.icon")));
|
|
this.filterBtn.setForeground(BBrush.NULL);
|
|
}
|
|
}
|
|
if ((bWbShell = this.getWbShell()) == null) {
|
|
bWbShell = this.getShell();
|
|
}
|
|
if (bWbShell instanceof BWbShell) {
|
|
new LoadThread().start();
|
|
} else {
|
|
this.load();
|
|
}
|
|
}
|
|
catch (Exception exception) {
|
|
exception.printStackTrace();
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
private BFilterSet buildFilterSet() {
|
|
BAlarmRecord bAlarmRecord = new BAlarmRecord();
|
|
BFilterSet bFilterSet = new BFilterSet();
|
|
Property[] propertyArray = bAlarmRecord.getPropertiesArray();
|
|
for (int i = 0; i < propertyArray.length; ++i) {
|
|
BValue bValue;
|
|
AgentList agentList;
|
|
if (propertyArray[i].equals(BAlarmRecord.timestamp) || (agentList = (bValue = bAlarmRecord.get(propertyArray[i])).getAgents().filter(AgentFilter.is((Type)BIBqlFilter.TYPE))).size() == 0) continue;
|
|
BIBqlFilter bIBqlFilter = (BIBqlFilter)agentList.getDefault().getInstance();
|
|
bIBqlFilter.init((BObject)bValue);
|
|
BFilterEntry bFilterEntry = new BFilterEntry(false, propertyArray[i].getDefaultDisplayName(this.getCurrentContext()), bIBqlFilter);
|
|
bFilterSet.add(propertyArray[i].getName(), (BValue)bFilterEntry, 0, bAlarmRecord.getSlotFacets((Slot)propertyArray[i]), null);
|
|
}
|
|
return bFilterSet;
|
|
}
|
|
|
|
public void updateAlarm(BAlarmRecord bAlarmRecord, boolean bl) {
|
|
logger.trace("BAlarmConsole.alarmCreated(): update alarm: uuid = " + bAlarmRecord.getUuid() + ", priority = " + bAlarmRecord.getPriority());
|
|
BAbsTime bAbsTime = BAbsTime.now();
|
|
BAbsTime bAbsTime2 = this.timeRange.getStartTime(bAbsTime);
|
|
BAbsTime bAbsTime3 = this.timeRange.getEndTime(bAbsTime);
|
|
if (this.options.getAlarmFilters().accept((BComplex)bAlarmRecord) && (bAbsTime2.isNull() || bAbsTime2.isBefore(bAlarmRecord.getTimestamp())) && (bAbsTime3.isNull() || bAbsTime3.isAfter(bAlarmRecord.getTimestamp()))) {
|
|
this.sourceModel.update(bAlarmRecord);
|
|
this.sourceTable.sizeColumnsToFit();
|
|
}
|
|
if (bl && bAlarmRecord.isAlarm()) {
|
|
this.soundAlarmFor(bAlarmRecord);
|
|
} else if (bl) {
|
|
this.silenceAlarm(bAlarmRecord);
|
|
}
|
|
}
|
|
|
|
public void removeAlarm(BAlarmRecord bAlarmRecord) {
|
|
this.sourceModel.remove(bAlarmRecord);
|
|
this.silenceAlarm(bAlarmRecord);
|
|
if (this.detailsDlg != null && this.detailsDlg.alarm.getUuid().equals((Object)bAlarmRecord.getUuid())) {
|
|
this.detailsDlg.alarmCleared();
|
|
}
|
|
}
|
|
|
|
protected void viewAll() {
|
|
int n = this.sourceModel.getSelection().getRow();
|
|
if (n == -1) {
|
|
return;
|
|
}
|
|
BAlarmRecord bAlarmRecord = this.sourceModel.getRecord(n);
|
|
BOrdList bOrdList = bAlarmRecord.getSource();
|
|
this.alarmTable = new BTable();
|
|
this.alarmTable.setController((TableController)this.getController());
|
|
this.alarmTable.setCellRenderer((TableCellRenderer)new AlarmTableCellRenderer());
|
|
AlarmTableModel alarmTableModel = this.sourceModel.getModelForSource(bOrdList);
|
|
DynamicTableModel dynamicTableModel = new DynamicTableModel((TableModel)alarmTableModel);
|
|
DynamicTableModel dynamicTableModel2 = (DynamicTableModel)this.sourceTable.getModel();
|
|
int n2 = this.columns.getColumnCount();
|
|
for (int i = 0; i < n2; ++i) {
|
|
dynamicTableModel.setShowColumn(i, dynamicTableModel2.showColumn(i));
|
|
dynamicTableModel.setColumnShowable(i, dynamicTableModel2.isColumnShowable(i));
|
|
}
|
|
this.alarmTable.setModel((TableModel)dynamicTableModel);
|
|
this.alarmReport = new BAlarmReportDialog(this, bOrdList.toString(), this.alarmTable);
|
|
IRectGeom iRectGeom = UiEnv.get().getScreenBounds((BWidget)this);
|
|
double d = iRectGeom.x() + (iRectGeom.width() - iRectGeom.width() / 1.3) / 2.0;
|
|
double d2 = iRectGeom.y() + (iRectGeom.height() - iRectGeom.height() / 2.0) / 2.0;
|
|
this.alarmReport.setPreferredSize(iRectGeom.width() / 1.3, iRectGeom.height() / 2.0);
|
|
this.alarmReport.setScreenBounds(d, d2, iRectGeom.width() / 1.3, iRectGeom.height() / 2.0);
|
|
this.alarmReport.setVisible(true);
|
|
this.alarmReport.open();
|
|
alarmTableModel.close();
|
|
this.alarmTable = null;
|
|
}
|
|
|
|
/*
|
|
* WARNING - Removed try catching itself - possible behaviour change.
|
|
*/
|
|
public BAlarmRecord[] getSelectedAlarms(BTable bTable) {
|
|
Object object = this.dataMutex;
|
|
synchronized (object) {
|
|
ConsoleTableModel consoleTableModel = (ConsoleTableModel)((DynamicTableModel)bTable.getModel()).getRootModel();
|
|
int[] nArray = bTable.getSelection().getRows();
|
|
BAlarmRecord[] bAlarmRecordArray = new BAlarmRecord[nArray.length];
|
|
ConsoleTableModel consoleTableModel2 = consoleTableModel;
|
|
synchronized (consoleTableModel2) {
|
|
for (int i = 0; i < nArray.length; ++i) {
|
|
bAlarmRecordArray[i] = consoleTableModel.getRecord(nArray[i]);
|
|
}
|
|
}
|
|
return bAlarmRecordArray;
|
|
}
|
|
}
|
|
|
|
/*
|
|
* WARNING - Removed try catching itself - possible behaviour change.
|
|
*/
|
|
public BAlarmRecord[] getSelectedAlarmsDeep(BTable bTable) {
|
|
ConsoleTableModel consoleTableModel = (ConsoleTableModel)((DynamicTableModel)bTable.getModel()).getRootModel();
|
|
if (!(consoleTableModel instanceof SourceTableModel)) {
|
|
return this.getSelectedAlarms(bTable);
|
|
}
|
|
SourceTableModel sourceTableModel = (SourceTableModel)consoleTableModel;
|
|
int[] nArray = bTable.getSelection().getRows();
|
|
Array array = new Array(class$javax$baja$alarm$BAlarmRecord == null ? (class$javax$baja$alarm$BAlarmRecord = BAlarmConsole.class$("javax.baja.alarm.BAlarmRecord")) : class$javax$baja$alarm$BAlarmRecord);
|
|
SourceTableModel sourceTableModel2 = sourceTableModel;
|
|
synchronized (sourceTableModel2) {
|
|
for (int i = 0; i < nArray.length; ++i) {
|
|
int n = sourceTableModel.getRecordCount(nArray[i]);
|
|
for (int j = 0; j < n; ++j) {
|
|
array.add((Object)sourceTableModel.getRecordAt(nArray[i], j));
|
|
}
|
|
}
|
|
}
|
|
return (BAlarmRecord[])array.trim();
|
|
}
|
|
|
|
public BAlarmService getAlarmService() {
|
|
if (this.alarmService == null) {
|
|
BOrd bOrd = this.getCurrentValueSession().getAbsoluteOrd();
|
|
try {
|
|
BOrd bOrd2 = BOrd.make((BOrd)bOrd, (String)"service:alarm:AlarmService");
|
|
this.alarmService = (BAlarmService)bOrd2.resolve().get();
|
|
}
|
|
catch (Exception exception) {
|
|
logger.warning("Unable to Audit Force Clear: Cannot find alarm Service", (Throwable)exception);
|
|
}
|
|
}
|
|
return this.alarmService;
|
|
}
|
|
|
|
protected boolean alarmLocallyAcknowledged(BAlarmRecord bAlarmRecord) {
|
|
ListIterator listIterator = this.locallyAcknowledgedAlarms.listIterator();
|
|
BAlarmRecord bAlarmRecord2 = null;
|
|
while (listIterator.hasNext()) {
|
|
bAlarmRecord2 = (BAlarmRecord)((Object)listIterator.next());
|
|
if (!bAlarmRecord2.getUuid().equals((Object)bAlarmRecord.getUuid())) continue;
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
protected boolean alarmRemotelyAcknowledged(BAlarmRecord bAlarmRecord) {
|
|
ListIterator listIterator = this.remotelyAcknowledgedAlarms.listIterator();
|
|
BAlarmRecord bAlarmRecord2 = null;
|
|
while (listIterator.hasNext()) {
|
|
bAlarmRecord2 = (BAlarmRecord)((Object)listIterator.next());
|
|
if (!bAlarmRecord2.getUuid().equals((Object)bAlarmRecord.getUuid())) continue;
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
protected void ackAlarms(BAlarmRecord[] bAlarmRecordArray) {
|
|
try {
|
|
Array array = new Array(class$javax$baja$alarm$BAlarmRecord == null ? (class$javax$baja$alarm$BAlarmRecord = BAlarmConsole.class$("javax.baja.alarm.BAlarmRecord")) : class$javax$baja$alarm$BAlarmRecord);
|
|
for (int i = 0; i < bAlarmRecordArray.length; ++i) {
|
|
if (bAlarmRecordArray[i].isAcknowledged()) continue;
|
|
BAlarmRecord bAlarmRecord = (BAlarmRecord)bAlarmRecordArray[i].newCopy();
|
|
bAlarmRecord.setUser(this.getUsername(bAlarmRecord));
|
|
bAlarmRecord.setAckTime(BAbsTime.now());
|
|
bAlarmRecord.setAckState(BAckState.ackPending);
|
|
this.sourceModel.update(bAlarmRecord);
|
|
array.add((Object)bAlarmRecord);
|
|
}
|
|
this.channel().ackAlarms(this.recipient, (BAlarmRecord[])array.trim());
|
|
this.sourceTable.sizeColumnsToFit();
|
|
this.sourceTable.fireTableModified(null);
|
|
if (this.alarmTable != null) {
|
|
this.alarmTable.fireTableModified(null);
|
|
}
|
|
}
|
|
catch (Exception exception) {
|
|
exception.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public void soundAlarmFor(BAlarmRecord bAlarmRecord) {
|
|
if (!this.options.getSoundsEnabled()) {
|
|
return;
|
|
}
|
|
try {
|
|
BOrd bOrd = BOrd.NULL;
|
|
try {
|
|
if (bAlarmRecord.getAlarmData().get("soundFile") != null) {
|
|
bOrd = BOrd.make((BOrd)BOrd.toSpace((BObject)this.getRecipientForAlarm(bAlarmRecord)).getNavOrd(), (String)bAlarmRecord.getAlarmData().get("soundFile").toString());
|
|
}
|
|
}
|
|
catch (NullOrdException nullOrdException) {
|
|
// empty catch block
|
|
}
|
|
if (bOrd == null || bOrd.isNull()) {
|
|
BAlarmClassMapping bAlarmClassMapping;
|
|
BAlarmClassDef bAlarmClassDef = null;
|
|
if (this.options != null && (bAlarmClassMapping = this.options.getAlarmClassMapping()) != null && (bAlarmClassDef = bAlarmClassMapping.getAlarmClassDefFor(bAlarmRecord.getAlarmClass())) != null) {
|
|
bOrd = bAlarmClassDef.getAlarmSound();
|
|
}
|
|
}
|
|
if (bOrd == null || bOrd.isNull()) {
|
|
this.soundAlarm(bAlarmRecord);
|
|
} else {
|
|
this.soundAlarm(bAlarmRecord.getSource(), bOrd);
|
|
}
|
|
}
|
|
catch (Exception exception) {
|
|
logger.message("Cannot Sound Alarm: ", (Throwable)exception);
|
|
}
|
|
}
|
|
|
|
public void soundAlarm(BAlarmRecord bAlarmRecord) throws Exception {
|
|
if (!this.options.getDefaultSoundFile().isNull()) {
|
|
if (this.options.getDefaultSoundFile().relativizeToHost().equals((Object)BLocalHost.INSTANCE.getAbsoluteOrd())) {
|
|
this.soundAlarm(bAlarmRecord.getSource(), this.options.getDefaultSoundFile());
|
|
} else if (!BOrd.toSpace((BObject)this.getRecipientForAlarm(bAlarmRecord)).getNavOrd().isNull()) {
|
|
this.soundAlarm(bAlarmRecord.getSource(), BOrd.make((BOrd)BOrd.toSpace((BObject)this.getRecipientForAlarm(bAlarmRecord)).getNavOrd(), (String)this.options.getDefaultSoundFile().toString()));
|
|
}
|
|
}
|
|
}
|
|
|
|
public void soundAlarm(BOrdList bOrdList, BOrd bOrd) {
|
|
try {
|
|
if (!this.options.getSoundsEnabled() || bOrd.isNull()) {
|
|
return;
|
|
}
|
|
BAbstractFile bAbstractFile = (BAbstractFile)this.sounds.get(bOrd);
|
|
if (bAbstractFile == null) {
|
|
bAbstractFile = (BAbstractFile)bOrd.get();
|
|
this.sounds.put(bOrd, bAbstractFile);
|
|
}
|
|
if (soundPlayer == null) {
|
|
soundPlayer = UiEnv.get().isMicroEdition() ? new SoundPlayer() : new MediaPlayer();
|
|
soundPlayer.addMediaObject((BValue)bOrdList, bAbstractFile);
|
|
soundPlayer.addListener(this);
|
|
}
|
|
if (soundPlayer.addMediaObject((BValue)bOrdList, bAbstractFile)) {
|
|
soundPlayer.play(this.options.getContinuousAlarm(), this.options.getContinuousAlarmDelay());
|
|
}
|
|
this.silenceCommand.setEnabled(true);
|
|
}
|
|
catch (Exception exception) {
|
|
logger.warning("Cannot sound alarm: MediaPlayer exception: " + exception);
|
|
}
|
|
}
|
|
|
|
public void silenceAlarm(BAlarmRecord bAlarmRecord) {
|
|
if (!this.options.getSoundsEnabled()) {
|
|
return;
|
|
}
|
|
soundPlayer.removeMediaObject((BValue)bAlarmRecord.getSource());
|
|
if (!soundPlayer.hasMediaObjects()) {
|
|
this.silenceCommand.setEnabled(false);
|
|
}
|
|
}
|
|
|
|
public void showDetailsDialog(BTable bTable, int n) {
|
|
ConsoleTableModel consoleTableModel = (ConsoleTableModel)((DynamicTableModel)bTable.getModel()).getRootModel();
|
|
this.detailsDlg = new BAlarmDetailsDialog(this, this.options.getTimeZoneDisplay(), consoleTableModel.getRecord(n), consoleTableModel, this.ctx);
|
|
this.detailsDlg.setBoundsCenteredOnOwner();
|
|
this.detailsDlg.open();
|
|
}
|
|
|
|
protected void hyperlink(BAlarmRecord bAlarmRecord) {
|
|
BWbShell bWbShell = this.getWbShell();
|
|
if (bWbShell != null) {
|
|
BOrd bOrd = BOrd.NULL;
|
|
if (bAlarmRecord.getAlarmData().get("hyperlinkOrd") != null) {
|
|
bOrd = BOrd.make((String)bAlarmRecord.getAlarmData().get("hyperlinkOrd").toString());
|
|
}
|
|
if (bOrd == null || bOrd.isNull()) {
|
|
BAlarmClassMapping bAlarmClassMapping = this.options.getAlarmClassMapping();
|
|
BAlarmClassDef bAlarmClassDef = bAlarmClassMapping.getAlarmClassDefFor(bAlarmRecord.getAlarmClass());
|
|
bOrd = bAlarmClassDef.getAlarmUrl();
|
|
}
|
|
if (!bOrd.isNull()) {
|
|
bWbShell.hyperlink(bOrd);
|
|
if (this.detailsDlg != null) {
|
|
this.detailsDlg.close();
|
|
}
|
|
if (this.alarmReport != null) {
|
|
this.alarmReport.close();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
protected BConsoleRecipient getRecipientForAlarm(BAlarmRecord bAlarmRecord) {
|
|
return this.recipient;
|
|
}
|
|
|
|
public BAlarmService getAlarmService(BAlarmRecord bAlarmRecord) {
|
|
return this.getAlarmService();
|
|
}
|
|
|
|
protected void sendUpdatedAlarm(BAlarmRecord bAlarmRecord) throws Exception {
|
|
this.channel().updateAlarm(bAlarmRecord);
|
|
}
|
|
|
|
public BAlarmConsoleUIChannel channel() {
|
|
return this.channel(this.recipient);
|
|
}
|
|
|
|
/*
|
|
* WARNING - Removed try catching itself - possible behaviour change.
|
|
*/
|
|
public BAlarmConsoleUIChannel channel(BConsoleRecipient bConsoleRecipient) {
|
|
try {
|
|
if (bConsoleRecipient.getComponentSpace() == null) {
|
|
throw new BajaRuntimeException("Console recipient component space is null.");
|
|
}
|
|
BFoxSession bFoxSession = (BFoxSession)bConsoleRecipient.getSession();
|
|
if (bFoxSession == null) {
|
|
throw new BajaRuntimeException("Console recipient session is null.");
|
|
}
|
|
BFoxClientConnection bFoxClientConnection = bFoxSession.getConnection();
|
|
if (bFoxSession == null) {
|
|
throw new BajaRuntimeException("Console recipient connection is null.");
|
|
}
|
|
Object object = BAlarmConsoleChannel.channelMutex;
|
|
synchronized (object) {
|
|
BAlarmConsoleChannel bAlarmConsoleChannel = (BAlarmConsoleChannel)bFoxClientConnection.getChannels().get("alarmui");
|
|
if (bAlarmConsoleChannel == null || !(bAlarmConsoleChannel instanceof BAlarmConsoleUIChannel)) {
|
|
if (bAlarmConsoleChannel != null) {
|
|
((BFoxSession)bConsoleRecipient.getSession()).getConnection().getChannels().remove("alarmui");
|
|
}
|
|
bAlarmConsoleChannel = new BAlarmConsoleUIChannel();
|
|
((BFoxSession)bConsoleRecipient.getSession()).getConnection().getChannels().add("alarmui", (BValue)bAlarmConsoleChannel);
|
|
}
|
|
return (BAlarmConsoleUIChannel)bAlarmConsoleChannel;
|
|
}
|
|
}
|
|
catch (Exception exception) {
|
|
exception.printStackTrace();
|
|
return null;
|
|
}
|
|
}
|
|
|
|
static boolean isVideoDriverAvailable() {
|
|
BModule bModule = null;
|
|
try {
|
|
bModule = Sys.loadModule((String)"videoDriver");
|
|
}
|
|
catch (ModuleNotFoundException moduleNotFoundException) {
|
|
bModule = null;
|
|
}
|
|
catch (ModuleException moduleException) {
|
|
bModule = null;
|
|
}
|
|
return bModule != null;
|
|
}
|
|
|
|
static /* synthetic */ Class class$(String string) {
|
|
try {
|
|
return Class.forName(string);
|
|
}
|
|
catch (ClassNotFoundException classNotFoundException) {
|
|
throw new NoClassDefFoundError(classNotFoundException.getMessage());
|
|
}
|
|
}
|
|
|
|
public class AlarmTableCellRenderer
|
|
extends TableCellRenderer {
|
|
IntHashMap priorityColors = new IntHashMap();
|
|
IntHashMap priorityFgColors = new IntHashMap();
|
|
|
|
public void resetPriorityColors() {
|
|
this.priorityColors.clear();
|
|
}
|
|
|
|
public double getPreferredCellWidth(TableCellRenderer.Cell cell) {
|
|
if (this.getTable() == null || this.getTable().getModel() == null) {
|
|
return 0.0;
|
|
}
|
|
if (cell.column == 0) {
|
|
return super.getPreferredCellWidth(cell) + 18.0 + 18.0 + 18.0;
|
|
}
|
|
return super.getPreferredCellWidth(cell);
|
|
}
|
|
|
|
public void paintCell(Graphics graphics, TableCellRenderer.Cell cell) {
|
|
Object object;
|
|
Object object2;
|
|
TableModel tableModel = this.getTable().getModel();
|
|
this.paintCellBackground(graphics, cell);
|
|
double d = 2.0;
|
|
double d2 = (cell.height - 16.0) / 2.0;
|
|
if (cell.column == 0) {
|
|
String string;
|
|
object2 = null;
|
|
try {
|
|
object = (ConsoleTableModel)((DynamicTableModel)this.getTable().getModel()).getRootModel();
|
|
object2 = ((ConsoleTableModel)((Object)object)).getRecord(cell.row);
|
|
}
|
|
catch (Exception exception) {
|
|
return;
|
|
}
|
|
object = ((BAlarmRecord)((Object)object2)).getAlarmClass();
|
|
BAlarmClassMapping bAlarmClassMapping = BAlarmConsole.this.options.getAlarmClassMapping();
|
|
BAlarmClassDef bAlarmClassDef = bAlarmClassMapping.getAlarmClassDefFor((String)object);
|
|
BImage bImage = null;
|
|
try {
|
|
if (((BAlarmRecord)((Object)object2)).getAlarmData().get("icon") != null && BOrd.make((String)((BAlarmRecord)((Object)object2)).getAlarmData().get("icon").toString()) != BOrd.NULL) {
|
|
bImage = BImage.make((BOrd)BOrd.make((BOrd)BOrd.toSpace((BObject)BAlarmConsole.this.getRecipientForAlarm((BAlarmRecord)((Object)object2))).getNavOrd(), (String)((BAlarmRecord)((Object)object2)).getAlarmData().get("icon").toString()));
|
|
} else if (bAlarmClassDef != null && bAlarmClassDef.getAlarmIcon() != BOrd.NULL) {
|
|
bImage = BImage.make((BOrd)bAlarmClassDef.getAlarmIcon());
|
|
}
|
|
}
|
|
catch (Exception exception) {
|
|
// empty catch block
|
|
}
|
|
if (bImage != null) {
|
|
d2 = (cell.height - bImage.getHeight()) / 2.0;
|
|
graphics.drawImage(bImage, d, d2);
|
|
}
|
|
d += 18.0;
|
|
BOrd bOrd = BOrd.NULL;
|
|
if (((BAlarmRecord)((Object)object2)).getAlarmData().get("hyperlinkOrd") != null && !BOrd.make((String)((BAlarmRecord)((Object)object2)).getAlarmData().get("hyperlinkOrd").toString()).isNull()) {
|
|
bOrd = BOrd.make((String)((BAlarmRecord)((Object)object2)).getAlarmData().get("hyperlinkOrd").toString());
|
|
} else if (bAlarmClassDef != null) {
|
|
bOrd = bAlarmClassDef.getAlarmUrl();
|
|
}
|
|
if (bOrd != null && !bOrd.isNull() && BAlarmConsole.this.lnkImg != null) {
|
|
d2 = (cell.height - BAlarmConsole.this.lnkImg.getHeight()) / 2.0;
|
|
graphics.drawImage(BAlarmConsole.this.lnkImg, d, d2);
|
|
}
|
|
d += 18.0;
|
|
String string2 = ((BAlarmRecord)((Object)object2)).getAlarmData().gets("cameraOrd", null);
|
|
if (string2 != null && !BOrd.make((String)string2).isNull()) {
|
|
string = lexicon.getText("commands.showVideo.icon");
|
|
BImage bImage2 = BImage.make((String)string);
|
|
d2 = (cell.height - bImage2.getHeight()) / 2.0;
|
|
graphics.drawImage(bImage2, d, d2);
|
|
}
|
|
d += 18.0;
|
|
string = tableModel.getRowIcon(cell.row);
|
|
if (string != null) {
|
|
d2 = (cell.height - string.getHeight()) / 2.0;
|
|
graphics.drawImage((BImage)string, d, d2);
|
|
d += 18.0;
|
|
}
|
|
}
|
|
object2 = this.getCellText(cell);
|
|
object = Theme.table().getCellFont();
|
|
switch (tableModel.getColumnAlignment(cell.column).getOrdinal()) {
|
|
case 2: {
|
|
d = cell.width - 2.0 - object.width((String)object2);
|
|
break;
|
|
}
|
|
case 1: {
|
|
d = (cell.width - object.width((String)object2)) / 2.0;
|
|
}
|
|
}
|
|
graphics.setFont(Theme.table().getCellFont());
|
|
graphics.drawString((String)object2, d, (cell.height + object.getAscent() - object.getDescent()) / 2.0);
|
|
}
|
|
|
|
public BBrush getBackground(TableCellRenderer.Cell cell) {
|
|
try {
|
|
BColor bColor;
|
|
DynamicTableModel dynamicTableModel = (DynamicTableModel)this.getTable().getModel();
|
|
BAlarmRecord bAlarmRecord = ((ConsoleTableModel)dynamicTableModel.getRootModel()).getRecord(cell.row);
|
|
int n = 0;
|
|
if (bAlarmRecord != null) {
|
|
n = bAlarmRecord.getPriority();
|
|
}
|
|
if ((bColor = (BColor)this.priorityColors.get(n)) != null) {
|
|
return BBrush.makeSolid((BColor)bColor);
|
|
}
|
|
bColor = this.solveSpectrum(n, BAlarmConsole.this.options.getLowPriorityColor(), BAlarmConsole.this.options.getMidPriorityColor(), BAlarmConsole.this.options.getHighPriorityColor());
|
|
this.priorityColors.put(n, (Object)bColor);
|
|
return BBrush.makeSolid((BColor)bColor);
|
|
}
|
|
catch (Exception exception) {
|
|
return super.getBackground(cell);
|
|
}
|
|
}
|
|
|
|
private BColor solveSpectrum(int n, BColor bColor, BColor bColor2, BColor bColor3) {
|
|
int n2;
|
|
int n3;
|
|
int n4;
|
|
int n5;
|
|
float f = 128.0f;
|
|
float f2 = n;
|
|
float f3 = 128.0f;
|
|
if (f2 > f) {
|
|
if (f2 > f + f3) {
|
|
return bColor;
|
|
}
|
|
float f4 = (float)(bColor.getRed() - bColor2.getRed()) / f3;
|
|
float f5 = (float)bColor2.getRed() - f4 * f;
|
|
n5 = (int)(f4 * f2 + f5);
|
|
float f6 = (float)(bColor.getGreen() - bColor2.getGreen()) / f3;
|
|
float f7 = (float)bColor2.getGreen() - f6 * f;
|
|
n4 = (int)(f6 * f2 + f7);
|
|
float f8 = (float)(bColor.getBlue() - bColor2.getBlue()) / f3;
|
|
float f9 = (float)bColor2.getBlue() - f8 * f;
|
|
n3 = (int)(f8 * f2 + f9);
|
|
float f10 = (float)(bColor.getAlpha() - bColor2.getAlpha()) / f3;
|
|
float f11 = (float)bColor2.getAlpha() - f10 * f;
|
|
n2 = (int)(f10 * f2 + f11);
|
|
} else {
|
|
if (f2 < f - f3) {
|
|
return bColor3;
|
|
}
|
|
float f12 = (float)(bColor2.getRed() - bColor3.getRed()) / f3;
|
|
float f13 = (float)bColor2.getRed() - f12 * f;
|
|
n5 = (int)(f12 * f2 + f13);
|
|
float f14 = (float)(bColor2.getGreen() - bColor3.getGreen()) / f3;
|
|
float f15 = (float)bColor2.getGreen() - f14 * f;
|
|
n4 = (int)(f14 * f2 + f15);
|
|
float f16 = (float)(bColor2.getBlue() - bColor3.getBlue()) / f3;
|
|
float f17 = (float)bColor2.getBlue() - f16 * f;
|
|
n3 = (int)(f16 * f2 + f17);
|
|
float f18 = (float)(bColor2.getAlpha() - bColor3.getAlpha()) / f3;
|
|
float f19 = (float)bColor2.getAlpha() - f18 * f;
|
|
n2 = (int)(f18 * f2 + f19);
|
|
}
|
|
return BColor.make((int)n5, (int)n4, (int)n3, (int)n2);
|
|
}
|
|
}
|
|
|
|
protected class Controller
|
|
extends TableController {
|
|
int lastRowEntered = -1;
|
|
|
|
protected Controller() {
|
|
}
|
|
|
|
public void keyReleased(BKeyEvent bKeyEvent) {
|
|
super.keyReleased(bKeyEvent);
|
|
this.enableCommands();
|
|
}
|
|
|
|
public void mouseReleased(BMouseEvent bMouseEvent) {
|
|
super.mouseReleased(bMouseEvent);
|
|
this.enableCommands();
|
|
}
|
|
|
|
void enableCommands() {
|
|
TableSelection tableSelection = this.getTable().getSelection();
|
|
boolean bl = tableSelection.getRows().length > 0 && BAlarmConsole.this.canModifySelectedAlarms(tableSelection);
|
|
BAlarmConsole.this.ackCommand.setEnabled(bl);
|
|
BAlarmConsole.this.ackRecentCommand.setEnabled(bl);
|
|
BAlarmConsole.this.forceClear.setEnabled(bl);
|
|
if (tableSelection.getRows().length == 1) {
|
|
Object object;
|
|
BOrd bOrd;
|
|
ConsoleTableModel consoleTableModel = (ConsoleTableModel)((DynamicTableModel)this.getTable().getModel()).getRootModel();
|
|
BAlarmRecord bAlarmRecord = consoleTableModel.getRecord(tableSelection.getRow());
|
|
String string = bAlarmRecord.getAlarmData().gets("cameraOrd", null);
|
|
if (string != null) {
|
|
bOrd = BOrd.make((String)string);
|
|
if (!bOrd.equals((Object)BOrd.NULL)) {
|
|
BAlarmConsole.this.showVideoCmd.setEnabled(true);
|
|
} else {
|
|
BAlarmConsole.this.showVideoCmd.setEnabled(false);
|
|
}
|
|
} else {
|
|
BAlarmConsole.this.showVideoCmd.setEnabled(false);
|
|
}
|
|
bOrd = (BString)bAlarmRecord.getAlarmData().get("hyperlinkOrd");
|
|
BOrd bOrd2 = BOrd.NULL;
|
|
if (bOrd != null) {
|
|
bOrd2 = BOrd.make((String)bOrd.toString());
|
|
}
|
|
if (bOrd2 == null || bOrd2.isNull()) {
|
|
object = BAlarmConsole.this.options.getAlarmClassMapping();
|
|
BAlarmClassDef bAlarmClassDef = ((BAlarmClassMapping)((Object)object)).getAlarmClassDefFor(bAlarmRecord.getAlarmClass());
|
|
bOrd2 = bAlarmClassDef.getAlarmUrl();
|
|
}
|
|
if (bOrd2 != null && !bOrd2.isNull()) {
|
|
BAlarmConsole.this.urlCommand.setEnabled(true);
|
|
} else {
|
|
BAlarmConsole.this.urlCommand.setEnabled(false);
|
|
}
|
|
BAlarmConsole.this.notesCommand.setEnabled(true);
|
|
BAlarmConsole.this.detailsCommand.setEnabled(true);
|
|
BAlarmConsole.this.instructions.removeAllItems();
|
|
if (bAlarmRecord.getAlarmData().get("instructions") != null && (object = BAlarmInstructions.make(bAlarmRecord.getAlarmData().get("instructions").toString())) != null) {
|
|
for (int i = 0; i < ((BAlarmInstructions)((Object)object)).size(); ++i) {
|
|
BAlarmConsole.this.instructions.addItem((Object)(i + 1 + ". " + ((BAlarmInstructions)((Object)object)).get(i).format((Object)this)));
|
|
}
|
|
}
|
|
} else {
|
|
BAlarmConsole.this.urlCommand.setEnabled(false);
|
|
BAlarmConsole.this.notesCommand.setEnabled(false);
|
|
BAlarmConsole.this.showVideoCmd.setEnabled(false);
|
|
BAlarmConsole.this.detailsCommand.setEnabled(false);
|
|
BAlarmConsole.this.instructions.removeAllItems();
|
|
}
|
|
}
|
|
|
|
protected void cellReleased(BMouseEvent bMouseEvent, int n, int n2) {
|
|
super.cellReleased(bMouseEvent, n, n2);
|
|
if (bMouseEvent.getClickCount() == 2) {
|
|
if (this.getTable() == BAlarmConsole.this.sourceTable) {
|
|
BAlarmConsole.this.viewAll();
|
|
} else {
|
|
BAlarmConsole.this.showDetailsDialog(this.getTable(), n);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void cellPopup(BMouseEvent bMouseEvent, int n, int n2) {
|
|
BTable bTable = this.getTable();
|
|
BMenu bMenu = new BMenu();
|
|
bMenu.add("ack", BAlarmConsole.this.ackCommand);
|
|
bMenu.add("ackAll", BAlarmConsole.this.ackRecentCommand);
|
|
bMenu.add("url", BAlarmConsole.this.urlCommand);
|
|
bMenu.add("notes", BAlarmConsole.this.notesCommand);
|
|
bMenu.add("details", BAlarmConsole.this.detailsCommand);
|
|
if (BAlarmConsole.this.getRecipientForAlarm(null) == null || BAlarmConsole.this.getRecipientForAlarm(null).getPermissions(BAlarmConsole.this.ctx).hasAdminInvoke() || BAlarmConsole.this.getRecipientForAlarm(null).getPermissions(BAlarmConsole.this.ctx).hasAdminWrite()) {
|
|
bMenu.add("forceClear", BAlarmConsole.this.forceClear);
|
|
}
|
|
bMenu.open((BWidget)bTable, bMouseEvent.getX(), bMouseEvent.getY());
|
|
}
|
|
|
|
protected void cellEntered(BMouseEvent bMouseEvent, int n, int n2) {
|
|
ConsoleTableModel consoleTableModel = (ConsoleTableModel)((DynamicTableModel)this.getTable().getModel()).getRootModel();
|
|
if (consoleTableModel instanceof SourceTableModel) {
|
|
int n3 = ((SourceTableModel)consoleTableModel).getRecordCount(n);
|
|
BWidgetShell bWidgetShell = BAlarmConsole.this.getShell();
|
|
if (bWidgetShell != null) {
|
|
bWidgetShell.showStatus("" + n3 + " Alarm(s)");
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void cellExited(BMouseEvent bMouseEvent, int n, int n2) {
|
|
BWidgetShell bWidgetShell = BAlarmConsole.this.getShell();
|
|
if (bWidgetShell != null) {
|
|
bWidgetShell.showStatus(null);
|
|
}
|
|
}
|
|
|
|
public BMenu makeOptionsMenu() {
|
|
BMenu bMenu = super.makeOptionsMenu();
|
|
bMenu.add("acSep", (BValue)new BSeparator());
|
|
bMenu.add("addColumn", BAlarmConsole.this.addColumnCommand);
|
|
bMenu.add("removeColumn", BAlarmConsole.this.removeColumnCommand);
|
|
return bMenu;
|
|
}
|
|
}
|
|
|
|
class RadioGroup
|
|
extends ToggleCommandGroup {
|
|
RadioGroup() {
|
|
}
|
|
|
|
protected void selected(ToggleCommand toggleCommand) {
|
|
super.selected(toggleCommand);
|
|
if (toggleCommand == BAlarmConsole.this.sourceTimeCommand) {
|
|
BAlarmConsole.this.options.setTimeZoneDisplay(BTimeZoneDisplay.source);
|
|
} else {
|
|
BAlarmConsole.this.options.setTimeZoneDisplay(BTimeZoneDisplay.console);
|
|
}
|
|
BAlarmConsole.this.sourceTable.fireTableModified(null);
|
|
}
|
|
}
|
|
|
|
public class LoadThread
|
|
extends Thread {
|
|
public LoadThread() {
|
|
super("AlarmConsole:LoadThread");
|
|
}
|
|
|
|
public void run() {
|
|
BAlarmConsole.this.load();
|
|
}
|
|
}
|
|
}
|
|
|