X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=lttng%2Forg.eclipse.tracecompass.lttng2.control.ui%2Fsrc%2Forg%2Feclipse%2Ftracecompass%2Finternal%2Flttng2%2Fcontrol%2Fui%2Fviews%2Fdialogs%2FLoadDialog.java;h=0671aade9d2c0d7c8388e71948e203f6920d4ec3;hb=fc9ff6c4d03e6ab88d8237132a84881b6780ef94;hp=ddb14a90f7ed25ac70ec03f4f845ec89c481c70a;hpb=f4da4c59ef7d02e63f277b4f5b8cda065de07c44;p=deliverable%2Ftracecompass.git diff --git a/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/LoadDialog.java b/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/LoadDialog.java index ddb14a90f7..0671aade9d 100644 --- a/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/LoadDialog.java +++ b/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/dialogs/LoadDialog.java @@ -22,33 +22,29 @@ import org.eclipse.core.filesystem.EFS; import org.eclipse.core.filesystem.IFileStore; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.TitleAreaDialog; +import org.eclipse.jface.preference.PreferenceDialog; import org.eclipse.jface.viewers.CheckStateChangedEvent; import org.eclipse.jface.viewers.CheckboxTreeViewer; import org.eclipse.jface.viewers.ICheckStateListener; import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.Viewer; import org.eclipse.remote.core.IRemoteConnection; import org.eclipse.remote.ui.widgets.RemoteResourceBrowserWidget; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Tree; -import org.eclipse.tracecompass.internal.lttng2.control.core.LttngProfileManager; import org.eclipse.tracecompass.internal.lttng2.control.ui.Activator; import org.eclipse.tracecompass.internal.lttng2.control.ui.views.messages.Messages; +import org.eclipse.tracecompass.internal.lttng2.control.ui.views.preferences.ControlRemoteProfilesPreferencePage; +import org.eclipse.tracecompass.internal.lttng2.control.ui.views.preferences.LTTngProfileViewer; import org.eclipse.tracecompass.internal.lttng2.control.ui.views.service.LTTngControlServiceConstants; -import org.eclipse.ui.ISharedImages; -import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.dialogs.PreferencesUtil; /** * Dialog box for collecting parameter for loading a session. @@ -202,19 +198,8 @@ public class LoadDialog extends TitleAreaDialog implements ILoadDialog { fLocalComposite.setLayout(new GridLayout(2, false)); fLocalComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); - Composite viewerComposite = new Composite(fLocalComposite, SWT.NONE); - viewerComposite.setLayout(new GridLayout(1, false)); - viewerComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); - - fFolderViewer = new CheckboxTreeViewer(viewerComposite); - fFolderViewer.setContentProvider(new ProfileContentProvider()); - fFolderViewer.setLabelProvider(new ProfileLabelProvider()); - fFolderViewer.setInput(LttngProfileManager.getProfiles()); - - GridData data = new GridData(GridData.FILL_BOTH); - Tree tree = fFolderViewer.getTree(); - tree.setLayoutData(data); - + fFolderViewer = LTTngProfileViewer.createLTTngProfileViewer(fLocalComposite, SWT.NONE); + fFolderViewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); fFolderViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(CheckStateChangedEvent event) { @@ -289,8 +274,24 @@ public class LoadDialog extends TitleAreaDialog implements ILoadDialog { } @Override - protected void createButtonsForButtonBar(Composite parent) { + protected void createButtonsForButtonBar(final Composite parent) { createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false); + Button manageButton = createButton(parent, IDialogConstants.CLIENT_ID + 1, Messages.TraceControl_ManageButtonText, false); + manageButton.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + PreferenceDialog dialog = + PreferencesUtil.createPreferenceDialogOn(parent.getShell(), + ControlRemoteProfilesPreferencePage.ID, + new String[] { ControlRemoteProfilesPreferencePage.ID }, + null); + dialog.open(); + if (fLocalComposite != null) { + fFolderViewer.setInput(LTTngProfileViewer.getViewerInput()); + enableLocalButtons(); + } + } + }); Button button = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, false); button.setEnabled(false); } @@ -319,61 +320,4 @@ public class LoadDialog extends TitleAreaDialog implements ILoadDialog { } } - /** - * Helper class for the contents of a folder in a tracing project - * - * @author Bernd Hufmann - */ - public static class ProfileContentProvider implements ITreeContentProvider { - @Override - public Object[] getChildren(Object o) { - - if (o instanceof File[]) { - return (File[]) o; - } - File store = (File) o; - if (store.isDirectory()) { - return store.listFiles(); - } - return new Object[0]; - } - - @Override - public Object getParent(Object element) { - return ((File) element).getParent(); - } - - @Override - public void dispose() { - } - - @Override - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - } - - @Override - public Object[] getElements(Object inputElement) { - return getChildren(inputElement); - } - - @Override - public boolean hasChildren(Object element) { - return ((File) element).isDirectory(); - } - } - - static class ProfileLabelProvider extends LabelProvider { - @Override - public String getText(Object element) { - return ((File) element).getName(); - } - - @Override - public Image getImage(Object element) { - if (((File) element).isDirectory()) { - return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER); - } - return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE); - } - } }