[]
SpreadJS 디자이너 컴포넌트는 특정 레이아웃을 표시하기 위해 명령 옵션에 정의할 수 있는 다양한 상태를 제공합니다.
inDropdown: 명령이 드롭다운에 있음을 나타냅니다.
isToolbarMode: 툴바 리본 모드를 나타냅니다.
designer.setData 메서드를 사용하여 사용자 지정 상태를 추가할 수 있습니다.
위 상태들은 IF, AND, NOT 같은 수식 표현식을 사용해 명령 옵션에 정의할 수 있습니다. 다음 코드 구문은 "text"와 "bigButton" 명령 옵션에서 다양한 수식 표현식을 사용해 상태를 설정하는 예시입니다:
명령이 드롭다운에 없고 리본이 툴바 모드가 아닐 때 bigButton 옵션을 true로 설정합니다.
text: '=IF(isToolbarMode,"Toolbar Ribbon","Default Ribbon")'
툴바 리본 모드일 때는 text를 "Toolbar Ribbon"으로 설정하고, 그렇지 않으면 "Default Ribbon"으로 설정합니다.
bigButton: '=AND(NOT(inDropdown), NOT(isToolbarMode))'
명령이 드롭다운에 없고 리본이 툴바 모드가 아닐 때 bigButton 옵션을 true로 설정합니다.
참고: commandName 옵션은 수식 표현식을 지원하지 않습니다.
아래 이미지는 기본 리본 모드와 툴바 리본 모드 각각에서 명령어 텍스트와 아이콘이 어떻게 다른지 보여줍니다.
다음 코드 샘플은 위 이미지에 표시된 명령 옵션에서 config 상태를 설정하는 방법을 보여줍니다.
// "Welcome" 명령 정의
var command = {
title: "Welcome",
text: '=IF(isToolbarMode,"툴바 리본","기본 리본")',
iconClass: '=IF(inDropdown, "ribbon-button-sjs","ribbon-button-hi")',
bigButton: '=AND(NOT(inDropdown), NOT(isToolbarMode))',
direction: '=IF(isToolbarMode, "horizontal","vertical")',
visiblePriority: 1000,
commandName: "Welcome",
execute: async (context, propertyName, fontItalicChecked) => {
alert('새 디자이너에 오신 것을 환영합니다.');
}
};
// 기본 설정의 명령 맵에 명령 추가
window.customRibbonConfig = GC.Spread.Sheets.Designer.DefaultConfig;
customRibbonConfig.commandMap = {
Welcome: command
}
// 기본 리본에 버튼 추가
customRibbonConfig.ribbon[0].buttonGroups.unshift({
"label": "New Button",
"thumbnailClass": "welcome",
"commandGroup": {
"children": [
{
"direction": "vertical",
"commands": [
"Welcome"
]
}
]
}
});
customRibbonConfig.ribbon[0].buttonGroups[2].commandGroup.children[0].children.push('Welcome');
// 툴바 설정의 명령 맵에 명령 추가
window.customToolbarConfig = GC.Spread.Sheets.Designer.ToolBarModeConfig;
customToolbarConfig.commandMap = {
Welcome: command
}
// 툴바 리본에 버튼 추가
customToolbarConfig.ribbon.panels[0].buttonGroups.unshift({
"buttonGroupName": "Welcome",
"commandGroup": {
"children": [
"Welcome"
]
}
});
// 기본 리본 모드로 디자이너 컴포넌트 초기화
var designer = new GC.Spread.Sheets.Designer.Designer(document.getElementById("designer_host"));
designer.setConfig(customRibbonConfig);
// 기본 리본과 툴바 리본 모드 전환 버튼 설정
document.getElementById('switch').addEventListener('click', function () {
designer.setConfig(designer.getData('isToolbarMode') ? customRibbonConfig : customToolbarConfig)
});