'eclipse plugin'에 해당되는 글 1건

  1. 2009.09.23 Scala로 Eclipse plugin 개발하기

Scala 로 Eclipse 플러그인을 개발하는 것에 대해 간략히 기록해본다.

  1. eclipse scala plugin 을 설치해야 한다. 여기의 내용을 참고하여 설치한다.
  2. 다음으로 플러그인 프로젝트(Scala 프로젝트가 아니다)로 새 프로젝트를 하나 만든다.
  3. 프로젝트에서 마우스 우클릭 Scala -> Add Scala Nature 를 선택하여 Scala 관련 기능을 쓸 수 있게 한다.
  4. 플러그인 설정 편집창의 dependency 탭에서 scala.library를 추가한다.

이렇게 한다음 Scala 로 org.eclipse.jface.viewers.IStructuredContentProvider 구현체를 만들어 사용해보았다.

package scala_test
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.Viewer;
class ScalaContentProvider extends IStructuredContentProvider {
    def inputChanged(v : Viewer , oldInput: Object, newInput:Object) : Unit = {
    }
    def dispose() {
    }
    def getElements(parent:Object):Array[Object] = {
        val x : Array[Object] = Array( "Scala 1", "Scala 2", "Scala 3" );
        return x ;
    }
}

그리고 다음처럼 이 클래스를 java로 되어있는 쪽에서 가져다 쓴다.

    public void createPartControl(Composite parent) {
        this.viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
                | SWT.V_SCROLL);
        
        ScalaContentProvider c = new ScalaContentProvider();
        for(Class i : ScalaContentProvider.class.getInterfaces()) {
            System.out.println(i.getName()) ;
        }
        this.viewer.setContentProvider(c);
        this.viewer.setLabelProvider(new ViewLabelProvider());
        this.viewer.setInput(getViewSite());
    }

실행시켜보면 잘 된다.

그런데 아직 플러그인에 문제가 있는 것인지 ScalaContentProvider를 가져다 쓰는 쪽에 오류마크가 뜬다. (실행에는 문제가 없다.) 아래 화면처럼 ScalaContentProviderorg.eclipse.jface.viewers.IStructuredContentProvider를 구현하는데도 이런 마크가 표시된다. 아직은 Scala를 eclipse 플러그인 개발하는데 쓰기는 쉽지 않은 듯 하다.


일단 임시 해결책이 있는데, org.eclipse.jface.viewers.IStructuredContentProvider로 캐스팅을 하는 것이다. 좀 마음에 안들기는 하지만 일단 에러 표시는 사라진다.

        this.viewer.setContentProvider((IStructuredContentProvider)c) ;
Posted by lispholic
,