de.innot.avreclipse.ui.dialogs.ProjectMCUMismatchDialog.java Source code

Java tutorial

Introduction

Here is the source code for de.innot.avreclipse.ui.dialogs.ProjectMCUMismatchDialog.java

Source

/*******************************************************************************
 * Copyright (c) 2008, 2011 Thomas Holland (thomas@innot.de) 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:
 *     Thomas Holland - initial API and implementation
 *******************************************************************************/
package de.innot.avreclipse.ui.dialogs;

import java.text.MessageFormat;

import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Shell;

import de.innot.avreclipse.core.toolinfo.fuses.FuseType;

/**
 * An small Warning dialog that will be shown when the MCU for the bytes does not match the current
 * Project / Configuration MCU.
 * <p>
 * In addition to a fixed warning message, this dialog sports two buttons to accept the byte values,
 * even if they don't match, or to cancel the changes.
 * </p>
 * <p>
 * The open method of this dialog will returns two values
 * <ul>
 * <li><code>0</code> Accept button pressed.</li>
 * <li><code>1</code> Cancel button pressed.</li>
 * </ul>
 * </p>
 * 
 * @author Thomas Holland
 * @since 2.3
 */
public class ProjectMCUMismatchDialog extends MessageDialog {

    public final static int CONVERT = 0;
    public final static int ACCEPT = 1;
    public final static int CANCEL = 2;

    /**
     * Create a new Dialog.
     * <p>
     * The dialog will not be shown until the <code>open()</code> method has been called.
     * </p>
     * 
     * @param shell
     *            Parent <code>Shell</code>
     * @param newmcu
     *            The MCU id for the fuse bytes.
     * @param projectmcu
     *            The MCU id for the project or build configuration.
     * @param type
     *            The <code>FuseType</code> for which this dialog is shown.
     * @param perconfig
     *            If <code>true</code> then "build configuration" is used in this dialog,
     *            "project" otherwise.
     */
    public ProjectMCUMismatchDialog(Shell shell, String newmcu, String projectmcu, FuseType type,
            boolean perconfig) {

        super(shell, "AVRDude Warning", null, "", WARNING, new String[] { "Convert", "Accept", "Cancel" }, 0);

        String proptype = perconfig ? "build configuration" : "project";

        String source = "The loaded {3} values are valid for an {0} MCU.\n"
                + "This MCU is not compatible with the current {2} MCU [{1}].\n\n"
                + "\"Convert\" to try to convert the values to {1} {3} settings.\n"
                + "\"Accept\" to accept the new values anyway (and convert them later).\n"
                + "\"Cancel\" to discard the new values.";

        this.message = MessageFormat.format(source, newmcu, projectmcu, proptype, type.toString());
    }
}