웹 UI 라이브러리인 GWC에서 제공하는 Memo 컴포넌트에 대한 예제 코드입니다.
먼저 DOM 구성은 다음과 같습니다. gwc-resizable-panel 태그로 감싸서 크기 조정이 가능하도록 했습니다. 이는 옵션입니다.
그리고 CSS 구성은 다음과 같구요.
.center {
display: flex;
width: 100%;
height: 100%;
justify-content: center;
align-items: center;
flex-direction: column;
gap: 0.5em;
}
.vcenter {
display: flex;
align-items: center;
gap: 0.3em;
}
.hcenter {
flex-direction: column;
display: flex;
_align-items: center;
}
gwc-memo {
width: 100%;
height: 100%;
}
js 코드는 다음과 같습니다.
window.onload = () => {
button1.onclick = () => {
memo.value = "메모에 대한 내용은 코드로 변경할 수 있어요.\n줄 바꿈도 가능하답니다.";
}
button2.onclick = () => {
gwcMessage(memo.value);
}
button3.onclick = () => {
console.log(memo.disabled);
memo.disabled = !memo.disabled;
}
button4.onclick = () => {
console.log(memo.readonly);
memo.readonly = !memo.readonly;
}
memo.addEventListener("change", (event) => {
labelEvent.content = `${memo.value.length}자가 입력됨 (입력가능 문자수 ${memo.maxLength})`;
})
GeoServiceWebComponentManager.instance.update();
};
실행 결과는 다음과 같습니다.
gwc-memo 태그 선언을 통해 value 속성에 문자열을 지정할 때 문자열에 쌍따옴표가 있을 경우 변환이 필요합니다.
<gwc-memo value="${params.content.replaceAll("\"", """)}"></gwc-memo>

