/******************************************************************************* * Copyright (c) 2008 Dennis Schenk, Peter Siska. * 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: * Dennis Schenk - initial implementation * Peter Siska - initial implementation *******************************************************************************/ package ch.unibe.iam.scg.archie.ui; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; import ch.elexis.core.ui.UiDesk; import ch.unibe.iam.scg.archie.ArchieActivator; import ch.unibe.iam.scg.archie.i18n.Messages; /** * <p> * Shows the results of a statistics query. * </p> * * $Id: ResultPanel.java 747 2009-07-23 09:14:53Z peschehimself $ * * @author Peter Siska * @author Dennis Schenk * @version $Rev: 747 $ */ public class ResultPanel extends Composite { private Group messageContainer; private GridData layoutData; private GridLayout layout; /** * @param parent * @param style */ public ResultPanel(final Composite parent, final int style) { super(parent, style); // although we're using a TableColumnLayout later in the TableFactory // we still need this to be able to show the loading message during // computations this.layout = new GridLayout(); this.layout.marginHeight = 0; this.layout.marginWidth = 5; // prepare layout data for this result panel this.layoutData = new GridData(); this.layoutData.verticalAlignment = GridData.FILL; this.layoutData.horizontalAlignment = GridData.FILL; this.layoutData.grabExcessVerticalSpace = true; this.layoutData.grabExcessHorizontalSpace = true; // set layout this.setLayoutData(this.layoutData); this.setLayout(this.layout); // create container for graphical message this.createMessageContainer(); // add the intial message to the container new GraphicalMessage(this.messageContainer, ArchieActivator.getInstance().getImageRegistry() .get(ArchieActivator.IMG_COFFEE), Messages.WORKING); } /** * Create Message Container. */ private void createMessageContainer() { this.messageContainer = new Group(this, SWT.NONE); this.messageContainer.setLayout(this.layout); this.messageContainer.setLayoutData(this.layoutData); this.messageContainer.setBackground(UiDesk.getColor(UiDesk.COL_WHITE)); } /** * Removes the loading message */ public void removeLoadingMessage() { this.messageContainer.dispose(); } /** * Shows a message if the ResultPanel is empty. */ public void showEmptyMessage() { this.createMessageContainer(); new GraphicalMessage(this.messageContainer, ArchieActivator.getInstance().getImageRegistry() .get(ArchieActivator.IMG_INFO), Messages.RESULT_EMPTY); } }