亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? libraryapieditordialog.java

?? 配置文件
?? JAVA
字號:
/**
 * Copyright (c) 2003-2006 Craig Setera
 * All Rights Reserved.
 * Licensed under the Eclipse Public License - v 1.0
 * For more information see http://www.eclipse.org/legal/epl-v10.html
 */
package eclipseme.ui.internal.device.editor;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ComboBoxCellEditor;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.window.IShellProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;

import eclipseme.core.model.API;
import eclipseme.core.model.APIType;
import eclipseme.core.model.Version;
import eclipseme.ui.internal.EclipseMEUIPlugin;
import eclipseme.ui.viewers.TableColumnInfo;
import eclipseme.ui.viewers.TableViewerConfiguration;

/**
 * A dialog for the editing of the API's associated with a library
 * in a classpath.
 * <p />
 * Copyright (c) 2003-2006 Craig Setera<br>
 * All Rights Reserved.<br>
 * Licensed under the Eclipse Public License - v 1.0<p/>
 * <br>
 * $Revision: 1.2 $
 * <br>
 * $Date: 2006/05/15 21:31:40 $
 * <br>
 * @author Craig Setera
 */
public class LibraryApiEditorDialog extends Dialog {
	private static final Object[] NO_ELEMENTS = new Object[0];

	// Column property names
	private static final String PROP_IDENTIFIER = "identifier";
	private static final String PROP_VERSION = "version";
	private static final String PROP_TYPE = "type";
	private static final String PROP_NAME = "name";
	
	// All of the properties in order
	private static final String[] PROPERTIES = 
		new String[] { PROP_IDENTIFIER, PROP_VERSION, PROP_TYPE, PROP_NAME };
	
	// Column information structure
	private static final int DEFAULT_TABLE_WIDTH = 650;
	private static final TableColumnInfo[] COLUMN_INFO = new TableColumnInfo[] {
		new TableColumnInfo("Identifier", 15f, null),
		new TableColumnInfo("Version", 15f, null),
		new TableColumnInfo("Type", 20f, null),
		new TableColumnInfo("Name", 50f, null),
	};
	
	// Label provider for API instances
	private class APILabelProvider extends LabelProvider implements ITableLabelProvider {
		public Image getColumnImage(Object element, int columnIndex) {
			return null;
		}

		public String getColumnText(Object element, int columnIndex) {
			API api = (API) element;
			String text = "";
			
			switch (columnIndex) {
				case 0:
					text = api.getIdentifier();
					break;
					
				case 1:
					text = api.getVersion().toString();
					break;
					
				case 2:
					text = api.getType().toString();
					break;

				case 3:
					text = api.getName();
					break;
			}
			
			return text;
		}
	}

	// A cell modifier implementation for the device libraries editor
	private class CellModifier implements ICellModifier {
		public boolean canModify(Object element, String property) {
			return true;
		}

		public Object getValue(Object element, String property) {
			Object value = null;
			API api = (API) element;
			
			switch (getColumnIndex(property)) {
				case 0:
					value = api.getIdentifier();
					break;
					
				case 1:
					value = api.getVersion().toString();
					break;
					
				case 2:
					value = new Integer(api.getType().getTypeCode());
					break;

				case 3:
					value = api.getName();
					break;
			}
			
			return value;
		}

		public void modify(Object element, String property, Object value) {
			TableItem item = (TableItem) element;
			API api = (API) item.getData();
			
			switch (getColumnIndex(property)) {
				case 0:
					api.setIdentifier((String) value);
					break;
					
				case 1:
					api.setVersion(new Version((String) value));
					break;
					
				case 2:
					Integer integerCode = (Integer) value;
					api.setType(APIType.typeForCode(integerCode.intValue()));
					break;
					
				case 3:
					api.setName((String) value);
					break;
			}
			
			viewer.refresh(api, true);
		}

		/**
		 * Return the column index for the property.
		 * 
		 * @param property
		 * @return
		 */
		private int getColumnIndex(String property) {
			int index = -1;
			
			for (int i = 0; i < PROPERTIES.length; i++) {
				if (PROPERTIES[i].equals(property)) {
					index = i;
					break;
				}
			}
			
			return index;
		}
	}
	
	// Content provider that makes a library's API's available
	private class LibraryApiContentProvider implements IStructuredContentProvider {
		public Object[] getElements(Object inputElement) {
			Object[] elements = NO_ELEMENTS;

			if (apis != null) {
				elements = (API[]) apis.toArray(new API[apis.size()]);
			}
			
			return elements;
		}

		public void dispose() {	}
		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
	}
	
	// Widgets
	private TableViewer viewer;
	private List apis;
	
	/**
	 * Construct a new dialog.
	 * 
	 * @param parentShell
	 */
	public LibraryApiEditorDialog(Shell parentShell) {
		super(parentShell);
	}

	/**
	 * Construct a new dialog.
	 * 
	 * @param parentShell
	 */
	public LibraryApiEditorDialog(IShellProvider parentShell) {
		super(parentShell);
	}

	/**
	 * Set the library to be edited.
	 * 
	 * @param library
	 */
	void setAPIs(API[] apis) {
		this.apis = new ArrayList();
		this.apis.addAll(Arrays.asList(apis));
	}

	/**
	 * Get the selected apis.
	 * 
	 * @return
	 */
	API[] getAPIs() {
		return (apis == null) ? null : (API[]) apis.toArray(new API[apis.size()]);
	}
	
	/**
	 * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
	 */
	protected void buttonPressed(int buttonId) {
		if (buttonId == IDialogConstants.CANCEL_ID) {
			apis = null;
		}
		
		super.buttonPressed(buttonId);
	}

	/**
	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
	 */
	protected void configureShell(Shell newShell) {
		super.configureShell(newShell);

		String title = "Edit Library API's";
		newShell.setText(title);
	}

	/**
	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
	 */
	protected Control createDialogArea(Composite parent) {
		Composite composite = new Composite(parent, SWT.NONE);
		composite.setLayout(new GridLayout(2, false));
		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
		
		GridData gridData = new GridData(GridData.FILL_BOTH);
		gridData.minimumWidth = DEFAULT_TABLE_WIDTH;
		gridData.heightHint = 400;
		viewer = createTableViewer(composite);
		viewer.getTable().setLayoutData(gridData);

		Composite buttonComposite = new Composite(composite, SWT.NONE);
		buttonComposite.setLayout(new GridLayout(1, true));
		buttonComposite.setLayoutData(new GridData(GridData.FILL_VERTICAL));
		
		Button addButton = new Button(buttonComposite, SWT.PUSH);
		addButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
		addButton.setText("Add");
		addButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				handleAddButton();
			}
		});
		
		final Button removeButton = new Button(buttonComposite, SWT.PUSH);
		removeButton.setEnabled(false);
		removeButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
		removeButton.setText("Remove");
		removeButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				handleRemoveButton();
			}
		});

		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
			public void selectionChanged(SelectionChangedEvent event) {
				API api = getSelectedAPI();
				removeButton.setEnabled(api != null);
			}
		});
		
		return composite;
	}

	/**
	 * Create the devices table viewer.
	 * 
	 * @param parent
	 */
	private TableViewer createTableViewer(Composite composite) {
		int styles = 
			SWT.MULTI | SWT.V_SCROLL |  
			SWT.BORDER | SWT.FULL_SELECTION;
		Table table = new Table(composite, styles);
		table.setHeaderVisible(true);
		table.setLinesVisible(true);
		
		// Wire up the viewer
		TableViewer viewer = new TableViewer(table);
		viewer.setContentProvider(new LibraryApiContentProvider());
		viewer.setLabelProvider(new APILabelProvider());
		
		IDialogSettings viewerSettings = 
			EclipseMEUIPlugin.getDialogSettings("librayApiViewerSettings");
		TableViewerConfiguration viewerConfiguration =
			new TableViewerConfiguration(viewerSettings, DEFAULT_TABLE_WIDTH, COLUMN_INFO, 0);
		viewerConfiguration.configure(viewer);		
		
		// Wire up the cell modification handling
		viewer.setCellModifier(new CellModifier());
		viewer.setColumnProperties(PROPERTIES);
		viewer.setCellEditors(new CellEditor[] {
			new TextCellEditor(table),
			new TextCellEditor(table),
			new ComboBoxCellEditor(table, APIType.TYPE_STRINGS),
			new TextCellEditor(table),
		});
		
		viewer.setInput(new Object());
		
		return viewer;
	}
	
	/**
	 * Return the API element currently selected or 
	 * <code>null</code> if not selected.
	 * 
	 * @return
	 */
	private API getSelectedAPI() {
		IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
		return (API) selection.getFirstElement();
	}
	
	/**
	 * Handle the add button being pressed.
	 */
	private void handleAddButton() {
		API newApi = new API();
		newApi.setIdentifier("APIID");
		newApi.setName("New API");
		newApi.setType(APIType.UNKNOWN);
		newApi.setVersion(new Version("1.0"));
		
		apis.add(newApi);
		viewer.refresh();
	}

	/**
	 * Handle the remove button being pressed.
	 */
	private void handleRemoveButton() {
		API selected = getSelectedAPI();
		if (selected != null) {
			apis.remove(selected);
			viewer.refresh();
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线不卡| 不卡视频免费播放| 久久色在线视频| 日韩一区二区三区在线视频| 欧美精品丝袜中出| 欧美日韩国产免费| 91在线视频官网| 91色在线porny| 欧美色区777第一页| 欧美精品久久久久久久多人混战| 在线播放欧美女士性生活| 欧美性大战xxxxx久久久| 在线观看三级视频欧美| 欧美日韩国产高清一区二区| 欧美精品xxxxbbbb| 精品福利视频一区二区三区| 久久久夜色精品亚洲| 国产精品成人一区二区艾草 | 一区二区视频在线| 91麻豆精品视频| 欧美一区二区三区日韩| 亚洲欧洲国产日韩| 日本精品一区二区三区高清| 日韩精品视频网| 国产日韩精品一区二区三区在线| 99精品视频一区二区| 一区二区在线观看免费| 欧美成人女星排行榜| 久久―日本道色综合久久| 久久精品一区二区| 亚洲影院理伦片| 国产精品 欧美精品| 日本二三区不卡| 欧美天天综合网| 久久亚洲免费视频| 欧美大肚乱孕交hd孕妇| 日韩精品一区二区三区视频| 国产盗摄视频一区二区三区| 亚洲激情男女视频| 久久综合狠狠综合久久激情| 色综合激情五月| 精品一二三四区| 亚洲黄色录像片| 2020国产精品久久精品美国| 日本二三区不卡| 国产精品亚洲视频| 日本午夜一区二区| 亚洲激情一二三区| 久久久久久久久97黄色工厂| 欧美人体做爰大胆视频| 99久久免费国产| www一区二区| 欧美日韩一区二区三区在线| 蜜臀av性久久久久蜜臀av麻豆| 欧美肥胖老妇做爰| 美女爽到高潮91| 欧美mv日韩mv国产网站app| 久久久久88色偷偷免费 | 日本一区二区久久| 性欧美大战久久久久久久久| 欧美日韩成人激情| 亚洲精品乱码久久久久久| 欧美国产禁国产网站cc| 欧美成人艳星乳罩| 欧美一区二区三区视频免费播放| 91黄色免费观看| 色婷婷国产精品综合在线观看| 不卡视频一二三| 成人免费视频app| 精品国产不卡一区二区三区| jlzzjlzz欧美大全| 夜夜亚洲天天久久| 欧美一级在线观看| 欧美日韩国产一二三| 亚洲国产精品久久久久秋霞影院| 欧美伊人久久大香线蕉综合69 | 一区2区3区在线看| 中文字幕一区二区在线播放 | 亚洲丝袜精品丝袜在线| 26uuu欧美日本| 国产成人精品午夜视频免费| 国产九色精品成人porny | 久久久久久一级片| 亚洲人成亚洲人成在线观看图片 | 欧美xingq一区二区| 国产精品欧美综合在线| 亚洲人成影院在线观看| 狠狠色丁香九九婷婷综合五月| 在线视频国内自拍亚洲视频| 欧美在线观看视频一区二区| 91精品国产综合久久国产大片| 国产亚洲欧洲997久久综合 | 国产精品久久久久久亚洲毛片| 亚洲伊人伊色伊影伊综合网| 精品系列免费在线观看| 亚洲不卡av一区二区三区| 国产精品国产三级国产有无不卡| 日韩欧美中文字幕制服| 欧美日韩在线精品一区二区三区激情| 国产成人夜色高潮福利影视| 国产一区二区三区精品欧美日韩一区二区三区 | 久久激情五月激情| 国精产品一区一区三区mba视频| 国产精品一品二品| 成人av网站免费观看| 91碰在线视频| 欧美巨大另类极品videosbest | 亚洲乱码国产乱码精品精的特点| 亚洲伦理在线精品| 亚洲成av人**亚洲成av**| 毛片av一区二区| 国产成人亚洲精品青草天美| 一本大道av伊人久久综合| 欧美精品一二三| 国产日韩欧美亚洲| 亚洲一本大道在线| 国产又粗又猛又爽又黄91精品| 99久久99久久免费精品蜜臀| 欧美日韩第一区日日骚| 久久久久久电影| 亚洲午夜精品在线| 国产成人在线影院| 欧美日韩视频不卡| 国产日韩影视精品| 亚洲二区视频在线| 成人综合激情网| 6080国产精品一区二区| 国产精品伦一区| 日本不卡一二三| 91在线国产观看| 日韩欧美国产麻豆| 亚洲大片在线观看| 懂色av中文字幕一区二区三区 | 狠狠色综合播放一区二区| 色欧美片视频在线观看 | 国产日韩高清在线| 亚洲国产精品人人做人人爽| 国产精品一区二区无线| 欧美人与性动xxxx| 又紧又大又爽精品一区二区| 国产一区二区三区免费在线观看| 欧美三区在线观看| 国产精品欧美一区二区三区| 国产在线视频不卡二| 欧美日韩三级一区| **欧美大码日韩| 国产jizzjizz一区二区| 日韩精品一区二区三区四区| 丝袜国产日韩另类美女| 欧美综合一区二区| 亚洲免费看黄网站| 成人99免费视频| 国产精品色噜噜| 国产精品77777竹菊影视小说| 欧美一区二区三区成人| 婷婷中文字幕一区三区| 在线看不卡av| 一区二区三区中文在线观看| www.色综合.com| 欧美国产日产图区| 国产高清精品在线| 久久色在线观看| 国产一区二区三区四区在线观看| 欧美成人免费网站| 久久精品国产精品青草| 91精品国产色综合久久不卡蜜臀| 亚洲国产日产av| 欧美日韩另类国产亚洲欧美一级| 亚洲一区在线播放| 精品视频全国免费看| 亚洲一区二区成人在线观看| 在线观看日韩av先锋影音电影院| 亚洲在线成人精品| 91福利小视频| 日韩和的一区二区| 亚洲一区日韩精品中文字幕| 色婷婷精品久久二区二区蜜臂av| 亚洲人吸女人奶水| 欧美视频在线一区| 五月天中文字幕一区二区| 欧美一卡2卡三卡4卡5免费| 美女看a上一区| 久久精品在这里| 成人黄色小视频在线观看| 18成人在线视频| 欧美日韩电影一区| 黄色资源网久久资源365| 日本一区二区综合亚洲| 99精品欧美一区二区蜜桃免费| 亚洲欧美日韩中文播放| 91成人免费网站| 免费人成在线不卡| 欧美极品aⅴ影院| 97se亚洲国产综合在线| 亚洲丰满少妇videoshd| 精品成人免费观看| 99精品视频中文字幕| 天天综合网天天综合色| 欧美精品一区男女天堂| 99久久婷婷国产综合精品|