Bug 515362 - [Dark Theme] Use CTabFolder in
org.eclipse.ui.internal.intro.universal.CustomizationDialog to support
styling
Change-Id: I10783ab96ffe92dbb6de671f294cf516e867775a
Signed-off-by: Lars Vogel <Lars.Vogel@vogella.com>
diff --git a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizationContentsArea.java b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizationContentsArea.java
index f5616b1..bcb1cfc 100644
--- a/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizationContentsArea.java
+++ b/org.eclipse.ui.intro.universal/src/org/eclipse/ui/internal/intro/universal/CustomizationContentsArea.java
@@ -8,6 +8,7 @@
* Contributors:
* IBM Corporation - initial API and implementation
* Cornel Izbasa <cizbasa@info.uvt.ro> - Removed unwanted items in the Customize functionality on the Intro - https://bugs.eclipse.org/420843
+ * Lars Vogel <Lars.Vogel@vogella.com> - Bug 515362
*******************************************************************************/
package org.eclipse.ui.internal.intro.universal;
@@ -47,6 +48,8 @@
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.BusyIndicator;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DragSourceEvent;
import org.eclipse.swt.dnd.DragSourceListener;
@@ -65,8 +68,6 @@
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
@@ -94,7 +95,7 @@
private static final String INTRO_DATA = "INTRO_DATA"; //$NON-NLS-1$
private static final String INTRO_THEME = "INTRO_THEME"; //$NON-NLS-1$
private static final String NO_ROOT_PAGES = "no_root_pages"; //$NON-NLS-1$
- private TabFolder tabFolder;
+ private CTabFolder tabFolder;
private String firstPageId;
private Composite pageContainer;
private TableViewer themes;
@@ -432,14 +433,14 @@
layout.marginHeight = 0;
layout.marginWidth = 0;
container.setLayout(layout);
- tabFolder = new TabFolder(container, SWT.TOP);
+ tabFolder = new CTabFolder(container, SWT.BORDER);
tabFolder.setLayoutData(new GridData(GridData.FILL_BOTH));
tabFolder.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
- TabItem[] selection = tabFolder.getSelection();
- onTabChange(selection[0]);
+ CTabItem selection = tabFolder.getSelection();
+ onTabChange(selection);
}
});
useRelativeFonts = new Button(container, SWT.CHECK);
@@ -598,7 +599,7 @@
updateColumnSizes(viewer);
}
- private void onTabChange(TabItem item) {
+ private void onTabChange(CTabItem item) {
String id = (String) item.getData();
if (item.getControl() == pageContainer)
updatePageContainer(id, (PageData) item.getData("pageData")); //$NON-NLS-1$
@@ -755,7 +756,7 @@
protected void performDefaults() {
loadData(true);
// Dispose all the root page tabs
- TabItem[] items = tabFolder.getItems();
+ CTabItem[] items = tabFolder.getItems();
for (int i = 0; i < items.length; i++) {
if (items[i].getData("pageData") != null) //$NON-NLS-1$
items[i].dispose();
@@ -837,7 +838,7 @@
}
private void addHomePage() {
- TabItem item = new TabItem(tabFolder, SWT.NULL);
+ CTabItem item = new CTabItem(tabFolder, SWT.NULL);
item.setText(Messages.WelcomeCustomizationPreferencePage_home);
Composite container = new Composite(tabFolder, SWT.NULL);
GridLayout layout = new GridLayout();
@@ -933,7 +934,7 @@
private void addPage(String id) {
if (!getRootPageSelected(id))
return;
- TabItem item = new TabItem(tabFolder, SWT.NULL);
+ CTabItem item = new CTabItem(tabFolder, SWT.NULL);
item.setText(getRootPageName(id));
item.setControl(pageContainer);
item.setData(id);
@@ -942,10 +943,10 @@
}
private void onPageChecked(String id, boolean checked) {
- TabItem[] items = tabFolder.getItems();
+ CTabItem[] items = tabFolder.getItems();
if (checked) {
for (int i = 0; i < items.length; i++) {
- TabItem item = items[i];
+ CTabItem item = items[i];
if (item.getData() != null)
item.dispose();
}
@@ -953,7 +954,7 @@
addRootPages();
} else {
for (int i = 0; i < items.length; i++) {
- TabItem item = items[i];
+ CTabItem item = items[i];
String itemId = (String) item.getData();
if (itemId != null && itemId.equals(id)) {
item.dispose();
@@ -1202,12 +1203,12 @@
targetGd = new GroupData(IUniversalIntroConstants.HIDDEN, false);
else
return null;
- TabItem[] items = tabFolder.getSelection();
- PageData pd = (PageData) items[0].getData("pageData"); //$NON-NLS-1$
+ CTabItem item = tabFolder.getSelection();
+ PageData pd = (PageData) item.getData("pageData"); //$NON-NLS-1$
if (pd == null) {
- String pageId = (String)items[0].getData();
+ String pageId = (String)item.getData();
pd = new PageData(pageId);
- items[0].setData("pageData", pd); //$NON-NLS-1$
+ item.setData("pageData", pd); //$NON-NLS-1$
introRootPages.add(pageId);
}
pd.add(targetGd);
@@ -1217,9 +1218,9 @@
private void selectFirstPage() {
if (firstPageId == null)
return;
- TabItem[] items = tabFolder.getItems();
+ CTabItem[] items = tabFolder.getItems();
for (int i = 0; i < items.length; i++) {
- TabItem item = items[i];
+ CTabItem item = items[i];
PageData pd = (PageData) item.getData("pageData"); //$NON-NLS-1$
if (pd != null && pd.getId().equals(firstPageId)) {
tabFolder.setSelection(i);