blob: d30c00e927a4423d6b449150f02313c44f0826a5 [file] [log] [blame]
<!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 &amp;&amp; hHint != SWT.DEFAULT) {
return new Point(wHint, hHint);
}
int x = fMinimalWidth;
int y = fMinimalHight;
Control[] children = composite.getChildren();
for (int i = 0; i &lt; 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 &gt; x) {
fContainer.setExpandHorizontal(true);
} else {
fContainer.setExpandHorizontal(false);
}
if (area.height &gt; 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 &lt; children.length; i++) {
children[i].setSize(rect.width, rect.height);
}
}
}
}
</pre>
</body>
</html>