Package org.eclipse.php.internal.ui.outline

Source Code of org.eclipse.php.internal.ui.outline.ShowGroupsAction

/*******************************************************************************
* 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
*
* Contributors:
*     IBM Corporation - initial API and implementation
*     Zend Technologies
*******************************************************************************/
package org.eclipse.php.internal.ui.outline;

import org.eclipse.jface.action.Action;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.IContentProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.php.internal.ui.PHPUIMessages;
import org.eclipse.php.internal.ui.PHPUiPlugin;
import org.eclipse.php.internal.ui.preferences.PreferenceConstants;
import org.eclipse.php.internal.ui.util.PHPPluginImages;

public class ShowGroupsAction extends Action {

  public static final String PREF_SHOW_GROUPS = "ShowGroupsAction.show"; //$NON-NLS-1$

  private TreeViewer treeViewer;
  private IPropertyChangeListener propertyChangeListener;

  public ShowGroupsAction(String label, TreeViewer treeViewer) {
    super(label, AS_CHECK_BOX);
    this.treeViewer = treeViewer;
    PHPPluginImages.setLocalImageDescriptors(this, "showGroups.gif"); //$NON-NLS-1$
    setToolTipText(PHPUIMessages.ShowGroupsAction_1);

    propertyChangeListener = new IPropertyChangeListener() {

      public void propertyChange(PropertyChangeEvent event) {
        if (event.getProperty().equals(
            PreferenceConstants.PREF_OUTLINEMODE)) {
          setEnabled(isEnabled());
        }

      }
    };
    PHPUiPlugin.getDefault().getPreferenceStore()
        .addPropertyChangeListener(propertyChangeListener);
    boolean show = PHPUiPlugin.getDefault().getPreferenceStore()
        .getBoolean(PREF_SHOW_GROUPS);
    setChecked(show);
  }

  public void dispose() {
    PHPUiPlugin.getDefault().getPreferenceStore()
        .removePropertyChangeListener(propertyChangeListener);
  }

  public void run() {
    IContentProvider contentProvider = treeViewer.getContentProvider();
    if (contentProvider instanceof PHPOutlineContentProvider) {
      PHPOutlineContentProvider phpContentProvider = (PHPOutlineContentProvider) contentProvider;
      // phpContentProvider.setShowGroups(isChecked());
      treeViewer.refresh(false);
      treeViewer.expandToLevel(2);
      PHPUiPlugin.getDefault().getPreferenceStore().setValue(
          PREF_SHOW_GROUPS, isChecked());
    }
  }

  public boolean isEnabled() {
    // IContentProvider contentProvider = treeViewer.getContentProvider();
    // if (contentProvider instanceof PHPOutlineContentProvider) {
    // PHPOutlineContentProvider phpContentProvider =
    // (PHPOutlineContentProvider) contentProvider;
    // return PHPOutlineContentProvider.MODE_PHP ==
    // phpContentProvider.getMode();
    // }
    return super.isEnabled();
  }

}
TOP

Related Classes of org.eclipse.php.internal.ui.outline.ShowGroupsAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.