com.mg.merp.wb.badi.library.ContainerPage.java Source code

Java tutorial

Introduction

Here is the source code for com.mg.merp.wb.badi.library.ContainerPage.java

Source

/*
 * ContainerPage.java
 *
 * Copyright (c) 1998 - 2006 BusinessTechnology, Ltd.
 * All rights reserved
 *
 * This program is the proprietary and confidential information
 * of BusinessTechnology, Ltd. and may be used and disclosed only
 * as authorized in a license agreement authorizing and
 * controlling such use and disclosure
 *
 * Millennium ERP system.
 *
 */
package com.mg.merp.wb.badi.library;

import com.mg.merp.wb.badi.library.util.ContainerPageController;

import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IClasspathContainer;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.ui.wizards.IClasspathContainerPage;
import org.eclipse.jdt.ui.wizards.IClasspathContainerPageExtension;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;

import java.util.LinkedList;
import java.util.List;

import static com.mg.merp.wb.badi.library.util.Constants.DESCRIPTION;
import static com.mg.merp.wb.badi.library.util.Constants.WIZARD_DESC;

/**
 *   ? ? 
 *
 * @author Valentin A. Poroxnenko
 * @version $Id: ContainerPage.java,v 1.5 2007/07/11 07:31:29 poroxnenko Exp $
 */
public class ContainerPage extends WizardPage implements IClasspathContainerPage, IClasspathContainerPageExtension {
    private static final Path containerPath = new Path(BadiLibraryPlugin.getDefault().getContainerID());
    private IClasspathEntry entry;
    private CheckboxTableViewer tableViewer;
    private ContainerPageController controller;
    private IJavaProject curProj;

    public ContainerPage() {
        super(BadiLibraryPlugin.getDefault().getString(DESCRIPTION));
        setDescription(BadiLibraryPlugin.getDefault().getString(WIZARD_DESC));

        controller = new ContainerPageController(this);
    }

    public void createControl(Composite parent) {
        initializeDialogUnits(parent);

        Table tableLibArchives = new Table(parent, SWT.MULTI | SWT.CHECK);
        tableLibArchives.setHeaderVisible(true);
        tableLibArchives.setLinesVisible(true);
        TableColumn checker = new TableColumn(tableLibArchives, SWT.CHECK);
        checker.setWidth(20);
        checker.setAlignment(SWT.LEFT);

        TableColumn colName = new TableColumn(tableLibArchives, SWT.NONE);
        colName.setWidth(170);
        colName.setAlignment(SWT.LEFT);
        colName.setText(BadiLibraryPlugin.getDefault().getString("wizard.table.column2"));

        TableColumn colVersion = new TableColumn(tableLibArchives, SWT.NONE);
        colVersion.setWidth(50);
        colVersion.setAlignment(SWT.CENTER);
        colVersion.setText(BadiLibraryPlugin.getDefault().getString("wizard.table.column3"));

        TableColumn colProvider = new TableColumn(tableLibArchives, SWT.NONE);
        colProvider.setWidth(190);
        colProvider.setAlignment(SWT.LEFT);
        colProvider.setText(BadiLibraryPlugin.getDefault().getString("wizard.table.column4"));

        setControl(tableLibArchives);

        tableViewer = new CheckboxTableViewer(tableLibArchives);
        tableViewer.setContentProvider(controller);
        tableViewer.setLabelProvider(controller);
        tableViewer.setInput(BadiLibraryPlugin.getLibs());
        tableViewer.addCheckStateListener(controller);

        controller.setCheckedElements();
    }

    public boolean finish() {
        List<String> lst = new LinkedList<String>(controller.getLibs());
        lst.removeAll(BadiLibraryPlugin.getThirdLibs());

        BadiLibraryPlugin.storeLibsInPropFile(curProj, lst);

        try {
            IClasspathContainer container = new Container(containerPath, curProj);
            JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { curProj },
                    new IClasspathContainer[] { container }, null);
        } catch (JavaModelException e) {
        }

        return true;
    }

    public IClasspathEntry getSelection() {
        return entry;
    }

    public void setSelection(IClasspathEntry containerEntry) {
        if (containerEntry == null) {
            entry = JavaCore.newContainerEntry(containerPath);
        } else {
            entry = containerEntry;
            controller.initLibs(curProj);
        }
    }

    public boolean isPageComplete() {
        return controller.getLibs().size() > 0;
    }

    public CheckboxTableViewer getTableViewer() {
        return tableViewer;
    }

    public void initialize(IJavaProject project, IClasspathEntry[] currentEntries) {
        curProj = project;
    }
}