com.siteview.mde.internal.ui.editor.monitor.LoopDialog.java Source code

Java tutorial

Introduction

Here is the source code for com.siteview.mde.internal.ui.editor.monitor.LoopDialog.java

Source

/*******************************************************************************
 * Copyright (c) 2000, 2008 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
 *     Benjamin Cabe <benjamin.cabe@anyware-tech> - bug 241503
 *******************************************************************************/
package com.siteview.mde.internal.ui.editor.monitor;

import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.TrayDialog;
import org.eclipse.jface.viewers.*;
import com.siteview.mde.internal.core.builders.DependencyLoop;
import com.siteview.mde.internal.ui.*;
import com.siteview.mde.internal.ui.elements.DefaultContentProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.eclipse.ui.PlatformUI;

public class LoopDialog extends TrayDialog {
    private DependencyLoop[] fLoops;
    private TreeViewer fLoopViewer;
    private Image fLoopImage;

    class ContentProvider extends DefaultContentProvider implements ITreeContentProvider {

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
         */
        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof DependencyLoop)
                return ((DependencyLoop) parentElement).getMembers();
            return new Object[0];
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
         */
        public Object getParent(Object element) {
            return null;
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
         */
        public boolean hasChildren(Object element) {
            return element instanceof DependencyLoop;
        }

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

    }

    class LoopLabelProvider extends LabelProvider {
        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
         */
        public Image getImage(Object element) {
            if (element instanceof DependencyLoop)
                return fLoopImage;
            return MDEPlugin.getDefault().getLabelProvider().getImage(element);
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
         */
        public String getText(Object element) {
            return MDEPlugin.getDefault().getLabelProvider().getText(element);
        }
    }

    public LoopDialog(Shell parentShell, DependencyLoop[] loops) {
        super(parentShell);
        fLoops = loops;
        MDELabelProvider provider = MDEPlugin.getDefault().getLabelProvider();
        fLoopImage = provider.get(MDEPluginImages.DESC_LOOP_OBJ);
    }

    protected void createButtonsForButtonBar(Composite parent) {
        createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
    }

    /*
     * @see org.eclipse.jface.window.Window#configureShell(Shell)
     */
    protected void configureShell(Shell shell) {
        super.configureShell(shell);
        PlatformUI.getWorkbench().getHelpSystem().setHelp(shell, IHelpContextIds.LOOP_DIALOG);
    }

    protected Control createDialogArea(Composite parent) {
        Composite container = (Composite) super.createDialogArea(parent);
        GridLayout layout = new GridLayout();
        layout.numColumns = 2;
        layout.marginWidth = layout.marginHeight = 9;
        container.setLayout(layout);
        GridData gd = new GridData(GridData.FILL_BOTH);
        gd.widthHint = 300;
        gd.heightHint = 300;
        container.setLayoutData(gd);

        fLoopViewer = new TreeViewer(container);
        fLoopViewer.setContentProvider(new ContentProvider());
        fLoopViewer.setLabelProvider(new LoopLabelProvider());
        Tree tree = fLoopViewer.getTree();
        gd = new GridData(GridData.FILL_BOTH);
        tree.setLayoutData(gd);
        fLoopViewer.setInput(MDEPlugin.getDefault());
        fLoopViewer.expandAll();
        getShell().setText(MDEUIMessages.LoopDialog_title);
        return container;
    }

    /**
     * @since 3.5
     */
    protected boolean isResizable() {
        return true;
    }
}