blob: 165e1d4add4d96067d381daa5a860d188558dfb7 [file] [log] [blame]
// RAP [rh] SplashHandler disabled
///*******************************************************************************
// * Copyright (c) 2007 IBM Corporation 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:
// * IBM Corporation - initial API and implementation
// *******************************************************************************/
//package org.eclipse.ui.splash;
//
//import org.eclipse.core.runtime.IProgressMonitor;
//import org.eclipse.jface.dialogs.ProgressIndicator;
//import org.eclipse.jface.window.Window;
//import org.eclipse.jface.wizard.ProgressMonitorPart;
//import org.eclipse.swt.SWT;
//import org.eclipse.swt.graphics.Color;
//import org.eclipse.swt.graphics.Font;
//import org.eclipse.swt.graphics.Point;
//import org.eclipse.swt.graphics.RGB;
//import org.eclipse.swt.graphics.Rectangle;
//import org.eclipse.swt.widgets.Composite;
//import org.eclipse.swt.widgets.Display;
//import org.eclipse.swt.widgets.Label;
//import org.eclipse.swt.widgets.Shell;
//import org.eclipse.ui.internal.StartupThreading.StartupRunnable;
//
///**
// * Basic splash implementation that provides an absolute positioned progress bar
// * and message string that is hooked up to a progress monitor.
// *
// * @since 3.3
// */
//public abstract class BasicSplashHandler extends AbstractSplashHandler {
//
// /**
// * Hacks the progress monitor to have absolute positioning for its controls.
// * In addition, all methods that access the controls will be wrapped in an
// * asynchExec().
// */
// class AbsolutePositionProgressMonitorPart extends ProgressMonitorPart {
// public AbsolutePositionProgressMonitorPart(Composite parent) {
// super(parent, null);
// setLayout(null);
// }
//
// public ProgressIndicator getProgressIndicator() {
// return fProgressIndicator;
// }
//
// public Label getProgressText() {
// return fLabel;
// }
//
// /* (non-Javadoc)
// * @see org.eclipse.jface.wizard.ProgressMonitorPart#beginTask(java.lang.String, int)
// */
// public void beginTask(final String name, final int totalWork) {
//
// updateUI(new Runnable() {
//
// public void run() {
// if (isDisposed())
// return;
// AbsolutePositionProgressMonitorPart.super.beginTask(name,
// totalWork);
// }
// });
//
// }
//
// /*
// * (non-Javadoc)
// *
// * @see org.eclipse.jface.wizard.ProgressMonitorPart#done()
// */
// public void done() {
//
// updateUI(new Runnable() {
//
// public void run() {
// if (isDisposed())
// return;
// AbsolutePositionProgressMonitorPart.super.done();
// }
// });
//
// }
//
// /*
// * (non-Javadoc)
// *
// * @see org.eclipse.jface.wizard.ProgressMonitorPart#internalWorked(double)
// */
// public void internalWorked(final double work) {
//
// updateUI(new Runnable() {
//
// public void run() {
// if (isDisposed())
// return;
// AbsolutePositionProgressMonitorPart.super
// .internalWorked(work);
// }
// });
//
// }
//
// /*
// * (non-Javadoc)
// *
// * @see org.eclipse.jface.wizard.ProgressMonitorPart#setFont(org.eclipse.swt.graphics.Font)
// */
// public void setFont(final Font font) {
//
// updateUI(new Runnable() {
//
// public void run() {
// if (isDisposed())
// return;
// AbsolutePositionProgressMonitorPart.super.setFont(font);
// }
// });
//
// }
//
// /*
// * (non-Javadoc)
// *
// * @see org.eclipse.jface.wizard.ProgressMonitorPart#updateLabel()
// */
// protected void updateLabel() {
//
// updateUI(new Runnable() {
//
// public void run() {
// if (isDisposed())
// return;
// AbsolutePositionProgressMonitorPart.super.updateLabel();
// }
// });
//
// }
// }
//
// private Color foreground = null;
// private AbsolutePositionProgressMonitorPart monitor;
// private Rectangle messageRect;
// private Rectangle progressRect;
//
// /*
// * (non-Javadoc)
// *
// * @see org.eclipse.ui.splash.AbstractSplashHandler#getBundleProgressMonitor()
// */
// public IProgressMonitor getBundleProgressMonitor() {
// if (monitor == null) {
// Composite parent = new Composite(getSplash(), Window.getDefaultOrientation());
// Point size = getSplash().getSize();
// parent.setBounds(new Rectangle(0,0,size.x,size.y));
// monitor = new AbsolutePositionProgressMonitorPart(parent);
// monitor.setSize(size);
// if (progressRect != null)
// monitor.getProgressIndicator().setBounds(progressRect);
// else
// monitor.getProgressIndicator().setVisible(false);
//
// if (messageRect != null)
// monitor.getProgressText().setBounds(messageRect);
// else
// monitor.getProgressText().setVisible(false);
//
// if (foreground != null)
// monitor.getProgressText().setForeground(foreground);
// monitor.setBackgroundMode(SWT.INHERIT_FORCE);
// monitor.setBackgroundImage(getSplash().getShell()
// .getBackgroundImage());
// }
// return monitor;
// }
//
// /*
// * (non-Javadoc)
// *
// * @see org.eclipse.ui.splash.AbstractSplashHandler#dispose()
// */
// public void dispose() {
// super.dispose();
// if (foreground != null)
// foreground.dispose();
// }
//
// /**
// * Set the foreground text color. This method has no effect after
// * {@link #getBundleProgressMonitor()} has been invoked.
// *
// * @param foregroundRGB
// * the color
// */
// protected void setForeground(RGB foregroundRGB) {
// if (monitor != null)
// return;
// if (this.foreground != null)
// this.foreground.dispose();
// this.foreground = new Color(getSplash().getShell().getDisplay(),
// foregroundRGB);
// }
//
// /**
// * Get the foreground text color. This color should not be disposed by
// * callers.
// *
// * @return the foreground color
// */
// protected Color getForeground() {
// return foreground;
// }
//
// /**
// * Set the location of the message text in the splash. This method has no
// * effect after {@link #getBundleProgressMonitor()} has been invoked.
// *
// * @param messageRect
// * the location of the message text
// */
// protected void setMessageRect(Rectangle messageRect) {
// this.messageRect = messageRect;
// }
//
// /**
// * Set the location of the progress bar in the splash. This method has no
// * effect after {@link #getBundleProgressMonitor()} has been invoked.
// *
// * @param progressRect
// * the location of the progress bar
// */
// protected void setProgressRect(Rectangle progressRect) {
// this.progressRect = progressRect;
// }
//
// /**
// * Get the composite on which any supplemental controls should be drawn.
// * This will not have a layout set and clients are responsible for setting
// * the location of child controls manually.
// *
// * <p>
// * This method must be called in the
// * {@link #init(org.eclipse.swt.widgets.Shell)} method of a subclasses to
// * ensure proper creation of controls
// * </p>
// *
// * <p>
// * Please note that the default implementation of this method assumes that
// * the {@link IProgressMonitor} returned from
// * {@link #getBundleProgressMonitor()} can be safely casted to a
// * {@link Composite}. If this is not the case this method must be
// * reimplemented to reflect the new progress controls.
// * </p>
// *
// * @see #init(org.eclipse.swt.widgets.Shell)
// * @return the composite
// */
// protected Composite getContent() {
// return (Composite) getBundleProgressMonitor();
// }
//
// /**
// * Perform some update on the splash. If called from a non-UI thread it will
// * be wrapped by a runnable that may be run before the workbench has been
// * fully realized.
// *
// * @param r
// * the update runnable
// * @throws Throwable
// */
// private void updateUI(final Runnable r) {
// Shell splashShell = getSplash();
// if (splashShell == null || splashShell.isDisposed())
// return;
//
// Display display = splashShell.getDisplay();
//
// if (Thread.currentThread() == display.getThread())
// r.run(); // run immediatley if we're on the UI thread
// else {
// // wrapper with a StartupRunnable to ensure that it will run before
// // the UI is fully initialized
// StartupRunnable startupRunnable = new StartupRunnable() {
//
// public void runWithException() throws Throwable {
// r.run();
// }
// };
// display.asyncExec(startupRunnable);
// }
// }
//}