1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-08 10:16:03 +02:00

Persistence of visibility setting for Enclosing Definition column.

This commit is contained in:
Sergey Prigogin 2010-05-12 01:34:16 +00:00
parent f8ea863db6
commit a16a16e0b4

View file

@ -1,5 +1,5 @@
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2006, 2008 QNX Software Systems and others. * Copyright (c) 2006, 2010 QNX Software Systems and others.
* All rights reserved. This program and the accompanying materials * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0 * are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at * which accompanies this distribution, and is available at
@ -9,6 +9,7 @@
* QNX - Initial API and implementation * QNX - Initial API and implementation
* Ed Swartz (Nokia) * Ed Swartz (Nokia)
* Andrey Eremchenko (LEDAS) * Andrey Eremchenko (LEDAS)
* Sergey Prigogin (Google)
*******************************************************************************/ *******************************************************************************/
package org.eclipse.cdt.internal.ui.search; package org.eclipse.cdt.internal.ui.search;
@ -17,6 +18,7 @@ import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.action.Action; import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.viewers.StructuredViewer; import org.eclipse.jface.viewers.StructuredViewer;
import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.jface.viewers.TableViewerColumn;
@ -50,7 +52,6 @@ import org.eclipse.cdt.internal.ui.viewsupport.ColoringLabelProvider;
* Implementation of the search view page for index based searches. * Implementation of the search view page for index based searches.
*/ */
public class PDOMSearchViewPage extends AbstractTextSearchViewPage { public class PDOMSearchViewPage extends AbstractTextSearchViewPage {
public static final int LOCATION_COLUMN_INDEX = 0; public static final int LOCATION_COLUMN_INDEX = 0;
public static final int DEFINITION_COLUMN_INDEX = 1; public static final int DEFINITION_COLUMN_INDEX = 1;
public static final int MATCH_COLUMN_INDEX = 2; public static final int MATCH_COLUMN_INDEX = 2;
@ -69,7 +70,7 @@ public class PDOMSearchViewPage extends AbstractTextSearchViewPage {
private IPDOMSearchContentProvider contentProvider; private IPDOMSearchContentProvider contentProvider;
private boolean fShowEnclosingDefinitions; private boolean fShowEnclosingDefinitions;
private ShowEnclosingDefinitionsAction fShowEnclosingDefinitionsAction; private ShowEnclosingDefinitionsAction fShowEnclosingDefinitionsAction;
private int[] fColumnWidths = { 300, 300, 300 }; private int[] fColumnWidths = { 300, 150, 300 };
private class ShowEnclosingDefinitionsAction extends Action { private class ShowEnclosingDefinitionsAction extends Action {
public ShowEnclosingDefinitionsAction() { public ShowEnclosingDefinitionsAction() {
@ -100,14 +101,18 @@ public class PDOMSearchViewPage extends AbstractTextSearchViewPage {
menuManager.updateAll(true); menuManager.updateAll(true);
pageSite.getActionBars().updateActionBars(); pageSite.getActionBars().updateActionBars();
} }
@Override @Override
public void restoreState(IMemento memento) { public void restoreState(IMemento memento) {
super.restoreState(memento); super.restoreState(memento);
IDialogSettings settings = getSettings();
boolean showEnclosingDefinitions = true;
if (settings.get(KEY_SHOW_ENCLOSING_DEFINITIONS) != null)
showEnclosingDefinitions = settings.getBoolean(KEY_SHOW_ENCLOSING_DEFINITIONS);
if (memento != null) { if (memento != null) {
Boolean showEnclosingDefinitions = memento.getBoolean(KEY_SHOW_ENCLOSING_DEFINITIONS); Boolean value = memento.getBoolean(KEY_SHOW_ENCLOSING_DEFINITIONS);
if (showEnclosingDefinitions != null) if (value != null)
setShowEnclosingDefinitions(showEnclosingDefinitions); showEnclosingDefinitions = value.booleanValue();
String[] keys = { KEY_LOCATION_COLUMN_WIDTH, KEY_DEFINITION_COLUMN_WIDTH, KEY_MATCH_COLUMN_WIDTH }; String[] keys = { KEY_LOCATION_COLUMN_WIDTH, KEY_DEFINITION_COLUMN_WIDTH, KEY_MATCH_COLUMN_WIDTH };
for (int i = 0; i < keys.length; i++) { for (int i = 0; i < keys.length; i++) {
Integer width = memento.getInteger(keys[i]); Integer width = memento.getInteger(keys[i]);
@ -117,6 +122,7 @@ public class PDOMSearchViewPage extends AbstractTextSearchViewPage {
fColumnWidths[i] = width; fColumnWidths[i] = width;
} }
} }
setShowEnclosingDefinitions(showEnclosingDefinitions);
} }
@Override @Override
@ -130,7 +136,10 @@ public class PDOMSearchViewPage extends AbstractTextSearchViewPage {
} }
public void setShowEnclosingDefinitions(boolean showEnclosingDefinitions) { public void setShowEnclosingDefinitions(boolean showEnclosingDefinitions) {
if (fShowEnclosingDefinitions == showEnclosingDefinitions)
return;
fShowEnclosingDefinitions = showEnclosingDefinitions; fShowEnclosingDefinitions = showEnclosingDefinitions;
getSettings().put(KEY_SHOW_ENCLOSING_DEFINITIONS, fShowEnclosingDefinitions);
if (fShowEnclosingDefinitionsAction.isChecked() != showEnclosingDefinitions) if (fShowEnclosingDefinitionsAction.isChecked() != showEnclosingDefinitions)
fShowEnclosingDefinitionsAction.setChecked(showEnclosingDefinitions); fShowEnclosingDefinitionsAction.setChecked(showEnclosingDefinitions);
StructuredViewer viewer = getViewer(); StructuredViewer viewer = getViewer();
@ -149,11 +158,11 @@ public class PDOMSearchViewPage extends AbstractTextSearchViewPage {
if (viewer != null) if (viewer != null)
viewer.refresh(); viewer.refresh();
} }
public boolean isShowEnclosingDefinitions() { public boolean isShowEnclosingDefinitions() {
return fShowEnclosingDefinitions; return fShowEnclosingDefinitions;
} }
@Override @Override
protected void elementsChanged(Object[] objects) { protected void elementsChanged(Object[] objects) {
if (contentProvider != null) if (contentProvider != null)