package org.goko.tools.dro.preferences;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.wb.swt.ResourceManager;
import org.goko.common.preferences.GkFieldEditorPreferencesPage;
import org.goko.common.preferences.fieldeditor.objectcollection.CollectionObject;
import org.goko.common.preferences.fieldeditor.preference.ObjectCollectionFieldEditor;
import org.goko.core.common.exception.GkException;
import org.goko.core.controller.IControllerService;
import org.goko.core.controller.bean.MachineValueDefinition;
import org.goko.core.log.GkLog;
public class DROPreferencesPage extends GkFieldEditorPreferencesPage{
private static final GkLog LOG = GkLog.getLogger(DROPreferencesPage.class);
@Inject
private IControllerService controller;
public DROPreferencesPage() {
setImageDescriptor(ResourceManager.getPluginImageDescriptor("org.goko.tools.dro", "icons/compass.png"));
setDescription("Configure the displayed values");
setTitle("Digital read out");
setPreferenceStore(new DROPreferenceStoreProvider().getPreferenceStore());
}
/** (inheritDoc)
* @see org.goko.common.preferences.GkPreferencesPage#createPreferencePage(org.eclipse.swt.widgets.Composite)
*/
@Override
protected void createPreferencePage(Composite parent) {
GridLayout gridLayout = (GridLayout) parent.getLayout();
gridLayout.verticalSpacing = 0;
gridLayout.horizontalSpacing = 0;
ObjectCollectionFieldEditor objectCollectionFieldEditor = new ObjectCollectionFieldEditor(parent, SWT.NONE);
GridLayout gridLayout_1 = (GridLayout) objectCollectionFieldEditor.getLayout();
gridLayout_1.marginHeight = 0;
gridLayout_1.marginWidth = 0;
objectCollectionFieldEditor.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
objectCollectionFieldEditor.setPreferenceName("dro.displayedValues.list");
// TODO Auto-generated method stub
addField(objectCollectionFieldEditor);
try{
List<CollectionObject> lstObject = new ArrayList<CollectionObject>();
if(controller != null){
List<MachineValueDefinition> lstValues = controller.getMachineValueDefinition();
for (MachineValueDefinition def : lstValues) {
lstObject.add( new CollectionObject(def.getName(), def.getId(), def.getDescription()));
}
}
objectCollectionFieldEditor.setAvailableObjects(lstObject);
}catch(GkException e){
LOG.error(e);
}
}
}