⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newsview.java

📁 EclipseTrader is a stock exchange analysis system, featuring shares pricing watch, intraday and hi
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		menuManager.add(new Separator("group4")); //$NON-NLS-1$		menuManager.add(new Separator("group5")); //$NON-NLS-1$		menuManager.add(new Separator("group6")); //$NON-NLS-1$		menuManager.add(new Separator("additions")); //$NON-NLS-1$		menuManager.add(new Separator("bottom")); //$NON-NLS-1$		IToolBarManager toolBarManager = site.getActionBars().getToolBarManager();		toolBarManager.add(new Separator("begin")); //$NON-NLS-1$		toolBarManager.add(new Separator("group1")); //$NON-NLS-1$		toolBarManager.add(showPreviousAction);		toolBarManager.add(showNextAction);		toolBarManager.add(new Separator("group2")); //$NON-NLS-1$		toolBarManager.add(refreshAction);		toolBarManager.add(new Separator("group3")); //$NON-NLS-1$		toolBarManager.add(new Separator("group4")); //$NON-NLS-1$		toolBarManager.add(new Separator("group5")); //$NON-NLS-1$		toolBarManager.add(new Separator("group6")); //$NON-NLS-1$		toolBarManager.add(new Separator("additions")); //$NON-NLS-1$		toolBarManager.add(new Separator("end")); //$NON-NLS-1$		settings = NewsPlugin.getDefault().getDialogSettings().getSection(VIEW_ID);		if (settings == null)			settings = NewsPlugin.getDefault().getDialogSettings().addNewSection(VIEW_ID);				if (site.getSecondaryId() != null) {			security = (Security) CorePlugin.getRepository().getSecurity(site.getSecondaryId());			if (security != null)				setPartName(security.getDescription() + " " + getPartName()); //$NON-NLS-1$			if (settings.getSection(site.getSecondaryId()) != null)				settings = settings.getSection(site.getSecondaryId());			else				settings = settings.addNewSection(site.getSecondaryId());		}				super.init(site);	}	/* (non-Javadoc)	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)	 */	public void createPartControl(Composite parent) {		Table table = new Table(parent, SWT.MULTI | SWT.FULL_SELECTION);		table.setHeaderVisible(true);		table.setLinesVisible(false);		table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));				TableColumn column = new TableColumn(table, SWT.NONE);		column.setText(Messages.NewsView_Date);		column.setWidth(settings.get("column0.width") == null ? 120 : settings.getInt("column0.width")); //$NON-NLS-1$ //$NON-NLS-2$		column.addControlListener(controlListener);				column = new TableColumn(table, SWT.NONE);		column.setText(Messages.NewsView_Title);		column.setWidth(settings.get("column1.width") == null ? 240 : settings.getInt("column1.width")); //$NON-NLS-1$ //$NON-NLS-2$		column.addControlListener(controlListener);				column = new TableColumn(table, SWT.NONE);		column.setText(Messages.NewsView_Security);		column.setWidth(settings.get("column2.width") == null ? 120 : settings.getInt("column2.width")); //$NON-NLS-1$ //$NON-NLS-2$		column.addControlListener(controlListener);				column = new TableColumn(table, SWT.NONE);		column.setText(Messages.NewsView_Source);		column.setWidth(settings.get("column3.width") == null ? 120 : settings.getInt("column3.width")); //$NON-NLS-1$ //$NON-NLS-2$		column.addControlListener(controlListener);		viewer = new TableViewer(table);		viewer.setLabelProvider(labelProvider);		viewer.setContentProvider(new ArrayContentProvider());		viewer.setComparator(new ViewerComparator() {            public int compare(Viewer viewer, Object e1, Object e2) {	            return ((NewsItem)e2).getDate().compareTo(((NewsItem)e1).getDate());            }		});		viewer.addOpenListener(new IOpenListener() {            public void open(OpenEvent event) {            	showSelected();            }		});		IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();		ITheme theme = themeManager.getCurrentTheme();		if (theme != null) {			table.setForeground(theme.getColorRegistry().get(TABLE_FOREGROUND));			table.setBackground(theme.getColorRegistry().get(TABLE_BACKGROUND));			table.setFont(theme.getFontRegistry().get(TABLE_FONT));			labelProvider.setAddedBackground(theme.getColorRegistry().get(NEW_ITEM_BACKGROUND));			labelProvider.setAddedForeground(theme.getColorRegistry().get(NEW_ITEM_FOREGROUND));			labelProvider.setAddedFont(theme.getFontRegistry().get(NEW_ITEM_FONT));						labelProvider.setReadedBackground(theme.getColorRegistry().get(READED_ITEM_BACKGROUND));			labelProvider.setReadedForeground(theme.getColorRegistry().get(READED_ITEM_FOREGROUND));			labelProvider.setReadedFont(theme.getFontRegistry().get(READED_ITEM_FONT));			theme.addPropertyChangeListener(themeChangeListener);		}				viewer.setInput(newsList);				if (security != null)			CorePlugin.getRepository().allNews(security).addCollectionObserver(collectionObserver);		else			CorePlugin.getRepository().allNews().addCollectionObserver(collectionObserver);				NewsStartupJob job = new NewsStartupJob(security);		job.addJobChangeListener(new JobChangeAdapter() {			/* (non-Javadoc)             * @see org.eclipse.core.runtime.jobs.JobChangeAdapter#done(org.eclipse.core.runtime.jobs.IJobChangeEvent)             */            public void done(IJobChangeEvent event) {            	final NewsStartupJob job = (NewsStartupJob)event.getJob();            	try {            		viewer.getControl().getDisplay().asyncExec(new Runnable() {                        public void run() {            	            if (!viewer.getControl().isDisposed()) {            		            newsList = job.getList();            	            	viewer.setInput(newsList);            	            	for (Iterator iter = newsList.iterator(); iter.hasNext(); )                	        		((NewsItem)iter.next()).addObserver(newsItemObserver);            	            }                        }            		});            	} catch(SWTException e) {            		if (e.code != SWT.ERROR_WIDGET_DISPOSED)            			throw(e);            	}            }		});		job.setUser(false);		job.schedule();	}	/* (non-Javadoc)	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()	 */	public void setFocus() {		if (!viewer.getControl().isDisposed())			viewer.getControl().setFocus();	}	/* (non-Javadoc)	 * @see org.eclipse.ui.part.WorkbenchPart#dispose()	 */	public void dispose() {		if (security != null)			CorePlugin.getRepository().allNews(security).removeCollectionObserver(collectionObserver);		else			CorePlugin.getRepository().allNews().removeCollectionObserver(collectionObserver);		for (Iterator iter = newsList.iterator(); iter.hasNext(); )    		((NewsItem)iter.next()).deleteObserver(newsItemObserver);				IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();		ITheme theme = themeManager.getCurrentTheme();		if (theme != null)			theme.removePropertyChangeListener(themeChangeListener);				super.dispose();	}	public void showNext() {		NewsItem news = getSelectedItem();		TableItem[] items = viewer.getTable().getItems();		if (news == null && items.length != 0) {			viewer.setSelection(new StructuredSelection(items[0].getData()));			viewer.reveal(items[0].getData());			showSelected();			return;		}		for (int i = 0; i < items.length; i++) {			if (items[i].getData() == news) {				i++;				if (i < items.length) {					viewer.setSelection(new StructuredSelection(items[i].getData()));					viewer.reveal(items[i].getData());					showSelected();					return;				}			}		}	}	public void showPrevious() {		NewsItem news = getSelectedItem();		TableItem[] items = viewer.getTable().getItems();		if (news == null && items.length != 0) {			viewer.setSelection(new StructuredSelection(items[items.length - 1].getData()));			viewer.reveal(items[items.length - 1].getData());			showSelected();			return;		}		for (int i = 0; i < items.length; i++) {			if (items[i].getData() == news) {				i--;				if (i >= 0) {					viewer.setSelection(new StructuredSelection(items[i].getData()));					viewer.reveal(items[i].getData());					showSelected();					return;				}			}		}	}	private void showSelected() {		NewsItem news = getSelectedItem();		if (news != null) {			try {				WebBrowser browser = (WebBrowser) getSite().getPage().showView(WebBrowser.VIEW_ID, NewsPlugin.PLUGIN_ID, IWorkbenchPage.VIEW_ACTIVATE);				if (browser != null) {					browser.setUrl(news.getUrl());					news.setRecent(false);					news.setReaded(true);					CorePlugin.getRepository().save(news);				}			} catch (PartInitException e1) {				CorePlugin.logException(e1);			}		}	}	protected NewsItem getSelectedItem() {		if (!viewer.getSelection().isEmpty())			return (NewsItem) ((IStructuredSelection)viewer.getSelection()).getFirstElement();		return null;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -