Java tutorial
/****************************************************************************** * Copyright (c) 2009-2016 Telink Semiconductor Co., LTD. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v3 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html * ----------------------------------------------------------------------------- * Module: * Purpose: * Reference : * $Id: DirectoryNotStrictVariableFieldEditor.java 851 20.1.08-07 19:37:00Z innot $ *******************************************************************************/ /****************************************************************************** * Copyright (c) 2009-2016 Telink Semiconductor Co., LTD. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v3 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html * ----------------------------------------------------------------------------- * Module: * Purpose: * Reference : * $Id: TCViewerLabelProvider.java 851 20.1.08-07 19:37:00Z innot $ * *******************************************************************************/ package com.telink.tc32eclipse.ui.views.targets; import java.util.ArrayList; import java.util.List; import org.eclipse.jface.layout.TableColumnLayout; import org.eclipse.jface.viewers.ColumnWeightData; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; import com.telink.tc32eclipse.core.targets.ITargetConfiguration; import com.telink.tc32eclipse.core.util.TC32MCUidConverter; /** * Label provider for the Target Configurations Viewer. * * @author Peter Shieh * @since * */ public class TCViewerLabelProvider extends LabelProvider implements ITableLabelProvider { private enum Column { IMAGE("") { @Override protected Image getColumnImage(ITargetConfiguration tc) { return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT); } @Override protected ColumnWeightData getLayoutData() { return new ColumnWeightData(5, 0); } }, NAME("Name") { @Override protected String getColumnText(ITargetConfiguration tc) { return tc.getName(); } @Override protected ColumnWeightData getLayoutData() { return new ColumnWeightData(15, 100); } }, MCU("MCU") { @Override protected String getColumnText(ITargetConfiguration tc) { String mcuname = TC32MCUidConverter.id2name(tc.getMCU()); //String mcuclck = convertFCPU(tc.getFCPU()); return mcuname; // + " @ " + mcuclck; } @Override protected ColumnWeightData getLayoutData() { return new ColumnWeightData(10, 150); } }, TYPE("Type") { @Override protected String getColumnText(ITargetConfiguration tc) { // TODO Auto-generated method stub return "TODO Type"; } @Override protected ColumnWeightData getLayoutData() { return new ColumnWeightData(50, 200); } }; private String fLabel; private Column(String label) { fLabel = label; } protected String getColumnText(ITargetConfiguration tc) { return null; } protected Image getColumnImage(ITargetConfiguration tc) { return null; } protected abstract ColumnWeightData getLayoutData(); /* * (non-Javadoc) * @see java.lang.Enum#toString() */ @Override public String toString() { return fLabel; } } /** List of all columns. Used to map an index to the corresponding column */ private List<Column> fColumns; /** * Construct a new TCViewerLabelProvider. */ public TCViewerLabelProvider() { // Initialize the array of columns. fColumns = new ArrayList<Column>(); for (Column col : Column.values()) { fColumns.add(col); } } /* * (non-Javadoc) * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int) */ public String getColumnText(Object obj, int index) { if (obj instanceof ITargetConfiguration) { ITargetConfiguration tc = (ITargetConfiguration) obj; return fColumns.get(index).getColumnText(tc); } return "N/A"; } /* * (non-Javadoc) * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int) */ public Image getColumnImage(Object obj, int index) { if (obj instanceof ITargetConfiguration) { ITargetConfiguration tc = (ITargetConfiguration) obj; return fColumns.get(index).getColumnImage(tc); } return null; } public void initColumns(TableViewer tableviewer, TableColumnLayout layout) { // Create the columns for (Column col : Column.values()) { TableColumn tableColumn = new TableColumn(tableviewer.getTable(), SWT.NONE); tableColumn.setText(col.toString()); tableColumn.setWidth(100); layout.setColumnData(tableColumn, col.getLayoutData()); } } protected static String convertFCPU(int fcpu) { if (fcpu >= 1000000) { // convert to MHz double mhz = ((double) fcpu) / 1000000; return Double.toString(mhz) + " MHz"; } else if (fcpu >= 1000) { // convert to KHz double khz = ((double) fcpu) / 1000; return Double.toString(khz) + " KHz"; } else { // Unlikely but just in case return Integer.toString(fcpu) + " Hz"; } } }