com.tida_okinawa.corona.ui.UIActivator.java Source code

Java tutorial

Introduction

Here is the source code for com.tida_okinawa.corona.ui.UIActivator.java

Source

/**
 * @version $Id: UIActivator.java 1839 2014-04-16 02:33:51Z yukihiro-kinjyo $
 * 
 * 2011/09/07 18:43:02
 * @author kousuke-morishima
 * 
 * Copyright 2011-2014 TIDA All Rights Reserved.
 */
package com.tida_okinawa.corona.ui;

import java.util.HashMap;
import java.util.Map;

import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ProjectScope;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.ui.preferences.ScopedPreferenceStore;
import org.osgi.framework.BundleContext;

import com.tida_okinawa.corona.CoronaActivator;
import com.tida_okinawa.corona.correction.CorrectionActivator;
import com.tida_okinawa.corona.internal.ui.PersistentPropertyKeys;
import com.tida_okinawa.corona.internal.ui.util.MessageConsoleLogger;
import com.tida_okinawa.corona.internal.ui.util.PreferenceUtils;
import com.tida_okinawa.corona.internal.ui.views.model.impl.CoronaModel;
import com.tida_okinawa.corona.license.LicenseActivator;
import com.tida_okinawa.corona.ui.data.ConnectionParameter;

/**
 * The activator class controls the plug-in life cycle
 */
public class UIActivator extends AbstractUIPlugin {

    /** The plug-in ID */
    public static final String PLUGIN_ID = "com.tida_okinawa.corona.ui"; //$NON-NLS-1$

    // The shared instance
    private static UIActivator plugin;

    /**
     * The constructor
     */
    public UIActivator() {
    }

    @Override
    public void start(BundleContext context) throws Exception {
        super.start(context);
        plugin = this;

        /* ??? */
        LicenseActivator.getDefault();

        CorrectionActivator.initAutoSchedules();

        /*
         * ??????
         * ????????????????
         * ???? DB ????????????????
         */
        ConnectionParameter cp = PreferenceUtils.getCurrentConnectionParameter();
        if (cp == null) {
            cp = new ConnectionParameter("", "", "", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
        }

        // testH25 20130806 ?
        //        /* DB?? */
        //        com.tida_okinawa.corona.io.IoActivator.getService().connect(cp.url, cp.user, cp.passwd);
        //
        boolean isConnect = false;
        try {
            isConnect = com.tida_okinawa.corona.io.IoActivator.getService().connect(cp.url, cp.user, cp.passwd);
        } catch (Exception e) {
            /* ???(/????) */
            e.getStackTrace();
        }

        // testH25 20130806 ?
        String name = cp.name;
        String dburl = cp.url;
        String dbname = cp.url;
        String lastSep = Messages.UIActivator_LastSep;
        int index = dbname.lastIndexOf(lastSep);
        if (index != -1) {
            dbname = dburl.substring(index + 1);
        }

        if (isConnect) {
            /* DB???? */
            int result[] = { 0 };
            String dbValue = com.tida_okinawa.corona.io.IoActivator.getService().getDbVersion(result).trim();
            LicenseActivator license = LicenseActivator.getDefault();
            String dbVersion = license.getDbVersion().trim();

            /* DB??? */
            if (dbValue.isEmpty()) {
                /*
                 * SQL????????? DB?NOT
                 * NULL??????????????
                 */
                String title = Messages.UIActivator_VerErrTitle;
                String dialogMessage = Messages.UIActivator_VerErrMessage;
                Object args[] = { name, dbname };
                String dialogMessageSub0 = String.format(Messages.UIActivator_VerErrDbInfo, args);
                String dialogMessageSub1 = String.format(Messages.UIActivator_VerErrValue, dbVersion);
                String dialogMessageSub2 = String.format(Messages.UIActivator_VerErrDBValue, dbValue);
                if (result[0] == 2) {
                    /* ?? */
                    dialogMessage = Messages.UIActivator_VerErrMessageNonTable;
                }
                if (result[0] == 1) {
                    /* ?? ? */
                    dialogMessage = Messages.UIActivator_VerErrMessageSqlErr;
                }
                dialogMessage += dialogMessageSub0 + dialogMessageSub1 + dialogMessageSub2;
                // (Error)
                MessageDialog.openError(new Shell(), title, dialogMessage);
            }
            /* DB?????DBVer?DB?DBVer? */
            else if (dbVersion.compareTo(dbValue) != 0) {
                /* DB?????? */
                String title = Messages.UIActivator_VerWarTitle;
                String dialogMessage = Messages.UIActivator_VerWarMessage;
                Object args[] = { name, dbname };
                String dialogMessageSub0 = String.format(Messages.UIActivator_VerErrDbInfo, args);
                String dialogMessageSub1 = String.format(Messages.UIActivator_VerErrValue, dbVersion);
                String dialogMessageSub2 = String.format(Messages.UIActivator_VerErrDBValue, dbValue);
                dialogMessage += dialogMessageSub0 + dialogMessageSub1 + dialogMessageSub2;
                // (Warning)
                MessageDialog.openWarning(new Shell(), title, dialogMessage);
            }
        } else {
            /* DB??? */
            String title = Messages.UIActivator_connectErrTitle;
            String dialogMessage = Messages.UIActivator_connectErrMessage;
            Object args[] = { name, dbname, cp.user };
            String dialogMessageSub0 = String.format(Messages.UIActivator_connectErrDbInfo, args);
            dialogMessage += dialogMessageSub0;
            // (Error)
            MessageDialog.openError(new Shell(), title, dialogMessage);
        }

        /* ? */
        CoronaActivator.getDefault().setLogger(MessageConsoleLogger.getInstance());

        /* Log */
        /* ????????????? */
        // CoronaActivator.getDefault().getLog().addLogListener(logListener);

        /* ?(DB????)CoronaProject???? */
        CoronaModel.INSTANCE.openCoronaProject();
    }

    @Override
    public void stop(BundleContext context) throws Exception {
        plugin = null;
        /* DB? */
        com.tida_okinawa.corona.io.IoActivator.getService().disConnect();

        super.stop(context);
    }

    /**
     * Returns the shared instance
     * 
     * @return the shared instance
     */
    public static UIActivator getDefault() {
        return plugin;
    }

    private Map<IProject, IPreferenceStore> stores = new HashMap<IProject, IPreferenceStore>();

    public IPreferenceStore getPreferenceStore(IProject project) {
        IPreferenceStore store = stores.get(project);
        if (store == null) {
            store = new ScopedPreferenceStore(new ProjectScope(project), PLUGIN_ID + "." + project.getName()); //$NON-NLS-1$
            store.setDefault(PersistentPropertyKeys.DB_CONNECT_NAME.toString(), ""); //$NON-NLS-1$
            store.setDefault(PersistentPropertyKeys.DB_CONNECT_URL.toString(), ""); //$NON-NLS-1$
            store.setDefault(PersistentPropertyKeys.PROJECT_ID.toString(), -1);
            stores.put(project, store);
        }
        return store;
    }

    /* ****************************************
     * Image
     */
    @Override
    protected void initializeImageRegistry(ImageRegistry registry) {
        Icons.INSTANCE.init(registry);
    }

    /* ****************************************
     * 
     */
    public static final boolean isAlpha() {
        return true;
    }
}