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

📄 sourcepage.java

📁 eclipse开发笔记
💻 JAVA
字号:
package com.plugindev.addressbook.editors;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.FormColors;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.editor.FormEditor;
import org.eclipse.ui.forms.editor.FormPage;
import org.eclipse.ui.forms.events.ExpansionAdapter;
import org.eclipse.ui.forms.events.ExpansionEvent;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.forms.widgets.TableWrapData;
import org.eclipse.ui.forms.widgets.TableWrapLayout;

import com.plugindev.addressbook.Activator;
import com.plugindev.addressbook.util.ImageCache;
import com.plugindev.addressbook.util.ImageKeys;
import com.plugindev.addressbook.util.Messages;

public class SourcePage extends FormPage {
	private String peopleName;
	private Text text;
	public SourcePage(FormEditor editor){
		super(editor, "source",Messages.PAGE_NAME_SOURCE);
		this.peopleName = editor.getEditorInput().getName();
	}
	protected void createFormContent(IManagedForm managedForm) {
		ScrolledForm form = managedForm.getForm();
		FormToolkit toolkit = managedForm.getToolkit();
		form.setText(Messages.PAGE_NAME_SOURCE);
		form.setBackgroundImage(ImageCache.getInstance().getImage(ImageKeys.getImageDescriptor(ImageKeys.IMG_FORM_BG)));
		TableWrapLayout layout = new TableWrapLayout();
		layout.leftMargin = 10;
		layout.rightMargin = 10;
		form.getBody().setLayout(layout);
		createFormTextSection(form, toolkit);
	}
	
	private void createFormTextSection(final ScrolledForm form, FormToolkit toolkit) {
		Section section =
			toolkit.createSection(
				form.getBody(),
				Section.TWISTIE | Section.DESCRIPTION);
		section.setActiveToggleColor(
			toolkit.getHyperlinkGroup().getActiveForeground());
		section.setToggleColor(
			toolkit.getColors().getColor(FormColors.SEPARATOR));
		toolkit.createCompositeSeparator(section);
		text = toolkit.createText(section, "源代码", SWT.WRAP|SWT.FLAT|SWT.READ_ONLY);
		loadSource();
		section.setClient(text);

		section.addExpansionListener(new ExpansionAdapter() {
			public void expansionStateChanged(ExpansionEvent e) {
				form.reflow(false);
			}
		});

		section.setText("显示源代码");
		section.setDescription("显示源代码文件中的内容");
		TableWrapData td = new TableWrapData();
		td.align = TableWrapData.FILL;
		td.grabHorizontal = true;
		section.setLayoutData(td);
		td = new TableWrapData();
		td.align = TableWrapData.CENTER;
		text.setLayoutData(td);
		text.setFont(new Font(text.getDisplay(), new FontData("Tahoma", 9, SWT.NORMAL)));
		text.getBorderWidth();
	}
	/*
	 * 在13.6小节加入,从文件中读取源代码
	 */
	public void loadSource() {
		if(text == null)
			return;
		File file = Activator.getDefault().getStateLocation().
		append(peopleName +".addr").toFile();
		if(file.exists() == false){
			text.setText("");
			return;
		}
		StringBuffer buffer = new StringBuffer();
		try {
			BufferedReader reader;
			reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
			String temp = reader.readLine();

			while(temp != null)
			{
				if(temp.contains("<list") || temp.contains("</list>"))
					buffer.append("\t");
				else if(temp.contains("<textItem"))
					buffer.append("\t\t");
				else if(temp.contains("<choiceItem")|| temp.contains("</choiceItem>"))
					buffer.append("\t\t");
				else if(temp.contains("<choiceString"))
					buffer.append("\t\t\t");
				buffer.append(temp);
				buffer.append("\n");
				temp = reader.readLine();
			}
		} catch (FileNotFoundException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}finally{
			text.setText(buffer.toString());
		}
	}
}

⌨️ 快捷键说明

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