blob: 6662561b9fd93b4850ef726820035fd3b640ff2b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2005 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.tests.performance.presentations;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.ui.IPropertyListener;
import org.eclipse.ui.presentations.IPartMenu;
import org.eclipse.ui.presentations.IPresentablePart;
public class TestPresentablePart implements IPresentablePart {
private List listeners = new ArrayList();
private Composite control;
private String name = "";
private String title = "";
private String status = "";
private Image image;
private String tooltip = "";
private boolean dirty;
private ToolBar toolbar;
public TestPresentablePart(Composite parent, Image image) {
control = new Composite(parent, SWT.NONE);
control.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
disposed();
}
});
// Add some items to the toolbar
toolbar = new ToolBar(parent, SWT.WRAP);
for (int idx = 0; idx < 6; idx++) {
ToolItem item = new ToolItem(toolbar, SWT.PUSH);
item.setImage(image);
}
this.image = image;
}
// Set methods called from presentation (all ignored)
public void setBounds(Rectangle bounds) {
control.setBounds(bounds);
}
public void setVisible(boolean isVisible) {
control.setVisible(isVisible);
toolbar.setVisible(isVisible);
}
public void setFocus() {
control.setFocus();
}
public void addPropertyListener(IPropertyListener listener) {
listeners.add(listener);
}
public void removePropertyListener(IPropertyListener listener) {
listeners.remove(listener);
}
private void firePropertyChange(int propertyId) {
for (int i = 0; i < listeners.size(); i++) {
((IPropertyListener) listeners.get(i)).propertyChanged(this,
propertyId);
}
}
public String getName() {
return name;
}
public String getTitle() {
return title;
}
public String getTitleStatus() {
return status;
}
public Image getTitleImage() {
return image;
}
public String getTitleToolTip() {
return tooltip;
}
public boolean isDirty() {
return dirty;
}
public boolean isBusy() {
return false;
}
public boolean isCloseable() {
return true;
}
public Control getToolBar() {
return toolbar;
}
public IPartMenu getMenu() {
return null;
}
public Control getControl() {
return control;
}
public void disposed() {
toolbar.dispose();
toolbar = null;
}
public void setTitle(String title) {
this.title = title;
firePropertyChange(IPresentablePart.PROP_TITLE);
}
public void setName(String name) {
this.name = name;
firePropertyChange(IPresentablePart.PROP_PART_NAME);
}
public void setImage(Image newImage) {
this.image = newImage;
firePropertyChange(IPresentablePart.PROP_TITLE);
}
public void setContentDescription(String descr) {
this.status = descr;
firePropertyChange(IPresentablePart.PROP_CONTENT_DESCRIPTION);
}
public void setTooltip(String tooltip) {
this.tooltip = tooltip;
firePropertyChange(IPresentablePart.PROP_TITLE);
}
public void setDirty(boolean dirty) {
this.dirty = dirty;
firePropertyChange(IPresentablePart.PROP_DIRTY);
}
public ToolItem addToToolbar(Image toAdd) {
ToolItem item = new ToolItem(toolbar, SWT.PUSH);
item.setImage(toAdd);
firePropertyChange(IPresentablePart.PROP_TOOLBAR);
return item;
}
public void removeFromToolbar(ToolItem toRemove) {
toRemove.dispose();
firePropertyChange(IPresentablePart.PROP_TOOLBAR);
}
}