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

📄 editpane.java

📁 开源的java 编辑器源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	{		super(new BorderLayout());		init = true;		this.view = view;		EditBus.addToBus(this);		textArea = new JEditTextArea(view);		add(BorderLayout.CENTER,textArea);		propertiesChanged();		if(buffer == null)			setBuffer(jEdit.getFirstBuffer());		else			setBuffer(buffer);		loadBufferSwitcher();		init = false;	} //}}}	//{{{ close() method	void close()	{		saveCaretInfo();		EditBus.send(new EditPaneUpdate(this,EditPaneUpdate.DESTROYED));		EditBus.removeFromBus(this);		textArea.dispose();	} //}}}	//}}}	//{{{ Private members	private static Method initBufferSwitcher;	static	{		if(OperatingSystem.hasJava14())		{			try			{				initBufferSwitcher = Java14.class					.getMethod("initBufferSwitcher",					new Class[] { EditPane.class,					BufferSwitcher.class });			}			catch(Exception e)			{				Log.log(Log.ERROR,EditPane.class,e);			}		}	}	//{{{ Instance variables	private boolean init;	private View view;	private Buffer buffer;	private Buffer recentBuffer;	private BufferSwitcher bufferSwitcher;	private JEditTextArea textArea;	//}}}	//{{{ propertiesChanged() method	private void propertiesChanged()	{		TextAreaPainter painter = textArea.getPainter();		painter.setFont(jEdit.getFontProperty("view.font"));		painter.setStructureHighlightEnabled(jEdit.getBooleanProperty(			"view.structureHighlight"));		painter.setStructureHighlightColor(			jEdit.getColorProperty("view.structureHighlightColor"));		painter.setEOLMarkersPainted(jEdit.getBooleanProperty(			"view.eolMarkers"));		painter.setEOLMarkerColor(			jEdit.getColorProperty("view.eolMarkerColor"));		painter.setWrapGuidePainted(jEdit.getBooleanProperty(			"view.wrapGuide"));		painter.setWrapGuideColor(			jEdit.getColorProperty("view.wrapGuideColor"));		painter.setCaretColor(			jEdit.getColorProperty("view.caretColor"));		painter.setSelectionColor(			jEdit.getColorProperty("view.selectionColor"));		painter.setMultipleSelectionColor(			jEdit.getColorProperty("view.multipleSelectionColor"));		painter.setBackground(			jEdit.getColorProperty("view.bgColor"));		painter.setForeground(			jEdit.getColorProperty("view.fgColor"));		painter.setBlockCaretEnabled(jEdit.getBooleanProperty(			"view.blockCaret"));		painter.setLineHighlightEnabled(jEdit.getBooleanProperty(			"view.lineHighlight"));		painter.setLineHighlightColor(			jEdit.getColorProperty("view.lineHighlightColor"));		painter.setAntiAliasEnabled(jEdit.getBooleanProperty(			"view.antiAlias"));		painter.setFractionalFontMetricsEnabled(jEdit.getBooleanProperty(			"view.fracFontMetrics"));		String defaultFont = jEdit.getProperty("view.font");		int defaultFontSize = jEdit.getIntegerProperty("view.fontsize",12);		painter.setStyles(GUIUtilities.loadStyles(defaultFont,defaultFontSize));		SyntaxStyle[] foldLineStyle = new SyntaxStyle[4];		for(int i = 0; i <= 3; i++)		{			foldLineStyle[i] = GUIUtilities.parseStyle(				jEdit.getProperty("view.style.foldLine." + i),				defaultFont,defaultFontSize);		}		painter.setFoldLineStyle(foldLineStyle);		Gutter gutter = textArea.getGutter();		gutter.setExpanded(jEdit.getBooleanProperty(			"view.gutter.lineNumbers"));		int interval = jEdit.getIntegerProperty(			"view.gutter.highlightInterval",5);		gutter.setHighlightInterval(interval);		gutter.setCurrentLineHighlightEnabled(jEdit.getBooleanProperty(			"view.gutter.highlightCurrentLine"));		gutter.setStructureHighlightEnabled(jEdit.getBooleanProperty(			"view.gutter.structureHighlight"));		gutter.setStructureHighlightColor(			jEdit.getColorProperty("view.gutter.structureHighlightColor"));		gutter.setBackground(			jEdit.getColorProperty("view.gutter.bgColor"));		gutter.setForeground(			jEdit.getColorProperty("view.gutter.fgColor"));		gutter.setHighlightedForeground(			jEdit.getColorProperty("view.gutter.highlightColor"));		gutter.setFoldColor(			jEdit.getColorProperty("view.gutter.foldColor"));		gutter.setMarkerHighlightColor(			jEdit.getColorProperty("view.gutter.markerColor"));		gutter.setMarkerHighlightEnabled(jEdit.getBooleanProperty(			"view.gutter.markerHighlight"));		gutter.setCurrentLineForeground(			jEdit.getColorProperty("view.gutter.currentLineColor"));		String alignment = jEdit.getProperty(			"view.gutter.numberAlignment");		if ("right".equals(alignment))		{			gutter.setLineNumberAlignment(Gutter.RIGHT);		}		else if ("center".equals(alignment))		{			gutter.setLineNumberAlignment(Gutter.CENTER);		}		else // left == default case		{			gutter.setLineNumberAlignment(Gutter.LEFT);		}		gutter.setFont(jEdit.getFontProperty("view.gutter.font"));		int width = jEdit.getIntegerProperty(			"view.gutter.borderWidth",3);		gutter.setBorder(width,			jEdit.getColorProperty("view.gutter.focusBorderColor"),			jEdit.getColorProperty("view.gutter.noFocusBorderColor"),			textArea.getPainter().getBackground());		textArea.setCaretBlinkEnabled(jEdit.getBooleanProperty(			"view.caretBlink"));		textArea.setElectricScroll(jEdit.getIntegerProperty(			"view.electricBorders",0));		// Set up the right-click popup menu		JPopupMenu popup = GUIUtilities.loadPopupMenu("view.context");		JMenuItem customize = new JMenuItem(jEdit.getProperty(			"view.context.customize"));		customize.addActionListener(new ActionListener()		{			public void actionPerformed(ActionEvent evt)			{				new GlobalOptions(view,"context");			}		});		popup.addSeparator();		popup.add(customize);		textArea.setRightClickPopup(popup);		// use old property name for backwards compatibility		textArea.setQuickCopyEnabled(jEdit.getBooleanProperty(			"view.middleMousePaste"));		textArea.setDragEnabled(jEdit.getBooleanProperty(			"view.dragAndDrop"));		textArea.propertiesChanged();	} //}}}	//{{{ loadBufferSwitcher() method	private void loadBufferSwitcher()	{		if(jEdit.getBooleanProperty("view.showBufferSwitcher"))		{			if(bufferSwitcher == null)			{				bufferSwitcher = new BufferSwitcher(this);				if(initBufferSwitcher != null)				{					try					{						initBufferSwitcher.invoke(							null,new Object[] {								EditPane.this,								bufferSwitcher							});					}					catch(Exception e)					{						Log.log(Log.ERROR,this,e);					}				}				add(BorderLayout.NORTH,bufferSwitcher);				bufferSwitcher.updateBufferList();				revalidate();			}		}		else if(bufferSwitcher != null)		{			remove(bufferSwitcher);			revalidate();			bufferSwitcher = null;		}	} //}}}	//{{{ handleBufferUpdate() method	private void handleBufferUpdate(BufferUpdate msg)	{		Buffer _buffer = msg.getBuffer();		if(msg.getWhat() == BufferUpdate.CREATED)		{			if(bufferSwitcher != null)				bufferSwitcher.updateBufferList();			/* When closing the last buffer, the BufferUpdate.CLOSED			 * handler doesn't call setBuffer(), because null buffers			 * are not supported. Instead, it waits for the subsequent			 * 'Untitled' file creation. */			if(buffer.isClosed())			{				setBuffer(jEdit.getFirstBuffer());				// since recentBuffer will be set to the one that				// was closed				recentBuffer = null;			}		}		else if(msg.getWhat() == BufferUpdate.CLOSED)		{			if(bufferSwitcher != null)				bufferSwitcher.updateBufferList();			if(_buffer == buffer)			{				Buffer newBuffer = (recentBuffer != null ?					recentBuffer : _buffer.getPrev());				if(newBuffer != null && !newBuffer.isClosed())					setBuffer(newBuffer);				else if(jEdit.getBufferCount() != 0)					setBuffer(jEdit.getFirstBuffer());				recentBuffer = null;			}			else if(_buffer == recentBuffer)				recentBuffer = null;		}		else if(msg.getWhat() == BufferUpdate.LOAD_STARTED)		{			if(_buffer == buffer)			{				textArea.setCaretPosition(0);				textArea.getPainter().repaint();			}		}		else if(msg.getWhat() == BufferUpdate.LOADED)		{			if(_buffer == buffer)			{				textArea.repaint();				if(bufferSwitcher != null)					bufferSwitcher.updateBufferList();				if(view.getEditPane() == this)				{					StatusBar status = view.getStatus();					status.updateCaretStatus();					status.updateBufferStatus();					status.updateMiscStatus();				}				loadCaretInfo();			}		}		else if(msg.getWhat() == BufferUpdate.DIRTY_CHANGED)		{			if(_buffer == buffer)			{				if(bufferSwitcher != null)				{					if(buffer.isDirty())						bufferSwitcher.repaint();					else						bufferSwitcher.updateBufferList();				}			}		}		else if(msg.getWhat() == BufferUpdate.MARKERS_CHANGED)		{			if(_buffer == buffer)				textArea.getGutter().repaint();		}		else if(msg.getWhat() == BufferUpdate.PROPERTIES_CHANGED)		{			if(_buffer == buffer)			{				textArea.propertiesChanged();				if(view.getEditPane() == this)					view.getStatus().updateBufferStatus();			}		}		else if(msg.getWhat() == BufferUpdate.SAVED)		{			if(_buffer == buffer)				textArea.propertiesChanged();		}	} //}}}	//}}}}

⌨️ 快捷键说明

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