2012. 4. 3.

이클립스 플러그인 디폴트 아이콘 사용하기

http://blog.cypal-solutions.com/2008/02/eclipse-icons.html

2012. 1. 9.

개발 결과물로서 영구문서로 보존되어야 할 내용


1. 중요한 모듈의 고차원 구조에 대한 UML다이어그램
2. 관계형 스키마의 ER다이어그램
3. 한쪽이나 두쪽분량의 시스템을 빌드하는방법
4. 테스트하는 방법
5. 소스코트 컨트롤방법 설명 등

UML실전에서는 이것만 쓴다 58페이지

2012. 1. 6.

이클립스 RCP 컨텍스트 메뉴 추가


http://www.vogella.de/articles/EclipseCommands/article.html
http://www.ralfebert.de/blog/eclipsercp/commands_context_menu/
http://richclientplatform.blogspot.com/2007/07/new-menu-contribution-extension.html
http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.ui.examples.contributions/


1. 메뉴확장포인트추가

eclipse.ui.menus
메뉴 컨트리뷰션의 로케이션URI 는
menu:org.eclipse.ui.main.menu?after=additions(메뉴)
toolbar:org.eclipse.ui.main.toolbar?after=additions(툴바)
menu:org.eclipse.ui.examples.contributions.view?after=additions(뷰의메뉴)
toolbar:org.eclipse.ui.examples.contributions.view?after=additions(뷰의툴바)
popup:org.eclipse.ui.examples.contributions.view?after=additions(뷰의팝업)
popup:org.eclipse.ui.popup.any?after=additions(팝업 : 모든곳)
menu:help?after=additions(도움말)
등이 가능하다.
command 태그로 command를 지정하며, 화면에 보여질 지 여부, 특정 객체를 선택했을 때
보여질지 여부 등을 제어할 수 있다.

eclipse.ui.commands
실제 수행될 커맨드를 추가한다.
커맨드는 복수의 핸들러를 두어 세부 조건에 의해 호출하는 핸들러를 변경할 수 있다.


2. 메뉴를 표시하고자 하는 뷰에 메뉴 등록
아래는 컨텍스트 메뉴를 위한 메뉴를 생성하여 뷰에 넣는 예제임

// 메뉴 매니저 생성
MenuManager contextMenu = new MenuManager();
contextMenu.setRemoveAllWhenShown(true);

// 메뉴 메니저를 WorkbenchSite에 등록
getSite().registerContextMenu(contextMenu, viewer);

// 실제 뷰컨트롤에 메뉴콤포넌트를 생성하여 등록
Control control = viewer.getControl();
Menu menu = contextMenu.createContextMenu(control);
control.setMenu(menu);

2011. 5. 27.

종합소득 신고시 각종 공제 관련 금액 확인 하는 법

국민건강보험 및 연금보험
사회보험 통합 징수 포털 - http://si4n.nhic.or.kr/
(지역보험 납부내역만 확인할 수 있음, 직장가입내용은 원청징수서류로 확인)

신용카드/현금카드 등 개인연금 장마저축 등
국세청 연말정산 간소화 시스템 - http://www.yesone.go.kr
의 소득공제 자료 조회 출력 화면

기타 근로 소득이 있을 경우에는
국세청 홈텍스 -> 조회서비스 -> 지급명세서의 근로소득 내용을 참고하여
4대 보험료 납입내역을 확인한다.

2011. 5. 25.

java 웹어플리케이션의 WEB-INF 폴더 접근 하는 방밥

먼저 ServletContext 객체 취득
ServletContext application = getServletContext();

파일 접근
FileReader reader = new FileReader(application.getRealPath("/WEB-INF/data/dat.xml"));

이 후의 과정은
....
생략

java 오브젝트를 xml로 변환하기

1. xstream api를 이용한 방법
http://www.ibm.com/developerworks/jp/xml/library/x-xstream/

2. javaSE6부터 추가된 기능인 JAXB를 이용한 방법
http://d.hatena.ne.jp/hiroxpepe/20091128/1259376175

2011. 5. 24.

Jackson JSON 프로세서와 Apache Wink의 조합

JAX-RS와 Ajax를 간단히 통합한다.

apache wink 는 JAX-RX 1.0사양의 구현체이다.
wink에는 json마샬러 및 언마살러를 위해 json.org 및 jettison등의 프로바이더가 포함되어 있지만,
이들 프로바이더는 배열의 표시에 조금 문제가 있으며 또한 리턴값이 제한되어 있다.
따라서, JAX-RS 서비스 코딩 및, JAX-RS 서비스 클라이언트로서의 Ajax어플리케이션 코딩이 간단치 않다.
JSON 프로바이더로서 Jackson을 사용하면 기존 Apache Wink 대응 웹 어플리케이션 구성시,
위와 같은 문제점을 해결 할 수 있다.



원문기사 url : http://www.ibm.com/developerworks/jp/web/library/wa-aj-jackson/index.html

----------------------------------
Jackson JSON을 위한 web.xml의 구성

<servlet>
<servlet-name>WinkServlet</servlet-name>
<servlet-class>org.apache.wink.server.internal.servlet.RestServlet</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.ibm.developerworks.winkJackson.WinkApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>WinkServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

--------------------
WinkApplication 샘플

package com.ibm.developerworks.winkJackson;

import java.util.HashSet;
import java.util.Set;

import javax.ws.rs.core.Application;

// Jackson imports
import org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider;
import org.codehaus.jackson.map.AnnotationIntrospector;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;

public class WinkApplication extends Application {

/**
* Get the list of service classes provided by this JAX-RS application
*/
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> serviceClasses = new HashSet<Class<?>>();
serviceClasses.add(HelloWorlds.class);
return serviceClasses;
}

@Override
public Set<Object> getSingletons() {
Set<Object> s = new HashSet<Object>();

// Register the Jackson provider for JSON

// Make (de)serializer use a subset of JAXB and (afterwards) Jackson annotations
// See http://wiki.fasterxml.com/JacksonJAXBAnnotations for more information
ObjectMapper mapper = new ObjectMapper();
AnnotationIntrospector primary = new JaxbAnnotationIntrospector();
AnnotationIntrospector secondary = new JacksonAnnotationIntrospector();
AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary);
mapper.getDeserializationConfig().setAnnotationIntrospector(pair);
mapper.getSerializationConfig().setAnnotationIntrospector(pair);

// Set up the provider
JacksonJaxbJsonProvider jaxbProvider = new JacksonJaxbJsonProvider();
jaxbProvider.setMapper(mapper);

s.add(jaxbProvider);
return s;
}
}