Skip to content

Commit

Permalink
Revert "JBIDE-20834 - Fix issues with styled label providers"
Browse files Browse the repository at this point in the history
This reverts commit 3532eda.
  • Loading branch information
fbricon committed Dec 10, 2015
1 parent cd6db5c commit 6c0cb80
Show file tree
Hide file tree
Showing 6 changed files with 101 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*******************************************************************************
* Copyright (c) 2015 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/

package org.jboss.tools.openshift.internal.common.ui.utils;

import java.lang.reflect.Field;

import org.eclipse.core.runtime.Platform;

/**
* @author Snjezana Peco
*/
public class GTK3Utils {

private static final String ENV_SWT_GTK3 = "ENV_SWT_GTK3"; //$NON-NLS-1$

private GTK3Utils() {
}

public static boolean isRunning() {
if (Platform.WS_GTK.equals(Platform.getWS())) {
try {
Class<?> clazz = Class.forName("org.eclipse.swt.internal.gtk.OS"); //$NON-NLS-1$
Field field = clazz.getDeclaredField("GTK3"); //$NON-NLS-1$
boolean gtk3 = field.getBoolean(field);
return gtk3;
} catch (ClassNotFoundException e) {
return isGTK3Env();
} catch (NoSuchFieldException e) {
return false;
} catch (SecurityException e) {
return isGTK3Env();
} catch (IllegalArgumentException e) {
return isGTK3Env();
} catch (IllegalAccessException e) {
return isGTK3Env();
}
}
return false;
}

private static boolean isGTK3Env() {
String gtk3 = System.getProperty(ENV_SWT_GTK3);
if (gtk3 == null) {
gtk3 = System.getenv(ENV_SWT_GTK3);
}
return !"0".equals(gtk3); //$NON-NLS-1$
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/*******************************************************************************
* Copyright (c) 2015 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.openshift.internal.common.ui.viewer;

import org.eclipse.jface.viewers.StyledCellLabelProvider;
import org.jboss.tools.openshift.internal.common.ui.utils.GTK3Utils;

/**
* A styled cell labelprovider that works around gtk3 issues by disabling owner draw
*
* @author Andre Dietisheim
*
* @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=466499
* @see https://issues.jboss.org/browse/JBIDE-19853
* @see https://issues.jboss.org/browse/JBIDE-19932
*/
public abstract class GTK3WorkaroundStyledCellLabelProvider extends StyledCellLabelProvider {

protected GTK3WorkaroundStyledCellLabelProvider() {
if (GTK3Utils.isRunning()) {
setOwnerDrawEnabled(false);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@
import org.eclipse.jface.fieldassist.TextContentAdapter;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.viewers.StyledCellLabelProvider;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
Expand Down Expand Up @@ -83,6 +82,7 @@
import org.jboss.tools.openshift.internal.common.ui.utils.DisposeUtils;
import org.jboss.tools.openshift.internal.common.ui.utils.UIUtils;
import org.jboss.tools.openshift.internal.common.ui.utils.UIUtils.IWidgetVisitor;
import org.jboss.tools.openshift.internal.common.ui.viewer.GTK3WorkaroundStyledCellLabelProvider;
import org.jboss.tools.openshift.internal.common.ui.wizard.AbstractOpenShiftWizardPage;
import org.jboss.tools.openshift.internal.common.ui.wizard.OkCancelButtonWizardDialog;

Expand Down Expand Up @@ -576,7 +576,7 @@ protected IStatus validate() {
}
}

private class ApplicationTemplateViewLabelProvider extends StyledCellLabelProvider {
private class ApplicationTemplateViewLabelProvider extends GTK3WorkaroundStyledCellLabelProvider {
@Override
public void update(ViewerCell cell) {
Object element = cell.getElement();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredViewer;
import org.eclipse.jface.viewers.StyledCellLabelProvider;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
Expand All @@ -68,6 +67,7 @@
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.ISelectionService;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.wst.server.ui.wizard.IWizardHandle;
Expand All @@ -84,6 +84,7 @@
import org.jboss.tools.openshift.internal.common.ui.databinding.RequiredControlDecorationUpdater;
import org.jboss.tools.openshift.internal.common.ui.utils.DisposeUtils;
import org.jboss.tools.openshift.internal.common.ui.utils.UIUtils;
import org.jboss.tools.openshift.internal.common.ui.viewer.GTK3WorkaroundStyledCellLabelProvider;
import org.jboss.tools.openshift.internal.ui.treeitem.Model2ObservableTreeItemConverter;
import org.jboss.tools.openshift.internal.ui.treeitem.ObservableTreeItem;
import org.jboss.tools.openshift.internal.ui.treeitem.ObservableTreeItem2ModelConverter;
Expand Down Expand Up @@ -460,7 +461,7 @@ private TreeViewer createServicesTreeViewer(Composite parent, Text selectorText)
return applicationTemplatesViewer;
}

private class ServicesViewLabelProvider extends StyledCellLabelProvider {
private class ServicesViewLabelProvider extends GTK3WorkaroundStyledCellLabelProvider {
@Override
public void update(ViewerCell cell) {
Object element = cell.getElement();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
******************************************************************************/
package org.jboss.tools.openshift.internal.ui.treeitem;

import org.eclipse.jface.viewers.StyledCellLabelProvider;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.swt.graphics.Image;
import org.jboss.tools.openshift.internal.common.ui.viewer.GTK3WorkaroundStyledCellLabelProvider;
import org.jboss.tools.openshift.internal.ui.explorer.OpenShiftExplorerLabelProvider;

/**
Expand All @@ -22,7 +22,7 @@
*
* @author Andre Dietisheim
*/
public class ObservableTreeItemStyledCellLabelProvider extends StyledCellLabelProvider {
public class ObservableTreeItemStyledCellLabelProvider extends GTK3WorkaroundStyledCellLabelProvider {

private OpenShiftExplorerLabelProvider explorerLabelProvider;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,19 @@

import org.apache.commons.lang.StringUtils;
import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
import org.eclipse.jface.viewers.StyledCellLabelProvider;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.graphics.Image;
import org.jboss.tools.openshift.internal.common.ui.viewer.GTK3WorkaroundStyledCellLabelProvider;
import org.jboss.tools.openshift.internal.ui.wizard.newapp.ResourceDetailsContentProvider.ResourceProperty;

import com.openshift.restclient.model.IResource;

/**
* @author jeff.cantrill
*/
public class ResourceDetailsLabelProvider extends StyledCellLabelProvider implements IStyledLabelProvider {
public class ResourceDetailsLabelProvider extends GTK3WorkaroundStyledCellLabelProvider implements IStyledLabelProvider {

@Override
public void update(ViewerCell cell) {
Expand Down

0 comments on commit 6c0cb80

Please sign in to comment.