blob: eaf0067180c748ee9b69379a122ec970d68d0c20 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2017 IBM Corporation and others.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
*******************************************************************************/
package org.eclipse.dltk.ui.tests.navigator.scriptexplorer;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.dltk.core.IModelElement;
import org.eclipse.dltk.internal.ui.scriptview.ScriptExplorerPart;
import org.eclipse.dltk.ui.DLTKUIPlugin;
import org.eclipse.dltk.ui.PreferenceConstants;
import org.eclipse.dltk.ui.viewsupport.ProblemTreeViewer;
import org.eclipse.jface.viewers.IContentProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
/**
* Helper to test the PackageExplorerContentProvider.
*
*
*/
public class MockPluginView extends ScriptExplorerPart {
TreeViewer fViewer;
private ITreeContentProvider contentProvider;
private boolean fRefreshHappened;
public List fRefreshedObjects;
private boolean fRemoveHappened;
private boolean fAddHappened;
private List fRemovedObject;
private Object fAddedObject;
private Object fAddedParentObject;
/**
* Constructor for MockPluginView.
*/
public MockPluginView() {
super();
fRefreshedObjects= new ArrayList();
fRemovedObject= new ArrayList();
}
/**
* Creates only the viewer and the content provider.
*
* @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
@Override
public void createPartControl(Composite parent) {
//create viewer
fViewer= createViewer(parent);
//create my contentProvider
contentProvider= createContentProvider();
contentProvider.inputChanged(fViewer, null, null);
//set content provider
fViewer.setContentProvider(contentProvider);
}
@Override
protected ProblemTreeViewer createViewer(Composite parent) {
return new TestProblemTreeViewer(parent, SWT.MULTI);
}
@Override
public void dispose() {
if (fViewer != null) {
IContentProvider p = fViewer.getContentProvider();
if(p!=null)
p.dispose();
}
super.dispose();
}
@Override
public void setFocus() {
}
@Override
public TreeViewer getTreeViewer(){
return fViewer;
}
protected IModelElement findElementToSelect(IModelElement je) {
return null;
}
protected String getHelpContextId() {
return null;
}
protected boolean isValidInput(Object element) {
return false;
}
private class TestProblemTreeViewer extends ProblemTreeViewer{
public TestProblemTreeViewer(Composite parent, int flag){
super(parent,flag);
}
@Override
public void refresh(Object object){
fRefreshHappened= true;
fRefreshedObjects.add(object);
}
@Override
public void refresh(final Object element, final boolean updateLabels) {
fRefreshHappened= true;
fRefreshedObjects.add(element);
}
@Override
public void remove(Object object) {
fRemoveHappened= true;
fRemovedObject.add(object);
}
@Override
public void add(Object parentObject, Object object){
fAddHappened= true;
fAddedObject= object;
fAddedParentObject= parentObject;
}
}
/**
* Returns the refreshed object.
* @return Object
*/
public boolean wasObjectRefreshed(Object c) {
return fRefreshedObjects.contains(c);
}
public List getRefreshedObject(){
return fRefreshedObjects;
}
/**
* Returns the object added to the tree viewer
* @return Object
*/
public Object getParentOfAddedObject() {
return fAddedParentObject;
}
/**
* Returns true if something was added to the viewer
* @return boolean
*/
public boolean hasAddHappened() {
return fAddHappened;
}
/**
* Returns true if an object was removed from the viewer
* @return boolean
*/
public boolean hasRemoveHappened() {
return fRemoveHappened;
}
/**
* Returns the object removed from the viewer
* @return Object
*/
public List getRemovedObject() {
return fRemovedObject;
}
/**
* Returns the object added to the viewer
* @return Object
*/
public Object getAddedObject() {
return fAddedObject;
}
/**
* Returns true if a refresh happened
* @return boolean
*/
public boolean hasRefreshHappened() {
return fRefreshHappened;
}
/**
* Sets the folding preference.
* @param fold
*/
public void setFolding(boolean fold) {
DLTKUIPlugin.getDefault().getPreferenceStore().setValue(PreferenceConstants.APPEARANCE_FOLD_PACKAGES_IN_PACKAGE_EXPLORER, fold);
}
}