use of org.csstudio.display.builder.model.macros.Macros in project org.csstudio.display.builder by kasemir.
the class ActionsDialog method createOpenDisplayDetails.
/**
* @return Sub-pane for OpenDisplay action
*/
private GridPane createOpenDisplayDetails() {
final InvalidationListener update = whatever -> {
if (updating || selected_action_index < 0)
return;
actions.set(selected_action_index, getOpenDisplayAction());
};
final GridPane open_display_details = new GridPane();
// open_display_details.setGridLinesVisible(true);
open_display_details.setHgap(10);
open_display_details.setVgap(10);
open_display_details.add(new Label(Messages.ActionsDialog_Description), 0, 0);
open_display_description = new TextField();
open_display_description.textProperty().addListener(update);
open_display_details.add(open_display_description, 1, 0);
GridPane.setHgrow(open_display_description, Priority.ALWAYS);
open_display_details.add(new Label(Messages.ActionsDialog_DisplayPath), 0, 1);
open_display_path = new TextField();
open_display_path.textProperty().addListener(update);
final Button select = new Button("...");
select.setOnAction(event -> {
try {
final String path = FilenameSupport.promptForRelativePath(widget, open_display_path.getText());
if (path != null)
open_display_path.setText(path);
FilenameSupport.performMostAwfulTerribleNoGoodHack(action_list);
} catch (Exception ex) {
logger.log(Level.WARNING, "Cannot prompt for filename", ex);
}
});
final HBox path_box = new HBox(open_display_path, select);
HBox.setHgrow(open_display_path, Priority.ALWAYS);
open_display_details.add(path_box, 1, 1);
final HBox modes_box = new HBox(10);
open_display_targets = new ToggleGroup();
final Target[] modes = Target.values();
for (int i = 0; i < modes.length; ++i) {
final RadioButton target = new RadioButton(modes[i].toString());
target.setToggleGroup(open_display_targets);
target.selectedProperty().addListener(update);
if (modes[i] == Target.STANDALONE && !Preferences.isStandaloneWindowSupported())
target.setDisable(true);
modes_box.getChildren().add(target);
}
open_display_details.add(modes_box, 0, 2, 2, 1);
open_display_macros = new MacrosTable(new Macros());
open_display_macros.addListener(update);
open_display_details.add(open_display_macros.getNode(), 0, 3, 2, 1);
GridPane.setHgrow(open_display_macros.getNode(), Priority.ALWAYS);
GridPane.setVgrow(open_display_macros.getNode(), Priority.ALWAYS);
return open_display_details;
}
use of org.csstudio.display.builder.model.macros.Macros in project org.csstudio.display.builder by kasemir.
the class MacrosFieldEditor method getFXCanvas.
private void getFXCanvas(final Composite parent) {
if (fxcanvas == null) {
final JFX_SWT_Wrapper wrapper = new JFX_SWT_Wrapper(parent, () -> {
table = new MacrosTable(new Macros());
return new Scene(table.getNode());
});
fxcanvas = wrapper.getFXCanvas();
}
}
use of org.csstudio.display.builder.model.macros.Macros in project org.csstudio.display.builder by kasemir.
the class MacrosFieldEditor method loadMacros.
private void loadMacros(final String text) {
Macros macros;
try {
macros = MacroXMLUtil.readMacros(text);
} catch (Exception ex) {
// Ignore
macros = new Macros();
}
table.setMacros(macros);
}
use of org.csstudio.display.builder.model.macros.Macros in project org.csstudio.display.builder by kasemir.
the class EmbeddedDisplayWidget method defineProperties.
@Override
protected void defineProperties(final List<WidgetProperty<?>> properties) {
super.defineProperties(properties);
properties.add(file = propFile.createProperty(this, ""));
properties.add(macros = propMacros.createProperty(this, new Macros()));
properties.add(resize = propResize.createProperty(this, Resize.None));
properties.add(group_name = propGroupName.createProperty(this, ""));
properties.add(embedded_model = runtimeModel.createProperty(this, null));
properties.add(transparent = propTransparent.createProperty(this, false));
BorderSupport.addBorderProperties(this, properties);
// Initial size
propWidth().setValue(300);
propHeight().setValue(200);
}
use of org.csstudio.display.builder.model.macros.Macros in project org.csstudio.display.builder by kasemir.
the class EmbeddedDisplayWidget method getEffectiveMacros.
/**
* Embedded widget adds/replaces parent macros
* @return {@link Macros}
*/
@Override
public Macros getEffectiveMacros() {
final Macros base = super.getEffectiveMacros();
final Macros my_macros = propMacros().getValue();
return base == null ? my_macros : Macros.merge(base, my_macros);
}
Aggregations