package com.predic8.plugin.membrane.components.composites; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import com.predic8.plugin.membrane.MembraneUIPlugin; import com.predic8.plugin.membrane.resources.ImageKeys; public abstract class ControlsComposite extends Composite { protected Button btAdd; protected Button btEdit; protected Button btRemove; protected Button btUp, btDown; public ControlsComposite(Composite parent, int style) { super(parent, style); setLayout(craateLayout()); addPuttonsToComposite(); } private void addPuttonsToComposite() { btAdd = createAddButton(this); if (isEditSupported()) btEdit = createEditButton(this); btRemove = createRemoveButton(this); btUp = createUpButton(this); btDown = createDownButton(this); new Label(this, SWT.NONE).setText(" "); new Label(this, SWT.NONE).setText(" "); new Label(this, SWT.NONE).setText(" "); new Label(this, SWT.NONE).setText(" "); } private RowLayout craateLayout() { RowLayout rowLayout = new RowLayout(); rowLayout.type = SWT.VERTICAL; rowLayout.spacing = 15; rowLayout.fill = true; return rowLayout; } public void enableDependentButtons(boolean status) { if (isEditSupported()) btEdit.setEnabled(status); btRemove.setEnabled(status); btUp.setEnabled(status); btDown.setEnabled(status); } private Button createAddButton(Composite composite) { Button bt = new Button(composite, SWT.PUSH); bt.setImage(MembraneUIPlugin.getDefault().getImageRegistry().get(ImageKeys.IMAGE_ADD_RULE)); bt.setText("Add"); bt.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { newButtonPressed(); } }); return bt; } private Button createEditButton(final Composite controlsComposite) { Button bt = new Button(controlsComposite, SWT.PUSH); bt.setText("Edit"); bt.setEnabled(false); bt.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { editButtonPressed(); } }); return bt; } private Button createRemoveButton(Composite controlsComposite) { Button bt = new Button(controlsComposite, SWT.PUSH); bt.setText("Remove"); bt.setEnabled(false); bt.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { removeButtonPressed(); } }); return bt; } private Button createUpButton(Composite controlsComposite) { Button bt = new Button(controlsComposite, SWT.PUSH); bt.setText("Up"); bt.setEnabled(false); bt.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { upButtonPressed(); } }); return bt; } private Button createDownButton(Composite controlsComposite) { Button btDown = new Button(controlsComposite, SWT.PUSH); btDown.setText("Down"); btDown.setEnabled(false); btDown.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { downButtonPressed(); } }); return btDown; } public abstract void newButtonPressed(); public abstract void editButtonPressed(); public abstract void removeButtonPressed(); public abstract void upButtonPressed(); public abstract void downButtonPressed(); protected boolean isEditSupported() { return true; } }