package org.nightlabs.jfire.trade.editor2d.ui.layout;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.nightlabs.base.ui.composite.XComposite;
import org.nightlabs.jfire.base.ui.jdo.ActiveJDOObjectController;
import org.nightlabs.jfire.trade.editor2d.ILayout;
import org.nightlabs.jfire.trade.editor2d.ui.resource.Messages;
public abstract class AbstractRemoteLayoutListComposite<ID, L extends ILayout> extends XComposite {
RemoteLayoutTable<ID, L> layoutTable;
public AbstractRemoteLayoutListComposite(Composite parent, int style, boolean load) {
super(parent, style);
Label label = new Label(this, SWT.NONE);
label.setText(Messages.getString("org.nightlabs.jfire.trade.editor2d.ui.layout.AbstractRemoteLayoutListComposite.label")); //$NON-NLS-1$
layoutTable = new RemoteLayoutTable<ID, L>(this, SWT.NONE, createActiveJDOObjectController());
if (load) {
layoutTable.load();
}
layout(true, true);
}
public L getSelectedLayout() {
return layoutTable.getFirstSelectedElement();
}
public void selectLayout(L layout) {
List<L> selection = layout != null ? Collections.singletonList(layout) : new LinkedList<L>();
layoutTable.setSelection(selection, true);
}
public RemoteLayoutTable<ID, L> getLayoutTable() {
return layoutTable;
}
protected abstract ActiveJDOObjectController<ID, L> createActiveJDOObjectController();
}