0
나는 PreferencePage를 확장하는 MyPreferencePage를 가지고 있습니다. PreferencePage 안에 getApplyButton() 메서드가 있습니다.이 메서드를 재정 의하여 적용 단추를 얻습니다.환경 설정 페이지에서 적용 버튼을 얻으십시오 + swt eclipse
환경 설정 대화 상자의 데이터에 적용한 일부 유효성 검사기가 있고 모든 데이터가 올바르지 않을 때까지 적용 버튼이 필요합니다. 적용 버튼을 사용하지 않으려합니다.
열
public class ScenariosEditingSupport extends EditingSupport {
private final TableViewer viewer;
private final CellEditor editor;
private final DefaultColorsPreferencePage preferencePage;
public ScenariosEditingSupport(TableViewer viewer) {
super(viewer);
this.viewer = viewer;
this.editor = new TextCellEditor(viewer.getTable());
this.preferencePage = new DefaultColorsPreferencePage();
}
@Override
protected CellEditor getCellEditor(Object element) {
return editor;
}
@Override
protected boolean canEdit(Object element) {
return true;
}
@Override
protected Object getValue(Object element) {
return ((Content) element).getExpression();
}
@Override
protected void setValue(Object element, Object changedExpression) {
String expression = String.valueOf(changedExpression);
if(Repository.isExpressionValid(expression)){
((Content) element).setExpression(expression);
viewer.update(element, null);
}
else{
preferencePage.setValid(false);
preferencePage.setErrorMessage("Expression is not valid, enter a valid expression and try again!");
((Content) element).setExpression(expression);
viewer.update(element, null);
}
}
}
페이지의 유효성을 원하는 곳 어디에서나 변경할 수 있습니다. 예를 들어 createContents 또는 페이지의 컨트롤에있는 모든 리스너를 수정합니다. –
나는 preferencePage.setValid (false)를 호출했다. 그리고 그것은 적용 및 확인 버튼을 비활성화하지 않았다. – wearybands
나는 환경 설정 페이지 안에 테이블을 가지고 있는데, 사용자가 해당 열에 값을 입력 할 때 편집 지원이있다. 유효하지 않다면 적용 버튼을 비활성화하고 싶다. , 업데이트 된 코드를 확인하십시오 – wearybands