Java tutorial
/******************************************************************************* * Copyright (c) 2014,2015 Hideki Yatomi * 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 ******************************************************************************/ package net.yatomiya.nicherry.ui.views.explorer; import java.util.List; import org.eclipse.e4.core.contexts.*; import org.eclipse.e4.ui.workbench.modeling.*; import org.eclipse.jface.viewers.*; import org.eclipse.swt.*; import org.eclipse.swt.events.*; import org.eclipse.swt.widgets.*; import net.yatomiya.e4.ui.viewer.*; import net.yatomiya.nicherry.model.bbs.*; import net.yatomiya.nicherry.model.explorer.*; import net.yatomiya.nicherry.services.bbs.*; import net.yatomiya.nicherry.services.explorer.*; public class ExplorerViewer extends TreeViewer { private IEclipseContext context; private ExplorerService expSrv; private MExplorer model; private BBSService bbsSrv; public ExplorerViewer(Composite parent, IEclipseContext context) { super(parent, SWT.MULTI | SWT.FULL_SELECTION); this.context = context; expSrv = context.get(ExplorerService.class); model = expSrv.getModel(); bbsSrv = context.get(BBSService.class); setContentProvider(new ExplorerContentProvider(true, true)); setLabelProvider(new ExplorerLabelProvider()); setInput(model); addPostSelectionChangedListener( (event) -> context.get(ESelectionService.class).setSelection(event.getSelection())); addOpenListener((event) -> openElements(SelectionUtils.toList(event.getSelection()))); /* DelegatingDragAdapter dragAdapter = new DelegatingDragAdapter(); dragAdapter.addDragSourceListener(new ExplorerDragAdapter(this)); addDragSupport(DND.DROP_MOVE | DND.DROP_COPY, dragAdapter.getTransfers(), dragAdapter); DelegatingDropAdapter dropAdapter = new DelegatingDropAdapter(); dropAdapter.addDropTargetListener(new ExplorerDropAdapter(this)); addDropSupport(DND.DROP_MOVE | DND.DROP_COPY, dropAdapter.getTransfers(), dropAdapter); */ } @Override public void handleDispose(DisposeEvent event) { } void openElements(List<Object> elements) { for (Object e : elements) { if (e instanceof MBoardItem) { } else if (e instanceof MBoardLink) { } else if (e instanceof MThreadLink) { } } } }