package org.reldb.dbrowser.ui.content.rev.operators; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; import org.reldb.dbrowser.ui.content.rev.AttributeListPanel; import org.reldb.dbrowser.ui.content.rev.Rev; import org.reldb.rel.client.Tuple; import org.reldb.rel.client.Tuples; public class Project extends Monadic { private AttributeListPanel attributeListPanel; public Project(Rev rev, String name, int xpos, int ypos) { super(rev, name, "Project", xpos, ypos); } protected void load() { Tuples tuples = getDatabase().getPreservedStateOperator(getID()); Tuple tuple = tuples.iterator().next(); if (tuple == null) operatorLabel.setText("{ALL BUT}"); else operatorLabel.setText(tuple.getAttributeValue("Definition").toString()); } private void save() { getDatabase().updatePreservedStateOperator(getID(), operatorLabel.getText()); } @Override protected void buildControlPanel(Composite container) { container.setLayout(new FillLayout()); attributeListPanel = new AttributeListPanel(container, SWT.None); attributeListPanel.setText(operatorLabel.getText()); attributeListPanel.setAvailableAttributes(getAttributeNamesOfParameter(0)); } @Override protected void controlPanelOkPressed() { operatorLabel.setText(attributeListPanel.getText()); save(); pack(); } @Override public String getQuery() { String source = getQueryForParameter(0); if (source == null) return null; if (operatorLabel.getText().length() == 0) return null; return source + " " + operatorLabel.getText(); } }