org.eclipse.rcptt.ui.controls.AbstractEmbeddedComposite.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.rcptt.ui.controls.AbstractEmbeddedComposite.java

Source

/*******************************************************************************
 * Copyright (c) 2009, 2014 Xored Software Inc 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:
 *     Xored Software Inc - initial API and implementation and/or initial documentation
 *******************************************************************************/
package org.eclipse.rcptt.ui.controls;

import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.core.databinding.observable.value.WritableValue;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.databinding.swt.SWTObservables;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.ToolBar;

import org.eclipse.rcptt.ui.recording.RecordingSupport.RecordingMode;

public abstract class AbstractEmbeddedComposite implements IEmbeddedComposite {

    protected final DataBindingContext dbc = new DataBindingContext();
    protected final WritableValue visible = new WritableValue(true, Boolean.class);
    protected final WritableValue recordingMode = new WritableValue(RecordingMode.Stopped, RecordingMode.class);
    protected ToolBar toolBar;

    public boolean getVisible() {
        return (Boolean) visible.getValue();
    }

    public void setVisible(boolean value) {
        visible.setValue(value);
    }

    public IObservableValue observeVisible() {
        return visible;
    }

    public IObservableValue observeRecordingMode() {
        return recordingMode;
    }

    public void createControl(Composite parent) {
        parent.addListener(SWT.Dispose, new Listener() {
            public void handleEvent(Event event) {
                dispose();
            }
        });
    }

    public void createToolBar(Composite parent) {
        final ToolBarManager manager = new ToolBarManager(SWT.FLAT | SWT.HORIZONTAL);
        fillActions(manager);
        toolBar = manager.createControl(parent);
        toolBar.moveAbove(null);
        if (disableToolBarOnHide()) {
            dbc.bindValue(SWTObservables.observeEnabled(toolBar), visible);
        }
    }

    protected boolean disableToolBarOnHide() {
        return true;
    }

    protected void fillActions(IToolBarManager manager) {
    }

    public ToolBar getToolBar() {
        return toolBar;
    }

    public void dispose() {
        dbc.dispose();
    }

}