com.hangum.tadpole.preference.ui.MongoDBPreferencePage.java Source code

Java tutorial

Introduction

Here is the source code for com.hangum.tadpole.preference.ui.MongoDBPreferencePage.java

Source

/*******************************************************************************
 * Copyright (c) 2013 hangum.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Lesser Public License v2.1
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 * 
 * Contributors:
 *     hangum - initial API and implementation
 ******************************************************************************/
package com.hangum.tadpole.preference.ui;

import org.apache.log4j.Logger;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;

import com.hangum.tadpole.commons.google.analytics.AnalyticCaller;
import com.hangum.tadpole.preference.Messages;
import com.hangum.tadpole.preference.define.PreferenceDefine;
import com.hangum.tadpole.preference.get.GetPreferenceGeneral;
import com.hangum.tadpole.session.manager.SessionManager;
import com.hangum.tadpole.sql.query.TadpoleSystem_UserInfoData;

/** 
 * mongodb prefernec page
 * 
 *  @author hangum
 */
public class MongoDBPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
    private static final Logger logger = Logger.getLogger(MongoDBPreferencePage.class);

    private Text textLimitCount;
    private Text textMaxCount;

    // find page
    private Button btnBasicSearch;
    //   private Button btnExtendSearch;

    // result page
    private Button btnTreeView;
    private Button btnTableView;

    public MongoDBPreferencePage() {
    }

    @Override
    public void init(IWorkbench workbench) {
    }

    @Override
    protected Control createContents(Composite parent) {

        Composite container = new Composite(parent, SWT.NULL);
        container.setLayout(new GridLayout(2, false));

        Label lblNewLabel = new Label(container, SWT.NONE);
        lblNewLabel.setText(Messages.MongoDBPreferencePage_0);

        textLimitCount = new Text(container, SWT.BORDER);
        textLimitCount.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));

        Label lblNewLabel_1 = new Label(container, SWT.NONE);
        lblNewLabel_1.setText(Messages.MongoDBPreferencePage_1);

        textMaxCount = new Text(container, SWT.BORDER);
        textMaxCount.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));

        Label lblNewLabel_2 = new Label(container, SWT.NONE);
        lblNewLabel_2.setText(Messages.MongoDBPreferencePage_2);

        Composite composite = new Composite(container, SWT.NONE);
        composite.setLayout(new GridLayout(2, false));
        composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));

        btnBasicSearch = new Button(composite, SWT.RADIO);
        btnBasicSearch.setText(Messages.MongoDBPreferencePage_3);
        btnBasicSearch.setData(PreferenceDefine.MONGO_DEFAULT_FIND_BASIC);
        new Label(composite, SWT.NONE);

        //      btnExtendSearch = new Button(composite, SWT.RADIO);
        //      btnExtendSearch.setText("Extend Search");
        //      btnExtendSearch.setData(PreferenceDefine.MONGO_DEFAULT_FIND_EXTEND);

        Label lblResultPage = new Label(container, SWT.NONE);
        lblResultPage.setText(Messages.MongoDBPreferencePage_4);

        Composite composite_1 = new Composite(container, SWT.NONE);
        composite_1.setLayout(new GridLayout(2, false));
        composite_1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));

        btnTreeView = new Button(composite_1, SWT.RADIO);
        btnTreeView.setText(Messages.MongoDBPreferencePage_5);
        btnTreeView.setData(PreferenceDefine.MONGO_DEFAULT_RESULT_TREE);

        btnTableView = new Button(composite_1, SWT.RADIO);
        btnTableView.setText(Messages.MongoDBPreferencePage_6);
        btnTableView.setData(PreferenceDefine.MONGO_DEFAULT_RESULT_TABLE);

        initDefaultValue();

        // google analytic
        AnalyticCaller.track(this.getClass().getName());

        return container;
    }

    @Override
    public boolean performOk() {

        String txtLimitCount = textLimitCount.getText();
        String txtMacCount = textMaxCount.getText();
        String txtFindPage = ""; //$NON-NLS-1$
        String txtResultPage = ""; //$NON-NLS-1$

        try {
            Integer.parseInt(txtLimitCount);
        } catch (Exception e) {
            MessageDialog.openError(getShell(), "Confirm", Messages.MongoDBPreferencePage_10); //$NON-NLS-1$
            return false;
        }
        try {
            Integer.parseInt(txtMacCount);
        } catch (Exception e) {
            MessageDialog.openError(getShell(), "Confirm", Messages.MongoDBPreferencePage_11); //$NON-NLS-1$
            return false;
        }

        //      if(btnBasicSearch.getSelection()) {
        txtFindPage = btnBasicSearch.getData().toString();
        //      } else {
        //         txtFindPage = btnExtendSearch.getData().toString();
        //      }

        if (btnTreeView.getSelection()) {
            txtResultPage = btnTreeView.getData().toString();
        } else if (btnTableView.getSelection()) {
            txtResultPage = btnTableView.getData().toString();
        }

        // ??  
        try {
            TadpoleSystem_UserInfoData.updateMongoDBUserInfoData(txtLimitCount, txtMacCount, txtFindPage,
                    txtResultPage);

            // session ?? .
            SessionManager.setUserInfo(PreferenceDefine.MONGO_DEFAULT_LIMIT, txtLimitCount);
            SessionManager.setUserInfo(PreferenceDefine.MONGO_DEFAULT_MAX_COUNT, txtMacCount);
            SessionManager.setUserInfo(PreferenceDefine.MONGO_DEFAULT_FIND, txtFindPage);
            SessionManager.setUserInfo(PreferenceDefine.MONGO_DEFAULT_RESULT, txtResultPage);
        } catch (Exception e) {
            logger.error("MongoDBreference saveing", e);

            MessageDialog.openError(getShell(), Messages.MongoDBPreferencePage_12, e.getMessage());
            return false;
        }

        return super.performOk();
    }

    @Override
    public boolean performCancel() {
        initDefaultValue();

        return super.performCancel();
    }

    @Override
    protected void performApply() {

        super.performApply();
    }

    @Override
    protected void performDefaults() {

        initDefaultValue();

        super.performDefaults();
    }

    /**
     * ?  .
     */
    private void initDefaultValue() {
        btnBasicSearch.setSelection(false);
        //      btnExtendSearch.setSelection(false);
        btnTreeView.setSelection(false);
        btnTableView.setSelection(false);

        textLimitCount.setText("" + GetPreferenceGeneral.getMongoDefaultLimit()); //$NON-NLS-1$
        textMaxCount.setText("" + GetPreferenceGeneral.getMongoDefaultMaxCount()); //$NON-NLS-1$
        //      if(PreferenceDefine.MONGO_DEFAULT_FIND_BASIC.equals( GetPreferenceGeneral.getMongoDefaultFindPage() )) {
        btnBasicSearch.setSelection(true);
        //      } else {
        //         btnExtendSearch.setSelection(true);
        //      }

        if (PreferenceDefine.MONGO_DEFAULT_RESULT_TREE.equals(GetPreferenceGeneral.getMongoDefaultResultPage())) {
            btnTreeView.setSelection(true);
        } else if (PreferenceDefine.MONGO_DEFAULT_RESULT_TABLE
                .equals(GetPreferenceGeneral.getMongoDefaultResultPage())) {
            btnTableView.setSelection(true);
        }

    }
}