/*******************************************************************************
* Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.common.model.ui.forms;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Layout;
import org.eclipse.ui.IMemento;
import org.jboss.tools.common.model.ui.widgets.IWidgetSettings;
public abstract class AbstractForm implements IForm {
// Decoration properties
protected Color headingBackground;
protected Color headingForeground;
protected Image headingImage;
protected String headingText = "%No text%"; //$NON-NLS-1$
private Object layoutData;
private Layout layout;
private boolean enabled = Boolean.TRUE.booleanValue();
protected boolean headingVisible;
private IFormContainer parent;
public AbstractForm() {}
// GUI
public abstract Control createControl(Composite parent, IWidgetSettings factory);
public abstract Control getControl();
public abstract void setFocus();
public abstract void dispose();
// Model data manipulation
public abstract void initialize(Object model);
public abstract void commitChanges(boolean onSave);
public abstract boolean doGlobalAction(String actionId);
public abstract void expandTo(Object object);
public abstract void update();
public abstract void store(IMemento memento);
public abstract void load(IMemento memento);
// Decoration properties getters and setters
public Color getHeadingBackground() {
return headingBackground;
}
public void setHeadingBackground(Color newHeadingBackground) {
headingBackground = newHeadingBackground;
}
public Color getHeadingForeground() {
return headingForeground;
}
public void setHeadingForeground(Color newHeadingForeground) {
headingForeground = newHeadingForeground;
}
public Image getHeadingImage() {
return headingImage;
}
public void setHeadingImage(Image newHeadingImage) {
headingImage = newHeadingImage;
}
public String getHeadingText() {
return headingText;
}
public void setHeadingText(String heading) {
headingText = heading;
}
public boolean isHeadingVisible() {
return headingVisible;
}
public void setHeadingVisible(boolean newHeadingVisible) {
headingVisible = newHeadingVisible;
}
public IFormContainer getParent() {
return parent;
}
public void setParent(IFormContainer container) {
parent = container;
}
public void setLayoutData(Object layoutData) {
this.layoutData = layoutData;
}
public Object getLayoutData() {
if (layoutData==null) {
layoutData = new GridData(GridData.FILL_HORIZONTAL);
}
return layoutData;
}
public void setLayout(Layout layout) {
this.layout = layout;
}
public Layout getLayout() {
if (layout==null) {
GridLayout layout = new GridLayout();
layout.horizontalSpacing = 0;
layout.verticalSpacing = 0;
layout.marginHeight = 0;
layout.marginWidth = 0;
this.layout = layout;
}
return layout;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
}