Changeset 5699


Ignore:
Timestamp:
10/09/14 14:04:19 (10 years ago)
Author:
olhsha@mpi.nl
Message:

another attempt to commit my changes for groups

Location:
ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex
Files:
32 edited

Legend:

Unmodified
Added
Removed
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/browser/Browse.mxml

    r4156 r5699  
    2626                        import clarin.cmdi.componentregistry.services.ProfileInfoService;
    2727                        import clarin.cmdi.componentregistry.services.ProfileListService;
     28                        import clarin.cmdi.componentregistry.services.RegistrySpace;
    2829                       
    2930                        import mx.controls.Alert;
    3031                        import mx.events.IndexChangedEvent;
     32                        import mx.utils.object_proxy;
    3133                       
    3234                        public static const START_ITEM_LOADED:String = "startItemLoaded";
    3335                       
    3436                        private var startupItemLoaded:Boolean = false;
    35                         private var _userSpace:String = Config.SPACE_PUBLIC;
    36                        
    37                         [Bindable]
    38                         private var componentsSrv:ComponentListService = Config.instance.getComponentsSrv(Config.instance.space);
    39                         [Bindable]
    40                         private var profilesSrv:ProfileListService = Config.instance.getProfilesSrv(Config.instance.space);
     37                       
     38                        [Bindable]
     39                        private var componentsSrv:ComponentListService = Config.instance.getComponentsSrv();
     40                        [Bindable]
     41                        private var profilesSrv:ProfileListService = Config.instance.getProfilesSrv();
    4142                       
    4243                        [Bindable]
     
    7677                                _deleteSrvComponents.addEventListener(_deleteSrvComponents.ITEM_DELETED, handleItemDeleted);
    7778                               
    78                                 Config.instance.addEventListener(Config.USER_SPACE_TOGGLE_EVENT, toggleUserSpace);
    79                                 Config.instance.addEventListener(Config.USER_SPACE_TOGGLE_EVENT, setUserSpace);
    80                        
    81                                 setUserSpace();
    82 
    83                         }
    84                        
    85                         private function toggleUserSpace(event:Event):void {
    86                                 _userSpace = Config.instance.space;
    87                                 componentsSrv = Config.instance.getComponentsSrv(_userSpace);
    88                                 profilesSrv = Config.instance.getProfilesSrv(_userSpace);
    89                                 refresh();
     79                                Config.instance.addEventListener(Config.REGISTRY_SPACE_TOGGLE_EVENT, toggleRegistrySpace);
     80                               
     81                        }
     82                       
     83                        private function toggleRegistrySpace(event:Event):void {
     84                                componentsSrv = Config.instance.getComponentsSrv();
     85                                profilesSrv = Config.instance.getProfilesSrv();
     86                                refresh();                             
     87                                registrySpaceComboBox.setSelectedIndex();
    9088                        }
    9189                       
     
    137135                                                componentInfoPage.infoPanel.setPanel(Config.instance.browserPanel);     
    138136                                        } else
    139                                                 loadGroupItem(startupItemId);
    140                                 }
    141                         }
    142                        
    143                         private function loadGroupItem(startupItemId:String):void{
    144                                 Config.instance.getComponentsSrv(Config.instance.space).getComponent(startupItemId, function(item:ItemDescription):void{
    145                                         Config.instance.getListGroupsOfItemService().addEventListener(ListGroupsOfItemService.GROUPS_LOADED, function():void{
    146                                                 var group:Group = (Config.instance.getListGroupsOfItemService().groups.getItemAt(0)) as Group;
    147                                                 if (item.isProfile){
    148                                                         selectedProfileSrv = new ProfileInfoService();
    149                                                         profileInfoPage.infoPanel.setPanel(Config.instance.browserPanel);       
    150                                                 } else {
    151                                                         selectedComponentSrv = new ComponentInfoService();
    152                                                         componentInfoPage.infoPanel.setPanel(Config.instance.browserPanel);     
    153                                                 }
    154 
    155                                                 userSpaceCB.setSelectedItem(null, ""+group.id);
    156                                                 Config.instance.selectedGroup = ""+group.id;
    157                                                 Config.instance.userSpace = Config.SPACE_USER;
    158                                                 loadStartupItem(item);
    159                                                 Config.instance.dispatchEvent(new GroupSelectionEvent(""+group.id, group.name));
    160                                         });
    161                                         Config.instance.getListGroupsOfItemService().loadGroupsForItem(startupItemId);
    162                                 }
    163                         );
    164                         }
     137                                                throw "Cannot find the item "+startupItemId+" in the current registries.  :S"
     138                                }
     139                        }
     140                       
     141               
    165142                       
    166143                        private function loadStartupItem(item:ItemDescription):void {
     
    183160                        }
    184161                       
    185                         public function setSelectedDescription(desc:ItemDescription):void {
     162                        public function setSelectedDescription(desc:ItemDescription):void {                             
    186163                                if (desc.isProfile) {
    187164                                        tabnav.selectedIndex = 0;
     
    219196                        }
    220197                       
    221                         private function setUserSpace(event:Event = null):void {
    222                                 _userSpace=Config.instance.space;
    223                                 userSpaceCB.setSelectedItem(Config.instance.space, Config.instance.selectedGroup);
    224                         }
     198               
    225199                       
    226200                        private function getSelectedIndex():int{
     
    272246                                horizontalCenter="-110"
    273247                                >
    274                         <components:SpaceSwitch id="userSpaceCB" width="110" />
     248                        <components:SpaceSwitch id="registrySpaceComboBox"
     249                                                                        width="150" />
     250                       
     251                       
    275252                </mx:Box>
    276253               
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/browser/BrowserOverviewList.mxml

    r4156 r5699  
    7979                       
    8080                        private function init():void{
    81                                 Config.instance.addEventListener(Config.USER_SPACE_TOGGLE_EVENT, onSpaceChanged);
     81                                Config.instance.addEventListener(Config.REGISTRY_SPACE_TOGGLE_EVENT, onSpaceChanged);
    8282                                groups.addItem("Move to group...");
    8383                                Config.instance.getListUserGroupsMembershipService().addEventListener(ListUserGroupsMembershipService.GROUPS_LOADED, onGroupsLoaded);
    84                                 Config.instance.addEventListener(Config.USER_SPACE_TOGGLE_EVENT, updateGroupVisibility);
     84                                Config.instance.addEventListener(Config.REGISTRY_SPACE_TOGGLE_EVENT, updateGroupVisibility);
    8585                                Config.instance.getListUserGroupsMembershipService().loadGroupsForUser();
    8686                                Config.instance.addEventListener(GroupSelectionEvent.GROUP_SELECTED, onGroupSelected);
     
    8989                       
    9090                        private function onSpaceChanged(event:Event):void{
    91                                 userSpaceCB.setSelectedItem(Config.instance.space, Config.instance.selectedGroup);
    92                                 createNewButton.visible = (!Config.instance.selectedGroup);
    93                                 createNewButton.includeInLayout = (!Config.instance.selectedGroup);
    94                                 importButton.visible = (!Config.instance.selectedGroup);
    95                                 importButton.includeInLayout = (!Config.instance.selectedGroup);
     91                               
     92                                createNewButton.visible = true;
     93                                createNewButton.includeInLayout = true;
     94                                createNewButton.enabled = true;
     95                               
     96                                editAsNew.visible = Config.instance.registrySpace.space == Config.SPACE_PUBLISHED;
     97                                editAsNew.includeInLayout = Config.instance.registrySpace.space  == Config.SPACE_PUBLISHED;
     98                                editAsNew.enabled = Config.instance.registrySpace.space  == Config.SPACE_PUBLISHED  && dataGrid.selectedItem != null;
     99                               
     100                                edit.visible = Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP;
     101                                edit.includeInLayout = Config.instance.registrySpace.space  == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP;
     102                                edit.enabled = (Config.instance.registrySpace.space  == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP) && dataGrid.selectedItem != null;
     103                                       
     104                                importButton.visible = Config.instance.registrySpace.space == Config.SPACE_PRIVATE;
     105                                importButton.includeInLayout = Config.instance.registrySpace.space == Config.SPACE_PRIVATE;
     106                                importButton.enabled = Config.instance.registrySpace.space == Config.SPACE_PRIVATE;
     107                       
     108                                groupPanel.visible = Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP;
     109                                groupPanel.includeInLayout = Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP;
     110                                groupPanel.enabled = (Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP) && dataGrid.selectedItem != null;
     111                               
     112                                groupBox.visible = Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP;
     113                                groupBox.includeInLayout = Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP;
     114                                groupBox.enabled = (Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP) && dataGrid.selectedItem != null;
     115                               
     116                                moveToGroupBtn.visible = Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP;
     117                                moveToGroupBtn.includeInLayout = Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP;
     118                                moveToGroupBtn.enabled = (Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP) && dataGrid.selectedItem != null;                   
    96119                        }
    97120
     
    126149                       
    127150                        private function editItem():void {
    128                                 var item:ItemDescription = dataGrid.selectedItem as ItemDescription;
    129                                 viewStack.switchToEditor(item);
    130                         }
    131                        
    132                         private function importItem():void{
    133                                 viewStack.switchToImport();
    134                         }
    135                        
    136                         private function dispatchCreateNewEvent():void{
     151                                var item:ItemDescription = dataGrid.selectedItem as ItemDescription;   
     152                                viewStack.switchToEditor(item); 
     153                        }
     154                       
     155                        private function importItem():void{             
     156                                viewStack.switchToImport();     
     157                        }
     158                       
     159                        private function dispatchCreateNewEvent():void{ 
    137160                                dispatchEvent(new CreateNewComponentEvent());
    138161                        }
     
    140163                       
    141164                        private function goToFeed():void{
    142                                 var request:URLRequest = new URLRequest(Config.getRssUriDescriptions(typeOfDescription));
     165                                var request:URLRequest = new URLRequest(Config.getRssUriDescriptions(typeOfDescription, Config.instance.registrySpace));
    143166                                navigateToURL(request, "_blank");
    144167                        }
     
    149172                               
    150173                                for each (var group:Group in Config.instance.getListUserGroupsMembershipService().groups) {
    151                                         groups.addItem({label:group.name, space:Config.SPACE_USER, groupId:group.id});                                 
     174                                        groups.addItem({label:group.name, space:Config.SPACE_GROUP, groupId:group.id});                                 
    152175                                }
    153176                                updateGroupVisibility(event);
     
    156179                       
    157180                        private function updateGroupVisibility(event:Event):void{
    158                                 var showGroups:Boolean = Config.instance.getListUserGroupsMembershipService().groups.length>0 && Config.instance.space != Config.SPACE_PUBLIC;
     181                                var showGroups:Boolean = Config.instance.getListUserGroupsMembershipService().groups.length>0;
    159182                                groupPanel.visible = showGroups;
    160183                                groupBox.selectedIndex = 0;
     
    208231                       
    209232                       
     233                       
     234                        public function updateSelectedIndexForRegistryComobBox():void {
     235                                this.registrySpaceComboBox.setSelectedIndex();
     236                        }
    210237                ]]>
    211238        </mx:Script>
    212239       
    213         <mx:HBox paddingLeft="5"
     240        <mx:HBox
     241                         paddingLeft="5"
    214242                         paddingRight="5"
    215243                         width="100%">
    216244               
    217                 <mx:Box paddingTop="5" paddingLeft="5"
     245                <mx:Box
     246                            paddingTop="5" paddingLeft="5"
    218247                                visible="{spaceSwitchEnabled}"
    219248                                includeInLayout="{spaceSwitchEnabled}">
    220                         <comp:SpaceSwitch id="userSpaceCB" />
     249                        <comp:SpaceSwitch id="registrySpaceComboBox"
     250                                                          />
    221251                </mx:Box>
    222252               
     
    231261                                           label="Create new"
    232262                                           toolTip="Create a new item in the private workspace"
     263                                           visible="{true}"
     264                                           includeInLayout="{true}"
     265                                           enabled="{true}"
    233266                                           click="dispatchCreateNewEvent()"
    234267                                           />
    235                         <mx:Button label="Edit"
     268                        <mx:Button
     269                                       id = "edit"
     270                                       label="Edit"
    236271                                           toolTip="Edit the selected item in the editor"
    237                                            visible="{Config.instance.space == Config.SPACE_USER}"
    238                                            includeInLayout="{Config.instance.space == Config.SPACE_USER}"
    239                                            enabled="{Config.instance.space == Config.SPACE_USER &amp;&amp; dataGrid.selectedItem != null}"
     272                                           visible="{Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP}"
     273                                           includeInLayout="{Config.instance.registrySpace.space  == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP}"
     274                                           enabled="{(Config.instance.registrySpace.space  == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP) &amp;&amp; dataGrid.selectedItem != null}"
    240275                                           click="editItem()" />
    241                         <mx:Button label="Edit as new"   
    242                                            toolTip="Edit the selected item as a new item in the private workspace"
    243                                            visible="{Config.instance.space != Config.SPACE_USER}"
    244                                            includeInLayout="{Config.instance.space != Config.SPACE_USER}"
    245                                            enabled="{Config.instance.space != Config.SPACE_USER &amp;&amp; dataGrid.selectedItem != null}"
     276                        <mx:Button id = "editAsNew"
     277                                       label="Edit as new"   
     278                                           toolTip="Edit the selected item as a new item in the private or group workspace"
     279                                           visible="{Config.instance.registrySpace.space == Config.SPACE_PUBLISHED}"
     280                                           includeInLayout="{Config.instance.registrySpace.space == Config.SPACE_PUBLISHED}"
     281                                           enabled="{Config.instance.registrySpace.space == Config.SPACE_PUBLISHED &amp;&amp; dataGrid.selectedItem != null}"
    246282                                           click="editItem()" />
    247283                        <mx:Button id="importButton"
    248284                                           label="Import"
     285                                           visible="{Config.instance.registrySpace.space == Config.SPACE_PRIVATE}"
     286                                           includeInLayout="{Config.instance.registrySpace.space == Config.SPACE_PRIVATE}"
     287                                           enabled="{Config.instance.registrySpace.space == Config.SPACE_PRIVATE}"
    249288                                           toolTip="Import an item from a local file"
    250289                                           click="importItem()" />
    251290                       
    252291                        <mx:HBox id="groupPanel"
    253                                          visible="true"
    254                                          enabled="{Config.instance.space == Config.SPACE_USER &amp;&amp; dataGrid.selectedItem != null}"
     292                                         visible="{Config.instance.registrySpace.space != Config.SPACE_PUBLISHED}"
     293                                         includeInLayout="{Config.instance.registrySpace.space != Config.SPACE_PUBLISHED}"
     294                                         enabled="{Config.instance.registrySpace.space != Config.SPACE_PUBLISHED &amp;&amp; dataGrid.selectedItem != null}"
    255295                                         >
    256296                                <mx:ComboBox id="groupBox"
     297                                                         visible="{Config.instance.registrySpace.space != Config.SPACE_PUBLISHED}"
     298                                                         includeInLayout="{Config.instance.registrySpace.space != Config.SPACE_PUBLISHED}"
     299                                                         enabled="{Config.instance.registrySpace.space != Config.SPACE_PUBLISHED &amp;&amp; dataGrid.selectedItem != null}"
    257300                                                         dataProvider="{groups}"
    258301                                                         />
    259302                                <mx:Button id="moveToGroupBtn"
    260303                                                   label="Move to group"
     304                                                   visible="{Config.instance.registrySpace.space != Config.SPACE_PUBLISHED}"
     305                                                   includeInLayout="{Config.instance.registrySpace.space != Config.SPACE_PUBLISHED}"
     306                                                   enabled="{Config.instance.registrySpace.space != Config.SPACE_PUBLISHED &amp;&amp; dataGrid.selectedItem != null}"
    261307                                                   click="onMoveToGroupButtonClicked(event)"/>
    262308                        </mx:HBox>
     
    273319           </mx:HBox>
    274320                <comp:RssLinkButton
    275                         enabled ="{Config.instance.space != Config.SPACE_USER}"
    276                         visible="{Config.instance.space != Config.SPACE_USER}"
     321                        enabled ="{Config.instance.registrySpace.space != Config.SPACE_PRIVATE}"
     322                        visible="{Config.instance.registrySpace.space != Config.SPACE_PRIVATE}"
    277323                        contextMenu = "{(new RssDescriptionsContextMenu(typeOfDescription)).cm}"
    278324                        click="goToFeed()"
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/browser/CommentsPanel.as

    r3660 r5699  
    9090                               
    9191                                // Do actual loading
    92                                 service = new CommentListService(_itemDescription, _itemDescription.space);
     92                                service = new CommentListService(_itemDescription);
    9393                                service.addEventListener(CommentListService.COMMENTS_LOADED, commentsLoaded);
    9494                                service.load();
    9595                               
    9696                                // Rss feed "button"
    97                                 if  (_itemDescription.space != Config.SPACE_USER){
     97                                if  (_itemDescription.isPrivate != Config.SPACE_PRIVATE){
    9898                                        var spacer:Spacer = new Spacer();
    9999                                        spacer.percentWidth=100;
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/common/Group.as

    r3660 r5699  
    1010        {
    1111                [Bindable]
    12                 public var id:uint;
     12                public var id:String;
    1313               
    1414                [Bindable]
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/common/ItemDescription.as

    r4156 r5699  
    1515                public var registrationDate:String;
    1616                public var registrationDateValue:Date;
    17                 public var space:String;
     17                public var isPrivate:Boolean;
    1818                public var commentsCount:int;
    1919
     
    2222                }
    2323
    24                 private function create(itemDescription:XML, infoUrl:String, isProfileValue:Boolean, space:String):void {
     24                private function create(itemDescription:XML, infoUrl:String, isProfileValue:Boolean, isPrivate:Boolean):void {
    2525                        this.id = itemDescription.id;
    2626                        this.name = itemDescription.name;                       
     
    3232                        this.commentsCount = itemDescription.commentsCount;
    3333                        this.isProfile = isProfileValue;
    34                         this.space = space;
     34                        this.isPrivate = isPrivate;
    3535                       
    3636                        // getting ISO-8601 (GMT/UTC timezone) dates from the server. Need to convert this, flex does not support ISO-8601 times out of the box.
     
    4141                }
    4242
    43                 public function createProfile(itemDescription:XML, space:String):void {
    44                         create(itemDescription, Config.instance.profileInfoUrl, true, space);
     43                public function createProfile(itemDescription:XML, isPrivate:Boolean):void {
     44                        create(itemDescription, Config.instance.profileInfoUrl, true, isPrivate);
    4545                }
    4646
    47                 public function createComponent(itemDescription:XML, space:String):void {
    48                         create(itemDescription, Config.instance.componentInfoUrl, false, space);
     47                public function createComponent(itemDescription:XML, isPrivate:Boolean):void {
     48                        create(itemDescription, Config.instance.componentInfoUrl, false, isPrivate);
    4949                }
    5050               
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/common/ShowInfoPopUp.mxml

    r3660 r5699  
    4343                       
    4444                        private function getBookmarkText():String {
    45                             if (item.space == Config.SPACE_USER) {
     45                            if (item.isPrivate) {
    4646                                return "Bookmark link (requires login):";
    4747                            } else {
    4848                                return "Bookmark link:";
    4949                            }
     50               
    5051                        }
    5152
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/common/components/BrowseContextMenu.as

    r3660 r5699  
    4545                        setItemStates();
    4646                       
    47                         Config.instance.addEventListener(Config.USER_SPACE_TOGGLE_EVENT, setItemStates);
     47                        Config.instance.addEventListener(Config.REGISTRY_SPACE_TOGGLE_EVENT, setItemStates);
    4848                }
    4949
     
    7777               
    7878                private function setItemStates(event:Event = null):void {
    79                         editMenuItem.visible = Config.instance.space == Config.SPACE_USER;
    80                         editAsNewMenuItem.visible = (Config.instance.space!= Config.SPACE_USER);
     79                        editMenuItem.visible = (Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP);
     80                        editAsNewMenuItem.visible = (Config.instance.registrySpace.space == Config.SPACE_PUBLISHED);
    8181                }
    8282
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/common/components/ExpandingComponentLabel.as

    r4143 r5699  
    4141                        this.editable = editable;
    4242                        this.componentId = componentId;                 
    43                         this.item = Config.instance.getComponentsSrv(Config.SPACE_USER).findDescription(componentId);
    44                         if (this.item==null) {
    45                                 this.item = Config.instance.getComponentsSrv(Config.SPACE_PUBLIC).findDescription(componentId);
    46                         }
     43                        this.item = Config.instance.getComponentsSrv().findDescription(componentId);                   
    4744                        styleName = StyleConstants.EXPANDING_COMPONENT;
    48                         if (item && item.space == Config.SPACE_USER) {
     45                        if (item && item.isPrivate) {
    4946                                this.setStyle("borderColor", StyleConstants.USER_BORDER_COLOR);
    5047                        }
    5148                        if (item!=null)
    5249                                updateView();
    53                         //unfortunately the componend and profile services may overlook components from groups, so we have to ask the backend
    54                         else{
    55                                 Config.instance.getComponentsSrv(Config.SPACE_USER).getComponent(componentId, function(item:ItemDescription):void{
    56                                         setStyle("borderColor", StyleConstants.GROUP_BORDER_COLOR);
    57                                         setItem(item);
    58                                         updateView();
    59                                 });
    60                         }
     50               
    6151                }
    6252               
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/common/components/LoginLabelButton.as

    r3368 r5699  
    3535                        }
    3636                        if (itemId) {
    37                                 uri.setQueryValue(Config.REGISTRY_PARAM_ITEM, itemId);
     37                                uri.setQueryValue(Config.REGISTRY_PARAM_ITEM_ID, itemId);
    3838                        }
    3939                        req.url = uri.toString();
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/common/components/RegistryViewStack.as

    r3907 r5699  
    88        import clarin.cmdi.componentregistry.importer.Importer;
    99        import clarin.cmdi.componentregistry.services.Config;
     10        import clarin.cmdi.componentregistry.services.RegistrySpace;
    1011       
    1112        import flash.events.Event;
     
    5455               
    5556                public function loadStartup():void {
    56                         if (Config.instance.space == Config.SPACE_USER && !Credentials.instance.isLoggedIn()) {
     57                        if ((Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP) && !Credentials.instance.isLoggedIn()) {
    5758                                checkLogin();
    5859                        } else {
     
    7677               
    7778                public function switchToBrowse(itemDescription:ItemDescription):void {
    78                         if (itemDescription != null) {
    79                                 if (Config.instance.space == itemDescription.space) {
    80                                         browse.refresh();
    81                                 } else {
    82                                         Config.instance.userSpace = itemDescription.space;
     79                        if (itemDescription != null) {                         
     80                               
     81                                if (itemDescription.isPrivate && Config.instance.registrySpace.space == Config.SPACE_PUBLISHED) {
     82                                        Config.instance.registrySpace = new RegistrySpace( Config.SPACE_PRIVATE, "");
     83                                } else {                                       
     84                                        if (!itemDescription.isPrivate && Config.instance.registrySpace.space != Config.SPACE_PUBLISHED) {
     85                                                // the item has been published, go to public space
     86                                                Config.instance.registrySpace = new RegistrySpace( Config.SPACE_PUBLISHED, "");
     87                                        } else {
     88                                                browse.refresh();
     89                                        }
    8390                                }
    8491                                browse.setSelectedDescription(itemDescription);
    85                         }
     92                        } 
    8693                        this.selectedItem = itemDescription;
    8794                        this.selectedChild = browse;
     
    110117                                        itemId = selectedItem.id;
    111118                                }
    112                                 loginPanel.show(this, RegistryView(this.selectedChild).getType(), Config.instance.space, itemId);
     119                                loginPanel.show(this, RegistryView(this.selectedChild).getType(), Config.instance.registrySpace.space, itemId);
    113120                        }
    114121                }
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/common/components/RssDescriptionsContextMenu.as

    r2515 r5699  
    2121               
    2222                override protected function copyRssLink(event:ContextMenuEvent):void {
    23                         System.setClipboard(Config.getRssUriDescriptions(_typeOfDescription));
     23                        System.setClipboard(Config.getRssUriDescriptions(_typeOfDescription, Config.instance.registrySpace));
    2424                }
    2525                               
    2626                override protected function showRssLink(event:ContextMenuEvent):void{
    27                         navigateToURL(new URLRequest(Config.getRssUriDescriptions(_typeOfDescription)), "_blank");
     27                        navigateToURL(new URLRequest(Config.getRssUriDescriptions(_typeOfDescription, Config.instance.registrySpace)), "_blank");
    2828                }
    2929               
    3030                override protected function menuUpdateCaption(event:ContextMenuEvent):void {
    31                         _showRssLinkMenuItem.caption = Config.getRssUriDescriptions(_typeOfDescription);
     31                        _showRssLinkMenuItem.caption = Config.getRssUriDescriptions(_typeOfDescription, Config.instance.registrySpace);
    3232                }
    3333        }
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/common/components/SpaceSwitch.mxml

    r4098 r5699  
    33                                 dataProvider="{spaces}"
    44                                 width="110"
    5                                  close="userSpaceCloseHandler(event)"
     5                                 close="registrySpaceCloseHandler(event)"
    66                                 initialize="init()"
    77                                 change="onSelectionChanged(event)"
     
    1515                        import clarin.cmdi.componentregistry.services.Config;
    1616                        import clarin.cmdi.componentregistry.services.ListUserGroupsMembershipService;
     17                        import clarin.cmdi.componentregistry.services.RegistrySpace;
    1718                       
    1819                        import mx.collections.ArrayCollection;
    1920                        import mx.controls.Alert;
    2021                       
    21                         private static const USERSPACE_LABEL:String = "Work space";
    22                         private static const PUBLICSPACE_LABEL:String = "Public space";
     22                        private static const PRIVATE_SPACE_LABEL:String = "Private space";
     23                        private static const PUBLIC_SPACE_LABEL:String = "Public space";
    2324                        [Bindable]
    24                         public static var spaces:ArrayCollection;
     25                        public var spaces:ArrayCollection;
    2526                       
    26                         private static function initSpaces():void{
    27                                 spaces = new ArrayCollection([{label: PUBLICSPACE_LABEL, space: Config.SPACE_PUBLIC, groupId:null}, {label: USERSPACE_LABEL, space: Config.SPACE_USER, groupId:null}]);
     27                        //before groups are known
     28                        private function initSpaces():void{
     29                                spaces = new ArrayCollection([{label: PUBLIC_SPACE_LABEL, space: Config.SPACE_PUBLISHED, groupId:null}, {label: PRIVATE_SPACE_LABEL, space: Config.SPACE_PRIVATE, groupId:null}]);
    2830                        }
    2931                       
    3032                        private function onSelectionChanged(event:Event):void{
    31                                 var groupId:String = getSelectedGroup(event);
    32                                 Config.instance.selectedGroup = ComboBox(event.target).selectedItem.groupId;
    33                                 Config.instance.userSpace = ComboBox(event.target).selectedItem.space;
     33                                var space:String = ComboBox(event.target).selectedItem.space;
     34                                var groupId:String = ComboBox(event.target).selectedItem.groupId;
     35                                if ((groupId != null) && (groupId != "")) {
     36                                        space = Config.SPACE_GROUP;
     37                                }
     38                                Config.instance.registrySpace = new RegistrySpace(space, groupId);
    3439                        }
     40                       
     41               
     42
     43                        public function init():void{
     44                                Config.instance.getListUserGroupsMembershipService().addEventListener(ListUserGroupsMembershipService.GROUPS_LOADED, onGroupsLoaded);
     45                                Config.instance.getListUserGroupsMembershipService().loadGroupsForUser(); // triggers the event ListUserGroupsMembershipService.GROUPS_LOADED
     46                                }
     47                       
     48                       
    3549                       
    3650                        public function onGroupsLoaded(event:Event):void{
    3751                                initSpaces();
    3852                                for each (var group:Group in Config.instance.getListUserGroupsMembershipService().groups) {
    39                                         spaces.addItem({label:group.name, space:Config.SPACE_USER, groupId:group.id});                                 
    40                                 }
    41                                 if (Config.instance.space == Config.SPACE_PUBLIC)
    42                                         this.selectedIndex = 0;
    43                                 else
    44                                 if (Config.instance.space == Config.SPACE_USER){
    45                                         this.selectedIndex = 1;
    46                                 }
     53                                        spaces.addItem({label:group.name, space:Config.SPACE_GROUP, groupId:group.id});                                 
     54                                }
     55                                setSelectedIndex();
    4756                        }
    48 
    49                         public function init():void{
    50                                 Config.instance.getListUserGroupsMembershipService().addEventListener(ListUserGroupsMembershipService.GROUPS_LOADED, onGroupsLoaded);
    51                                 Config.instance.getListUserGroupsMembershipService().loadGroupsForUser();
    52                         }
    53                        
    54                         private function getSelectedSpace(event:Event):String{
    55                                 return ComboBox(event.target).selectedItem.space;
    56                         }
    57 
    58                         private function getSelectedGroup(event:Event):String{
    59                                 var s:String;
    60                                 var cb:ComboBox = ComboBox(event.target);
    61                                 return cb.selectedItem.groupId;
    62                         }
    63 
    64                         private function userSpaceCloseHandler(event:Event):void {
     57               
     58                        private function registrySpaceCloseHandler(event:Event):void {
    6559                                if (Credentials.instance.isLoggedIn()) {
    66                                 } else if (selectedIndex != 0) {
    67                                         selectedIndex = 0;
    68                                         new Login().show(this.parent.parent, Config.VIEW_BROWSE, Config.SPACE_USER, null);
     60                                } else {
     61                                        if (Config.instance.registrySpace.space != Config.SPACE_PUBLISHED) {
     62                                                new Login().show(this.parent.parent, Config.VIEW_BROWSE, Config.instance.registrySpace.space, null);
     63                                                //setSelectedIndex();
     64                                        }
     65                                       
    6966                                }
    7067                        }
    7168                       
    72                         public function setSelectedItem(space:String, groupId:String):void{
    73                                 var index:int = 0;
    74                                 var found:Boolean = false;
    75                                 if (groupId)
    76                                 for each (var item:Object in spaces) {
    77                                         if (item.groupId==groupId){
    78                                                 this.selectedIndex = index;
    79                                                 found = true;
    80                                                 break;
     69                        public function setSelectedIndex():void{       
     70                               
     71                                if (Config.instance.registrySpace.space==Config.SPACE_PUBLISHED) {
     72                                        this.selectedIndex = 0;
     73                                        return;
     74                                }
     75                                if (Config.instance.registrySpace.space==Config.SPACE_PRIVATE) {
     76                                        this.selectedIndex = 1;
     77                                        return;
     78                                }
     79                               
     80                                var index:int;
     81                                if (Config.instance.registrySpace.space==Config.SPACE_GROUP) {
     82                                        for (index=2;index<spaces.length; index++) {
     83                                                if (spaces[index].groupId==Config.instance.registrySpace.groupId){
     84                                                        trace("indeces:" + index+" " +Config.instance.registrySpace.groupId +" " +spaces[index].groupId);
     85                                                        this.selectedIndex = index;
     86                                                        return;
     87                                                }
    8188                                        }
    82                                         index++;
    8389                                }
    84                                 index = 0;
    85                                 if (!found)
    86                                 for each (var item:Object in spaces) {
    87                                         if (item.space==space){
    88                                                 this.selectedIndex = index;
    89                                                 break;
     90                               
     91                                // in case of #$%^-up:                         
     92                                var spacesDump:String= spaces[0].space + "; "+spaces[1].space;
     93                                for (index=2;index<spaces.length; index++) {
     94                                        spacesDump=spacesDump+";  "+spaces[index].space + " " +spaces[index].groupId;
    9095                                        }
    91                                         index++;
    92                                 }
     96                               
     97                                throw "Cannot indetify the selection index for registry-space combobox. space = "+Config.instance.registrySpace.space+ " group "+Config.instance.registrySpace.groupId + spacesDump;
    9398                        }
     99                               
     100                       
    94101                ]]>
    95102        </mx:Script>
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/editor/ComponentSummary.mxml

    r3660 r5699  
    2929                                 >                     
    3030                        <mx:Label text="ComponentId: " fontWeight="bold"/>
    31                         <mx:Label text="{Config.instance.getComponentsSrv(Config.instance.space).findDescription(component.componentId).name}" />
     31                        <mx:Label text="{Config.instance.getComponentsSrv().findDescription(component.componentId).name}" />
    3232                </mx:HBox>
    3333               
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/editor/Editor.mxml

    r3907 r5699  
    1919                                                                        width="100%"
    2020                                                                        height="90"
    21                                                                         saveClick="saveSpec(Config.SPACE_USER, UploadService.UPDATE)"
    22                                                                         saveAsNewClick="saveSpec(Config.SPACE_USER, UploadService.NEW)"
     21                                                                        saveClick="saveSpec(Config.SPACE_PRIVATE, UploadService.UPDATE)"
     22                                                                        saveAsNewClick="saveSpec(Config.SPACE_PRIVATE, UploadService.NEW)"
    2323                                                                        publishClick="publishSpec()"
    2424                                                                        cancelClick="cancel()"
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/editor/EditorAS.as

    r4098 r5699  
    1313import clarin.cmdi.componentregistry.services.Config;
    1414import clarin.cmdi.componentregistry.services.ProfileInfoService;
     15import clarin.cmdi.componentregistry.services.ProfileListService;
     16import clarin.cmdi.componentregistry.services.RegistrySpace;
    1517import clarin.cmdi.componentregistry.services.UploadService;
    1618
     
    2830
    2931[Bindable]
    30 private var componentsSrv:ComponentListService = Config.instance.getComponentsSrv(Config.instance.space);
     32private var componentsSrv:ComponentListService = Config.instance.getComponentsSrv();
     33
     34[Bindable]
     35private var profilesSrv:ProfileListService = Config.instance.getProfilesSrv();
    3136
    3237[Bindable]
     
    5156        uploadService.addEventListener(UploadCompleteEvent.UPLOAD_COMPLETE, handleSaveComplete);
    5257        uploadService.init(uploadProgress);
    53         Config.instance.addEventListener(Config.USER_SPACE_TOGGLE_EVENT, toggleUserSpace);
     58        Config.instance.addEventListener(Config.REGISTRY_SPACE_TOGGLE_EVENT, toggleRegistrySpace);
    5459        viewStack = this.parent as RegistryViewStack;
    5560}
    5661
    5762
    58 private function toggleUserSpace(event:Event):void {
    59         componentsSrv = Config.instance.getComponentsSrv(Config.instance.space);
     63private function toggleRegistrySpace(event:Event):void {
     64        componentsSrv = Config.instance.getComponentsSrv();
     65        profilesSrv = Config.instance.getProfilesSrv();
    6066}
    6167
    6268private function determineSaveButtonEnabled():void {
    63         buttonBar.saveBtn.enabled = (itemDescription != null && itemDescription.space == Config.SPACE_USER && null != itemDescription.id && null != xmlEditor.cmdSpec.headerId);
     69        buttonBar.saveBtn.enabled =  (itemDescription != null && itemDescription.isPrivate && itemDescription.id != null && xmlEditor.cmdSpec.headerId != null && ( Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.SPACE_GROUP));
    6470}
    6571
     
    111117private function handlePublishAlert(event:CloseEvent):void {
    112118        if (event.detail == Alert.OK) {
    113                 saveSpec(Config.SPACE_PUBLIC, UploadService.PUBLISH);
    114                 Config.instance.userSpace = Config.SPACE_PUBLIC;
    115         }
    116 }
    117 
    118 private function saveSpec(space:String, uploadAction:int):void {
     119                saveSpec(Config.SPACE_PUBLISHED, UploadService.PUBLISH);
     120                Config.instance.registrySpace = new RegistrySpace(Config.SPACE_PUBLISHED, "");
     121        }
     122}
     123
     124private function saveSpec(registrySpace:String, uploadAction:int):void {
    119125        if (xmlEditor.validate()) {
    120126                var item:ItemDescription = new ItemDescription();
     
    124130                item.groupName = xmlEditor.cmdSpec.groupName;
    125131                item.domainName = xmlEditor.cmdSpec.domainName;
    126                 item.space = space;
    127                 if (itemDescription && itemDescription.space == Config.SPACE_USER) {
     132                item.isPrivate = (registrySpace ==  Config.SPACE_PRIVATE || registrySpace == Config.SPACE_GROUP);
     133                if (itemDescription && itemDescription.isPrivate ) {
    128134                        item.id = xmlEditor.cmdSpec.headerId;
    129135                }
    130136               
    131137                // Private components that are in updated require usage check call. If in use, the user can choose whether or not to save the changes .
    132                 if(space == Config.SPACE_USER && uploadAction == UploadService.UPDATE && !item.isProfile){
    133                         checkUsage(item, space);
     138                if((registrySpace == Config.SPACE_PRIVATE || registrySpace == Config.SPACE_GROUP) && uploadAction == UploadService.UPDATE && !item.isProfile){
     139                        checkUsage(item, registrySpace);
    134140                }else{
    135141                        doUpload(uploadAction,item);
    136142                }
     143               
     144                // if we are in public or group space but do "save as new" (i.e. in a private space)
     145                // then we need to switch to the private space
     146                if (registrySpace == Config.SPACE_PRIVATE) {
     147                        Config.instance.registrySpace=new RegistrySpace(Config.SPACE_PRIVATE, "");
     148                }
     149               
    137150        } else {
    138151                errorMessageField.text = "Validation errors: red colored fields are invalid.";
     
    156169 * Calls usage check for the specified component. If in use, asks user whether to proceed; if positive, initiates update.
    157170 */
    158 private function checkUsage(item:ItemDescription, space:String, uploadAction:int = UploadService.UPDATE):void{
    159         var componentUsageService:ComponentUsageService = new ComponentUsageService(item,space);
     171private function checkUsage(item:ItemDescription, space:String, uploadAction:int = 0):void{
     172        var componentUsageService:ComponentUsageService = new ComponentUsageService(item);
    160173        componentUsageService.addEventListener(ComponentUsageCheckEvent.COMPONENT_IN_USE,
    161174                function (event:ComponentUsageCheckEvent):void{
     
    183196}
    184197
    185 private function handleSaveComplete(event:UploadCompleteEvent):void {
     198private function handleSaveComplete(event:UploadCompleteEvent):void {   
    186199        setDescription(event.itemDescription);
    187         parentApplication.viewStack.switchToBrowse(event.itemDescription);
     200        parentApplication.viewStack.switchToBrowse(event.itemDescription);     
    188201}
    189202
     
    209222private function onGroupsLoaded(event:Event):void{
    210223        var groups:ArrayCollection = Config.instance.getListGroupsOfItemService().groups;
    211         //buttonBar.groupPanel.visible = (Config.instance.space != Config.SPACE_PUBLIC) && Config.instance.getListUserGroupsMembershipService().groups.length>0;
    212224        if (groups.length < 1);
    213225        else{
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/editor/EditorButtonBar.mxml

    r3907 r5699  
    11<?xml version="1.0" encoding="utf-8"?>
    22<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
     3                 xmlns:editor="clarin.cmdi.componentregistry.editor.*"
    34                 width="400"
    45                 creationComplete="init()"
     
    1314        </mx:Metadata>
    1415               
    15         <mx:HBox width="400" height="30">
     16        <mx:HBox width="800" height="30">
    1617        <mx:Button id="saveBtn"
    1718                           label="Save"
    18                            click="dispatchEvent(new MouseEvent('saveClick'))"
    19                            enabled="false"
    20                            />
     19                           click="dispatchEvent(new MouseEvent('saveClick'))"/>
    2120        <mx:Button id="saveAsNewBtn"
    22                            label="Save as new"
     21                           label="Save as new in your private space"
    2322                           click="dispatchEvent(new MouseEvent('saveAsNewClick'))"/>
    2423        <mx:Button id="publishBtn"
     
    2928                           label="Cancel"
    3029                           click="dispatchEvent(new MouseEvent('cancelClick'))"/>
    31 
    3230        </mx:HBox>
    3331       
     
    3533                <![CDATA[
    3634                        import clarin.cmdi.componentregistry.services.Config;
    37                        
    3835                        import mx.collections.ArrayCollection;
    3936                        import mx.controls.Alert;
     
    4643                        private static var currentSelectedGroup:String="";
    4744                       
     45                       
    4846                        public function init():void{
    4947                        }
     48                       
     49                       
    5050                       
    5151                ]]>
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/importer/Importer.mxml

    r3660 r5699  
    4444                                                item.domainName = domainName.selectedItem.data;
    4545                                        item.isProfile = isProfile;
    46                                         item.space = Config.SPACE_USER; //We only allow import into workspace it can be published from there.
     46                                        item.isPrivate = true; //We only allow import into workspace it can be published from there.
    4747                                        if (loadedXML) {
    4848                                                updateXMLFromFormFields(loadedXML);
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/BaseRemoteService.as

    r4131 r5699  
    5959                        this.handleXmlResult(resultXml);
    6060                        this.dispatchEvent(new Event(this.successEventName));
     61                       
    6162                }
    6263
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/BrowserService.as

    r4087 r5699  
    1616                public var itemDescriptions:ArrayCollection;
    1717               
    18                 protected var groupId:String;
     18                       
     19                protected var registrySpace:RegistrySpace;
    1920               
    20                 public function BrowserService(successEvent:String, restUrl:URI, space:String) {
     21                public function BrowserService(successEvent:String, restUrl:URI, registrySpace_:RegistrySpace) {
    2122                        super(successEvent, restUrl);
    22                         this.space = space;
     23                        this.registrySpace = registrySpace_;
    2324                }
    2425               
    25                 public function setGroupId(id:String):void{
    26                         this.groupId = id;
     26                [Bindable(event=REGISTRY_SPACE_TOGGLE_EVENT)]
     27                public function setRegistrySpace(registrySpace_:RegistrySpace):void{
     28                        this.registrySpace = registrySpace_;
    2729                }
     30               
    2831
     32                // propagates to two child calsses: component and profile list services
    2933                override protected function dispatchRequest(url:URI):void {
    3034                        var copy:URI = new URI();
    3135                        copy.copyURI(url);
    32                         if (space  == Config.SPACE_USER) {
    33                                 copy.setQueryValue(Config.PARAM_USERSPACE, "true");
    34                         }
    35                         if (groupId){
    36                                 copy.setQueryValue("groupid",groupId);
    37                         } else
    38                                 copy.setQueryValue("groupid",null);
     36                        if (this.registrySpace.space) {
     37                                copy.setQueryValue(Config.REGISTRY_PARAM_SPACE, this.registrySpace.space);
     38                                if ((this.registrySpace.space) == Config.SPACE_GROUP) {
     39                                        if (this.registrySpace.groupId == null || this.registrySpace.groupId == "") {
     40                                                throw "Group Id is not given";
     41                                        }
     42                                        copy.setQueryValue(Config.REGISTRY_PARAM_GROUP_ID, this.registrySpace.groupId);
     43                                }
     44                        }
    3945                        super.dispatchRequest(copy);
    4046                }
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/CommentListService.as

    r3660 r5699  
    1919                public var comments:ArrayCollection;
    2020               
    21                 public function CommentListService(itemDescription:ItemDescription, userSpace:String) {
     21                public function CommentListService(itemDescription:ItemDescription) {
    2222                        var url:String;
    2323                        if(itemDescription.isProfile){
     
    2929                       
    3030                        this.itemDescription = itemDescription;
    31                         this.space = userSpace;
    3231                }
    3332               
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/CommentPostService.as

    r4098 r5699  
    4444                public function upload(comment:Comment, itemDescription:ItemDescription):void {
    4545                        createAndInitRequest();
    46                         var uri:URI = createUri(comment,itemDescription.space);
     46                        var uri:URI = createUri(comment, itemDescription);
    4747                        submit(createByteArray(comment.toXml()), uri);
    4848                }
    4949               
    50                 private function createUri(comment:Comment, userSpace:String):URI {
     50                private function createUri(comment:Comment, itemDescription:ItemDescription):URI {
    5151                        var uri:URI = null;
    52                         if(comment.componentId){
    53                                 uri = new URI(Config.instance.getComponentCommentsPath(comment.componentId));
     52                        if(itemDescription){
     53                                if (itemDescription.isProfile) {
     54                                uri = new URI(Config.instance.getProfileCommentsPath(itemDescription.id));
     55                                } else {
     56                                uri = new URI(Config.instance.getComponentCommentsPath(itemDescription.id));
     57                                }
    5458                        } else{
    5559                                return null;
    5660                        }
    57                         if (userSpace == Config.SPACE_USER){
    58                                 uri.setQueryValue(Config.PARAM_USERSPACE, "true");
    59                         }
     61                       
    6062                        return uri;
    6163                }
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/ComponentInfoService.as

    r3660 r5699  
    2626                        component.description = item;
    2727                        var url:URI = new URI(item.dataUrl);
    28                         if (item.space == Config.SPACE_USER) {
    29                                 url.setQueryValue(Config.PARAM_USERSPACE, "true");
    30                         }
    3128                        dispatchRequest(url);
    3229                }
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/ComponentListService.as

    r3660 r5699  
    1313                public  const COMPONENTS_LOADED:String = "componentsLoaded";
    1414               
    15                 public function ComponentListService(space:String) {
    16                         super(COMPONENTS_LOADED, new URI(Config.instance.componentListUrl), space);
     15                public function ComponentListService(registrySpace:RegistrySpace) {
     16                        super(COMPONENTS_LOADED, new URI(Config.instance.componentListUrl), registrySpace);
    1717                }
    1818               
     
    2323                        for each (var node:XML in nodes) {
    2424                                var item:ItemDescription = new ItemDescription();
    25                                 item.createComponent(node, space);
     25                                var isPrivate:Boolean = (Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP);
     26                                item.createComponent(node, isPrivate);
    2627                                tempArray.addItem(item);
    2728                        }
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/ComponentRegistryService.as

    r4141 r5699  
    1414               
    1515                protected var serviceUrl:URI;
    16                 protected var space:String;
    1716               
    1817                public function ComponentRegistryService(successEvent:String, serviceUrl:URI) {
     
    2120                }
    2221               
     22               
    2323                override protected function dispatchRequest(url:URI):void {
    2424                        url.setQueryValue("unique", new Date().getTime().toString());
    25                         if (space == Config.SPACE_USER) {
    26                                 url.setQueryValue(Config.PARAM_USERSPACE, "true");
    27                         } else
    28                                 url.setQueryValue(Config.PARAM_USERSPACE, null);
     25                        if (Config.instance.registrySpace != null) {
     26                                url.setQueryValue(Config.REGISTRY_PARAM_SPACE, Config.instance.registrySpace.space);
     27                                if (Config.instance.registrySpace.space==Config.SPACE_GROUP) {
     28                                        url.setQueryValue(Config.REGISTRY_PARAM_GROUP_ID, Config.instance.registrySpace.groupId);
     29                                }
     30                        } else {
     31                                throw "Registry space is lost."
     32                        }
    2933                        super.dispatchRequest(url);
    3034                }
     35               
     36               
    3137               
    3238                public function load():void {
     
    3541               
    3642                public function getComponent(componentId:String, callback:Function):void{
    37                         readService.setUrl(new URI(Config.instance.serviceRootUrl+Config.ITEMS_URL+"/"+componentId+"?userspace=true"));
     43                        readService.setUrl(new URI(Config.instance.serviceRootUrl+Config.ITEMS_URL+"/"+componentId));
    3844                        var token:AsyncToken = readService.send();
    3945                        token.addResponder(new Responder(function(resultEvent):void{
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/ComponentUsageService.as

    r3660 r5699  
    2727                private var service:HTTPService;
    2828               
    29                 public function ComponentUsageService(itemDescription:ItemDescription, space:String)
     29                public function ComponentUsageService(itemDescription:ItemDescription)
    3030                {
    31                         var url:URI = new URI(Config.instance.componentUsageUrl + itemDescription.id);
    32                         if (space == Config.SPACE_USER) {
    33                                 url.setQueryValue(Config.PARAM_USERSPACE, "true");
    34                         }
    35 
     31                        var url:URI = new URI(Config.instance.componentUsageUrl + itemDescription.id);                 
    3632                        service = new HTTPService();
    3733                        service.url = url.toString();
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/Config.as

    r4156 r5699  
    1212        import mx.controls.List;
    1313 
    14         [Event(name="userSpaceToggle", type="flash.events.Event")]
     14        [Event(name="registrySpaceToggle", type="flash.events.Event")]
    1515        public final class Config extends EventDispatcher {
    16                 public static const USER_SPACE_TOGGLE_EVENT:String = "userSpaceToggle";
     16                public static const REGISTRY_SPACE_TOGGLE_EVENT:String = "registrySpaceToggle";
    1717
    1818                public static const CLARIN_REGISTER_URL:String = "http://www.clarin.eu/user/register";
    19                 public static const PARAM_USERSPACE:String = "userspace";
    2019                public static const REGISTRY_PARAM_VIEW:String = "view";
    2120                public static const REGISTRY_PARAM_BROWSER_VIEW:String = "browserview";
    22                 public static const REGISTRY_PARAM_ITEM:String = "item";
    23                 public static const REGISTRY_PARAM_SPACE:String = "space";
     21                public static const REGISTRY_PARAM_ITEM_ID:String = "itemId";
     22                public static const REGISTRY_PARAM_SPACE:String = "registrySpace";
    2423                public static const REGISTRY_PARAM_DEBUG:String = "debug";
     24                public static const REGISTRY_PARAM_GROUP_ID:String = "groupId"
    2525               
    2626                // REGISTRY_ID, COMPONENT_PREFIX, and PROFILE_PREFIX must be the same as on the server!
     
    3737                public static const VIEW_EDIT:String = "edit";
    3838                public static const VIEW_IMPORT:String = "import";
    39                 public static const FLAVOUR_PROFILES = "profiles";
    40                 public static const FLAVOUR_COMPONENTS = "components";
     39                public static const FLAVOUR_PROFILES:String = "profiles";
     40                public static const FLAVOUR_COMPONENTS:String = "components";
    4141                //Possible browser views to start with
    4242                public static const BROWSER_PANEL_VIEW:String = "view";
     
    4444                public static const BROWSER_PANEL_COMMENTS:String = "comments";
    4545                //Possible space to start with.
    46                 public static const SPACE_USER:String = "user";
    47                 public static const SPACE_PUBLIC:String = "public";
     46                public static const SPACE_PRIVATE:String = "private";
     47                public static const SPACE_PUBLISHED:String = "published";
     48                public static const SPACE_GROUP:String = "group";
    4849               
    4950                public static const COMPONENT_LIST_URL:String = "/rest/registry/components";
     
    6667               
    6768               
    68                 private var _startupItem:String; //item to be selected at startup, can be specified as a url parameter
     69                private var _startupItemId:String; //item to be selected at startup, can be specified as a url parameter
    6970                private var _serviceRootUrl:String = "http://localhost:8080/ComponentRegistry";
    7071                //Default _serviceRootUrl value can be useful for testing. Set the proper value in your (index.)html that embeds the flash object.
     
    7374                private var _view:String = VIEW_BROWSE;
    7475                private var _browserPanel:String = BROWSER_PANEL_VIEW;
    75                 private var _space:String = SPACE_PUBLIC;
    76                 private var _selectedGroup:String = "";
     76                private var _registrySpace:RegistrySpace = new RegistrySpace(SPACE_PUBLISHED, "");
    7777                private var _debug:Boolean = false;
    78                 private var _activeFlavour = FLAVOUR_PROFILES;
    79                
    80                 private var publicComponentsSrv:ComponentListService;
    81                 private var publicProfilesSrv:ProfileListService;
    82                 private var userComponentsSrv:ComponentListService;
    83                 private var userProfilesSrv:ProfileListService;
     78                private var _activeFlavour:String = FLAVOUR_PROFILES;
     79               
     80                private var componentsSrv:ComponentListService;
     81                private var profilesSrv:ProfileListService;
    8482                private var listUserGroupsMembershipService:ListUserGroupsMembershipService;
    8583                private var listGroupsOfItemService:ListGroupsOfItemService;
     
    103101                }
    104102               
    105                 public function set selectedGroup(value:String):void{
    106                         _selectedGroup=value;
    107                 }
    108 
    109                 public function get selectedGroup():String{
    110                         return _selectedGroup;
    111                 }
     103               
    112104
    113105                private function init(applicationParameters:Object):void {
    114                         var serviceRootUrl:String = applicationParameters.serviceRootUrl;
    115                         if (serviceRootUrl) {
    116                                 _serviceRootUrl = serviceRootUrl;
    117                         }
    118                         var item:String = applicationParameters.item;
    119                         if (item) {
    120                                 _startupItem = item;
    121                         }
    122                         var view:String = applicationParameters.view;
    123                         if (view) {
    124                                 _view = view;
    125                         }
    126                         var browserPanel:String = applicationParameters.browserview;
    127                         if(browserPanel){
    128                                 _browserPanel = browserPanel;
    129                         }
    130                         var space:String = applicationParameters.space;
    131                         if (space) {
    132                                 _space = space;
    133                         }
    134                         var debug:int = applicationParameters.debug;
    135                         if(debug) {
    136                                 _debug = Boolean(debug);
    137                         }
    138                        
    139                         publicProfilesSrv = new ProfileListService(SPACE_PUBLIC);
    140                         userProfilesSrv = new ProfileListService(SPACE_USER);
    141                         publicComponentsSrv = new ComponentListService(SPACE_PUBLIC);
    142                         userComponentsSrv = new ComponentListService(SPACE_USER);
     106                        var serviceRootUrl_:String = applicationParameters.serviceRootUrl;
     107                        if (serviceRootUrl_) {
     108                                _serviceRootUrl = serviceRootUrl_;
     109                        }
     110                        var itemId:String = applicationParameters.itemId;
     111                        if (itemId) {
     112                                _startupItemId = itemId;
     113                        }
     114                        var view_:String = applicationParameters.view;
     115                        if (view_) {
     116                                _view = view_;
     117                        }
     118                        var browserPanel_:String = applicationParameters.browserview;
     119                        if(browserPanel_){
     120                                _browserPanel = browserPanel_;
     121                        }
     122                       
     123                        var space_:String = applicationParameters.registrySpace;
     124                        if (!space_) {
     125                                space_ = SPACE_PUBLISHED;
     126                        };
     127                       
     128                        var groupId_:String = applicationParameters.groupId;
     129                        if (!groupId_) {
     130                                groupId_ = "";
     131                        };
     132                       
     133                        registrySpace = new RegistrySpace(space_, groupId_);
     134                       
     135                        var debug_:int = applicationParameters.debug;
     136                        if(debug_) {
     137                                _debug = Boolean(debug_);                               
     138                        }
     139                       
    143140                        listUserGroupsMembershipService = new ListUserGroupsMembershipService();
    144                         listGroupsOfItemService = new ListGroupsOfItemService();
     141                        listGroupsOfItemService = new ListGroupsOfItemService();                       
     142                       
    145143                }
    146144               
     
    149147                }
    150148
    151                 public function getProfilesSrv(userSpace:String):ProfileListService{
    152                         if (userSpace == SPACE_USER) {
    153                                 userProfilesSrv.setGroupId(_selectedGroup);
    154                                 return userProfilesSrv;
    155                         }
    156                         else
    157                         if (userSpace == SPACE_PUBLIC) {
    158                                 return publicProfilesSrv;
    159                         }
    160                         else throw "No selection";
    161                 }
    162                
    163                 public function getComponentsSrv(userSpace:String):ComponentListService{
    164                         if (userSpace == SPACE_USER) {
    165                                 userComponentsSrv.setGroupId(_selectedGroup);
    166                                 return userComponentsSrv;
    167                         }
    168                         else
    169                         if (userSpace == SPACE_PUBLIC) {
    170                                 return publicComponentsSrv;
    171                         }
    172                         else throw "unknown component server";
     149                public function getProfilesSrv():ProfileListService{
     150                                return profilesSrv;             
     151                }
     152               
     153                public function getComponentsSrv():ComponentListService{               
     154                                return componentsSrv;
    173155                }
    174156               
     
    246228                }
    247229
    248                 public function set userSpace(userSpace:String):void {
    249                         _space = userSpace;
    250                         if (userSpace == Config.SPACE_PUBLIC){
    251                                 _selectedGroup = "";
    252                         }
    253                         dispatchEvent(new Event(USER_SPACE_TOGGLE_EVENT));
     230                public function set registrySpace(registrySpace:RegistrySpace):void {
     231                        _registrySpace = registrySpace;
     232                        profilesSrv = new ProfileListService(registrySpace);                   
     233                        componentsSrv = new ComponentListService(registrySpace);
     234                       
     235                        // everything is ready to open new componentBrowser instance
     236                        dispatchEvent(new Event(REGISTRY_SPACE_TOGGLE_EVENT));
    254237                }
    255238
    256239                public function get startupItem():String {
    257                         return _startupItem;
     240                        return _startupItemId;
    258241                }
    259242
     
    266249                }
    267250
    268                 [Bindable(event="userSpaceToggle")]
    269                 public function get space():String {
    270                         return _space;
     251                [Bindable(event=REGISTRY_SPACE_TOGGLE_EVENT)]
     252                public function get registrySpace():RegistrySpace {
     253                        return _registrySpace;
    271254                }
    272255               
     
    276259
    277260                public static function getBookmarkUrl(item:ItemDescription):String {
    278                         var uri:URI = new URI(Config.instance.serviceRootUrl);
    279                     uri.setQueryValue(REGISTRY_PARAM_ITEM, item.id);
    280                         if (item.space == Config.SPACE_USER) {
    281                                 uri.setQueryValue(REGISTRY_PARAM_SPACE, SPACE_USER);
    282                         }
     261                        var uri:URI = new URI(Config.instance.serviceRootUrl); 
     262                        uri.setQueryValue(REGISTRY_PARAM_SPACE, Config.instance.registrySpace.space);
     263                        if (Config.instance.registrySpace.space == SPACE_GROUP){
     264                                uri.setQueryValue(REGISTRY_PARAM_GROUP_ID, Config.instance.registrySpace.groupId);                             
     265                        }
     266                    uri.setQueryValue(REGISTRY_PARAM_ITEM_ID, item.id);
    283267                        return uri.toString();
    284268                }
    285269               
    286                 public static function getRssUriDescriptions(typeOfDescription:String):String {
     270                public static function getRssUriDescriptions(typeOfDescription:String, registrySpace:RegistrySpace):String {
    287271                        var baseUri:String = (new URI(Config.instance.serviceRootUrl)).toString();
    288272                        var result:String=baseUri+"/rest/registry/"+typeOfDescription+"/rss";
    289                         if (Config.instance.space == SPACE_USER) result=result+"?userspace=true";
     273                        if (registrySpace.space == Config.SPACE_PRIVATE) {
     274                                result = result + "?registrySpace=private";
     275                        }
     276                        if (registrySpace.space == Config.SPACE_GROUP) {
     277                                result = result + "?registrySpace=group&groupId="+registrySpace.groupId;
     278                        }
    290279                        return result;
    291280                }
     
    296285                        if (item.isProfile) {typeOfDescription="profiles/";}
    297286                        else typeOfDescription="components/";
    298                         var result:String=baseUri+"/rest/registry/"+typeOfDescription+item.id+"/comments/rss";
    299                         if (item.space == Config.SPACE_USER) result=result+"?userspace=true";
     287                        var result:String=baseUri+"/rest/registry/"+typeOfDescription+item.id+"/comments/rss";                 
    300288                        return result;
    301289                }
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/DeleteService.as

    r3660 r5699  
    3737                       
    3838                        var deleteUrl:URI = new URI(item.dataUrl);
    39                         if (item.space == Config.SPACE_USER) {
    40                                 deleteUrl.setQueryValue(Config.PARAM_USERSPACE, "true");
     39                       
     40                        if (item.isProfile) {
     41                                sendDelete(deleteUrl);
     42                                return;
    4143                        }
    4244                       
    43                         var usageService:ComponentUsageService = new ComponentUsageService(item, item.space);
     45                        var usageService:ComponentUsageService = new ComponentUsageService(item);
    4446                        usageService.addEventListener(ComponentUsageCheckEvent.COMPONENT_IN_USE,
    4547                                function (event:ComponentUsageCheckEvent):void{
     
    5052                                        }
    5153                                });
    52                         usageService.checkUsage();
     54                        usageService.checkUsage(); // dispatching the event
    5355                }
    5456               
     
    6466                public function deleteComment(comment:Comment):void {
    6567                        CursorManager.setBusyCursor();
    66                         var url:URI = new URI(comment.dataUrl);
    67                         if (comment.itemDescription.space == Config.SPACE_USER) {
    68                                 url.setQueryValue(Config.PARAM_USERSPACE, "true");
    69                         }
     68                        var url:URI = new URI(comment.dataUrl);         
    7069                        sendDelete(url);
    7170                }
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/ListUserGroupsMembershipService.as

    r3660 r5699  
    2323                }
    2424
    25                 public function loadGroupsForUser():void{
    26                         if (groups!=null){
    27                                 this.dispatchEvent(new Event(this.successEventName));
    28                                 return;
    29                         }
     25                public function loadGroupsForUser():void{                       
    3026                        groups = new ArrayCollection();
    3127                        var url:String;
    3228                        url = Config.instance.getListGroupsOfUserPath();
    3329                        dispatchRequest(new URI(url));
     30                       
    3431                }
    3532               
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/ProfileInfoService.as

    r3660 r5699  
    2222                        profile = new Profile();
    2323                        profile.description = item;
    24                         var url:URI = new URI(item.dataUrl);
    25                         if (item.space == Config.SPACE_USER) {
    26                                 url.setQueryValue(Config.PARAM_USERSPACE, "true");
    27                         }
     24                        var url:URI = new URI(item.dataUrl);                   
    2825                        super.dispatchRequest(url);
    2926                }
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/ProfileListService.as

    r3660 r5699  
    1111                public const PROFILES_LOADED:String = "profilesLoaded";
    1212               
    13                 public function ProfileListService(space:String) {
    14                         super(PROFILES_LOADED, new URI(Config.instance.profileListUrl), space);
     13                public function ProfileListService(registrySpace:RegistrySpace) {
     14                        super(PROFILES_LOADED, new URI(Config.instance.profileListUrl), registrySpace);
    1515                }
    1616               
     
    2020                        for each (var node:XML in nodes) {
    2121                                var item:ItemDescription = new ItemDescription();
    22                                 item.createProfile(node, space);
     22                                var isPrivate:Boolean = (Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP);
     23                                item.createProfile(node, isPrivate);
    2324                                tempArray.addItem(item);
    2425                        }
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/clarin/cmdi/componentregistry/services/UploadService.as

    r3660 r5699  
    108108                        switch (action) {
    109109                                case UPDATE:
    110                                         uri = new URI(uriBase + "/" + desc.id + "/update");
    111                                         if (desc.space  == Config.SPACE_USER) {
    112                                                 uri.setQueryValue(Config.PARAM_USERSPACE, "true");
    113                                         }
     110                                        uri = new URI(uriBase + "/" + desc.id + "/update");                                     
    114111                                        break;
    115112                                case NEW:
    116113                                        uri = new URI(uriBase);
    117                                         if (desc.space == Config.SPACE_USER) {
    118                                                 uri.setQueryValue(Config.PARAM_USERSPACE, "true");
    119                                         }
    120114                                        break;
    121115                                case PUBLISH:
     
    237231                        if (response.@registered == true) {
    238232                                var item:ItemDescription = new ItemDescription();
    239                                 var isInUserSpace:Boolean = response.@isInUserSpace == true;
     233                                var isPrivate:Boolean = response.@isPrivate == true;
    240234                                if (response.@isProfile == true) {
    241                                         item.createProfile(response.description[0], isInUserSpace?Config.SPACE_USER:Config.SPACE_PUBLIC);
     235                                        item.createProfile(response.description[0], isPrivate);
    242236                                } else {
    243                                         item.createComponent(response.description[0], isInUserSpace?Config.SPACE_USER:Config.SPACE_PUBLIC);
     237                                        item.createComponent(response.description[0], isPrivate);
    244238                                }
    245239                                dispatchEvent(new UploadCompleteEvent(item));
  • ComponentRegistry/trunk/ComponentBrowserGui/src/main/flex/main.mxml

    r3660 r5699  
    99        <mx:Script>
    1010                <![CDATA[
    11                         import com.flexspy.FlexSpy;
    12                        
    13                         import mx.controls.Button;
    14                         import mx.managers.PopUpManager;
    15                        
    1611                        import clarin.cmdi.componentregistry.common.AboutPopup;
    1712                        import clarin.cmdi.componentregistry.common.Credentials;
     
    1914                        import clarin.cmdi.componentregistry.services.Config;
    2015                        import clarin.cmdi.componentregistry.services.PingSessionService;
     16                        import clarin.cmdi.componentregistry.services.RegistrySpace;
    2117                        import clarin.cmdi.componentregistry.services.remote.ClientServiceFactoryImpl;
     18                       
     19                        import com.flexspy.FlexSpy;
     20                       
     21                        import mx.controls.Button;
     22                        import mx.managers.PopUpManager;
    2223                       
    2324                        import org.hasseg.externalMouseWheel.ExternalMouseWheelSupport;
     
    6162                                sessionPinger = PingSessionService.INSTANCE
    6263                                sessionPinger.startPinging();
    63                                 if (Credentials.instance.isLoggedIn() && (Config.instance.space == Config.SPACE_USER)) {
    64                                         Config.instance.userSpace = Config.SPACE_USER;
    65                                 }
     64                                /* if (Credentials.instance.isLoggedIn() && (Config.instance.registrySpace.space == Config.SPACE_PRIVATE || Config.instance.registrySpace.space == Config.SPACE_GROUP)) {
     65                                        Config.instance.registrySpace= new RegistrySpace(Config.SPACE_PRIVATE, "");
     66                                } */
    6667                                viewStack.loadStartup();
    6768                               
Note: See TracChangeset for help on using the changeset viewer.