info.vancauwenberge.designer.enhtrace.action.OpenTraceAction.java Source code

Java tutorial

Introduction

Here is the source code for info.vancauwenberge.designer.enhtrace.action.OpenTraceAction.java

Source

/*******************************************************************************
 * Copyright (c) 2014-2015 Stefaan Van Cauwenberge
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0 (the "License"). If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *      
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
 * the specific language governing rights and limitations under the License.
 *
 * The Initial Developer of the Original Code is
 * Stefaan Van Cauwenberge. Portions created by
 *  the Initial Developer are Copyright (C) 2007-2015 by
 * Stefaan Van Cauwenberge. All Rights Reserved.
 *
 * Contributor(s): none so far.
 *    Stefaan Van Cauwenberge: Initial API and implementation
 *******************************************************************************/
package info.vancauwenberge.designer.enhtrace.action;

import info.vancauwenberge.designer.enhtrace.editor.input.LiveServerTraceEditorInput;
import info.vancauwenberge.designer.enhtrace.editor.input.LiveTraceEditorInput;

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IObjectActionDelegate;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PlatformUI;

public class OpenTraceAction implements IObjectActionDelegate {

    private ISelection selection;

    private void openEditor(com.novell.idm.model.Server server) {
        try {
            System.out.println("openEditor()");
            IWorkbenchPage localIWorkbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
                    .getActivePage();
            System.out.println("got page");
            LiveTraceEditorInput input = new LiveServerTraceEditorInput(server);

            localIWorkbenchPage.openEditor(input, "info.vancauwenberge.designer.enhtrace.editors.EnhTraceEditor");

            /*
            System.out.println("got input");
                
            IEditorPart currentEditor = localIWorkbenchPage.findEditor(input);
            System.out.println("searched editor");
            if (currentEditor==null){
               currentEditor = localIWorkbenchPage.openEditor(input, "info.vancauwenberge.designer.enhtrace.editors.EnhTraceEditor");            
               System.out.println("created new editor");
            }else{
               localIWorkbenchPage.activate(currentEditor);
            }*/

        } catch (Exception e) {
            MessageBox dialog = new MessageBox(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
                    SWT.ICON_ERROR | SWT.OK);
            dialog.setText("DS Trace");
            dialog.setMessage("Failed to start trace: " + e.getMessage());
            dialog.open();
            return;
        }

    }

    @Override
    public void run(IAction action) {
        System.out.println("OpenTraceAction.run() action=" + action);
        System.out.println("OpenTraceAction.run() action=" + action.getId());
        System.out.println("OpenTraceAction.run() action=" + action.getText());
        System.out.println("OpenTraceAction.run() selection=" + selection.getClass().getName());
        System.out.println("OpenTraceAction.run() selection=" + selection.getClass().getGenericInterfaces());
        if (selection instanceof com.novell.idm.model.Server) {
            com.novell.idm.model.Server server = (com.novell.idm.model.Server) selection;
            System.out.println("selectedObject:" + server.getDirectoryDN());
            openEditor(server);
        } else if (selection instanceof StructuredSelection) {

            StructuredSelection structuredSelection = (StructuredSelection) selection;
            Object selectedObject = structuredSelection.getFirstElement();
            System.out.println("selectedObject:" + selectedObject.getClass().getName());
            System.out.println("selectedObject:" + structuredSelection.size());
            if (selectedObject instanceof com.novell.idm.model.Server) {
                com.novell.idm.model.Server server = (com.novell.idm.model.Server) selectedObject;
                System.out.println("selectedObject:" + server.getDirectoryDN());
                openEditor(server);
                //LiveTraceEditorInput input = Activator.registerDSTraceListener();
            }
        }

    }

    @Override
    public void selectionChanged(IAction action, ISelection selection) {
        this.selection = selection;

    }

    @Override
    public void setActivePart(IAction action, IWorkbenchPart targetPart) {
    }

}