com.liferay.ide.project.ui.upgrade.UpgradeAssistantView.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.ide.project.ui.upgrade.UpgradeAssistantView.java

Source

/*******************************************************************************
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 *
 *******************************************************************************/

package com.liferay.ide.project.ui.upgrade;

import com.liferay.ide.project.ui.ProjectUI;

import java.lang.reflect.Method;

import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IViewSite;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.internal.cheatsheets.Messages;
import org.eclipse.ui.internal.cheatsheets.views.CheatSheetExpandRestoreAction;
import org.eclipse.ui.internal.cheatsheets.views.CheatSheetViewer;
import org.eclipse.ui.part.ViewPart;

/**
 * @author Gregory Amerson
 */
@SuppressWarnings("restriction")
public class UpgradeAssistantView extends ViewPart {

    protected static final String ID = "com.liferay.ide.project.ui.upgradeView";
    private CheatSheetViewer _viewer;
    private boolean _actionBarContributed;
    private IMemento _memento;
    private CheatSheetExpandRestoreAction _expandRestoreAction;
    private Action _copyAction;

    void contributeToActionBars() {
        IActionBars bars = getViewSite().getActionBars();
        IToolBarManager tbmanager = bars.getToolBarManager();

        _expandRestoreAction = new CheatSheetExpandRestoreAction(Messages.COLLAPSE_ALL_BUT_CURRENT_TOOLTIP, false,
                _viewer);

        _copyAction = new Action("copy") {
            public void run() {
                _viewer.copy();
            }
        };

        _copyAction.setEnabled(false);
        tbmanager.add(_expandRestoreAction);
        bars.setGlobalActionHandler(ActionFactory.COPY.getId(), _copyAction);

        try {
            final Method setExpandRestoreAction = CheatSheetViewer.class.getDeclaredMethod("setExpandRestoreAction",
                    CheatSheetExpandRestoreAction.class);
            setExpandRestoreAction.setAccessible(true);
            setExpandRestoreAction.invoke(_viewer, _expandRestoreAction);
        } catch (Exception e) {
        }

        _viewer.setCopyAction(_copyAction);
    }

    @Override
    public void createPartControl(Composite parent) {
        _viewer = new CheatSheetViewer(false);
        _viewer.createPartControl(parent);

        if (!_actionBarContributed) {
            //            contributeToActionBars();
            _actionBarContributed = true;
        }

        if (_memento != null) {
            restoreState(_memento);
        } else {
            loadUpgradeSheet();
        }
    }

    private void loadUpgradeSheet() {
        _viewer.setInput("liferay_7_upgrade", "Liferay 7.0 Upgrade",
                ProjectUI.getDefault().getBundle().getEntry("cheatsheets/liferay_7_upgrade/liferay_7_upgrade.xml"));
    }

    private void restoreState(IMemento memento) {
        IMemento input = memento.getChild("input");

        if (input == null) {
            loadUpgradeSheet();
        }
    }

    @Override
    public void saveState(IMemento memento) {
        // TODO saveSate method
    }

    @Override
    public void init(IViewSite site, IMemento memento) throws PartInitException {
        super.init(site);

        _memento = memento;
    }

    @Override
    public void setFocus() {
        if (_viewer != null) {
            _viewer.setFocus();
        }
    }

}