/*******************************************************************************
* Copyright (c) 2011, 2012 AGETO Service GmbH 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:
* Gunnar Wagenknecht - initial API and implementation
*******************************************************************************/
package org.eclipse.gyrex.admin.ui.cloud.internal.zookeeper;
import org.eclipse.gyrex.admin.ui.cloud.internal.ZooKeeperBasedAdminPage;
import org.eclipse.gyrex.admin.ui.internal.widgets.PatternFilter;
import org.eclipse.core.runtime.Path;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
public class ZooKeeperExplorer extends ZooKeeperBasedAdminPage {
static class ViewContentProvider implements ITreeContentProvider {
/** serialVersionUID */
private static final long serialVersionUID = 1L;
private static final Object[] NO_CHILDREN = new Object[0];
@Override
public void dispose() {
}
@Override
public Object[] getChildren(final Object parent) {
return getElements(parent);
}
@Override
public Object[] getElements(final Object parent) {
if (parent instanceof ZooKeeperData)
return ((ZooKeeperData) parent).getChildren();
else
return NO_CHILDREN;
}
@Override
public Object getParent(final Object element) {
if (element instanceof ZooKeeperData)
return ((ZooKeeperData) element).getParent();
return null;
}
@Override
public boolean hasChildren(final Object element) {
if (element instanceof ZooKeeperData)
return ((ZooKeeperData) element).hasChildren();
else
return false;
}
@Override
public void inputChanged(final Viewer v, final Object oldInput, final Object newInput) {
}
}
public ZooKeeperExplorer() {
super(0);
setTitle("ZooKeeper Explorer");
setTitleToolTip("Browse ZooKeeper data");
}
@Override
protected void createButtons(final Composite parent) {
// no buttons
}
@Override
protected ITreeContentProvider createContentProvider() {
return new ViewContentProvider();
}
@Override
protected Control createHeader(final Composite parent) {
// no header
return null;
}
@Override
protected PatternFilter createPatternFilter() {
final PathPatternFilter filter = new PathPatternFilter();
filter.setIncludeLeadingWildcard(true);
return filter;
}
@Override
protected String getColumnLabel(final int column) {
// no columns
return null;
}
@Override
protected String getElementLabel(final Object element, final int column) {
if (element instanceof ZooKeeperData)
return ((ZooKeeperData) element).getLabel();
else
return String.valueOf(element);
}
@Override
protected Object getViewerInput() {
return new ZooKeeperData(Path.ROOT, null);
}
@Override
protected boolean isColumnSortable(final int column) {
return false;
}
@Override
protected void refresh() {
getTreeViewer().setInput(getViewerInput());
}
@Override
protected void updateButtons() {
// no buttons
}
}