📄 filesystemview.java
字号:
/*******************************************************************************
* Copyright (c) 2007 Siemens AG
*
* 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:
* Kai T鰀ter - initial API and implementation
*******************************************************************************/
package com.siemens.ct.mp3m.ui.views.physical;
import java.util.List;
import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.model.BaseWorkbenchContentProvider;
import org.eclipse.ui.model.WorkbenchLabelProvider;
import org.eclipse.ui.part.ViewPart;
import com.siemens.ct.mp3m.model.physical.Mp3File;
import com.siemens.ct.mp3m.model.physical.MusicFolders;
import com.siemens.ct.mp3m.model.physical.MusicFoldersChangeListener;
import com.siemens.ct.mp3m.ui.views.AdapterFactory;
import com.siemens.ct.mp3m.ui.views.EditorFactory;
import com.siemens.ct.mp3m.ui.views.PathEditorInput;
import com.siemens.ct.mp3m.utilities.LogUtil;
public class FileSystemView extends ViewPart {
public static final String ID = "com.siemens.ct.mp3m.ui.views.physical.FileSystemView";
private TreeViewer treeViewer;
private IAdapterFactory adapterFactory = new AdapterFactory();
public FileSystemView() {
super();
}
public void createPartControl(Composite parent) {
treeViewer = new TreeViewer(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
getSite().setSelectionProvider(treeViewer);
Platform.getAdapterManager().registerAdapters(adapterFactory, Mp3File.class);
treeViewer.setLabelProvider(new WorkbenchLabelProvider());
treeViewer.setContentProvider(new BaseWorkbenchContentProvider());
treeViewer.setInput(MusicFolders.getRoot());
// Create a context menu and register it with the Workbench
MenuManager menuManager = new MenuManager("FileSystemPopup");
menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
Menu menu = menuManager.createContextMenu(treeViewer.getControl());
treeViewer.getControl().setMenu(menu);
getSite().registerContextMenu(menuManager, treeViewer);
Mp3DoubleclickListener listener = new Mp3DoubleclickListener();
treeViewer.addDoubleClickListener(listener);
MusicFolders.addChangeListener(new MusicFoldersChangeListener() {
public void musicFoldersChanged(List<String> folders) {
treeViewer.refresh();
}
});
}
public void dispose() {
Platform.getAdapterManager().unregisterAdapters(adapterFactory);
super.dispose();
}
public void setFocus() {
treeViewer.getControl().setFocus();
}
class Mp3DoubleclickListener implements IDoubleClickListener {
public void doubleClick(DoubleClickEvent event) {
IStructuredSelection selection = (IStructuredSelection) event.getSelection();
Mp3File source = ((Mp3File) selection.getFirstElement());
final String fullPath = source.getFullPath();
if (fullPath != null) {
PathEditorInput pathEditorInput = new PathEditorInput(fullPath);
String editorId = EditorFactory.getDefaultMp3EditorId();
try {
getViewSite().getWorkbenchWindow().getActivePage().openEditor(pathEditorInput,
editorId);
} catch (Exception e) {
LogUtil.logError("com.siemens.ct.mp3m.ui.views.physical",
"cannot open editor with id: " + editorId);
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -