use of org.csstudio.trends.databrowser3.model.ModelItem in project org.csstudio.display.builder by kasemir.
the class EditFormulaDialog method open.
/**
* Open, i.e. display the dialog.
* @return <code>true</code> when the item was updated,
* <code>false</code> for 'cancel'
*/
public boolean open() {
try {
// Edit
dialog = new FormulaDialog(shell, formula.getExpression(), determineInputs());
if (dialog.open() != Window.OK)
return false;
// Update model item with new formula from dialog
final Model model = formula.getModel().get();
final ArrayList<FormulaInput> new_inputs = new ArrayList<FormulaInput>();
for (final InputItem input : dialog.getInputs()) {
final ModelItem item = model.getItem(input.getInputName());
if (item == null)
// $NON-NLS-1$
throw new Exception("Cannot locate formula input " + input.getInputName());
new_inputs.add(new FormulaInput(item, input.getVariableName()));
}
// Update formula via undo-able command
new ChangeFormulaCommand(shell, operations_manager, formula, dialog.getFormula(), new_inputs.toArray(new FormulaInput[new_inputs.size()]));
} catch (final Exception ex) {
ExceptionDetailsErrorDialog.openError(shell, Messages.Error, ex);
return false;
}
return true;
}
use of org.csstudio.trends.databrowser3.model.ModelItem in project org.csstudio.display.builder by kasemir.
the class ControllerDemo method createModel.
private void createModel() throws Exception {
model = new Model();
model.setMacros(new TestMacros());
ModelItem item;
item = new PVItem("$(simu)", 1);
item.setDisplayName("$(name)");
item.setAxis(model.addAxis());
model.addItem(item);
item = new FormulaItem("math", "sine*0.5+2", new FormulaInput[] { new FormulaInput(item, "sine") });
item = new PVItem("sim://ramp", 0);
item.setDisplayName("Ramp (monitored)");
item.setAxis(model.addAxis());
model.addItem(item);
final ArchiveDataSource archive = new ArchiveDataSource("jdbc:oracle:thin:sns_reports/sns@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=OFF)(ADDRESS=(PROTOCOL=TCP)(HOST=172.31.75.138)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=172.31.75.141)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ics_prod_lba)))", 1, "rdb");
item = new PVItem("CCL_LLRF:IOC1:Load", 0);
((PVItem) item).addArchiveDataSource(archive);
item.setDisplayName("CCL 1 CPU Load (monitored)");
item.setAxis(model.addAxis());
model.addItem(item);
item = new PVItem("DTL_LLRF:IOC1:Load", 1.0);
((PVItem) item).addArchiveDataSource(archive);
item.setDisplayName("DTL 1 CPU Load (1 sec)");
item.setAxis(model.addAxis());
model.addItem(item);
item = new FormulaItem("calc", "dtl-10", new FormulaInput[] { new FormulaInput(item, "dtl") });
item.setDisplayName("Lessened Load");
item.setAxis(model.getAxis(2));
model.addItem(item);
}
Aggregations