본문 바로가기

전체 글

(48)
동적 HTML 삽입 스크립트를 사용하여 동적으로 HTML을 삽입할 수 있다. HTML을 삽입하고자하는 HTML노드를 query를 활용하여 얻고 DOM 스크립트 및 JQuery를 사용하여 작업을 수행한다. HTML을 삽입하고 자하는 html node를 얻기위해서는 query를 작성해야 하는데 DOM과 jquery 모두 비슷하게 작성한다. jquery : $("div[data-bind=d01] div article"); DOM: document.querySelector("div[data-binding='do1'] div article"); 위 예에서 쿼리는 다음과 같이 해석된다. 1. 속성이 "data-bind"이고 값이 "do1"인 div 를 찾고 2. 그 자식 중 div 노드를 찾고 3. 또 그자식 중 article 노드를..
동적 스타일 적용 및 해제 스크립트로 동적으로 스타일을 적용하거나 해제할 수 있다. // 동적 스타일 설정 function applyDynamicStyle() { var sheet = document.createElement('style'); sheet.id = "style_target1"; // 아이디 설정 // 스타일 설정 sheet.innerHTML = "button#target1{border:2px solid black; background-color:blue;}"; document.head.appendChild(sheet); } // 스타일 제거 function removeStyle() { var sheet1 = document.getElementById("style_target1"); if(sheet1 != null) ..
MultiPageEditor Page 위에 중첩 에디터 구현 프로젝트 수행 도중 디자인 설계 에디터 우측에 접었다 폈다하는 텍스트 에디터를 추가해야 하는 필요성이 생겨 중첩된 에디터 구현 해보았다. 기본적인 아이디어는 MultiPageEditor의 "addPage" 함수를 참조 하였다. public void addPage(int index, IEditorPart editor, IEditorInput input) 기본 컨셉은 에디터가 생성되기 위해서는 "IEditorSite" 인스턴스가 필요한데 이는 부모 에디터인MultiPageEditor의 MultiPageEditorSite 클래스를 생성하여 구하고 이를 중첩하여 생성 시킬 에디터의 init(IEditorSite, IEditorInput)에 전달하여 기능을 구현하는 것이다. ▼중첩 에디터 예시 ▼중첩 에디터 구현..
SashForm을 활용한 보조영역 펼침 접힘 구현 UI 작업을 하다보면 아래와 같이 보조 영역에 대한 펼침과 접힘을 구현해야 할 경우가 생긴다. 이경우 SWT SashForm을 활용하는 것이 가장 깔끔하게 작업을 마무리 할 수 있다. ▼ 예제의 UI 구성 SashForm을 구성하는 컴포지트를 생성하고 각 컴포지트의 비중을 설정하는 것은 아래의 코드로 구현된다. // SashForm 생성 SashForm sashForm = new SashForm(compositeBody, SWT.NONE); // 메인 컴포지트 생성 Composite compositeMain = new Composite(sashForm, SWT.NONE); compositeMain.setBackground(SWTResourceManager.getColor(SWT.COLOR_GREEN));..
타이머 설정 안드로이드에서는 Handler 객체를 통해서 타이머를 구현한다. Handler의 익명 클래스의 함수의 handleMessage() 함수를 통해 Handler 객체가 메시지를 받을 때 작업을 수행하도록 한다. Handler.sendEmptyMessage(int what); // 메시지 즉시 전송 Hanlder.sendEmptyMessageDelayed(int what, long delayMillis); // 일정 시간 이후 메시지 전송 sendEmptyMessageDelayed() 함수를 통해 타이머 기능을 수행 할 수 있게 된다. Handler mHandler = new Handler() { // 메시지를 수신 받아 처리한다. @Override public void handleMessage(Message..
find_if()함수에 사용되는 함수객체 자꾸만 까먹어서 이렇게 블로그에 정리해본다. 맨날 쓸려면 원형을 까먹어서 참.... 예를 들어 백터의 원소를 찾기위해 find_if()함수를 사용할때 함수 마지막 인자로 함수객체인자를 전달하는데 다음과 같다. struct _info { int a; //
Canvas를 활용한 Custom 버튼 활용 상태를 Normal, Hover, Click, Toggle(선택한 상태)로 구분한 Custom 버튼을 Canvas를 상속받아 구현하였다. 또한 해당 Custom 버튼을 컴포지트에서 생성하여 활용하는 sample 코드도 구현하였다. 상단의 "ADD" 버튼을 선택하면 하단의 컴포지트에서 Custom 버튼이 생성되는 단순한 코드이다. 다면 주의할 점은 버튼을 생성하고 부모 컴포지트에서 "layout()"함수를 호출해줘야 한다는 점이다. "layout()"함수를 호출해주지 않으면 생성된 객체의 객체크기가 설정되지 않아 객체를 확인할 수 없게 된다. // TestApp.java // Custom 버튼 추가 btnNewButton.addSelectionListener(new SelectionAdapter() { @..
JSONObject 순회 JSONObject의 keySet()의 iterator()를 활용하여 순회한다. JSONObject의 keySet()은 LinkedHashMap 객체! JSONObject objModel = (JSONObject) JSONValue.parse( jsonData ); Iterator iter = objModel.keySet().iterator(); while( iter.hasNext() ) { String key = (String)iter.next(); if(objModel.get(key) instanceof JSONObject) { JSONObject value = (JSONObject) objModel.get(key); // 작업 .... } }