E4 RCP 응용 프로그램의 경우 시작하려면 몇 가지 코드를 첨부해야합니다.
기본적으로 IEventBroker를 사용하여 버튼을 사용하여 TextViewer의 페인터를 추가/제거합니다.
public class WhitespaceCharactersHandler {
boolean status;
@Execute
public void execute(final MToolItem item, IEventBroker broker) {
if (item.isSelected()){
status = true;
}
else{
status = false;
}
broker.post(EventConstants.WHITE_CHARACTERS_STATUS, status);
}
}
Contants 인터페이스 클래스
import org.eclipse.jface.text.WhitespaceCharacterPainter;
public class TheEditor{
@Inject MPart thePart;
private WhitespaceCharacterPainter whitespaceCharacterPainter;
@PostConstruct
public void postConstruct(Composite parent) {
TextViewer tv = new TextViewer(parent, SWT.MULTI | SWT.V_SCROLL |SWT.H_SCROLL);
whitespaceCharacterPainter = new WhitespaceCharacterPainter(tv);
tv.addPainter(whitespaceCharacterPainter);
whitespaceCharacterPainter.deactivate(true);
}
@Inject
@Optional
public void updatePartByWSButton(@UIEventTopic(EventConstants.WHITE_CHARACTERS_STATUS) boolean newButtonStatus) {
final MElementContainer<MUIElement>container = thePart.getParent();
if (thePart.equals((MPart)container.getSelectedElement())){
wsToolBarButtonStatus = newButtonStatus;
if(wsToolBarButtonStatus){
this.whitespaceCharacterPainter.paint(IPainter.CONFIGURATION);
}
else{
whitespaceCharacterPainter.deactivate(true);
tv.removePainter(whitespaceCharacterPainter);
}
}
}
}
처리기 위에 주석으로하는 StyledText는
styledText = tv.getTextWidget();
로부터 얻어 질 수
:
public interface EventConstants {
String WHITE_CHARACTERS_STATUS = "WHITE-CHARACTERS-STATUS";
}
연장 방법 [WhitespaceCharacterPainter] (https://git.eclipse.org/c/platform/eclipse.platform.text.git/tree/org.eclipse.jface.text/src/org/eclipse/jface/text) /WhitespaceCharacterPainter.java) ('TextViewer'를 통해'StyledText' 위젯을 사용 하시겠습니까?) – howlger
멋진 아이디어! 나는 그것에게 시도를 줄 것이다 ... – NormanC