use of org.eclipse.ui.forms.events.ExpansionAdapter in project titan.EclipsePlug-ins by eclipse.
the class GroupsSubPage method createGroupsSection.
void createGroupsSection(final Composite parent, final ScrolledForm form, final FormToolkit toolkit) {
Section section = toolkit.createSection(parent, Section.DESCRIPTION | ExpandableComposite.TITLE_BAR);
section.setActiveToggleColor(toolkit.getHyperlinkGroup().getActiveForeground());
section.setToggleColor(toolkit.getColors().getColor(IFormColors.SEPARATOR));
Composite client = toolkit.createComposite(section, SWT.WRAP);
GridLayout layout = new GridLayout();
layout.numColumns = 2;
client.setLayout(layout);
client.setLayoutData(new GridData(GridData.FILL_BOTH));
section.setText("Groups section");
section.setDescription("Specify the contents of the groups section for this configuration.");
section.setClient(client);
section.setExpanded(true);
section.addExpansionListener(new ExpansionAdapter() {
@Override
public void expansionStateChanged(final ExpansionEvent e) {
form.reflow(false);
}
});
GridData gd = new GridData(GridData.FILL_BOTH);
section.setLayoutData(gd);
createMainGroupsSection(client, form, toolkit);
createGroupItemsSection(client, form, toolkit);
}
use of org.eclipse.ui.forms.events.ExpansionAdapter in project titan.EclipsePlug-ins by eclipse.
the class GroupsSubPage method createGroupItemsSection.
private void createGroupItemsSection(final Composite parent, final ScrolledForm form, final FormToolkit toolkit) {
Section section = toolkit.createSection(parent, Section.DESCRIPTION | ExpandableComposite.TITLE_BAR);
section.setActiveToggleColor(toolkit.getHyperlinkGroup().getActiveForeground());
section.setToggleColor(toolkit.getColors().getColor(IFormColors.SEPARATOR));
Composite client = toolkit.createComposite(section, SWT.WRAP);
GridLayout layout = new GridLayout();
layout.numColumns = 2;
client.setLayout(layout);
itemsTable = toolkit.createTable(client, SWT.NULL);
itemsTable.setEnabled(groupSectionHandler != null && selectedGroup != null);
GridData gd = new GridData(GridData.FILL_BOTH);
gd.heightHint = 200;
gd.widthHint = 100;
itemsTable.setLayoutData(gd);
toolkit.paintBordersFor(client);
itemsTable.setLinesVisible(true);
itemsTable.setHeaderVisible(true);
Composite buttons = toolkit.createComposite(client);
buttons.setLayout(new GridLayout());
buttons.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
addItem = toolkit.createButton(buttons, "Add item", SWT.PUSH);
gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
addItem.setLayoutData(gd);
addItem.setEnabled(groupSectionHandler != null && selectedGroup != null);
addItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
if (groupSectionHandler == null) {
return;
}
if (selectedGroup == null) {
return;
}
GroupItem newItem;
ParseTree hidden = new AddedParseTree(", ");
ConfigTreeNodeUtilities.addChild(selectedGroup.getRoot(), hidden);
ParseTree node = new AddedParseTree("item");
ConfigTreeNodeUtilities.addChild(selectedGroup.getRoot(), node);
newItem = new GroupSectionHandler.GroupItem(node);
selectedGroup.getGroupItems().add(newItem);
internalRefresh();
itemsTable.select(selectedGroup.getGroupItems().size() - 1);
itemsTable.showSelection();
editor.setDirty();
}
});
removeItem = toolkit.createButton(buttons, "Remove item", SWT.PUSH);
gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
removeItem.setLayoutData(gd);
removeItem.setEnabled(groupSectionHandler != null && selectedGroup != null);
removeItem.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
if (itemsTableViewer == null || groupSectionHandler == null) {
return;
}
removeSelectedItems();
internalRefresh();
editor.setDirty();
}
});
totalGroupItemsLabel = toolkit.createLabel(buttons, "");
if (selectedGroup == null) {
totalGroupItemsLabel.setText("Total: ");
} else {
totalGroupItemsLabel.setText("Total: " + selectedGroup.getGroupItems().size());
}
gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
totalGroupItemsLabel.setLayoutData(gd);
section.setText("Group items");
section.setDescription("Specify items of the selected group.");
section.setClient(client);
section.setExpanded(true);
section.addExpansionListener(new ExpansionAdapter() {
@Override
public void expansionStateChanged(final ExpansionEvent e) {
form.reflow(false);
}
});
gd = new GridData(GridData.FILL_BOTH);
section.setLayoutData(gd);
TableColumn column = new TableColumn(itemsTable, SWT.LEFT, 0);
column.setText("Group item");
column.setWidth(150);
column.setMoveable(false);
itemsTableViewer = new TableViewer(itemsTable);
itemsTableViewer.setContentProvider(new GroupItemDataContentProvider());
itemsTableViewer.setLabelProvider(new GroupItemDataLabelProvider());
itemsTableViewer.setInput(null);
itemsTableViewer.setColumnProperties(new String[] { "groupItem" });
itemsTableViewer.setCellEditors(new TextCellEditor[] { new TextCellEditor(itemsTable) });
itemsTableViewer.setCellModifier(new ICellModifier() {
@Override
public boolean canModify(final Object element, final String property) {
return true;
}
@Override
public Object getValue(final Object element, final String property) {
GroupItemDataLabelProvider labelProvider = (GroupItemDataLabelProvider) itemsTableViewer.getLabelProvider();
return labelProvider.getColumnText(element, 0);
}
@Override
public void modify(final Object element, final String property, final Object value) {
if (element != null && element instanceof TableItem && value instanceof String) {
GroupItem item = (GroupItem) ((TableItem) element).getData();
ConfigTreeNodeUtilities.setText(item.getItem(), (String) value);
itemsTableViewer.refresh(item);
editor.setDirty();
}
}
});
}
use of org.eclipse.ui.forms.events.ExpansionAdapter in project titan.EclipsePlug-ins by eclipse.
the class GroupsSubPage method createMainGroupsSection.
void createMainGroupsSection(final Composite parent, final ScrolledForm form, final FormToolkit toolkit) {
Section section = toolkit.createSection(parent, Section.DESCRIPTION | ExpandableComposite.TITLE_BAR);
section.setActiveToggleColor(toolkit.getHyperlinkGroup().getActiveForeground());
section.setToggleColor(toolkit.getColors().getColor(IFormColors.SEPARATOR));
Composite client = toolkit.createComposite(section, SWT.WRAP);
GridLayout layout = new GridLayout();
layout.numColumns = 2;
client.setLayout(layout);
groupsTable = toolkit.createTable(client, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
groupsTable.setEnabled(groupSectionHandler != null);
GridData gd = new GridData(GridData.FILL_BOTH);
gd.heightHint = 200;
gd.widthHint = 100;
groupsTable.setLayoutData(gd);
toolkit.paintBordersFor(client);
groupsTable.setLinesVisible(true);
groupsTable.setHeaderVisible(true);
Composite buttons = toolkit.createComposite(client);
buttons.setLayout(new GridLayout());
buttons.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
addGroup = toolkit.createButton(buttons, "Add group", SWT.PUSH);
gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
addGroup.setLayoutData(gd);
addGroup.setEnabled(groupSectionHandler != null);
addGroup.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
if (groupSectionHandler == null) {
return;
}
if (groupSectionHandler.getLastSectionRoot() == null) {
createNewGroupsSection();
}
Group newGroup = createNewGroup();
if (newGroup == null) {
return;
}
ConfigTreeNodeUtilities.addChild(groupSectionHandler.getLastSectionRoot(), newGroup.getRoot());
groupSectionHandler.getGroups().add(newGroup);
internalRefresh();
groupsTable.select(groupSectionHandler.getGroups().size() - 1);
groupsTable.showSelection();
selectedGroup = newGroup;
itemsTableViewer.setInput(newGroup);
refreshItemsbTableViewer();
editor.setDirty();
}
});
removeGroup = toolkit.createButton(buttons, "Remove group", SWT.PUSH);
gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
removeGroup.setLayoutData(gd);
removeGroup.setEnabled(groupSectionHandler != null);
removeGroup.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
if (groupsTableViewer == null || groupSectionHandler == null) {
return;
}
removeSelectedGroups();
if (groupSectionHandler.getGroups().isEmpty()) {
removeGroupsSection();
}
internalRefresh();
editor.setDirty();
}
});
totalGroupsLabel = toolkit.createLabel(buttons, "Total: 0");
gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
totalGroupsLabel.setLayoutData(gd);
section.setText("Groups");
section.setDescription("Specify groups of components for this configuration.");
section.setClient(client);
section.setExpanded(true);
section.addExpansionListener(new ExpansionAdapter() {
@Override
public void expansionStateChanged(final ExpansionEvent e) {
form.reflow(false);
}
});
gd = new GridData(GridData.FILL_BOTH);
section.setLayoutData(gd);
TableColumn column = new TableColumn(groupsTable, SWT.LEFT, 0);
column.setText("Group name");
column.setWidth(150);
column.setMoveable(false);
groupsTableViewer = new TableViewer(groupsTable);
groupsTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(final SelectionChangedEvent event) {
Group group = (Group) ((StructuredSelection) event.getSelection()).getFirstElement();
selectedGroup = group;
itemsTable.setEnabled(groupSectionHandler != null && selectedGroup != null);
addItem.setEnabled(groupSectionHandler != null && selectedGroup != null);
removeItem.setEnabled(groupSectionHandler != null && selectedGroup != null);
itemsTableViewer.setInput(group);
refreshItemsbTableViewer();
}
});
groupsTableViewer.setContentProvider(new GroupDataContentProvider());
groupsTableViewer.setLabelProvider(new GroupDataLabelProvider());
groupsTableViewer.setInput(groupSectionHandler);
groupsTableViewer.setColumnProperties(new String[] { "groupName" });
groupsTableViewer.setCellEditors(new TextCellEditor[] { new TextCellEditor(groupsTable) });
groupsTableViewer.setCellModifier(new ICellModifier() {
@Override
public boolean canModify(final Object element, final String property) {
return true;
}
@Override
public String getValue(final Object element, final String property) {
GroupDataLabelProvider labelProvider = (GroupDataLabelProvider) groupsTableViewer.getLabelProvider();
return labelProvider.getColumnText(element, 0);
}
@Override
public void modify(final Object element, final String property, final Object value) {
if (element != null && element instanceof TableItem && value instanceof String) {
Group group = (Group) ((TableItem) element).getData();
ConfigTreeNodeUtilities.setText(group.getGroupName(), (String) value);
groupsTableViewer.refresh(group);
editor.setDirty();
}
}
});
refreshGroupsbTableViewer();
}
use of org.eclipse.ui.forms.events.ExpansionAdapter in project titan.EclipsePlug-ins by eclipse.
the class MCSubPage method createMainControllerSection.
void createMainControllerSection(final Composite parent, final ScrolledForm form, final FormToolkit toolkit) {
Section section = toolkit.createSection(parent, ExpandableComposite.TWISTIE | Section.DESCRIPTION | ExpandableComposite.TITLE_BAR);
section.setActiveToggleColor(toolkit.getHyperlinkGroup().getActiveForeground());
section.setToggleColor(toolkit.getColors().getColor(IFormColors.SEPARATOR));
section.setText("Main Controller options");
section.setDescription("Specify the Main Controller directing options for this configuration.");
section.setExpanded(true);
section.addExpansionListener(new ExpansionAdapter() {
@Override
public void expansionStateChanged(final ExpansionEvent e) {
form.reflow(false);
}
});
GridData gd = new GridData(SWT.FILL, SWT.NONE, true, false);
section.setLayoutData(gd);
Composite client = toolkit.createComposite(section, SWT.WRAP);
section.setClient(client);
GridLayout layout = new GridLayout();
layout.numColumns = 2;
client.setLayout(layout);
toolkit.paintBordersFor(client);
valueChanged = true;
toolkit.createLabel(client, "Local Address:");
localAddressText = toolkit.createText(client, "", SWT.SINGLE);
localAddressText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
localAddressText.setEnabled(mcSectionHandler != null);
localAddressText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(final ModifyEvent e) {
if (valueChanged || mcSectionHandler == null) {
return;
}
editor.setDirty();
String temp = localAddressText.getText();
if (temp == null || temp.length() == 0) {
// remove the node
if (mcSectionHandler.getLocalAddressRoot() != null) {
ConfigTreeNodeUtilities.removeChild(mcSectionHandler.getLastSectionRoot(), mcSectionHandler.getLocalAddressRoot());
}
mcSectionHandler.setLocalAddress(null);
mcSectionHandler.setLocalAddressRoot(null);
removeMCSection();
} else if (mcSectionHandler.getLocalAddress() == null) {
// create the node
createMCSection();
ParseTree localAddressRoot = new ParserRuleContext();
mcSectionHandler.setLocalAddressRoot(localAddressRoot);
ConfigTreeNodeUtilities.addChild(mcSectionHandler.getLastSectionRoot(), localAddressRoot);
ConfigTreeNodeUtilities.addChild(localAddressRoot, new AddedParseTree("\nlocalAddress := "));
ParseTree localAddress = new AddedParseTree(temp.trim());
mcSectionHandler.setLocalAddress(localAddress);
ConfigTreeNodeUtilities.addChild(localAddressRoot, localAddress);
} else {
// simple modification
ConfigTreeNodeUtilities.setText(mcSectionHandler.getLocalAddress(), temp.trim());
}
}
});
if (mcSectionHandler != null && mcSectionHandler.getLocalAddress() != null) {
localAddressText.setText(ConfigTreeNodeUtilities.toString(mcSectionHandler.getLocalAddress()));
}
toolkit.createLabel(client, "TCP port:");
tcpPortText = toolkit.createText(client, "", SWT.SINGLE);
tcpPortText.setEnabled(mcSectionHandler != null);
tcpPortText.setLayoutData(new GridData(75, SWT.DEFAULT));
tcpPortText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(final ModifyEvent e) {
if (valueChanged || mcSectionHandler == null) {
return;
}
editor.setDirty();
String temp = tcpPortText.getText();
if (temp == null || temp.length() == 0) {
// remove the node
if (mcSectionHandler.getTcpPortRoot() != null) {
ConfigTreeNodeUtilities.removeChild(mcSectionHandler.getLastSectionRoot(), mcSectionHandler.getTcpPortRoot());
}
mcSectionHandler.setTcpPort(null);
mcSectionHandler.setTcpPortRoot(null);
removeMCSection();
} else if (mcSectionHandler.getTcpPort() == null) {
// create the node
createMCSection();
ParseTree tcpPortRoot = new ParserRuleContext();
mcSectionHandler.setTcpPortRoot(tcpPortRoot);
ConfigTreeNodeUtilities.addChild(mcSectionHandler.getLastSectionRoot(), tcpPortRoot);
ConfigTreeNodeUtilities.addChild(tcpPortRoot, new AddedParseTree("\nTCPPort := "));
ParseTree tcpPort = new AddedParseTree(temp.trim());
mcSectionHandler.setTcpPort(tcpPort);
ConfigTreeNodeUtilities.addChild(tcpPortRoot, tcpPort);
} else {
// simple modification
ConfigTreeNodeUtilities.setText(mcSectionHandler.getTcpPort(), temp.trim());
}
}
});
if (mcSectionHandler != null && mcSectionHandler.getTcpPort() != null) {
tcpPortText.setText(ConfigTreeNodeUtilities.toString(mcSectionHandler.getTcpPort()));
}
toolkit.createLabel(client, "Kill timer:");
killTimerText = toolkit.createText(client, "", SWT.SINGLE);
killTimerText.setEnabled(mcSectionHandler != null);
killTimerText.setLayoutData(new GridData(75, SWT.DEFAULT));
killTimerText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(final ModifyEvent e) {
if (valueChanged || mcSectionHandler == null) {
return;
}
editor.setDirty();
String temp = killTimerText.getText();
if (temp == null || temp.length() == 0) {
// remove the node
if (mcSectionHandler.getKillTimerRoot() != null) {
ConfigTreeNodeUtilities.removeChild(mcSectionHandler.getLastSectionRoot(), mcSectionHandler.getKillTimerRoot());
}
mcSectionHandler.setKillTimer(null);
mcSectionHandler.setKillTimerRoot(null);
removeMCSection();
} else if (mcSectionHandler.getKillTimer() == null) {
// create the node
createMCSection();
ParseTree killTimerRoot = new ParserRuleContext();
mcSectionHandler.setKillTimerRoot(killTimerRoot);
ConfigTreeNodeUtilities.addChild(mcSectionHandler.getLastSectionRoot(), killTimerRoot);
ConfigTreeNodeUtilities.addChild(killTimerRoot, new AddedParseTree("\nkillTimer := "));
ParseTree killTimer = new AddedParseTree(temp.trim());
mcSectionHandler.setTcpPort(killTimer);
ConfigTreeNodeUtilities.addChild(killTimerRoot, killTimer);
} else {
// simple modification
ConfigTreeNodeUtilities.setText(mcSectionHandler.getKillTimer(), temp.trim());
}
}
});
if (mcSectionHandler != null && mcSectionHandler.getKillTimer() != null) {
killTimerText.setText(ConfigTreeNodeUtilities.toString(mcSectionHandler.getKillTimer()));
}
toolkit.createLabel(client, "Number of Host Contollers:");
numHCsText = toolkit.createText(client, "", SWT.SINGLE);
numHCsText.setEnabled(mcSectionHandler != null);
numHCsText.setLayoutData(new GridData(75, SWT.DEFAULT));
numHCsText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(final ModifyEvent e) {
if (valueChanged || mcSectionHandler == null) {
return;
}
editor.setDirty();
String temp = numHCsText.getText();
if (temp == null || temp.length() == 0) {
// remove the node
if (mcSectionHandler.getNumHCsTextRoot() != null) {
ConfigTreeNodeUtilities.removeChild(mcSectionHandler.getLastSectionRoot(), mcSectionHandler.getNumHCsTextRoot());
}
mcSectionHandler.setNumHCsText(null);
mcSectionHandler.setNumHCsTextRoot(null);
removeMCSection();
} else if (mcSectionHandler.getNumHCsText() == null) {
// create the node
createMCSection();
ParseTree numHCsTextRoot = new ParserRuleContext();
mcSectionHandler.setKillTimerRoot(numHCsTextRoot);
ConfigTreeNodeUtilities.addChild(mcSectionHandler.getLastSectionRoot(), numHCsTextRoot);
ConfigTreeNodeUtilities.addChild(numHCsTextRoot, new AddedParseTree("\nnumHCs := "));
ParseTree numHCsText = new AddedParseTree(temp.trim());
mcSectionHandler.setNumHCsText(numHCsText);
ConfigTreeNodeUtilities.addChild(numHCsTextRoot, numHCsText);
} else {
// simple modification
ConfigTreeNodeUtilities.setText(mcSectionHandler.getNumHCsText(), temp.trim());
}
}
});
if (mcSectionHandler != null && mcSectionHandler.getNumHCsText() != null) {
numHCsText.setText(ConfigTreeNodeUtilities.toString(mcSectionHandler.getNumHCsText()));
}
toolkit.createLabel(client, "Use of unix domain socket communication:");
unixDomainSocketText = new CCombo(client, SWT.FLAT);
unixDomainSocketText.setEnabled(mcSectionHandler != null);
unixDomainSocketText.setLayoutData(new GridData(75, SWT.DEFAULT));
unixDomainSocketText.add("Yes");
unixDomainSocketText.add("No");
unixDomainSocketText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(final ModifyEvent e) {
if (valueChanged || mcSectionHandler == null) {
return;
}
editor.setDirty();
String temp = unixDomainSocketText.getText();
if (temp == null || temp.length() == 0) {
// remove the node
if (mcSectionHandler.getUnixDomainSocketRoot() != null) {
ConfigTreeNodeUtilities.removeChild(mcSectionHandler.getLastSectionRoot(), mcSectionHandler.getUnixDomainSocketRoot());
}
mcSectionHandler.setUnixDomainSocket(null);
mcSectionHandler.setUnixDomainSocketRoot(null);
removeMCSection();
} else if (mcSectionHandler.getUnixDomainSocket() == null) {
// create the node
createMCSection();
ParseTree unixDomainSocketRoot = new ParserRuleContext();
mcSectionHandler.setUnixDomainSocketRoot(unixDomainSocketRoot);
ConfigTreeNodeUtilities.addChild(mcSectionHandler.getLastSectionRoot(), unixDomainSocketRoot);
ConfigTreeNodeUtilities.addChild(unixDomainSocketRoot, new AddedParseTree("\nUnixSocketsEnabled := "));
ParseTree unixDomainSocket = new AddedParseTree(temp.trim());
mcSectionHandler.setUnixDomainSocket(unixDomainSocket);
ConfigTreeNodeUtilities.addChild(unixDomainSocketRoot, unixDomainSocket);
} else {
// simple modification
ConfigTreeNodeUtilities.setText(mcSectionHandler.getUnixDomainSocket(), temp.trim());
}
}
});
if (mcSectionHandler != null && mcSectionHandler.getUnixDomainSocket() != null) {
unixDomainSocketText.setText(ConfigTreeNodeUtilities.toString(mcSectionHandler.getUnixDomainSocket()));
}
valueChanged = false;
}
use of org.eclipse.ui.forms.events.ExpansionAdapter in project titan.EclipsePlug-ins by eclipse.
the class ModuleParameterSectionPage method createModuleParameterTable.
private void createModuleParameterTable(final Composite parent, final ScrolledForm form, final FormToolkit toolkit) {
Section section = toolkit.createSection(parent, Section.DESCRIPTION | ExpandableComposite.TITLE_BAR);
section.setActiveToggleColor(toolkit.getHyperlinkGroup().getActiveForeground());
section.setToggleColor(toolkit.getColors().getColor(IFormColors.SEPARATOR));
Composite client = toolkit.createComposite(section, SWT.WRAP);
GridLayout layout = new GridLayout();
layout.numColumns = 2;
client.setLayout(layout);
toolkit.paintBordersFor(client);
moduleParametersTable = toolkit.createTable(client, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
moduleParametersTable.setEnabled(moduleParametersHandler != null);
TableColumn column = new TableColumn(moduleParametersTable, SWT.LEFT, 0);
column.setText("Module name");
column.setWidth(150);
column.setMoveable(false);
column = new TableColumn(moduleParametersTable, SWT.LEFT, 1);
column.setText("Module parameter name");
column.setMoveable(false);
column.setWidth(200);
moduleParametersTable.setHeaderVisible(true);
moduleParametersTable.setLinesVisible(true);
GridData gd = new GridData(GridData.FILL_BOTH);
gd.widthHint = 100;
gd.heightHint = 200;
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = SWT.FILL;
gd.grabExcessVerticalSpace = true;
gd.verticalAlignment = SWT.FILL;
moduleParametersTable.setLayoutData(gd);
Composite buttons = toolkit.createComposite(client);
buttons.setLayout(new GridLayout());
buttons.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.GRAB_VERTICAL));
add = toolkit.createButton(buttons, "Add...", SWT.PUSH);
gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
add.setLayoutData(gd);
add.setEnabled(moduleParametersHandler != null);
add.addSelectionListener(new SelectionListener() {
@Override
public void widgetDefaultSelected(final SelectionEvent e) {
// Do nothing
}
@Override
public void widgetSelected(final SelectionEvent e) {
if (moduleParametersHandler == null) {
return;
}
if (moduleParametersHandler.getLastSectionRoot() == null) {
createNewModuleParameterSection();
}
ModuleParameter newModuleParameter = createNewParameter();
if (newModuleParameter == null) {
return;
}
ConfigTreeNodeUtilities.addChild(moduleParametersHandler.getLastSectionRoot(), newModuleParameter.getRoot());
moduleParametersHandler.getModuleParameters().add(newModuleParameter);
internalRefresh();
moduleParametersTableViewer.setSelection(new StructuredSelection(newModuleParameter));
parameterValueText.setText(newModuleParameter.getValue().getText());
editor.setDirty();
}
});
remove = toolkit.createButton(buttons, "Remove", SWT.PUSH);
gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
remove.setLayoutData(gd);
remove.setEnabled(moduleParametersHandler != null);
remove.addSelectionListener(new SelectionListener() {
@Override
public void widgetDefaultSelected(final SelectionEvent e) {
// Do nothing
}
@Override
public void widgetSelected(final SelectionEvent e) {
if (moduleParametersTableViewer == null || moduleParametersHandler == null) {
return;
}
removeSelectedParameters();
if (moduleParametersHandler.getModuleParameters().isEmpty()) {
removeModuleParameterSection();
}
/*
* ASTFrame frame = new
* ASTFrame("Tree structure"
* ,editor.parseTreeRoot);
* frame.setVisible(true);
*/
internalRefresh();
editor.setDirty();
}
});
totalModuleParametersLabel = toolkit.createLabel(buttons, "Total: 0");
gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
totalModuleParametersLabel.setLayoutData(gd);
section.setText("Module parameters");
section.setDescription("Specify the list of module parameters for this configuration.");
section.setClient(client);
section.setExpanded(true);
section.addExpansionListener(new ExpansionAdapter() {
@Override
public void expansionStateChanged(final ExpansionEvent e) {
form.reflow(false);
}
});
gd = new GridData(GridData.FILL_BOTH);
section.setLayoutData(gd);
moduleParametersTableViewer = new TableViewer(moduleParametersTable);
moduleParametersTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(final SelectionChangedEvent event) {
StructuredSelection selection = (StructuredSelection) event.getSelection();
if (selection.size() != 1) {
parameterValueText.setEnabled(false);
return;
}
ModuleParameter moduleParameter = (ModuleParameter) selection.getFirstElement();
if (moduleParameter != null) {
if (moduleParameter.getValue() != null) {
final String moduleParamValueText = CfgParseTreePrinter.toStringWithHidden(moduleParameter.getValue(), editor.getTokens(), false);
parameterValueText.setText(moduleParamValueText);
}
valueChanged = true;
}
parameterValueText.setEnabled(moduleParametersHandler != null && moduleParameter != null);
}
});
moduleParametersTableViewer.setContentProvider(new ModuleParameterDataContentProvider());
moduleParametersTableViewer.setLabelProvider(new ModuleParameterDataLabelProvider());
moduleParametersTableViewer.setInput(moduleParametersHandler);
moduleParametersTableViewer.setColumnProperties(COLUMN_NAMES);
moduleParametersTableViewer.setCellEditors(new TextCellEditor[] { new TextCellEditor(moduleParametersTable), new TextCellEditor(moduleParametersTable) });
moduleParametersTableViewer.setCellModifier(new ICellModifier() {
@Override
public boolean canModify(final Object element, final String property) {
return true;
}
@Override
public String getValue(final Object element, final String property) {
int columnIndex = Arrays.asList(COLUMN_NAMES).indexOf(property);
ModuleParameterDataLabelProvider labelProvider = (ModuleParameterDataLabelProvider) moduleParametersTableViewer.getLabelProvider();
return labelProvider.getColumnText(element, columnIndex);
}
@Override
public void modify(final Object element, final String property, final Object value) {
int columnIndex = Arrays.asList(COLUMN_NAMES).indexOf(property);
if (element != null && element instanceof TableItem && value instanceof String) {
ModuleParameter moduleParameter = (ModuleParameter) ((TableItem) element).getData();
switch(columnIndex) {
case 0:
// MODULE_NAME
if (moduleParameter.getModuleName() != null) {
String newValue = ((String) value).trim();
if (newValue != null) {
ConfigTreeNodeUtilities.setText(moduleParameter.getModuleName(), newValue);
ConfigTreeNodeUtilities.setText(moduleParameter.getSeparator(), "".equals(newValue) ? "" : ".");
}
}
break;
case 1:
// PARAMETER_NAME
ConfigTreeNodeUtilities.setText(moduleParameter.getParameterName(), ((String) value).trim());
break;
default:
break;
}
moduleParametersTableViewer.refresh(moduleParameter);
editor.setDirty();
}
}
});
moduleParametersTableViewer.addDragSupport(DND.DROP_COPY | DND.DROP_MOVE, new Transfer[] { ModuleParameterTransfer.getInstance() }, new ModuleParameterSectionDragSourceListener(this, moduleParametersTableViewer));
moduleParametersTableViewer.addDropSupport(DND.DROP_COPY | DND.DROP_MOVE, new Transfer[] { ModuleParameterTransfer.getInstance() }, new ModuleParameterSectionDropTargetListener(moduleParametersTableViewer, editor));
}
Aggregations