Package ch.ethz.prose.eclipse.internal.run

Source Code of ch.ethz.prose.eclipse.internal.run.ProseRunSelectionDialog$AspectManagerLabelProvider

//
//  This file is part of the Prose Development Tools for Eclipse package.
//
//  The contents of this file are subject to the Mozilla Public License
//  Version 1.1 (the "License"); you may not use this file except in
//  compliance with the License. You may obtain a copy of the License at
//  http://www.mozilla.org/MPL/
//
//  Software distributed under the License is distributed on an "AS IS" basis,
//  WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
//  for the specific language governing rights and limitations under the
//  License.
//
//  The Original Code is Prose Development Tools for Eclipse.
//
//  The Initial Developer of the Original Code is Angela Nicoara. Portions
//  created by Angela Nicoara are Copyright (C) 2006 Angela Nicoara.
//  All Rights Reserved.
//
//  Contributor(s):
//  $Id: ProseRunSelectionDialog.java,v 1.1 2008/11/18 12:23:02 anicoara Exp $
//  ==============================================================================
//

package ch.ethz.prose.eclipse.internal.run;

import java.util.List;

import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.dialogs.SelectionDialog;

/**
* @author Angela Nicoara
* @author Johann Gyger
* @version $Id: ProseRunSelectionDialog.java,v 1.1 2008/11/18 12:23:02 anicoara Exp $
*/
public class ProseRunSelectionDialog extends SelectionDialog {

    protected ListViewer viewer;

    protected Object inputElement;

    protected AspectManagerNode node;

    /**
     * @return Aspect manager
     */
    public AspectManagerNode getAspectManager() {
        return node;
    }

    /**
     * @param parentShell Parent shell for modal dialog
     * @param input Input element
     */
    public ProseRunSelectionDialog(Shell parentShell, Object input) {
        super(parentShell);
        inputElement = input;
        setTitle("Prose application selection");
        setMessage("Select Prose application to insert aspect.");
    }

    /* (non-Javadoc)
     * Method declared on Dialog.
     */
    protected Control createDialogArea(Composite parent) {
        // page group
        Composite composite = (Composite) super.createDialogArea(parent);

        Font font = parent.getFont();
        composite.setFont(font);

        createMessageArea(composite);

        viewer = new ListViewer(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
        GridData data = new GridData(GridData.FILL_BOTH);
        data.heightHint = 200;
        data.widthHint = 450;
        viewer.getList().setLayoutData(data);

        viewer.setLabelProvider(new AspectManagerLabelProvider());
        viewer.setContentProvider(new AspectManagerContentProvider());
        viewer.getControl().setFont(font);
        viewer.setInput(inputElement);
        viewer.setSelection(new StructuredSelection(viewer.getElementAt(0)));

        return composite;
    }

    protected class AspectManagerContentProvider implements IStructuredContentProvider {

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
         */
        public Object[] getElements(Object inputElement) {
            return ((List) inputElement).toArray();
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.IContentProvider#dispose()
         */
        public void dispose() {
            // Ignore
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
         */
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // Ignore
        }

    }

    protected class AspectManagerLabelProvider extends LabelProvider {

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
         */
        public Image getImage(Object element) {
            AspectManagerNode node = (AspectManagerNode) element;
            return node.getParent().getImage();
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
         */
        public String getText(Object element) {
            AspectManagerNode node = (AspectManagerNode) element;
            return node.getParent() + " [" + node.toString() + "]";
        }

    }

    /* (non-Javadoc)
     * @see org.eclipse.jface.dialogs.Dialog#okPressed()
     */
    protected void okPressed() {
        node = (AspectManagerNode) ((IStructuredSelection) viewer.getSelection()).getFirstElement();
        super.okPressed();
    }

}
TOP

Related Classes of ch.ethz.prose.eclipse.internal.run.ProseRunSelectionDialog$AspectManagerLabelProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.