/* * Copyright (C) 2007 SQL Explorer Development Team * http://sourceforge.net/projects/eclipsesql * * This program 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. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package net.sourceforge.sqlexplorer.dialogs; import net.sourceforge.sqlexplorer.IConstants; import net.sourceforge.sqlexplorer.Messages; import net.sourceforge.sqlexplorer.plugin.SQLExplorerPlugin; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.TitleAreaDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; /** * Dialog which prompts the user to warn them they are about to save outside * a project and that this is not normally a good idea. Allows the user to * turn off further prompts * * @author John Spackman */ public class SaveOutsideProjectDlg extends TitleAreaDialog { public SaveOutsideProjectDlg(Shell parentShell) { super(parentShell); } @Override public int open() { IConstants.Confirm confirm = SQLExplorerPlugin.getConfirm(IConstants.CONFIRM_YNA_SAVING_INSIDE_PROJECT); if (confirm == IConstants.Confirm.YES) return SWT.YES; else if (confirm == IConstants.Confirm.NO) return SWT.NO; return super.open(); } protected void configureShell(Shell shell) { super.configureShell(shell); shell.setText(Messages.getString("Confirm.SaveOutsideProject.Title")); } @Override protected void createButtonsForButtonBar(Composite parent) { createButton(parent, IDialogConstants.YES_ID, IDialogConstants.YES_LABEL, true); createButton(parent, IDialogConstants.NO_ID, IDialogConstants.NO_LABEL, false); } @Override protected Control createContents(Composite parent) { Control control = super.createContents(parent); setTitle(Messages.getString("Confirm.SaveOutsideProject.Title")); return control; } protected Control createDialogArea(Composite parent) { // top level composite Composite parentComposite = (Composite) super.createDialogArea(parent); // create a composite with standard margins and spacing Composite composite = new Composite(parentComposite, SWT.NONE); GridLayout layout = new GridLayout(); layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); composite.setLayout(layout); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); composite.setFont(parentComposite.getFont()); Label label = new Label(composite, SWT.WRAP); String msg = Messages.getString("Confirm.SaveOutsideProject.Intro") + "\n\n"; IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects(); if (projects == null || projects.length == 0) msg = msg + Messages.getString("Confirm.SaveOutsideProject.NoProjectsConfigured"); msg = msg + Messages.getString("Confirm.SaveOutsideProject.SaveInProject"); label.setText(msg); return parentComposite; } protected Point getInitialSize() { return new Point(455, 340); } }