use of alma.acs.alarmsystem.generated.FaultMember in project ACS by ACS-Community.
the class AlarmsView method createFMWidgets.
private void createFMWidgets() {
Listener updateFaultMember = new Listener() {
public void handleEvent(Event event) {
TreeItem tmp = _tree.getSelection()[0];
String tfm = tmp.getText();
String tff = tmp.getParentItem().getParentItem().getText();
FaultMember fmt = new FaultMember();
//TODO: Error icon or something similar
if (_fmNameText.getText().isEmpty()) {
_fmErrorMessageLabel.setText("FaultMember Name Missing!");
return;
}
if (_fmNameText.getText().contains(" ")) {
_fmErrorMessageLabel.setText("Invalid FaultMember Name. No spaces allowed.");
return;
}
fmt.setName(_fmNameText.getText());
Location lt = new Location();
if (!_fmLocBuildingText.getText().isEmpty())
lt.setBuilding(_fmLocBuildingText.getText());
if (!_fmLocFloorText.getText().isEmpty())
lt.setFloor(_fmLocFloorText.getText());
if (!_fmLocRoomText.getText().isEmpty())
lt.setRoom(_fmLocRoomText.getText());
if (!_fmLocMnemonicText.getText().isEmpty())
lt.setMnemonic(_fmLocMnemonicText.getText());
if (!_fmLocPositionText.getText().isEmpty())
lt.setPosition(_fmLocPositionText.getText());
fmt.setLocation(lt);
_fmErrorMessageLabel.setText("");
try {
_alarmManager.updateFaultMember(_alarmManager.getFaultFamily(tff), _alarmManager.getFaultMember(tff, tfm), fmt);
tmp.setText(_fmNameText.getText());
if (tfm.compareTo(fmt.getName()) != 0) {
sortFaultFamilyList();
selectElementFromTree(tff, fmt.getName(), null);
}
} catch (IllegalOperationException e) {
_fmErrorMessageLabel.setText(e.getMessage());
} catch (NullPointerException e) {
_fmErrorMessageLabel.setText(e.getMessage());
}
}
};
_FMgroup = new Group(_compInitial, SWT.SHADOW_ETCHED_IN);
_FMgroup.setText("Fault Member detail");
GridData gd = new GridData();
gd.horizontalAlignment = SWT.FILL;
gd.grabExcessHorizontalSpace = true;
gd.verticalAlignment = SWT.FILL;
gd.grabExcessVerticalSpace = true;
_FMgroup.setLayoutData(gd);
GridLayout gl = new GridLayout();
gl.numColumns = 2;
_FMgroup.setLayout(gl);
_fmNameLabel = new Label(_FMgroup, SWT.NONE);
_fmNameLabel.setText("Name");
_fmNameText = new Text(_FMgroup, SWT.SINGLE | SWT.BORDER);
gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.FILL;
_fmNameText.setLayoutData(gd);
_fmNameText.addListener(SWT.Modify, updateFaultMember);
_fmLocGroup = new Group(_FMgroup, SWT.SHADOW_ETCHED_IN);
_fmLocGroup.setText("Location");
gl = new GridLayout();
gl.numColumns = 2;
gd = new GridData();
gd.horizontalAlignment = SWT.FILL;
gd.grabExcessHorizontalSpace = true;
gd.horizontalSpan = 2;
_fmLocGroup.setLayout(gl);
_fmLocGroup.setLayoutData(gd);
_fmLocBuildingLabel = new Label(_fmLocGroup, SWT.NONE);
_fmLocBuildingLabel.setText("Building");
_fmLocBuildingText = new Text(_fmLocGroup, SWT.SINGLE | SWT.BORDER);
gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.FILL;
_fmLocBuildingText.setLayoutData(gd);
_fmLocBuildingText.addListener(SWT.Modify, updateFaultMember);
_fmLocFloorLabel = new Label(_fmLocGroup, SWT.NONE);
_fmLocFloorLabel.setText("Floor");
_fmLocFloorText = new Text(_fmLocGroup, SWT.SINGLE | SWT.BORDER);
gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.FILL;
_fmLocFloorText.setLayoutData(gd);
_fmLocFloorText.addListener(SWT.Modify, updateFaultMember);
_fmLocRoomLabel = new Label(_fmLocGroup, SWT.NONE);
_fmLocRoomLabel.setText("Room");
_fmLocRoomText = new Text(_fmLocGroup, SWT.SINGLE | SWT.BORDER);
gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.FILL;
_fmLocRoomText.setLayoutData(gd);
_fmLocRoomText.addListener(SWT.Modify, updateFaultMember);
_fmLocMnemonicLabel = new Label(_fmLocGroup, SWT.NONE);
_fmLocMnemonicLabel.setText("Mnemonic");
_fmLocMnemonicText = new Text(_fmLocGroup, SWT.SINGLE | SWT.BORDER);
gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.FILL;
_fmLocMnemonicText.setLayoutData(gd);
_fmLocMnemonicText.addListener(SWT.Modify, updateFaultMember);
_fmLocPositionLabel = new Label(_fmLocGroup, SWT.NONE);
_fmLocPositionLabel.setText("Position");
_fmLocPositionText = new Text(_fmLocGroup, SWT.SINGLE | SWT.BORDER);
gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.FILL;
_fmLocPositionText.setLayoutData(gd);
_fmLocPositionText.addListener(SWT.Modify, updateFaultMember);
_fmErrorMessageLabel = new Label(_FMgroup, SWT.NONE);
_fmErrorMessageLabel.setText("");
_fmErrorMessageLabel.setForeground(getViewSite().getShell().getDisplay().getSystemColor(SWT.COLOR_RED));
gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.FILL;
gd.horizontalSpan = 2;
_fmErrorMessageLabel.setLayoutData(gd);
}
use of alma.acs.alarmsystem.generated.FaultMember in project ACS by ACS-Community.
the class AlarmsView method sortFaultMemberList.
public void sortFaultMemberList(FaultFamily family, TreeItem jTree) {
TreeItem iTree = jTree.getParentItem();
FaultMember[] faultMembers = family.getFaultMember();
List<FaultMember> fmList = new ArrayList<FaultMember>();
for (FaultMember fm : faultMembers) fmList.add(fm);
List<FaultMember> sortedFMList = new ArrayList<FaultMember>();
/* We get a separate tmp list with the names,
* sort it, and then sort the original ffList */
List<String> tmp = new ArrayList<String>();
for (FaultMember fm : fmList) tmp.add(fm.getName().toLowerCase());
Collections.sort(tmp);
for (String sfm : tmp) for (FaultMember fm : fmList) if (fm.getName().toLowerCase().compareTo(sfm) == 0)
sortedFMList.add(fm);
fmList = sortedFMList;
FaultMemberDefault fmd = family.getFaultMemberDefault();
if (fmd != null) {
TreeItem kTree = new TreeItem(jTree, SWT.NONE);
kTree.setText("Default Member");
//kTree.setForeground(new Color(kTree.getDisplay(), 255, 0, 0));
kTree.setData(NodeType.FAULT_MEMBER_DEFAULT);
}
for (FaultMember fm : fmList) {
TreeItem kTree = new TreeItem(jTree, SWT.NONE);
kTree.setText(fm.getName());
kTree.setData(NodeType.FAULT_MEMBER_DATA);
}
if (fmList.isEmpty() && fmd == null) {
iTree.setForeground(new Color(iTree.getDisplay(), 255, 0, 0));
jTree.setForeground(new Color(jTree.getDisplay(), 255, 0, 0));
}
}
use of alma.acs.alarmsystem.generated.FaultMember in project ACS by ACS-Community.
the class ReductionsView method createViewWidgets.
private void createViewWidgets(Composite parent) {
_addElement = new Listener() {
public void handleEvent(Event event) {
TreeItem sel = null;
TreeItem item = null;
if (_tree.getSelection() == null || _tree.getSelection().length == 0)
return;
sel = _tree.getSelection()[0];
NodeType type = (NodeType) sel.getData();
item = sel;
if (type == NodeType.NODE_REDUCTION_PARENT_DATA || type == NodeType.MULTIPLICITY_REDUCTION_PARENT_DATA)
item = sel.getParentItem();
type = (NodeType) item.getData();
java.util.List<FaultFamily> ffs = _alarmManager.getAllAlarms();
java.util.List<String> ffnames = new ArrayList<String>();
for (FaultFamily ff : ffs) {
if (ff.getFaultCodeCount() > 0 && ff.getFaultMemberCount() > 0)
ffnames.add(ff.getName());
}
Collections.sort(ffnames, IGNORE_CASE_ORDER);
ListDialog dialog = new ListDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell());
dialog.setTitle("Create Reduction Rule");
dialog.setMessage("Select Parent Fault Family");
dialog.setBlockOnOpen(true);
dialog.setInput(ffnames);
dialog.setContentProvider(new ArrayContentProvider());
dialog.setLabelProvider(new LabelProvider());
dialog.open();
if (dialog.getReturnCode() == InputDialog.CANCEL)
return;
String ffname = (String) dialog.getResult()[0];
FaultMember[] fms = _alarmManager.getFaultFamily(ffname).getFaultMember();
java.util.List<String> fmnames = new ArrayList<String>();
for (FaultMember fm : fms) {
fmnames.add(fm.getName());
}
Collections.sort(ffnames, IGNORE_CASE_ORDER);
dialog = new ListDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell());
dialog.setTitle("Create Reduction Rule");
dialog.setMessage("Select Parent Fault Member");
dialog.setBlockOnOpen(true);
dialog.setInput(fmnames);
dialog.setContentProvider(new ArrayContentProvider());
dialog.setLabelProvider(new LabelProvider());
dialog.open();
if (dialog.getReturnCode() == InputDialog.CANCEL)
return;
String fmname = (String) dialog.getResult()[0];
FaultCode[] fcs = _alarmManager.getFaultFamily(ffname).getFaultCode();
java.util.List<String> fcvalues = new ArrayList<String>();
for (FaultCode fc : fcs) {
fcvalues.add(Integer.toString(fc.getValue()));
}
Collections.sort(ffnames, IGNORE_CASE_ORDER);
dialog = new ListDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell());
dialog.setTitle("Create Reduction Rule");
dialog.setMessage("Select Parent Fault Code");
dialog.setBlockOnOpen(true);
dialog.setInput(fcvalues);
dialog.setContentProvider(new ArrayContentProvider());
dialog.setLabelProvider(new LabelProvider());
dialog.open();
if (dialog.getReturnCode() == InputDialog.CANCEL)
return;
String fcvalue = (String) dialog.getResult()[0];
ReductionRule parent = null;
boolean error = false;
if (type == NodeType.NODE_REDUCTION) {
parent = _reductionManager.getNRParentByTriplet(ffname, fmname, Integer.parseInt(fcvalue));
TreeItem[] chs = _tree.getItems()[0].getItems();
for (TreeItem ch : chs) {
if (ch.getText().compareTo("<" + ffname + "," + fmname + "," + fcvalue + ">") == 0)
error = true;
}
} else if (type == NodeType.MULTIPLICITY_REDUCTION) {
parent = _reductionManager.getMRParentByTriplet(ffname, fmname, Integer.parseInt(fcvalue));
TreeItem[] chs = _tree.getItems()[1].getItems();
for (TreeItem ch : chs) {
if (ch.getText().compareTo("<" + ffname + "," + fmname + "," + fcvalue + ">") == 0)
error = true;
}
}
if (error || parent != null) {
ErrorDialog edialog = new ErrorDialog(ReductionsView.this.getViewSite().getShell(), "Reduction Rule Already Exists", "The reduction rule you are trying to create already exists", new Status(IStatus.ERROR, "cl.utfsm.acs.acg", "The reduction rule parent already exists"), IStatus.ERROR);
edialog.setBlockOnOpen(true);
edialog.open();
return;
} else
parent = new ReductionRule(_alarmManager.getAlarm(ffname + ":" + fmname + ":" + fcvalue));
TreeItem pTree = new TreeItem(item, SWT.NONE);
pTree.setText("<" + ffname + "," + fmname + "," + fcvalue + ">");
if (type == NodeType.NODE_REDUCTION) {
pTree.setData(NodeType.NODE_REDUCTION_PARENT_DATA);
parent.setIsNodeReduction(true);
} else if (type == NodeType.MULTIPLICITY_REDUCTION) {
pTree.setData(NodeType.MULTIPLICITY_REDUCTION_PARENT_DATA);
parent.setIsNodeReduction(false);
}
_tree.setSelection(pTree);
Event e = new Event();
_tree.notifyListeners(SWT.Selection, e);
}
};
_addRule = new Listener() {
public void handleEvent(Event event) {
Table t = (Table) event.widget;
if (event.type == SWT.KeyUp)
if (!(event.keyCode == SWT.CR || event.keyCode == ' '))
return;
if (event.type == SWT.MouseDoubleClick) {
Point pt = new Point(event.x, event.y);
if (t.getItem(pt) == null)
return;
}
boolean isNode;
if (_tree.getSelection() == null || _tree.getSelection().length == 0)
return;
TreeItem tmp1 = _tree.getSelection()[0];
if ((NodeType) _tree.getSelection()[0].getData() == NodeType.NODE_REDUCTION_PARENT_DATA)
isNode = true;
else if ((NodeType) _tree.getSelection()[0].getData() == NodeType.MULTIPLICITY_REDUCTION_PARENT_DATA)
isNode = false;
else
return;
String[] tr = getTriplet(tmp1.getText());
ReductionRule parent;
if (isNode)
parent = _reductionManager.getNRParentByTriplet(tr[0], tr[1], Integer.parseInt(tr[2]));
else
parent = _reductionManager.getMRParentByTriplet(tr[0], tr[1], Integer.parseInt(tr[2]));
if (t.getSelection() == null || t.getSelection().length == 0)
return;
TableItem item = t.getSelection()[0];
Alarm p, c;
if (parent == null) {
if (isNode)
p = _alarmManager.getAlarm(_NRParentFFCombo.getText() + ":" + _NRParentFMCombo.getText() + ":" + _NRParentFCCombo.getText());
else
p = _alarmManager.getAlarm(_MRParentFFCombo.getText() + ":" + _MRParentFMCombo.getText() + ":" + _MRParentFCCombo.getText());
if (p == null) {
if (isNode)
_NRParentErrorMessageLabel.setText("Couldn't find parent alarm.");
else
_MRParentErrorMessageLabel.setText("Couldn't find parent alarm.");
return;
}
c = null;
} else {
p = parent.getParent();
c = parent.getChild(item.getText());
}
if (c == null) {
//Add child
c = _alarmManager.getAlarm(item.getText());
if (c == null) {
if (isNode)
_NRParentErrorMessageLabel.setText("Couldn't find child alarm.");
else
_MRParentErrorMessageLabel.setText("Couldn't find child alarm.");
return;
}
try {
if (isNode)
_reductionManager.addNodeReductionRule(p, c);
else {
_reductionManager.addMultiReductionRule(p, c);
if (parent == null)
_reductionManager.updateMultiThreshold(p, Integer.parseInt(_MRParentThresholdText.getText()));
}
item.setImage(Activator.getDefault().getImageRegistry().get(Activator.IMG_TICKET));
if (parent == null)
_tree.getSelection()[0].setText("<" + p.getAlarmId().replace(':', ',') + ">");
if (isNode)
_NRParentErrorMessageLabel.setText("");
else
_MRParentErrorMessageLabel.setText("");
} catch (IllegalOperationException e) {
if (isNode)
_NRParentErrorMessageLabel.setText(e.getMessage());
else
_MRParentErrorMessageLabel.setText(e.getMessage());
}
} else {
//Remove child
try {
//ReductionRule rr;
if (isNode) {
_reductionManager.deleteNodeReductionRule(p, c);
//rr = _reductionManager.getNRParentByTriplet(p.getTriplet().getFaultFamily(), p.getTriplet().getFaultMember(), p.getTriplet().getFaultCode());
} else {
_reductionManager.deleteMultiReductionRule(p, c);
//rr = _reductionManager.getMRParentByTriplet(p.getTriplet().getFaultFamily(), p.getTriplet().getFaultMember(), p.getTriplet().getFaultCode());
}
} catch (IllegalOperationException e) {
e.printStackTrace();
}
item.setImage((org.eclipse.swt.graphics.Image) null);
}
fillMRParentChAlarmList(tr[0], tr[1], Integer.parseInt(tr[2]));
sortReductionRulesList();
Triplet t2 = p.getTriplet();
if (isNode)
selectElementFromTree("<" + t2.getFaultFamily() + "," + t2.getFaultMember() + "," + t2.getFaultCode() + ">", true);
else
selectElementFromTree("<" + t2.getFaultFamily() + "," + t2.getFaultMember() + "," + t2.getFaultCode() + ">", false);
}
};
_removeElement = new Listener() {
public void handleEvent(Event event) {
boolean choice = MessageDialog.openQuestion(ReductionsView.this.getViewSite().getShell(), "Confirmation", "Are you sure you want to delete this element");
if (choice == true) {
TreeItem sel = null;
if (_tree.getSelection() == null || _tree.getSelection().length == 0)
return;
NodeType type = (NodeType) _tree.getSelection()[0].getData();
if (type == NodeType.NODE_REDUCTION || type == NodeType.MULTIPLICITY_REDUCTION)
return;
TreeItem item = _tree.getSelection()[0];
String[] tr = getTriplet(item.getText());
try {
if (type == NodeType.NODE_REDUCTION_PARENT_DATA) {
//Remove all the NODE REDUCTION Rules in which this node is parent.
ReductionRule rr = _reductionManager.getNRParentByTriplet(tr[0], tr[1], Integer.parseInt(tr[2]));
if (rr != null) {
Alarm p = rr.getParent();
List<Alarm> chL = rr.getChildren();
Alarm[] als = new Alarm[chL.size()];
chL.toArray(als);
for (int i = 0; i < als.length; i++) _reductionManager.deleteNodeReductionRule(p, als[i]);
}
} else if (type == NodeType.MULTIPLICITY_REDUCTION_PARENT_DATA) {
//Remove all the MULTIPLICITY REDUCTION Rules in which this node is a parent.
ReductionRule rr = _reductionManager.getMRParentByTriplet(tr[0], tr[1], Integer.parseInt(tr[2]));
if (rr != null) {
Alarm p = rr.getParent();
List<Alarm> chL = rr.getChildren();
Alarm[] als = new Alarm[chL.size()];
chL.toArray(als);
for (int i = 0; i < als.length; i++) _reductionManager.deleteMultiReductionRule(p, als[i]);
}
}
} catch (NullPointerException e) {
ErrorDialog error = new ErrorDialog(ReductionsView.this.getViewSite().getShell(), "Cannot delete the item", e.getMessage(), new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR);
error.setBlockOnOpen(true);
error.open();
} catch (IllegalOperationException e) {
ErrorDialog error = new ErrorDialog(ReductionsView.this.getViewSite().getShell(), "Cannot delete the item", e.getMessage(), new Status(IStatus.ERROR, "cl.utfsm.acs.acg", e.getMessage()), IStatus.ERROR);
error.setBlockOnOpen(true);
error.open();
}
sel = _tree.getSelection()[0].getParentItem();
_tree.getSelection()[0].dispose();
_tree.setSelection(sel);
Event e = new Event();
_tree.notifyListeners(SWT.Selection, e);
}
}
};
_sash = new SashForm(parent, SWT.NONE);
_sash.setLayout(new FillLayout());
_reductionsComp = new Composite(_sash, SWT.NONE);
GridLayout layout = new GridLayout();
layout.numColumns = 1;
_reductionsComp.setLayout(layout);
_treeGroup = new Group(_reductionsComp, SWT.SHADOW_ETCHED_IN);
GridData gd = new GridData();
gd.horizontalAlignment = SWT.FILL;
gd.verticalAlignment = SWT.FILL;
gd.grabExcessHorizontalSpace = true;
gd.grabExcessVerticalSpace = true;
_treeGroup.setLayoutData(gd);
GridLayout gl = new GridLayout();
gl.numColumns = 1;
_treeGroup.setLayout(gl);
_treeGroup.setText("Reduction Rules List");
_tree = new Tree(_treeGroup, SWT.VIRTUAL | SWT.BORDER);
gd = new GridData();
gd.verticalAlignment = SWT.FILL;
gd.horizontalAlignment = SWT.FILL;
gd.grabExcessVerticalSpace = true;
gd.grabExcessHorizontalSpace = true;
_tree.setLayoutData(gd);
Menu treePopUp = new Menu(parent);
/*
MenuItem treePopUpDelete = new MenuItem(treePopUp,SWT.PUSH);
treePopUpDelete.setText("Delete");
treePopUpDelete.addListener(SWT.Selection, _removeElement);
MenuItem treePopUpAddRule = new MenuItem(treePopUp,SWT.PUSH);
treePopUpAddRule.setText("Add Rule");
treePopUpAddRule.addListener(SWT.Selection, _addElement);
MenuItem treePopUpAddChildren = new MenuItem(treePopUp,SWT.PUSH);
treePopUpAddChildren.setText("Add Children");
//treePopUpAddChildren.addListener(SWT.Selection, _addElement);
*/
_tree.setMenu(treePopUp);
treePopUp.addListener(SWT.Show, new Listener() {
public void handleEvent(Event e) {
TreeItem sel = _tree.getSelection()[0];
NodeType type = (NodeType) sel.getData();
Menu treePopUp = _tree.getMenu();
MenuItem[] items = treePopUp.getItems();
for (int i = 0; i < items.length; i++) items[i].dispose();
MenuItem mitem;
switch(type) {
case NODE_REDUCTION:
mitem = new MenuItem(treePopUp, SWT.PUSH);
mitem.setText("Add Node Reduction Rule Parent");
mitem.addListener(SWT.Selection, _addElement);
break;
case NODE_REDUCTION_PARENT_DATA:
mitem = new MenuItem(treePopUp, SWT.PUSH);
mitem.setText("Delete Node Reduction Rules for this parent");
mitem.addListener(SWT.Selection, _removeElement);
break;
case MULTIPLICITY_REDUCTION:
mitem = new MenuItem(treePopUp, SWT.PUSH);
mitem.setText("Add Multiplicity Reduction Rule Parent");
mitem.addListener(SWT.Selection, _addElement);
break;
case MULTIPLICITY_REDUCTION_PARENT_DATA:
mitem = new MenuItem(treePopUp, SWT.PUSH);
mitem.setText("Delete Multiplicity Reduction Rules for this parent");
mitem.addListener(SWT.Selection, _removeElement);
break;
default:
for (int i = 0; i < items.length; i++) items[i].dispose();
break;
}
}
});
_tree.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
widgetSelected(e);
}
public void widgetSelected(SelectionEvent e) {
TreeItem[] tmp = ((Tree) e.widget).getSelection();
if (tmp == null || tmp.length == 0)
return;
TreeItem item = tmp[0];
NodeType type = (NodeType) item.getData();
Control c = _compInitial.getChildren()[0];
if (c instanceof Label) {
c.dispose();
_compInitial.layout();
c = _compInitial.getChildren()[0];
}
if (type == NodeType.NODE_REDUCTION) {
_NRParentGroup.setVisible(false);
((GridData) _NRParentGroup.getLayoutData()).exclude = true;
_MRParentGroup.setVisible(false);
((GridData) _MRParentGroup.getLayoutData()).exclude = true;
} else if (type == NodeType.NODE_REDUCTION_PARENT_DATA) {
_NRParentGroup.setVisible(true);
((GridData) _NRParentGroup.getLayoutData()).exclude = false;
_MRParentGroup.setVisible(false);
((GridData) _MRParentGroup.getLayoutData()).exclude = true;
String[] triplet = getTriplet(item.getText());
fillNRParentWidgets(triplet[0], triplet[1], Integer.parseInt(triplet[2]));
_NRParentGroup.moveAbove(c);
_compInitial.layout();
} else if (type == NodeType.MULTIPLICITY_REDUCTION) {
_NRParentGroup.setVisible(false);
((GridData) _NRParentGroup.getLayoutData()).exclude = true;
_MRParentGroup.setVisible(false);
((GridData) _MRParentGroup.getLayoutData()).exclude = true;
} else if (type == NodeType.MULTIPLICITY_REDUCTION_PARENT_DATA) {
_NRParentGroup.setVisible(false);
((GridData) _NRParentGroup.getLayoutData()).exclude = true;
_MRParentGroup.setVisible(true);
((GridData) _MRParentGroup.getLayoutData()).exclude = false;
String[] triplet = getTriplet(item.getText());
fillMRParentWidgets(triplet[0], triplet[1], Integer.parseInt(triplet[2]));
_MRParentGroup.moveAbove(c);
_compInitial.layout();
}
}
});
/* Top widget of the right side */
_compInitial = new Composite(_sash, SWT.NONE);
_compInitial.setLayout(new GridLayout());
new Label(_compInitial, SWT.NONE).setText("Select a reduction rule");
/* NR/MR Details */
createNRParentWidgets();
createMRParentWidgets();
_NRParentGroup.setVisible(false);
_MRParentGroup.setVisible(false);
_sash.setWeights(new int[] { 3, 5 });
}
use of alma.acs.alarmsystem.generated.FaultMember in project ACS by ACS-Community.
the class ReductionsView method fillNRParentWidgets.
private void fillNRParentWidgets(String ff, String fm, int fc) {
//_updateNRParentFF.setEnabled(false);
ReductionRule nrr = _reductionManager.getNRParentByTriplet(ff, fm, fc);
Alarm parent = null;
// This should happen only when creating a new rule...
if (nrr == null) {
parent = _alarmManager.getAlarm(ff + ":" + fm + ":" + fc);
_NRParentErrorMessageLabel.setText("No Reduction Rule for this triplet.");
} else
parent = nrr.getParent();
_NRParentFFCombo.removeAll();
_NRParentChFFCombo.removeAll();
_NRParentChFFCombo.add("Any");
_NRParentChFFCombo.select(0);
List<FaultFamily> ffList = _alarmManager.getAllAlarms();
List<String> tmp = new ArrayList<String>();
List<FaultFamily> sortedFFList = new ArrayList<FaultFamily>();
for (FaultFamily tff : ffList) tmp.add(tff.getName());
Collections.sort(tmp, IGNORE_CASE_ORDER);
for (String sff : tmp) sortedFFList.add(_alarmManager.getFaultFamily(sff));
ffList = sortedFFList;
FaultFamily ffs = null;
int i = -1;
for (Iterator<FaultFamily> iterator = ffList.iterator(); iterator.hasNext(); ) {
FaultFamily fft = iterator.next();
if (fft.getFaultCodeCount() > 0 && fft.getFaultMemberCount() > 0)
_NRParentFFCombo.add(fft.getName());
_NRParentChFFCombo.add(fft.getName());
if (parent != null && fft.getName().compareTo(parent.getTriplet().getFaultFamily()) == 0) {
i = _NRParentFFCombo.getItemCount() - 1;
ffs = fft;
}
}
_NRParentFFCombo.select(i);
_NRParentFMCombo.removeAll();
if (ffs != null) {
i = -1;
FaultMember[] fml = ffs.getFaultMember();
List<FaultMember> fmList = Arrays.asList(fml);
tmp = new ArrayList<String>();
List<FaultMember> sortedFMList = new ArrayList<FaultMember>();
for (FaultMember tfm : fmList) tmp.add(tfm.getName());
Collections.sort(tmp, IGNORE_CASE_ORDER);
for (String sfm : tmp) for (FaultMember tfm : fmList) if (sfm.compareTo(tfm.getName()) == 0)
sortedFMList.add(tfm);
fmList = sortedFMList;
for (FaultMember fmt : fmList) {
_NRParentFMCombo.add(fmt.getName());
if (fmt.getName().compareTo(parent.getTriplet().getFaultMember()) == 0)
i = _NRParentFMCombo.getItemCount() - 1;
}
_NRParentFMCombo.select(i);
}
_NRParentFCCombo.removeAll();
if (ffs != null) {
i = -1;
FaultCode[] fcl = ffs.getFaultCode();
List<FaultCode> fcList = Arrays.asList(fcl);
tmp = new ArrayList<String>();
List<FaultCode> sortedFCList = new ArrayList<FaultCode>();
for (FaultCode tfc : fcList) tmp.add(Integer.toString(tfc.getValue()));
Collections.sort(tmp);
for (String sfc : tmp) for (FaultCode tfc : fcList) if (sfc.compareTo(Integer.toString(tfc.getValue())) == 0)
sortedFCList.add(tfc);
fcList = sortedFCList;
for (FaultCode fct : fcList) {
_NRParentFCCombo.add(Integer.toString(fct.getValue()));
if (fct.getValue() == parent.getTriplet().getFaultCode())
i = _NRParentFCCombo.getItemCount() - 1;
}
_NRParentFCCombo.select(i);
}
_NRParentChFMCombo.removeAll();
_NRParentChFMCombo.add("Any");
_NRParentChFMCombo.select(0);
_NRParentChFCCombo.removeAll();
_NRParentChFCCombo.add("Any");
_NRParentChFCCombo.select(0);
if (ff.isEmpty() && fm.isEmpty() && fc == 0) {
if (!_NRParentFFCombo.getText().isEmpty() && !_NRParentFMCombo.getText().isEmpty() && !_NRParentFCCombo.getText().isEmpty())
fillNRParentChAlarmList(_NRParentFFCombo.getText(), _NRParentFMCombo.getText(), Integer.parseInt(_NRParentFCCombo.getText()));
} else
fillNRParentChAlarmList(ff, fm, fc);
//_updateNRParentFF.setEnabled(true);
}
use of alma.acs.alarmsystem.generated.FaultMember in project ACS by ACS-Community.
the class AlarmManagerTest method testUpdateFaultMember.
public void testUpdateFaultMember() throws Exception {
boolean exception = false;
_am = AlarmManager.getInstance(_daoManager.getAlarmDAO());
_am.loadFromCDB();
List<FaultFamily> ff1 = _am.getAllAlarms();
assertNotNull(ff1);
FaultFamily ff;
FaultMember fm, fmm;
int size1;
int size2;
ff = new FaultFamily();
size1 = ff1.get(0).getFaultMemberCount();
try {
_am.updateFaultMember(null, null, null);
} catch (NullPointerException e) {
exception = true;
}
assertTrue(exception);
size2 = ff1.get(0).getFaultMemberCount();
assertEquals(size1, size2);
exception = false;
size1 = ff1.get(0).getFaultMemberCount();
try {
_am.updateFaultMember(ff, null, null);
} catch (NullPointerException e) {
exception = true;
}
assertTrue(exception);
size2 = ff1.get(0).getFaultMemberCount();
assertEquals(size1, size2);
ff.setName("foo");
fm = new FaultMember();
exception = false;
size1 = ff1.get(0).getFaultMemberCount();
try {
_am.updateFaultMember(ff, fm, null);
} catch (NullPointerException e) {
exception = true;
}
assertTrue(exception);
size2 = ff1.get(0).getFaultMemberCount();
assertEquals(size1, size2);
fmm = new FaultMember();
exception = false;
size1 = ff1.get(0).getFaultMemberCount();
try {
_am.updateFaultMember(ff, null, fmm);
} catch (NullPointerException e) {
exception = true;
}
assertTrue(exception);
size2 = ff1.get(0).getFaultMemberCount();
assertEquals(size1, size2);
exception = false;
size1 = ff1.get(0).getFaultMemberCount();
try {
_am.updateFaultMember(ff, fm, fmm);
} catch (NullPointerException e) {
exception = true;
}
assertTrue(exception);
size2 = ff1.get(0).getFaultMemberCount();
assertEquals(size1, size2);
exception = false;
ff.setName(ff1.get(0).getName());
fm.setName("foobar");
fmm.setName("foobar2");
size1 = ff1.get(0).getFaultMemberCount();
try {
_am.updateFaultMember(ff, fm, fmm);
} catch (IllegalOperationException e) {
exception = true;
}
assertTrue(exception);
size2 = ff1.get(0).getFaultMemberCount();
assertEquals(size1, size2);
exception = false;
size1 = ff1.get(0).getFaultMemberCount();
try {
_am.addFaultMember(ff, fm);
} catch (IllegalOperationException e) {
exception = true;
}
assertFalse(exception);
size2 = ff1.get(0).getFaultMemberCount();
assertEquals(size1, size2 - 1);
exception = false;
size1 = ff1.get(0).getFaultMemberCount();
try {
_am.updateFaultMember(ff, fm, fmm);
} catch (IllegalOperationException e) {
exception = true;
}
assertFalse(exception);
size2 = ff1.get(0).getFaultMemberCount();
assertEquals(size1, size2);
assertNotNull(_am.getFaultMember(ff1.get(0).getName(), "foobar2"));
}
Aggregations