Search in sources :

Example 1 with MPartSashContainerElement

use of org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainerElement in project linuxtools by eclipse.

the class ImageBuildPage method createControl.

@Override
public void createControl(Composite parent) {
    final Composite container = new Composite(parent, SWT.NULL);
    FormLayout layout = new FormLayout();
    layout.marginHeight = 5;
    layout.marginWidth = 5;
    container.setLayout(layout);
    Label label = new Label(container, SWT.NULL);
    Label nameLabel = new Label(container, SWT.NULL);
    nameLabel.setText(WizardMessages.getString(NAME_LABEL));
    nameText = new Text(container, SWT.BORDER | SWT.SINGLE);
    nameText.addModifyListener(Listener);
    nameText.setToolTipText(WizardMessages.getString(NAME_TOOLTIP));
    Label dirLabel = new Label(container, SWT.NULL);
    dirLabel.setText(WizardMessages.getString(DIRECTORY_LABEL));
    directoryText = new Text(container, SWT.BORDER | SWT.SINGLE);
    directoryText.addModifyListener(Listener);
    directoryText.setToolTipText(WizardMessages.getString(DIRECTORY_TOOLTIP));
    Button browse = new Button(container, SWT.NULL);
    browse.setText(WizardMessages.getString(BROWSE_LABEL));
    browse.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
        DirectoryDialog d = new DirectoryDialog(container.getShell());
        String k = d.open();
        if (k != null)
            directoryText.setText(k);
    }));
    editButton = new Button(container, SWT.NULL);
    editButton.setText(WizardMessages.getString(EDIT_LABEL));
    editButton.setEnabled(false);
    editButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
        String dir = directoryText.getText();
        IFileStore fileStore = EFS.getLocalFileSystem().getStore(// $NON-NLS-1$
        new Path(dir).append("Dockerfile"));
        // $NON-NLS-1$
        java.nio.file.Path filePath = Paths.get(dir, "Dockerfile");
        if (!Files.exists(filePath)) {
            try {
                Files.createFile(filePath);
            } catch (IOException e1) {
            // File won't exist, and directory should be
            // writable
            }
        }
        IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
        try {
            IEditorPart dockerFileEditor = IDE.openEditorOnFileStore(page, fileStore);
            IWorkbenchPartSite site = page.getActivePart().getSite();
            EModelService s = site.getService(EModelService.class);
            MPartSashContainerElement p = site.getService(MPart.class);
            s.detach(p, 100, 100, 500, 375);
            dockerFileEditor.getEditorSite().getShell().setText(WizardMessages.getString(// $NON-NLS-1$
            "ImageBuild.editor.name"));
            editors.add(dockerFileEditor);
        } catch (PartInitException e1) {
            Activator.log(e1);
        }
        validate();
    }));
    Point p1 = label.computeSize(SWT.DEFAULT, SWT.DEFAULT);
    Point p2 = directoryText.computeSize(SWT.DEFAULT, SWT.DEFAULT);
    Point p3 = browse.computeSize(SWT.DEFAULT, SWT.DEFAULT);
    int centering = (p2.y - p1.y + 1) / 2;
    int centering2 = (p3.y - p2.y + 1) / 2;
    FormData f = new FormData();
    f.top = new FormAttachment(0);
    label.setLayoutData(f);
    f = new FormData();
    f.top = new FormAttachment(label, 11 + centering + centering2);
    f.left = new FormAttachment(0, 0);
    nameLabel.setLayoutData(f);
    f = new FormData();
    f.top = new FormAttachment(label, 11 + centering2);
    f.left = new FormAttachment(nameLabel, 5);
    f.right = new FormAttachment(browse, -10);
    nameText.setLayoutData(f);
    f = new FormData();
    f.top = new FormAttachment(nameLabel, 11 + centering + centering2);
    f.left = new FormAttachment(0, 0);
    dirLabel.setLayoutData(f);
    f = new FormData();
    f.top = new FormAttachment(nameLabel, 11);
    f.right = new FormAttachment(100);
    editButton.setLayoutData(f);
    f = new FormData();
    f.top = new FormAttachment(nameLabel, 11);
    f.right = new FormAttachment(editButton, -10);
    browse.setLayoutData(f);
    f = new FormData();
    f.top = new FormAttachment(nameLabel, 11 + centering2);
    f.left = new FormAttachment(nameLabel, 5);
    f.right = new FormAttachment(browse, -10);
    directoryText.setLayoutData(f);
    if (lastDirectoryPath != null) {
        directoryText.setText(lastDirectoryPath);
    }
    setControl(container);
    setPageComplete(false);
}
Also used : FormLayout(org.eclipse.swt.layout.FormLayout) IDE(org.eclipse.ui.ide.IDE) IWorkbenchPartSite(org.eclipse.ui.IWorkbenchPartSite) Activator(org.eclipse.linuxtools.docker.ui.Activator) Point(org.eclipse.swt.graphics.Point) HashSet(java.util.HashSet) IMessageProvider(org.eclipse.jface.dialogs.IMessageProvider) MPart(org.eclipse.e4.ui.model.application.ui.basic.MPart) Composite(org.eclipse.swt.widgets.Composite) PartInitException(org.eclipse.ui.PartInitException) WizardPage(org.eclipse.jface.wizard.WizardPage) EFS(org.eclipse.core.filesystem.EFS) IEditorPart(org.eclipse.ui.IEditorPart) IFileStore(org.eclipse.core.filesystem.IFileStore) Text(org.eclipse.swt.widgets.Text) Button(org.eclipse.swt.widgets.Button) Files(java.nio.file.Files) FormLayout(org.eclipse.swt.layout.FormLayout) PlatformUI(org.eclipse.ui.PlatformUI) IFileInfo(org.eclipse.core.filesystem.IFileInfo) FormData(org.eclipse.swt.layout.FormData) MPartSashContainerElement(org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainerElement) Set(java.util.Set) IOException(java.io.IOException) FormAttachment(org.eclipse.swt.layout.FormAttachment) IWorkbenchPage(org.eclipse.ui.IWorkbenchPage) EModelService(org.eclipse.e4.ui.workbench.modeling.EModelService) SWTImagesFactory(org.eclipse.linuxtools.internal.docker.ui.SWTImagesFactory) Paths(java.nio.file.Paths) ModifyListener(org.eclipse.swt.events.ModifyListener) Path(org.eclipse.core.runtime.Path) SWT(org.eclipse.swt.SWT) DirectoryDialog(org.eclipse.swt.widgets.DirectoryDialog) Label(org.eclipse.swt.widgets.Label) SelectionListener(org.eclipse.swt.events.SelectionListener) Path(org.eclipse.core.runtime.Path) FormData(org.eclipse.swt.layout.FormData) MPart(org.eclipse.e4.ui.model.application.ui.basic.MPart) Composite(org.eclipse.swt.widgets.Composite) EModelService(org.eclipse.e4.ui.workbench.modeling.EModelService) Label(org.eclipse.swt.widgets.Label) Text(org.eclipse.swt.widgets.Text) IOException(java.io.IOException) IEditorPart(org.eclipse.ui.IEditorPart) Point(org.eclipse.swt.graphics.Point) Point(org.eclipse.swt.graphics.Point) IWorkbenchPartSite(org.eclipse.ui.IWorkbenchPartSite) Button(org.eclipse.swt.widgets.Button) MPartSashContainerElement(org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainerElement) IFileStore(org.eclipse.core.filesystem.IFileStore) IWorkbenchPage(org.eclipse.ui.IWorkbenchPage) PartInitException(org.eclipse.ui.PartInitException) FormAttachment(org.eclipse.swt.layout.FormAttachment) DirectoryDialog(org.eclipse.swt.widgets.DirectoryDialog)

Example 2 with MPartSashContainerElement

use of org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainerElement in project yamcs-studio by yamcs.

the class UIHelper method detachView.

/**
 * @param view
 *            View to 'detach'
 */
public void detachView(IViewPart view) {
    // TODO Use more generic IWorkbenchPart?, getPartSite()?
    // Pre-E4 code:
    // ((WorkbenchPage)page).detachView(page.findViewReference(OPIView.ID, secondID));
    // See http://tomsondev.bestsolution.at/2012/07/13/so-you-used-internal-api/
    final EModelService model = view.getSite().getService(EModelService.class);
    MPartSashContainerElement p = view.getSite().getService(MPart.class);
    // Part may be shared by several perspectives, get the shared instance
    if (p.getCurSharedRef() != null)
        p = p.getCurSharedRef();
    model.detach(p, 100, 100, 600, 800);
}
Also used : EModelService(org.eclipse.e4.ui.workbench.modeling.EModelService) MPartSashContainerElement(org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainerElement)

Aggregations

MPartSashContainerElement (org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainerElement)2 EModelService (org.eclipse.e4.ui.workbench.modeling.EModelService)2 IOException (java.io.IOException)1 Files (java.nio.file.Files)1 Paths (java.nio.file.Paths)1 HashSet (java.util.HashSet)1 Set (java.util.Set)1 EFS (org.eclipse.core.filesystem.EFS)1 IFileInfo (org.eclipse.core.filesystem.IFileInfo)1 IFileStore (org.eclipse.core.filesystem.IFileStore)1 Path (org.eclipse.core.runtime.Path)1 MPart (org.eclipse.e4.ui.model.application.ui.basic.MPart)1 IMessageProvider (org.eclipse.jface.dialogs.IMessageProvider)1 WizardPage (org.eclipse.jface.wizard.WizardPage)1 Activator (org.eclipse.linuxtools.docker.ui.Activator)1 SWTImagesFactory (org.eclipse.linuxtools.internal.docker.ui.SWTImagesFactory)1 SWT (org.eclipse.swt.SWT)1 ModifyListener (org.eclipse.swt.events.ModifyListener)1 SelectionListener (org.eclipse.swt.events.SelectionListener)1 Point (org.eclipse.swt.graphics.Point)1