📄 logicalview.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.logical;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.layout.GridData;import org.eclipse.swt.widgets.Composite;import org.eclipse.swt.widgets.Control;import org.eclipse.swt.widgets.Tree;import org.eclipse.swt.widgets.TreeColumn;import org.eclipse.ui.PartInitException;import org.eclipse.ui.part.ViewPart;import com.siemens.ct.mp3m.model.logical.Artists;import com.siemens.ct.mp3m.model.logical.ILogicalModelListener;import com.siemens.ct.mp3m.model.logical.Song;import com.siemens.ct.mp3m.ui.views.EditorFactory;import com.siemens.ct.mp3m.ui.views.PathEditorInput;/** * The logical view: Artists, Albums, Tracks + Titles * * @author Kai Toedter * @author $LastChangedBy: toedter_k $ * @version $LastChangedDate: $ * @version $LastChangedRevision: $ */public class LogicalView extends ViewPart implements ILogicalModelListener { public static final String ID = "com.siemens.ct.mp3m.ui.views.logical.LogicalView"; //$NON-NLS-1$ // The TableTreeViewer TreeViewer treeViewer; /** * Creates the main window's contents * * @param parent * the main window * * @return Control */ @SuppressWarnings("deprecation") protected Control createContents(Composite parent) { // Create the table viewer to display the Artists treeViewer = new TreeViewer(parent, SWT.FULL_SELECTION); treeViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH)); // Set the content and label providers treeViewer.setContentProvider(new ArtistTreeContentProvider(this)); treeViewer.setLabelProvider(new ArtistTreeLabelProvider()); treeViewer.setInput(Artists.getArtists()); String[] columnTitles = { Messages.getString("LogicalView.Artist_Album_Song"), Messages.getString("LogicalView.Track"), Messages.getString("LogicalView.Duration") }; Tree tree1 = treeViewer.getTree(); for (int i = 0; i < columnTitles.length; i++) { TreeColumn treeColumn = new TreeColumn(tree1, SWT.NONE); treeColumn.setText(columnTitles[i]); } tree1.setSortColumn(tree1.getColumn(0)); int columnCount = tree1.getColumnCount(); for (int i = 0; i < columnCount; i++) { TreeColumn treeColumn = tree1.getColumn(i); treeColumn.pack(); } tree1.setHeaderVisible(true); tree1.setLinesVisible(true); // Set up the table /* * Table table = ttv.getTree().getTable(); new TableColumn(table, * SWT.RIGHT).setText(Messages * .getString("LogicalView.Artist_Album_Song")); //$NON-NLS-1$ new * TableColumn(table, * SWT.LEFT).setText(Messages.getString("LogicalView.Track")); * //$NON-NLS-1$ new TableColumn(table, * SWT.LEFT).setText(Messages.getString("LogicalView.Duration")); * //$NON-NLS-1$ * // Expand everything ttv.expandAll(); * // Pack the columns for (int i = 0, n = table.getColumnCount(); i < * n; i++) { table.getColumn(i).pack(); } * // Turn on the header and the lines table.setHeaderVisible(true); * table.setLinesVisible(true); */ return treeViewer.getTree(); } // @Override public void createPartControl(Composite parent) { createContents(parent); Mp3DoubleclickListener listener = new Mp3DoubleclickListener(this); treeViewer.addDoubleClickListener(listener); Artists.addModelChangeListener(this); // getSite().getKeyBindingService().setScopes(new // String[]{"com.siemens.ct.mp3manager.mp3ManagerContext"}); // //$NON-NLS-1$ } // @Override public void setFocus() { treeViewer.getControl().setFocus(); } class Mp3DoubleclickListener implements IDoubleClickListener { private final LogicalView view; /** * @param view * the logical view */ Mp3DoubleclickListener(LogicalView view) { this.view = view; } public void doubleClick(DoubleClickEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); if (selection.getFirstElement() instanceof Song) { Song title = ((Song) selection.getFirstElement()); final String fullPath = title.getFile(); if (fullPath != null) { PathEditorInput pathEditorInput = new PathEditorInput(fullPath); try { this.view.getViewSite().getWorkbenchWindow().getActivePage().openEditor( pathEditorInput, EditorFactory.getDefaultMp3EditorId()); } catch (PartInitException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } } /* * (non-Javadoc) * * @see com.siemens.ct.mp3m.model.logical.ILogicalModelListener#modelChanged() */ public void modelChanged() { treeViewer.setInput(Artists.getArtists()); treeViewer.refresh(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -