| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> |
| <head> |
| <meta name="copyright" content= |
| "Copyright (c) IBM Corporation and others 2009, 2011. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." /> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| <meta http-equiv="Content-Style-Type" content="text/css" /> |
| <link rel="stylesheet" type="text/css" href="../book.css" /> |
| <title>CopyrightTabPage.java</title> |
| </head> |
| <body> |
| <pre class="color1"> |
| /******************************************************************************* |
| * Copyright (c) 2009 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 |
| ********************************************************************************/ |
| package org.eclipse.jdt.ui.internal.copyrightupdater; |
| |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.custom.SashForm; |
| import org.eclipse.swt.custom.ScrolledComposite; |
| import org.eclipse.swt.events.ControlEvent; |
| import org.eclipse.swt.events.ControlListener; |
| import org.eclipse.swt.events.SelectionAdapter; |
| import org.eclipse.swt.events.SelectionEvent; |
| import org.eclipse.swt.graphics.Point; |
| import org.eclipse.swt.graphics.Rectangle; |
| 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.Group; |
| import org.eclipse.swt.widgets.Label; |
| import org.eclipse.swt.widgets.Layout; |
| |
| import org.eclipse.jface.dialogs.IDialogConstants; |
| import org.eclipse.jface.layout.PixelConverter; |
| |
| import org.eclipse.jdt.ui.cleanup.CleanUpOptions; |
| import org.eclipse.jdt.ui.cleanup.ICleanUpConfigurationUI; |
| |
| public class CopyrightTabPage implements ICleanUpConfigurationUI { |
| |
| private PixelConverter fPixelConverter; |
| private CleanUpOptions fOptions; |
| |
| public CopyrightTabPage() { |
| super(); |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jdt.ui.cleanup.ICleanUpConfigurationUI#createContents(org.eclipse.swt.widgets.Composite) |
| */ |
| public Composite createContents(Composite parent) { |
| final int numColumns= 4; |
| |
| if (fPixelConverter == null) { |
| fPixelConverter= new PixelConverter(parent); |
| } |
| |
| final SashForm sashForm = new SashForm(parent, SWT.HORIZONTAL); |
| sashForm.setFont(parent.getFont()); |
| |
| Composite scrollContainer = new Composite(sashForm, SWT.NONE); |
| |
| GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); |
| scrollContainer.setLayoutData(gridData); |
| |
| GridLayout layout= new GridLayout(2, false); |
| layout.marginHeight= 0; |
| layout.marginWidth= 0; |
| layout.horizontalSpacing= 0; |
| layout.verticalSpacing= 0; |
| scrollContainer.setLayout(layout); |
| |
| ScrolledComposite scroll= new ScrolledComposite(scrollContainer, SWT.V_SCROLL | SWT.H_SCROLL); |
| scroll.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); |
| scroll.setExpandHorizontal(true); |
| scroll.setExpandVertical(true); |
| |
| final Composite settingsContainer= new Composite(scroll, SWT.NONE); |
| settingsContainer.setFont(sashForm.getFont()); |
| |
| scroll.setContent(settingsContainer); |
| |
| settingsContainer.setLayout(new PageLayout(scroll, 400, 400)); |
| settingsContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); |
| |
| Composite settingsPane= new Composite(settingsContainer, SWT.NONE); |
| settingsPane.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); |
| |
| layout= new GridLayout(numColumns, false); |
| layout.verticalSpacing= (int)(1.5 * fPixelConverter.convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING)); |
| layout.horizontalSpacing= fPixelConverter.convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); |
| layout.marginHeight= fPixelConverter.convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); |
| layout.marginWidth= fPixelConverter.convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); |
| settingsPane.setLayout(layout); |
| doCreatePreferences(settingsPane); |
| |
| settingsContainer.setSize(settingsContainer.computeSize(SWT.DEFAULT, SWT.DEFAULT)); |
| |
| scroll.addControlListener(new ControlListener() { |
| |
| public void controlMoved(ControlEvent e) { |
| } |
| |
| public void controlResized(ControlEvent e) { |
| settingsContainer.setSize(settingsContainer.computeSize(SWT.DEFAULT, SWT.DEFAULT)); |
| } |
| }); |
| |
| Label sashHandle = new Label(scrollContainer, SWT.SEPARATOR | SWT.VERTICAL); |
| gridData= new GridData(SWT.RIGHT, SWT.FILL, false, true); |
| sashHandle.setLayoutData(gridData); |
| |
| return sashForm; |
| } |
| |
| |
| |
| /** |
| * Creates the preferences for the tab page. |
| * |
| * @param composite Composite to create in |
| */ |
| protected void doCreatePreferences(Composite composite) { |
| Group group= new Group(composite, SWT.NONE); |
| group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); |
| group.setLayout(new GridLayout(1, false)); |
| group.setText("Copyright Update"); //$NON-NLS-1$ |
| |
| final Button updateCheckbox= new Button(group, SWT.CHECK); |
| updateCheckbox.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); |
| updateCheckbox.setText("Update the Copyrights"); //$NON-NLS-1$ |
| updateCheckbox.setSelection(fOptions.isEnabled("cleanup.update_copyrights")); //$NON-NLS-1$ |
| updateCheckbox.addSelectionListener(new SelectionAdapter() { |
| /* |
| * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) |
| */ |
| public void widgetSelected(SelectionEvent e) { |
| fOptions.setOption("cleanup.update_copyrights", updateCheckbox.getSelection() ? CleanUpOptions.TRUE : CleanUpOptions.FALSE); //$NON-NLS-1$ |
| } |
| }); |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jdt.ui.cleanup.ICleanUpConfigurationUI#getCleanUpCount() |
| */ |
| public int getCleanUpCount() { |
| return 1; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jdt.ui.cleanup.ICleanUpConfigurationUI#getPreview() |
| */ |
| public String getPreview() { |
| StringBuffer buf= new StringBuffer(); |
| |
| if (fOptions.isEnabled("cleanup.update_copyrights")) {//$NON-NLS-1$ |
| buf.append("/* Copyright (c) 2007, 2009 IBM Corporation and others.*/"); //$NON-NLS-1$ |
| } else { |
| buf.append("/* Copyright (c) 2007, 2008 IBM Corporation and others.*/"); //$NON-NLS-1$ |
| } |
| |
| return buf.toString(); |
| |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jdt.ui.cleanup.ICleanUpConfigurationUI#getSelectedCleanUpCount() |
| */ |
| public int getSelectedCleanUpCount() { |
| return fOptions.isEnabled("cleanup.update_copyrights") ? 1 : 0; //$NON-NLS-1$ |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.jdt.ui.cleanup.ICleanUpConfigurationUI#setOptions(org.eclipse.jdt.ui.cleanup.CleanUpOptions) |
| */ |
| public void setOptions(CleanUpOptions options) { |
| fOptions= options; |
| |
| } |
| |
| /** |
| * Layout used for the settings part. Makes sure to show scrollbars |
| * if necessary. The settings part needs to be layouted on resize. |
| */ |
| private static class PageLayout extends Layout { |
| |
| private final ScrolledComposite fContainer; |
| private final int fMinimalWidth; |
| private final int fMinimalHight; |
| |
| private PageLayout(ScrolledComposite container, int minimalWidth, int minimalHight) { |
| fContainer= container; |
| fMinimalWidth= minimalWidth; |
| fMinimalHight= minimalHight; |
| } |
| |
| public Point computeSize(Composite composite, int wHint, int hHint, boolean force) { |
| if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT) { |
| return new Point(wHint, hHint); |
| } |
| |
| int x = fMinimalWidth; |
| int y = fMinimalHight; |
| Control[] children = composite.getChildren(); |
| for (int i = 0; i < children.length; i++) { |
| Point size = children[i].computeSize(SWT.DEFAULT, SWT.DEFAULT, force); |
| x = Math.max(x, size.x); |
| y = Math.max(y, size.y); |
| } |
| |
| Rectangle area= fContainer.getClientArea(); |
| if (area.width > x) { |
| fContainer.setExpandHorizontal(true); |
| } else { |
| fContainer.setExpandHorizontal(false); |
| } |
| |
| if (area.height > y) { |
| fContainer.setExpandVertical(true); |
| } else { |
| fContainer.setExpandVertical(false); |
| } |
| |
| if (wHint != SWT.DEFAULT) { |
| x = wHint; |
| } |
| if (hHint != SWT.DEFAULT) { |
| y = hHint; |
| } |
| |
| return new Point(x, y); |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.swt.widgets.Layout#layout(org.eclipse.swt.widgets.Composite, boolean) |
| */ |
| public void layout(Composite composite, boolean force) { |
| Rectangle rect = composite.getClientArea(); |
| Control[] children = composite.getChildren(); |
| for (int i = 0; i < children.length; i++) { |
| children[i].setSize(rect.width, rect.height); |
| } |
| } |
| } |
| } |
| |
| </pre> |
| </body> |
| </html> |