| /******************************************************************************* |
| * Copyright (c) 2009, 2017 xored software, Inc. 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: |
| * xored software, Inc. - initial API and Implementation (Alex Panchenko) |
| *******************************************************************************/ |
| package org.eclipse.dltk.tcl.ui.manpages.dialogs; |
| |
| import java.io.IOException; |
| |
| import org.eclipse.core.runtime.IStatus; |
| import org.eclipse.core.runtime.Status; |
| import org.eclipse.dltk.tcl.internal.ui.TclUI; |
| import org.eclipse.dltk.tcl.internal.ui.documentation.ManPagesLocationsBlock; |
| import org.eclipse.dltk.tcl.internal.ui.documentation.ManPagesMessages; |
| import org.eclipse.dltk.ui.util.IStatusChangeListener; |
| import org.eclipse.jface.dialogs.ErrorDialog; |
| import org.eclipse.jface.dialogs.StatusDialog; |
| import org.eclipse.swt.SWT; |
| 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.Shell; |
| |
| /** |
| * @since 2.0 |
| */ |
| public class ManPagesConfigurationDialog extends StatusDialog |
| implements IStatusChangeListener { |
| |
| private ManPagesLocationsBlock fBlock; |
| |
| public ManPagesConfigurationDialog(Shell shell) { |
| super(shell); |
| setTitle(ManPagesMessages.ManPagesConfigurationDialog_ConfigureTitle); |
| setShellStyle(getShellStyle() | SWT.RESIZE); |
| fBlock = new ManPagesLocationsBlock(this, true); |
| } |
| |
| @Override |
| protected Control createDialogArea(Composite parent) { |
| final Composite dialogArea = (Composite) super.createDialogArea(parent); |
| final Composite control = new Composite(dialogArea, SWT.NONE); |
| final GridLayout layout = new GridLayout(); |
| layout.marginWidth = layout.marginHeight = 0; |
| control.setLayout(layout); |
| control.setLayoutData(new GridData(GridData.FILL_BOTH)); |
| fBlock.createControl(control); |
| fBlock.initialize(); |
| return dialogArea; |
| } |
| |
| @Override |
| protected void okPressed() { |
| try { |
| fBlock.save(); |
| } catch (IOException e) { |
| ErrorDialog.openError(getShell(), |
| ManPagesMessages.ManPagesConfigurationDialog_TitleSaveError, |
| e.getMessage(), new Status(IStatus.ERROR, TclUI.PLUGIN_ID, |
| e.getMessage(), e)); |
| return; |
| } |
| super.okPressed(); |
| } |
| |
| @Override |
| public Shell getShell() { |
| return super.getShell(); |
| } |
| |
| @Override |
| public void statusChanged(IStatus status) { |
| updateStatus(status); |
| } |
| |
| } |