package com.remainsoftware.ece2013.nebula.xviewer; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import javax.annotation.PostConstruct; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.ActionContributionItem; import org.eclipse.nebula.widgets.xviewer.edit.DefaultXViewerControlFactory; import org.eclipse.nebula.widgets.xviewer.edit.XViewerControlFactory; import org.eclipse.nebula.widgets.xviewer.edit.XViewerConverter; import org.eclipse.nebula.widgets.xviewer.edit.XViewerEditAdapter; import org.eclipse.nebula.widgets.xviewer.example.MyDefaultCustomizations; import org.eclipse.nebula.widgets.xviewer.example.MyXViewer; import org.eclipse.nebula.widgets.xviewer.example.MyXViewerContentProvider; import org.eclipse.nebula.widgets.xviewer.example.MyXViewerConverter; import org.eclipse.nebula.widgets.xviewer.example.MyXViewerLabelProvider; import org.eclipse.nebula.widgets.xviewer.example.images.MyImageCache; import org.eclipse.nebula.widgets.xviewer.example.model.ISomeTask; import org.eclipse.nebula.widgets.xviewer.example.model.ISomeTask.RunDb; import org.eclipse.nebula.widgets.xviewer.example.model.ISomeTask.TaskType; import org.eclipse.nebula.widgets.xviewer.example.model.SomeTask; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; /** * Example use of XViewer. Run as application to see sample XViewer. * * @author Donald G. Dunne */ public class MyXViewerTest { static MyXViewer myXviewer; @PostConstruct public void main(Composite parent) { // Get the Display. Create on if none exists parent.setLayout(new GridLayout()); parent.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.HORIZONTAL_ALIGN_BEGINNING)); // Button composite for state transitions, etc Composite toolBarComposite = new Composite(parent, SWT.NONE); // bComp.setBackground(mainSComp.getDisplay().getSystemColor(SWT.COLOR_CYAN)); toolBarComposite.setLayout(new GridLayout(2, false)); toolBarComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); myXviewer = new MyXViewer(parent, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION); myXviewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH)); myXviewer.setContentProvider(new MyXViewerContentProvider()); myXviewer.setLabelProvider(new MyXViewerLabelProvider(myXviewer)); // myXviewer.setLabelProvider(new // MyXViewerStyledTextLabelProvider(myXviewer)); // XViewerEditAdapter XViewerControlFactory cFactory = new DefaultXViewerControlFactory(); XViewerConverter converter = new MyXViewerConverter(); myXviewer.setXViewerEditAdapter(new XViewerEditAdapter(cFactory, converter)); createTaskActionBar(toolBarComposite); List<Object> tasks = new ArrayList<Object>(); for (int x = 0; x < 1; x++) { tasks.addAll(getTestTasks()); } myXviewer.setInput(tasks); } public static void createTaskActionBar(Composite parent) { Composite actionComp = new Composite(parent, SWT.NONE); actionComp.setLayout(new GridLayout()); actionComp.setLayoutData(new GridData(GridData.END)); ToolBar toolBar = new ToolBar(actionComp, SWT.FLAT | SWT.RIGHT); GridData gd = new GridData(GridData.FILL_HORIZONTAL); toolBar.setLayoutData(gd); ToolItem refreshItem = new ToolItem(toolBar, SWT.PUSH); refreshItem.setImage(MyImageCache.getImage("refresh.gif")); refreshItem.setToolTipText("Refresh"); refreshItem.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { List<Object> tasks = new ArrayList<Object>(); for (int x = 0; x < 1; x++) { tasks.addAll(getTestTasks()); } myXviewer.setInput(tasks); } }); Action dropDownAction = myXviewer.getCustomizeAction(); new ActionContributionItem(dropDownAction).fill(toolBar, 0); ToolItem descriptionItem = new ToolItem(toolBar, SWT.PUSH); descriptionItem.setImage(MyImageCache.getImage("descriptionView.gif")); descriptionItem.setToolTipText("Show Description View"); descriptionItem.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { myXviewer.getCustomizeMgr().loadCustomization( MyDefaultCustomizations.getDescriptionCustomization()); myXviewer.refresh(); } }); ToolItem completeItem = new ToolItem(toolBar, SWT.PUSH); completeItem.setImage(MyImageCache.getImage("completionView.gif")); completeItem.setToolTipText("Show Completion View"); completeItem.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { myXviewer.getCustomizeMgr().loadCustomization( MyDefaultCustomizations.getCompletionCustomization()); myXviewer.refresh(); } }); } private static Date date = new Date(); private static Date getDate() { date = new Date(date.getTime() + (60000 * 60 * 2)); return date; } private static List<ISomeTask> getTestTasks() { List<ISomeTask> tasks = new ArrayList<ISomeTask>(); SomeTask task = new SomeTask(RunDb.Test_Db, TaskType.Backup, getDate(), "org.eclipse.osee.test1", "10:03", "run to test this", "Suite A", "mark@eclipse.com", 50); tasks.add(task); for (int x = 0; x < 5; x++) { task.addChild(new SomeTask(RunDb.Test_Db, TaskType.Backup, getDate(), "org.eclipse.osee.test33", "10:03", "run to test isit this - child " + x, "Suite A", "mark@eclipse.com", 50)); } tasks.add(new SomeTask(RunDb.Production_Db, TaskType.Data_Exchange, getDate(), "org.eclipse.osee.test2", "9:22", "run to test that", "Suite B", "john@eclipse.com", 0)); tasks.add(new SomeTask(RunDb.Production_Db, TaskType.Backup, getDate(), "org.eclipse.osee.test4", "8:23", "in this world", "Suite A", "john@eclipse.com", 50)); tasks.add(new SomeTask(RunDb.Test_Db, TaskType.Backup, getDate(), "org.eclipse.osee.test3", "23:01", "now is the time", "Suite B", "mike@eclipse.com", 30)); tasks.add(new SomeTask(RunDb.Production_Db, TaskType.Db_Health, getDate(), "org.eclipse.osee.test5", "7:32", "may be never", "Suite A", "steve@eclipse.com", 10)); tasks.add(new SomeTask(RunDb.Test_Db, TaskType.Data_Exchange, getDate(), "org.eclipse.osee.test14", "6:11", "", "Suite A", "steve@eclipse.com", 95)); tasks.add(new SomeTask(RunDb.Production_Db, TaskType.Backup, getDate(), "org.eclipse.osee.test6", "5:13", "run to test this", "Suite B", "john@eclipse.com", 80)); tasks.add(new SomeTask(RunDb.Test_Db, TaskType.Db_Health, getDate(), "org.eclipse.osee.test12", "23:15", "", "Suite A", "mike@eclipse.com", 90)); tasks.add(new SomeTask(RunDb.Production_Db, TaskType.Backup, getDate(), "org.eclipse.osee.test13", "4:01", "run to test this", "Suite B", "steve@eclipse.com", 100)); tasks.add(new SomeTask(RunDb.Production_Db, TaskType.Data_Exchange, getDate(), "org.eclipse.osee.test11", "3:16", "run to test this", "Suite A", "steve@eclipse.com", 53)); tasks.add(new SomeTask(RunDb.Test_Db, TaskType.Backup, getDate(), "org.eclipse.osee.test10", "5:01", "run to test this", "Suite C", "mike@eclipse.com", 0)); tasks.add(new SomeTask(RunDb.Production_Db, TaskType.Data_Exchange, getDate(), "org.eclipse.osee.test9", "4:27", "run to test this", "Suite C", "steve@eclipse.com", 90)); tasks.add(new SomeTask(RunDb.Production_Db, TaskType.Regression, getDate(), "org.eclipse.osee.test7", "2:37", "run to test this", "Suite C", "john@eclipse.com", 20)); int num = 10; for (String str : Arrays.asList("Now", "Cat", "Dog", "Tree", "Bike", "Sun", "Moon", "Grass", "Can", "Car", "Truck", "Block", "Earth", "Mars", "Venus", "Requirements visualization", "Requirements management", "Feature management", "Modeling", "Design", "Project Management", "Change management", "Configuration Management", "Software Information Management", "Build management", "Testing", "Release Management", "Software Deployment", "Issue management", "Monitoring and reporting", "Workflow")) { tasks.add(new SomeTask(RunDb.Test_Db, TaskType.Db_Health, getDate(), "org.eclipse.osee." + str, "24:" + num++, str + " will run to test this", "Suite C" + num++, str .toLowerCase().replaceAll(" ", ".") + "@eclipse.com", 20)); } return tasks; } }