2012-04-06 5 views
0

메인 툴바에 동적으로 버튼을 만들어야합니다. 솔루션을 찾았지만 버튼 하나만 만들 수 있습니다 (동적 기여 항목 - 클래스는 ContributionItem까지 확장). 하지만 하나 이상의 단추를 만들어야하지만 솔루션을 찾을 수 없습니다.동적으로 툴바 아이템

나는 메뉴 및 툴바의 구조를 포함하는 XML 파일을 구문 분석하는 플러그인을 만드는 작업으로 싸우고 있습니다. Visual Studio 용 플러그인을 이미 만들었습니다. 그 원칙은 매우 쉽지만, Eclipse에서는 그렇지 않다는 것을 빨리 알았습니다. 작지만 중요한 타자가 하나 있습니다. 플러그인은 Eclipse에서 선언적으로 구현됩니다. 파일 plugin.xml은 플러그인 인프라의 요지이며 자바 코드는 단지 부수적 인 것입니다.

고객이 선택한 프로젝트가 변경 될 때마다 메뉴와 도구 모음을 새로 고칩니다. Eclipse에는 작업을 완료하는 데 필요한 몇 가지 기능이 없습니다. 메인 메뉴와 메인 도구 모음은 이클립스의 시작시에 만들어지기 때문에 다시 빌드 할 필요가 거의 없다.

+0

좀 더 구체적 일 수 있습니까? 예 : 버튼을 메인 툴바 또는 어디에? Eclipse에서는 보통 툴바에 선언적 기여를 사용합니다. –

+0

내 게시물을 업데이트했습니다. –

답변

0

내 이해에서 프로젝트 탐색기 (예 : 1 프로젝트는 자바 프로젝트, 다른 하나는 자바 스크립트 등)의 선택에 따라 기본 도구 모음에 다른 버튼을 갖고 싶습니다. 먼저 기본 도구 모음에 참여해야합니다. 나는 구글이 도움이 될 수 있도록 약간의 튜토리얼이 있다고 생각한다. 주요 단계는 다음과 같습니다. 1. 명령 (org.eclipse.ui.commmands)을 작성하십시오. 2. 이전에 선언 된 명령 ID가 인 핸들러 (org.eclipse.ui.handlers)를 작성하십시오. 3. 기본 도구 모음에 참여하십시오 메뉴 org.eclipse.ui.main.toolbar? after = misc

메뉴 항목/버튼을 활성화/비활성화하는 메뉴 기여 및 commandId가있는 org.eclipse.ui.menus (org.eclipse.ui.menus) 선언적으로 또는 "혼합"할 수 있습니다. 선언적으로 예를 들어 의미합니다. enabledWhen/visibleWhen을 사용하여 ... 혼합은 property tester (org.eclipse.core.expressions.propertyTester)를 사용하는 것을 의미합니다. 이를 통해 Java 코드에서 "활성화 로직"을 정의 할 수 있습니다.

+0

저는 지난 두 달 동안 Google과 싸워 왔습니다. 모든 자습서에는 플러그인 설명자에 선언 된 일부 명령 세트가 있다고 가정합니다. 하지만 나는 그것을 모두 동적으로 생성해야하며 그것은 해결할 수없는 문제인 것처럼 보인다. 나는 어떤 항목도 선언 할 수 없다. 나는 명령을 미리 모른다. 여러 가지가 작동합니다. 팝업 메뉴가 작동하지만 각보기 또는 편집기에 대한 동적 팝업 메뉴를 등록 할 수 없습니다. 주 메뉴는 작동하지만 Eclipse가 시작을 완료 할 때 빌드되어 있어야합니다. 메뉴의 데이터 모델의 추가 변경 사항은보기에 불확실하게 나타납니다. 보기 업데이트를 제어 할 수 없습니다. –

+0

(참고 : 모든보기에 대한 팝업 메뉴를 등록하는 것은 필자의 과제 중 하나입니다. [글로벌 컨텍스트 메뉴 수신기 또는 기타 등록 된 모든보기에 대한 컨텍스트 메뉴를 등록하는 방법] (http://stackoverflow.com)/question/9988349/global-context-menu-listener-or-else-how-to-register-context-menu-for-all-views), [모든보기에 대한 동적 팝업 메뉴] (http://stackoverflow.com/questions/10087095/dynamic-popup-menu-for-all-views) 및 [키 바인딩을 사용한 동적 메뉴 제공] (http://stackoverflow.com/questions/10028967/dynamic-menu-contribution-with-key-bindings)/10100755)) –

0

Eclipse e4에서 UI는 EMF 기반 모델에서 생성됩니다. Application.e4xmi는 해당 모델의 기본 역할을합니다. 모델에 대한 기여는 다시 XML 인 조각 또는 프로세서를 통해 수행 할 수 있습니다. 프로세서는 Java로 작성되며 런타임시 모델을 수정하기 위해 부품 서비스와 같은 e4 서비스를 사용합니다.

사용자 정의 XML을 구문 분석하고 그에 따라 eclipse e4 모델을 수정하는 프로세서를 작성하려고한다고 생각합니다.

관련 문제