org.eclipse.dirigible.ide.common.status.StatusLineManagerUtil.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.dirigible.ide.common.status.StatusLineManagerUtil.java

Source

/******************************************************************************* 
 * Copyright (c) 2015 SAP and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0 
 * which accompanies this distribution, and is available at 
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *   SAP - initial API and implementation
 *******************************************************************************/

package org.eclipse.dirigible.ide.common.status;

import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.jface.action.StatusLineManager;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.progress.UIJob;

public class StatusLineManagerUtil {

    private static final String PLUGIN_ID = "org.eclipse.dirigible.ide.common"; //$NON-NLS-1$
    private static final String CLEAR_MESSAGES_JOB = "Clear Messages Job"; //$NON-NLS-1$
    private static final int CLEAR_MESSAGE_JOB_DELAY = 10 * 1000;

    public static final String ARTIFACT_HAS_BEEN_CREATED = Messages.StatusLineManagerUtil_ARTIFACT_HAS_BEEN_CREATED;
    public static final String ARTIFACT_HAS_BEEN_ACTIVATED = Messages.StatusLineManagerUtil_ARTIFACT_HAS_BEEN_ACTIVATED;
    public static final String ARTIFACT_HAS_BEEN_PUBLISHED = Messages.StatusLineManagerUtil_ARTIFACT_HAS_BEEN_PUBLISHED;

    public static IStatusLineManager getDefaultStatusLineManager() {
        IStatusLineManager statusLineManager;
        IWorkbenchPart workbenchPart = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getPartService()
                .getActivePart();
        if (workbenchPart instanceof IViewPart) {
            statusLineManager = ((IViewPart) workbenchPart).getViewSite().getActionBars().getStatusLineManager();
        } else if (workbenchPart instanceof IEditorPart) {
            statusLineManager = ((IEditorPart) workbenchPart).getEditorSite().getActionBars()
                    .getStatusLineManager();
        } else {
            statusLineManager = new StatusLineManager();
        }
        return statusLineManager;
    }

    public static void clearMessages() {
        UIJob job = new UIJob(CLEAR_MESSAGES_JOB) {

            @Override
            public IStatus runInUIThread(IProgressMonitor monitor) {
                final IStatusLineManager statusLineManager = getDefaultStatusLineManager();
                statusLineManager.removeAll();
                statusLineManager.setMessage(null, null);
                statusLineManager.setErrorMessage(null, null);
                return new Status(IStatus.OK, PLUGIN_ID, "");
            }
        };
        job.schedule(CLEAR_MESSAGE_JOB_DELAY);
    }

    public static void setInfoMessage(String message) {
        getDefaultStatusLineManager().removeAll();
        getDefaultStatusLineManager().setMessage(JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_INFO), message);
        clearMessages();
    }

    public static void setErrorMessage(String message) {
        getDefaultStatusLineManager().removeAll();
        getDefaultStatusLineManager().setErrorMessage(JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_ERROR),
                message);
        clearMessages();
    }

    public static void setWarningMessage(String message) {
        getDefaultStatusLineManager().removeAll();
        getDefaultStatusLineManager().setMessage(JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_WARNING), message);
        clearMessages();
    }

    /*
     * Prevent instantiation.
     */
    private StatusLineManagerUtil() {
        super();
    }
}