com.agynamix.platform.frontend.gui.ApplicationStatusLineManager.java Source code

Java tutorial

Introduction

Here is the source code for com.agynamix.platform.frontend.gui.ApplicationStatusLineManager.java

Source

/*
 * Copyright by AGYNAMIX(R). All rights reserved. 
 * This file is made available under the terms of the
 * license this product is released under.
 * 
 * For details please see the license file you should have
 * received, or go to:
 * 
 * http://www.agynamix.com
 * 
 * Contributors: agynamix.com (http://www.agynamix.com)
 */
package com.agynamix.platform.frontend.gui;

import org.eclipse.jface.action.StatusLineManager;
import org.eclipse.jface.preference.JFacePreferences;
import org.eclipse.jface.resource.ColorRegistry;
import org.eclipse.jface.resource.JFaceColors;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.RGB;

public class ApplicationStatusLineManager extends StatusLineManager {

    public enum MessageType {
        error, message
    };

    Image currentImage = null;
    String currentMessage = null;
    MessageType currentMessageType = null;

    public ApplicationStatusLineManager() {
        ColorRegistry cr = JFaceResources.getColorRegistry();
        cr.put(JFacePreferences.ERROR_COLOR, new RGB(205, 2, 4)); // schoen rot
    }

    private void setCurrentMessage(Image image, String message) {
        //    System.out.println("set message"+message);
        //    Exception e = new Exception();
        //    e.printStackTrace();
        currentImage = image;
        currentMessage = message;
        currentMessageType = MessageType.message;
    }

    private void setCurrentError(Image image, String message) {
        //    System.out.println("set error "+message);
        //    Exception e = new Exception();
        //    e.printStackTrace();
        currentImage = image;
        currentMessage = message;
        currentMessageType = MessageType.error;
    }

    @Override
    public void setErrorMessage(Image image, String message) {
        setCurrentError(image, message);
        super.setErrorMessage(image, message);
    }

    @Override
    public void setErrorMessage(String message) {
        setCurrentError(null, message);
        super.setErrorMessage(message);
        JFaceColors.getErrorText(null);
    }

    @Override
    public void setMessage(Image image, String message) {
        setCurrentMessage(image, message);
        super.setMessage(image, message);
    }

    @Override
    public void setMessage(String message) {
        setCurrentMessage(null, message);
        super.setMessage(message);
    }

    public void restoreStatusLine() {
        //    System.out.println("Restore "+currentMessage);
        if (currentMessageType != null) {
            switch (currentMessageType) {
            case message:
                if (currentImage != null) {
                    super.setMessage(currentImage, currentMessage);
                } else {
                    super.setMessage(currentMessage);
                }
                break;
            case error:
                if (currentImage != null) {
                    super.setErrorMessage(currentImage, currentMessage);
                } else {
                    super.setErrorMessage(currentMessage);
                }
                break;
            }
        }

    }

}