2012-03-05 3 views
0

NetBeans 플랫폼 7.0.1을 사용하고 this (now “obsolete”) tutorial을 사용하여 새 언어에 대한 지원을 구현했습니다. NetBean의 편집기 창 닫기 작업 수행

우리의 모든 내용이 데이터베이스에 저장, 그리고 파일에 대한 때문에

, 우리는이처럼를 엽니 다

FileSystem fs = FileUtil.createMemoryFileSystem(); 
FileObject fo = fs.getRoot().createData(fileName, fileExtension); 
… write contents from database to `fo` …. 

DataObject data = MyMultiDataObject.find(fo); 
EditorCookie.Observable cookie = data.getCookie(EditorCookie.Observable.class); 
cookie.open(); 
… forces undock of editor window … 

그리고, 우리의 layer.xml에서 콘텐츠를 전송 Save에 사용자 정의 버튼을 추가 한 데이터베이스에.

그러나 사용자가 파일을 닫을 때 (탭이나 창을 닫음으로써) 파일을 저장하는 방법을 찾지 못했습니다.

PropertyChangeListenerCookie에 추가하고 PROP_DOCUMENT (및 newValue() == null)을 보면서 창이 닫힐 때 트릭을 수행하는 것으로 보입니다. 그렇다면 확인 창에서 반환 값을 얻는 방법은 무엇입니까 (변경 후 파일이 닫힐 때를 말합니다. 메시지 File xxx.xxx is modified. Save it?)?

답변

0

글쎄, 우리는 잘못된 방식으로 문제에 접근 해왔다.

우리가 메모리 파일을 여는 때문에

, 그것은,

fo.addFileChangeListener(new CustomFileChangeListener()); 

public class CustomFileChangeListener implements FileChangeListener { 
    @Override 
    public void fileChanged(FileEvent fe) { 
     ... file has been saved in the editor, sync with database ... 
    } 
} 

를 사용하여 그리고 그런 식으로 동기화를 유지함으로써, 우리는 파일 자체의 변경을 수신해야 넷빈즈-DEV 목록에서 제안되었다 내장 된 NetBeans 플랫폼 "저장"기능을 활용할 수 있습니다.