@@ -171,6 +171,9 @@ export function addCommands(
171171 return isIdentifying ;
172172 } ,
173173 isEnabled : ( ) => {
174+ if ( tracker . currentWidget ?. model . jgisSettings . identifyDisabled ) {
175+ return false ;
176+ }
174177 const selectedLayer = getSingleSelectedLayer ( tracker ) ;
175178 if ( ! selectedLayer ) {
176179 return false ;
@@ -847,6 +850,195 @@ export function addCommands(
847850 icon : targetWithCenterIcon ,
848851 } ) ;
849852
853+ // Panel visibility commands
854+ commands . addCommand ( CommandIDs . toggleLeftPanel , {
855+ label : trans . __ ( 'Toggle Left Panel' ) ,
856+ isEnabled : ( ) => Boolean ( tracker . currentWidget ) ,
857+ isToggled : ( ) => {
858+ const current = tracker . currentWidget ;
859+ return current ? ! current . model . jgisSettings . leftPanelDisabled : false ;
860+ } ,
861+ execute : async ( ) => {
862+ const current = tracker . currentWidget ;
863+ if ( ! current ) {
864+ return ;
865+ }
866+
867+ try {
868+ const settings = await current . model . getSettings ( ) ;
869+ const currentValue =
870+ settings ?. composite ?. leftPanelDisabled ??
871+ current . model . jgisSettings . leftPanelDisabled ??
872+ false ;
873+ await settings ?. set ( 'leftPanelDisabled' , ! currentValue ) ;
874+ commands . notifyCommandChanged ( CommandIDs . toggleLeftPanel ) ;
875+ } catch ( err ) {
876+ console . error ( 'Failed to toggle Left Panel:' , err ) ;
877+ }
878+ } ,
879+ } ) ;
880+
881+ commands . addCommand ( CommandIDs . toggleRightPanel , {
882+ label : trans . __ ( 'Toggle Right Panel' ) ,
883+ isEnabled : ( ) => Boolean ( tracker . currentWidget ) ,
884+ isToggled : ( ) => {
885+ const current = tracker . currentWidget ;
886+ return current ? ! current . model . jgisSettings . rightPanelDisabled : false ;
887+ } ,
888+ execute : async ( ) => {
889+ const current = tracker . currentWidget ;
890+ if ( ! current ) {
891+ return ;
892+ }
893+
894+ try {
895+ const settings = await current . model . getSettings ( ) ;
896+ const currentValue =
897+ settings ?. composite ?. rightPanelDisabled ??
898+ current . model . jgisSettings . rightPanelDisabled ??
899+ false ;
900+ await settings ?. set ( 'rightPanelDisabled' , ! currentValue ) ;
901+ commands . notifyCommandChanged ( CommandIDs . toggleRightPanel ) ;
902+ } catch ( err ) {
903+ console . error ( 'Failed to toggle Right Panel:' , err ) ;
904+ }
905+ } ,
906+ } ) ;
907+
908+ // Left panel tabs
909+ commands . addCommand ( CommandIDs . showLayersTab , {
910+ label : trans . __ ( 'Show Layers Tab' ) ,
911+ isEnabled : ( ) => Boolean ( tracker . currentWidget ) ,
912+ isToggled : ( ) =>
913+ tracker . currentWidget
914+ ? ! tracker . currentWidget . model . jgisSettings . layersDisabled
915+ : false ,
916+ execute : async ( ) => {
917+ const current = tracker . currentWidget ;
918+ if ( ! current ) {
919+ return ;
920+ }
921+ const settings = await current . model . getSettings ( ) ;
922+ const currentValue =
923+ settings ?. composite ?. layersDisabled ??
924+ current . model . jgisSettings . layersDisabled ??
925+ false ;
926+ await settings ?. set ( 'layersDisabled' , ! currentValue ) ;
927+ commands . notifyCommandChanged ( CommandIDs . showLayersTab ) ;
928+ } ,
929+ } ) ;
930+
931+ commands . addCommand ( CommandIDs . showStacBrowserTab , {
932+ label : trans . __ ( 'Show STAC Browser Tab' ) ,
933+ isEnabled : ( ) => Boolean ( tracker . currentWidget ) ,
934+ isToggled : ( ) =>
935+ tracker . currentWidget
936+ ? ! tracker . currentWidget . model . jgisSettings . stacBrowserDisabled
937+ : false ,
938+ execute : async ( ) => {
939+ const current = tracker . currentWidget ;
940+ if ( ! current ) {
941+ return ;
942+ }
943+ const settings = await current . model . getSettings ( ) ;
944+ const currentValue =
945+ settings ?. composite ?. stacBrowserDisabled ??
946+ current . model . jgisSettings . stacBrowserDisabled ??
947+ false ;
948+ await settings ?. set ( 'stacBrowserDisabled' , ! currentValue ) ;
949+ commands . notifyCommandChanged ( CommandIDs . showStacBrowserTab ) ;
950+ } ,
951+ } ) ;
952+
953+ commands . addCommand ( CommandIDs . showFiltersTab , {
954+ label : trans . __ ( 'Show Filters Tab' ) ,
955+ isEnabled : ( ) => Boolean ( tracker . currentWidget ) ,
956+ isToggled : ( ) =>
957+ tracker . currentWidget
958+ ? ! tracker . currentWidget . model . jgisSettings . filtersDisabled
959+ : false ,
960+ execute : async ( ) => {
961+ const current = tracker . currentWidget ;
962+ if ( ! current ) {
963+ return ;
964+ }
965+ const settings = await current . model . getSettings ( ) ;
966+ const currentValue =
967+ settings ?. composite ?. filtersDisabled ??
968+ current . model . jgisSettings . filtersDisabled ??
969+ false ;
970+ await settings ?. set ( 'filtersDisabled' , ! currentValue ) ;
971+ commands . notifyCommandChanged ( CommandIDs . showFiltersTab ) ;
972+ } ,
973+ } ) ;
974+
975+ // Right panel tabs
976+ commands . addCommand ( CommandIDs . showObjectPropertiesTab , {
977+ label : trans . __ ( 'Show Object Properties Tab' ) ,
978+ isEnabled : ( ) => Boolean ( tracker . currentWidget ) ,
979+ isToggled : ( ) =>
980+ tracker . currentWidget
981+ ? ! tracker . currentWidget . model . jgisSettings . objectPropertiesDisabled
982+ : false ,
983+ execute : async ( ) => {
984+ const current = tracker . currentWidget ;
985+ if ( ! current ) {
986+ return ;
987+ }
988+ const settings = await current . model . getSettings ( ) ;
989+ const currentValue =
990+ settings ?. composite ?. objectPropertiesDisabled ??
991+ current . model . jgisSettings . objectPropertiesDisabled ??
992+ false ;
993+ await settings ?. set ( 'objectPropertiesDisabled' , ! currentValue ) ;
994+ commands . notifyCommandChanged ( CommandIDs . showObjectPropertiesTab ) ;
995+ } ,
996+ } ) ;
997+
998+ commands . addCommand ( CommandIDs . showAnnotationsTab , {
999+ label : trans . __ ( 'Show Annotations Tab' ) ,
1000+ isEnabled : ( ) => Boolean ( tracker . currentWidget ) ,
1001+ isToggled : ( ) =>
1002+ tracker . currentWidget
1003+ ? ! tracker . currentWidget . model . jgisSettings . annotationsDisabled
1004+ : false ,
1005+ execute : async ( ) => {
1006+ const current = tracker . currentWidget ;
1007+ if ( ! current ) {
1008+ return ;
1009+ }
1010+ const settings = await current . model . getSettings ( ) ;
1011+ const currentValue =
1012+ settings ?. composite ?. annotationsDisabled ??
1013+ current . model . jgisSettings . annotationsDisabled ??
1014+ false ;
1015+ await settings ?. set ( 'annotationsDisabled' , ! currentValue ) ;
1016+ commands . notifyCommandChanged ( CommandIDs . showAnnotationsTab ) ;
1017+ } ,
1018+ } ) ;
1019+
1020+ commands . addCommand ( CommandIDs . showIdentifyPanelTab , {
1021+ label : trans . __ ( 'Show Identify Panel Tab' ) ,
1022+ isEnabled : ( ) => Boolean ( tracker . currentWidget ) ,
1023+ isToggled : ( ) =>
1024+ tracker . currentWidget
1025+ ? ! tracker . currentWidget . model . jgisSettings . identifyDisabled
1026+ : false ,
1027+ execute : async ( ) => {
1028+ const current = tracker . currentWidget ;
1029+ if ( ! current ) {
1030+ return ;
1031+ }
1032+ const settings = await current . model . getSettings ( ) ;
1033+ const currentValue =
1034+ settings ?. composite ?. identifyDisabled ??
1035+ current . model . jgisSettings . identifyDisabled ??
1036+ false ;
1037+ await settings ?. set ( 'identifyDisabled' , ! currentValue ) ;
1038+ commands . notifyCommandChanged ( CommandIDs . showIdentifyPanelTab ) ;
1039+ } ,
1040+ } ) ;
1041+
8501042 loadKeybindings ( commands , keybindings ) ;
8511043}
8521044
0 commit comments