org.eclipse.wst.wsdl.ui.internal.dialogs.GenerateBindingOnSaveDialog.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.wst.wsdl.ui.internal.dialogs.GenerateBindingOnSaveDialog.java

Source

/*******************************************************************************
 * Copyright (c) 2001, 2010 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
 *******************************************************************************/
package org.eclipse.wst.wsdl.ui.internal.dialogs;

import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
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.Shell;
import org.eclipse.wst.wsdl.ui.internal.Messages;
import org.eclipse.wst.wsdl.ui.internal.WSDLEditorPlugin;

public class GenerateBindingOnSaveDialog extends MessageDialog implements SelectionListener {
    private static String dialogTitle = Messages._UI_REGEN_BINDINDS_ON_SAVE; //$NON-NLS-1$
    private static String dialogMessage = Messages._UI_REGEN_BINDINGS_ON_SAVE_QUESTIONMARK; //$NON-NLS-1$
    private static String[] buttons = new String[] { Messages._UI_YES_LABEL, Messages._UI_NO_LABEL,
            Messages._UI_CANCEL_LABEL }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

    private Button rememberDecisionBox;
    private boolean rememberDecision = false;

    public GenerateBindingOnSaveDialog(Shell shell) {
        super(shell, dialogTitle, null, dialogMessage, MessageDialog.QUESTION, buttons, 0);
    }

    protected Control createCustomArea(Composite parent) {
        Composite comp = new Composite(parent, SWT.NONE);
        GridLayout layout = new GridLayout();
        layout.numColumns = 2;
        comp.setLayout(layout);
        comp.setData(new GridData());

        // Spacer
        new Label(comp, SWT.NONE);
        new Label(comp, SWT.NONE);

        rememberDecisionBox = new Button(comp, SWT.CHECK);
        rememberDecisionBox.setText(Messages._UI_REMEMBER_MY_DECISION_LABEL);
        rememberDecisionBox.addSelectionListener(this);

        return parent;
    }

    private void storePromptPreference(int swtValue) {
        // Store the new preference for displaying this dialog.
        if (rememberDecision) {
            WSDLEditorPlugin.getInstance().getPluginPreferences()
                    .setValue(WSDLEditorPlugin.PROMPT_REGEN_BINDING_ON_SAVE_ID, false); //$NON-NLS-1$

            String generateID = WSDLEditorPlugin.AUTO_REGENERATE_BINDING_ON_SAVE_ID; //$NON-NLS-1$
            if (swtValue == SWT.YES) {
                WSDLEditorPlugin.getInstance().getPluginPreferences().setValue(generateID, true);
            } else if (swtValue == SWT.NO) {
                WSDLEditorPlugin.getInstance().getPluginPreferences().setValue(generateID, false);
            }
        }
    }

    public int open() {
        int rValue = super.open();

        if (rValue == 0) {
            storePromptPreference(SWT.YES);
            return SWT.YES;
        } else if (rValue == 1) {
            storePromptPreference(SWT.NO);
            return SWT.NO;
        } else if (rValue == 2) {
            storePromptPreference(SWT.CANCEL);
            return SWT.CANCEL;
        }

        return rValue;
    }

    public void widgetSelected(SelectionEvent e) {
        if (e.widget == rememberDecisionBox) {
            rememberDecision = rememberDecisionBox.getSelection();
        }
    }

    public void widgetDefaultSelected(SelectionEvent e) {
    }
}