diff options
Diffstat (limited to 'org.openembedded.bc.ui/src/org/openembedded/bc/ui/wizards/install/FlavorPage.java')
-rw-r--r-- | org.openembedded.bc.ui/src/org/openembedded/bc/ui/wizards/install/FlavorPage.java | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/org.openembedded.bc.ui/src/org/openembedded/bc/ui/wizards/install/FlavorPage.java b/org.openembedded.bc.ui/src/org/openembedded/bc/ui/wizards/install/FlavorPage.java new file mode 100644 index 0000000..db75c98 --- /dev/null +++ b/org.openembedded.bc.ui/src/org/openembedded/bc/ui/wizards/install/FlavorPage.java @@ -0,0 +1,182 @@ +package org.openembedded.bc.ui.wizards.install; + +import java.io.IOException; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; + +import org.eclipse.jface.viewers.ILabelProviderListener; +import org.eclipse.jface.viewers.IStructuredContentProvider; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.ITableLabelProvider; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.TableColumn; +import org.openembedded.bc.ui.Activator; +import org.openembedded.bc.ui.wizards.FiniteStateWizardPage; + + +/** + * Select which flavor of OE is to be installed. + * + * @author kgilmer + * + */ +public class FlavorPage extends FiniteStateWizardPage { + protected static final String OE_FLAVOR = "FLAVOR"; + protected static final String OE_FLAVOR_TITLE = "OE_FLAVOR_TITLE"; + protected static final String INSTALL_SCRIPT = "INSTALL_SCRIPT"; + + private boolean controlsCreated; + private TableViewer flavorList; + + protected FlavorPage(Map model) { + super("Flavor", model); + setTitle("Select OpenEmbedded Flavor"); + setMessage("Select the flavor of OpenEmbedded you wish to install..."); + } + + + public void createControl(Composite parent) { + Composite top = new Composite(parent, SWT.None); + top.setLayout(new GridLayout()); + top.setLayoutData(new GridData(GridData.FILL_BOTH)); + + flavorList = new TableViewer(top, SWT.BORDER); + flavorList.setContentProvider(new FlavorContentProvider()); + flavorList.setLabelProvider(new FlavorLabelProvider()); + flavorList.getTable().setLayoutData(new GridData(GridData.FILL_BOTH)); + flavorList.addSelectionChangedListener(new ValidationListener()); + + TableColumn tc = new TableColumn(flavorList.getTable(), SWT.LEFT); + tc.setText("Image"); + tc.setWidth(128); + + tc = new TableColumn(flavorList.getTable(), SWT.LEFT); + tc.setText("Title"); + tc.setWidth(300); + /* + tc = new TableColumn(flavorList.getTable(), SWT.LEFT); + tc.setText("Description"); + tc.setWidth(300);*/ + + + setControl(top); + } + + + public void pageCleanup() { + + } + + + public void pageDisplay() { + getContainer().getShell().setSize(getContainer().getShell().getSize().x, 600); + if (!controlsCreated) { + try { + flavorList.setInput(InstallScriptHelper.getFlavors("scripts/install_flavors.txt")); + controlsCreated = true; + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + + protected void updateModel() { + Flavor f = (Flavor) ((IStructuredSelection) flavorList.getSelection()).getFirstElement(); + model.put(OE_FLAVOR, f); + model.put(OE_FLAVOR_TITLE, f.getLabel()); + try { + model.put(INSTALL_SCRIPT, InstallScriptHelper.loadFile(f.getScriptURL())); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + + protected boolean validatePage() { + return flavorList.getSelection() != null; + } + + private class FlavorContentProvider implements IStructuredContentProvider { + + + public Object[] getElements(Object arg0) { + return ((List) arg0).toArray(); + } + + + public void dispose() { + } + + + public void inputChanged(Viewer arg0, Object arg1, Object arg2) { + } + + } + + private class FlavorLabelProvider implements ITableLabelProvider { + private Map imageMap = new Hashtable(); + + + public Image getColumnImage(Object arg0, int arg1) { + Flavor f = (Flavor) arg0; + Image i = null; + + if (arg1 == 0) { + i = (Image) imageMap.get(f); + if (i == null) { + i = Activator.getImageDescriptor(f.getImageURL()).createImage(); + imageMap.put(f, i); + } + } + + return i; + } + + + public String getColumnText(Object arg0, int arg1) { + Flavor f = (Flavor) arg0; + if (arg1 == 1) { + return f.getLabel(); + } else if (arg1 == 2) { + return f.getDescription(); + } + + return null; + } + + + public void addListener(ILabelProviderListener arg0) { + + } + + + public void dispose() { + // TODO Auto-generated method stub + + } + + + public boolean isLabelProperty(Object arg0, String arg1) { + // TODO Auto-generated method stub + return false; + } + + + public void removeListener(ILabelProviderListener arg0) { + // TODO Auto-generated method stub + + } + + } + +} |