Author: vjrj Date: 2009-03-30 15:48:35 +0200 (Mon, 30 Mar 2009) New Revision: 1089 Added: trunk/src/main/java/org/ourproject/kune/app/public/css/img/film.png trunk/src/main/java/org/ourproject/kune/app/public/css/img/specialchars.png trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionMenuItem.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTELinkPopup.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/InsertMediaGroup.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ExternalMediaDescriptor.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ExternalMediaRegistry.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialog.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialogPanel.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialogPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialogView.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstract.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstractPanel.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstractPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstractView.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMedia.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMediaPanel.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMediaPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMediaView.java trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMedia.java trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMediaPanel.java trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMediaPresenter.java trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMediaView.java Modified: trunk/img/kune-logos.svg trunk/script/generateBasicUIElements.sh trunk/src/main/java/org/ourproject/kune/app/public/css/all.css trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/tabbed/AbstractTabbedDialogPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ImageInfo.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/InsertImageDialog.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/InsertImageDialogPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/abstractimg/InsertImageAbstractPanel.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/abstractimg/InsertImageAbstractPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/abstractimg/InsertImageAbstractView.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ext/InsertImageExtPanel.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ext/InsertImageExtPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ext/InsertImageExtView.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialog.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialogPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/LinkInfo.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/abstractlink/InsertLinkAbstractPanel.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/abstractlink/InsertLinkAbstractPresenter.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/ext/InsertLinkExtPanel.java trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertspecialchar/InsertSpecialCharDialogPanel.java trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalimg/InsertImageLocalPanel.java Log: Incomplete - task RTE: Edit/erase link contextual menu Incomplete - task Actions UI position reorganization Complete - task LinkInfo and LinkImage reference in Abstra* Incomplete - task Insert Media dialog Complete - task RTE Insert Image size bug (trans field instead of other) Modified: trunk/img/kune-logos.svg =================================================================== --- trunk/img/kune-logos.svg 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/img/kune-logos.svg 2009-03-30 13:48:35 UTC (rev 1089) @@ -86,14 +86,14 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="0.72123458" - inkscape:cx="372.04724" - inkscape:cy="526.18109" + inkscape:zoom="1" + inkscape:cx="342.68538" + inkscape:cy="391.54295" inkscape:document-units="px" inkscape:current-layer="layer1" - inkscape:window-width="1379" - inkscape:window-height="936" - inkscape:window-x="61" + inkscape:window-width="1280" + inkscape:window-height="1001" + inkscape:window-x="1280" inkscape:window-y="0" showguides="true" inkscape:guide-bbox="true" @@ -747,5 +747,81 @@ d="M 372.87905,411.27704 L 437.81346,411.27704" style="color:#000000;fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23947906;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block" /> </g> + <g + id="g2737"> + <path + inkscape:export-ydpi="399.59854" + inkscape:export-xdpi="399.59854" + inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/kune-logo-1200.png" + id="path2689" + d="M 298.07933,890.09763 C 297.3363,890.09763 296.6221,890.10025 295.90542,890.14704 C 295.83851,890.16067 295.77509,890.18388 295.70779,890.19644 C 295.04064,890.32105 294.38243,890.42731 293.6821,890.44348 C 293.58509,890.45708 293.48215,890.42895 293.38566,890.44348 C 287.66961,891.30403 282.84012,893.78596 278.95878,897.90395 C 274.42607,902.69101 272.14061,908.42577 272.1406,915.09763 C 272.1406,921.84435 274.42608,927.61807 278.95878,932.39012 C 283.86545,937.53616 290.24058,940.09761 298.07933,940.09763 C 302.23802,940.09761 306.23614,939.06435 310.03585,936.98498 C 313.8355,934.96547 317.1393,932.10715 319.96668,928.48696 L 311.41925,923.74388 C 307.7392,928.65056 303.21767,931.10554 297.8323,931.10554 C 294.09242,931.10554 290.7392,929.89235 287.85206,927.49882 C 284.91999,925.10531 283.45479,922.18991 283.45483,918.70435 L 322.53585,918.70435 L 322.53585,916.72806 C 322.53581,908.27602 319.67294,901.50799 313.98842,896.42174 C 309.20137,892.18827 303.89852,890.09769 298.07933,890.09763 z M 116.35996,890.44348 L 116.35996,909.3664 L 109.73941,909.3664 L 109.73941,919.0502 L 116.35996,919.0502 L 116.35996,938.81305 L 126.43901,938.81305 L 126.43901,919.0502 L 132.51609,919.0502 L 144.91728,938.81305 L 156.8738,938.81305 L 140.2236,913.71423 L 156.13269,891.38221 L 143.92913,891.38221 L 131.62676,909.3664 L 126.43901,909.3664 L 126.43901,890.44348 L 116.35996,890.44348 z M 240.02597,890.44348 C 238.29094,890.75314 236.67426,891.25714 235.18407,892.02451 C 232.67087,893.37089 230.68678,895.14652 229.20581,897.36048 L 229.20581,891.38221 L 219.07735,891.38221 L 219.07735,938.81305 L 229.20581,938.81305 L 229.20581,912.23202 C 229.2058,908.43237 230.27805,905.51695 232.41728,903.43755 C 234.57141,901.35823 237.30235,900.32493 240.66826,900.3249 C 244.22858,900.32493 247.00891,901.28027 248.96866,903.23992 C 250.9283,905.19964 251.88362,908.27094 251.88368,912.42965 L 251.88368,938.81305 L 262.01214,938.81305 L 262.01214,910.20633 C 262.01209,904.38713 260.23647,899.57918 256.67617,895.77945 C 254.00588,892.92972 250.91617,891.15594 247.38763,890.44348 L 240.02597,890.44348 z M 163.24732,891.38221 L 163.24732,918.85257 C 163.2473,925.28514 165.41585,930.48601 169.76905,934.46522 C 173.80809,938.20508 178.81094,940.09761 184.69,940.09763 C 190.62886,940.09761 195.60633,938.20508 199.66036,934.46522 C 204.01351,930.48601 206.18205,925.28514 206.1821,918.85257 L 206.1821,891.38221 L 196.05364,891.38221 L 196.05364,917.96324 C 196.05359,921.46376 194.98134,924.31165 192.84218,926.51067 C 190.62814,928.78452 187.93618,929.91976 184.69,929.91976 C 181.56346,929.91978 178.85062,928.76957 176.63664,926.51067 C 174.43759,924.23686 173.37574,921.40394 173.37577,917.96324 L 173.37577,891.38221 L 163.24732,891.38221 z M 296.79475,899.18854 C 300.10075,899.18859 302.9876,900.11537 305.44099,901.95534 C 307.8195,903.84025 309.57113,906.58618 310.67815,910.20633 L 283.45483,910.20633 C 284.24766,906.72081 285.89275,904.01387 288.34613,902.05415 C 290.72466,900.15434 293.53358,899.18859 296.79475,899.18854 z" + style="font-size:58.13353348px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#a56941;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Emblem" /> + <g + inkscape:export-ydpi="399.59854" + inkscape:export-xdpi="399.59854" + inkscape:export-filename="/home/vjrj/proyectos/dev/kune/trunk/img/kune-logo-1200.png" + transform="matrix(0.347343,0,0,0.346901,34.203754,588.03773)" + id="g2691"> + <path + transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" + id="path2693" + d="M 60.321717,411.99998 L 437.33633,411.99998" + style="fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23953247;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block" /> + <path + transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" + id="path2695" + d="M 252.61203,788.60332 L 252.61203,411.59154" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffdb6b;stroke-width:109.23950958;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block" /> + <path + transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" + id="path2697" + d="M 252.86937,597.15755 L 629.88177,597.15755" + style="fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#69312f;stroke-width:109.23951721;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block" /> + <path + transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" + id="path2699" + d="M 437.45588,596.97447 L 437.45588,219.95956" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#cc6633;stroke-width:109.23950195;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block" /> + <path + transform="matrix(0.240856,0.12287,-0.12287,0.240856,101.5762,778.871)" + id="path2701" + d="M 372.87905,411.27704 L 437.81346,411.27704" + style="fill:#69312f;fill-opacity:1;fill-rule:nonzero;stroke:#dd8a3d;stroke-width:109.23947906;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block" /> + </g> + </g> + <text + xml:space="preserve" + style="font-size:18.13397598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#dd8a3d;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Emblem;-inkscape-font-specification:Emblem" + x="954.11047" + y="752.78009" + id="text2703" + sodipodi:linespacing="100%"><tspan + sodipodi:role="line" + x="954.11047" + y="752.78009" + id="tspan2709">a web infrastructure to encourage collaboration,</tspan><tspan + sodipodi:role="line" + x="954.11047" + y="770.91406" + id="tspan2727">content sharing & free culture</tspan></text> + <text + xml:space="preserve" + style="font-size:17.27686882px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:100%;writing-mode:lr-tb;text-anchor:end;fill:#dd8a3d;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Emblem;-inkscape-font-specification:Emblem" + x="620.35358" + y="901.5686" + id="text2729" + sodipodi:linespacing="100%"><tspan + sodipodi:role="line" + x="625.28021" + y="901.5686" + id="tspan2731">a web infrastructure </tspan><tspan + sodipodi:role="line" + x="620.35358" + y="918.84546" + id="tspan2735">to encourage collaboration,</tspan><tspan + sodipodi:role="line" + x="620.35358" + y="936.12231" + id="tspan2733">content sharing & free culture</tspan></text> </g> </svg> Modified: trunk/script/generateBasicUIElements.sh =================================================================== --- trunk/script/generateBasicUIElements.sh 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/script/generateBasicUIElements.sh 2009-03-30 13:48:35 UTC (rev 1089) @@ -14,11 +14,11 @@ fi # DO -PACKAGE=`echo $DIR | cut -d "/" -f 4- | sed 's/\//\./g' | sed 's/\.$//g' +PACKAGE=`echo $DIR | cut -d "/" -f 4- | sed 's/\//\./g' | sed 's/\.$//g'` if [[ ! -d $DIR ]] then - mkdir $DIR + mkdir -p $DIR fi cat <<EOF > $DIR/${NAME}.java Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/all.css =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/app/public/css/all.css 2009-03-30 13:48:35 UTC (rev 1089) @@ -41,4 +41,4 @@ padding: 1px 0px 1px 1px; text-decoration:none; } -*/.x-tree-node .k-ctn-status-normal a span{}.x-tree-node .k-ctn-status-deleted a span{text-decoration:line-through;color:gray;}.x-tree-node .k-ctn-status-rejected a span{text-decoration:line-through;/* color: #FF6633; */color:#F30;}.x-tree-node .k-ctn-status-editing a span{font-style:italic;color:gray;}.x-tree-node .k-ctn-status-submitted a span{color:green;}.k-info-links{text-decoration:underline;color:gray;cursor:pointer;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-basic-thumb{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-basic-thumb td{padding:2px 3px;border:none;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;cursor:pointer;overflow:hidden;}.k-tsp-tag{float:right;margin-right:5px;cursor:pointer;color:#00F;}.k-tsp-cloud{vertical-align:bottom;}.k-link-icon{background-image:url(img/link.gif)!important;}.k-options-icon{background-image:url(img/emblem-system.gif)!important;}.k-copyleft-icon{background-image:url(img/copyleft.png)!important;}.k-picture-icon{background-image:url(img/picture.png)!important;}.k-info-icon{background-image:url(img/info.gif)!important;}.k-newgroup-icon{background-image:url(img/kune-icon16.png)!important;}.k-colors-icon{background-image:url(img/colors.gif)!important;}.x-toolbar-body table{/* width: 100%; */}.k-preview-msg{background:#FCA;}.k-preview-msg-lab{background:#FCA;padding:0 5px;}.k-eil-edit{border:thin solid #000;}/* duplicated in rte.css */.k-rte-comment{border:1px dashed silver;line-height:1.4;padding:1px;background-color:#D7FFD7;}.k-specialchar-grid{border:1px solid #ACA899;}.k-specialchar-grid table{}.k-specialchar-grid div{line-height:22px;}.k-specialchar-grid td{padding:1px;}.k-specialchar-pb{border:1px solid #EBE8D7;cursor:pointer;font-size:108%!important;text-align:center;vertical-align:middle;width:18px;height:18px;}.k-specialchar-pb-up{}.k-specialchar-big{padding:3px;line-height:22px;font-size:153.899994%!important;}.k-specialchar-adv-label{margin-left:-10px;}.k-specialchar-popup{border:1px solid silver;z-index:9999!important;background-color:#FFF;}.k-specialchar-pb-down{color:#161616;}.k-specialchar-pb-up-hovering{border:thin solid #ACA899;}.k-specialchar-pb-down-hovering{color:#161616;} \ No newline at end of file +*/.x-tree-node .k-ctn-status-normal a span{}.x-tree-node .k-ctn-status-deleted a span{text-decoration:line-through;color:gray;}.x-tree-node .k-ctn-status-rejected a span{text-decoration:line-through;/* color: #FF6633; */color:#F30;}.x-tree-node .k-ctn-status-editing a span{font-style:italic;color:gray;}.x-tree-node .k-ctn-status-submitted a span{color:green;}.k-info-links{text-decoration:underline;color:gray;cursor:pointer;}.x-tool-kmenu{background-position:0 -75px;}.x-tool-kmenu-over{background-position:-15px -75px;}.k-border-openbox{border-bottom:1px #D0D0D0 solid;border-right:1px #D0D0D0 solid;border-left:1px #D0D0D0 solid;}/* SiteToastMessages */.k-stm-info-icon{background-image:url(img/info.gif)!important;}.k-stm-imp-icon{background-image:url(img/alert.gif)!important;}.k-stm-verimp-icon{background-image:url(img/important.gif)!important;}.k-stm-error-icon{background-image:url(img/error.gif)!important;}.k-error-tb{background:#FFB380 none repeat scroll 0 50%;color:#250;}.k-infod-head{font-size:108%;margin-bottom:10px;}.gwt-DisclosurePanel{}.gwt-DisclosurePanel-open{}.gwt-DisclosurePanel-closed{}.gwt-DisclosurePanel .header,.gwt-DisclosurePanel .header a,.gwt-DisclosurePanel .header td{text-decoration:none;/* Remove underline from header */color:#000;cursor:pointer;cursor:hand;}.gwt-DisclosurePanel .content{border-left:3px solid #e8eef7;padding:4px 0 4px 8px;margin-left:6px;}.k-basic-thumb{background:#FAFAFA none repeat scroll 0 50%;border:1px solid #EBEBEB;padding:3px;margin:3px;}.k-basic-thumb td{padding:2px 3px;border:none;}.k-text-gray{color:gray;}.k-elp-limg{margin-top:4px;margin-left:5px;cursor:pointer;overflow:hidden;}.k-tsp-tag{float:right;margin-right:5px;cursor:pointer;color:#00F;}.k-tsp-cloud{vertical-align:bottom;}.k-link-icon{background-image:url(img/link.gif)!important;}.k-options-icon{background-image:url(img/emblem-system.gif)!important;}.k-copyleft-icon{background-image:url(img/copyleft.png)!important;}.k-picture-icon{background-image:url(img/picture.png)!important;}.k-film-icon{background-image:url(img/film.png)!important;}.k-specialchars-icon{background-image:url(img/specialchars.png)!important;}.k-info-icon{background-image:url(img/info.gif)!important;}.k-newgroup-icon{background-image:url(img/kune-icon16.png)!important;}.k-colors-icon{background-image:url(img/colors.gif)!important;}.x-toolbar-body table{/* width: 100%; */}.k-preview-msg{background:#FCA;}.k-preview-msg-lab{background:#FCA;padding:0 5px;}.k-eil-edit{border:thin solid #000;}/* duplicated in rte.css */.k-rte-comment{border:1px dashed silver;line-height:1.4;padding:1px;background-color:#D7FFD7;}.k-specialchar-grid{border:1px solid #ACA899;}.k-specialchar-grid table{}.k-specialchar-grid div{line-height:22px;}.k-specialchar-grid td{padding:1px;}.k-specialchar-pb{border:1px solid #EBE8D7;cursor:pointer;font-size:108%!important;text-align:center;vertical-align:middle;width:18px;height:18px;}.k-specialchar-pb-up{}.k-specialchar-big{padding:3px;line-height:22px;font-size:153.899994%!important;}.k-specialchar-adv-label{margin-left:-10px;}.k-specialchar-popup,.k-rte-changelink-popup{border:1px solid silver;z-index:9999!important;background-color:#FFF;}.k-specialchar-pb-down{color:#161616;}.k-specialchar-pb-up-hovering{border:thin solid #ACA899;}.k-specialchar-pb-down-hovering{color:#161616;}.k-preview-panel{border:dashed 1px gray;}.k-rte-changelink{white-space:nowrap;color:navy;cursor:pointer;text-decoration:underline;margin:5px;} \ No newline at end of file Added: trunk/src/main/java/org/ourproject/kune/app/public/css/img/film.png =================================================================== (Binary files differ) Property changes on: trunk/src/main/java/org/ourproject/kune/app/public/css/img/film.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/src/main/java/org/ourproject/kune/app/public/css/img/specialchars.png =================================================================== (Binary files differ) Property changes on: trunk/src/main/java/org/ourproject/kune/app/public/css/img/specialchars.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css =================================================================== --- trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/app/public/css/kune-new.css 2009-03-30 13:48:35 UTC (rev 1089) @@ -841,6 +841,14 @@ background-image: url(img/picture.png) !important; } +.k-film-icon { + background-image: url(img/film.png) !important; +} + +.k-specialchars-icon { + background-image: url(img/specialchars.png) !important; +} + .k-info-icon { background-image: url(img/info.gif) !important; } @@ -854,6 +862,7 @@ } .x-toolbar-body table { /* width: 100%; */ + } .k-preview-msg { @@ -904,6 +913,7 @@ } .k-specialchar-pb-up { + } .k-specialchar-big { @@ -916,7 +926,7 @@ margin-left: -10px; } -.k-specialchar-popup { +.k-specialchar-popup, { border: 1px solid #C0C0C0; z-index: 9999 !important; background-color: #FFF; @@ -932,4 +942,22 @@ .k-specialchar-pb-down-hovering { color: #161616; +} + +.k-preview-panel { + border: dashed 1px gray; +} + +.k-rte-changelink { + white-space: nowrap; + color: navy; + cursor: pointer; + text-decoration: underline; + margin: 5px; +} + +.k-rte-changelink-popup { + border: 1px solid #C0C0C0; + z-index: 9999 !important; + background-color: #ECECEC; } \ No newline at end of file Modified: trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/docs/client/DocumentClientActions.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -79,6 +79,7 @@ createNewContentAction(TYPE_DOCUMENT, "images/nav/page_add.png", i18n.t("New document"), parentMenuTitleCtx, Position.ctx, TYPE_ROOT, TYPE_FOLDER); + createTranslateAction(parentMenuTitle, TYPE_DOCUMENT, TYPE_FOLDER); createContentRenameAction(parentMenuTitle, i18n.t("Rename"), contents); createEditAction(parentMenuTitle, TYPE_DOCUMENT); createContentModeratedActions(parentMenuTitle, contentsModerated); @@ -101,8 +102,6 @@ createGoHomeAction(containers); - createTranslateAction(TYPE_DOCUMENT, TYPE_FOLDER); - createDelContainerAction("Delete folder", parentMenuTitleCtx, containersNoRoot); createDelContentAction(parentMenuTitle, i18n.t("Delete"), contents); createShowDeletedItems(parentMenuTitleCtx, all); Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionMenuItem.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionMenuItem.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionMenuItem.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,71 @@ +package org.ourproject.kune.platf.client.actions.toolbar; + +import org.ourproject.kune.platf.client.actions.ActionItem; +import org.ourproject.kune.platf.client.actions.ActionToolbarMenuCheckItemDescriptor; +import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor; +import org.ourproject.kune.platf.client.actions.ActionToolbarMenuRadioDescriptor; + +import com.calclab.suco.client.events.Listener0; +import com.gwtext.client.core.EventObject; +import com.gwtext.client.widgets.menu.BaseItem; +import com.gwtext.client.widgets.menu.CheckItem; +import com.gwtext.client.widgets.menu.Item; +import com.gwtext.client.widgets.menu.event.BaseItemListenerAdapter; + +public class ActionMenuItem<T> { + + Item item; + + public ActionMenuItem(final ActionItem<T> actionItem, final String id, final Listener0 onclick) { + final ActionToolbarMenuDescriptor<T> action = (ActionToolbarMenuDescriptor<T>) actionItem.getAction(); + if (action instanceof ActionToolbarMenuRadioDescriptor) { + CheckItem checkItem = new CheckItem(); + ActionToolbarMenuRadioDescriptor<T> radioDescriptor = (ActionToolbarMenuRadioDescriptor<T>) action; + checkItem.setGroup(radioDescriptor.getGroup()); + checkItem.setChecked(radioDescriptor.mustBeChecked()); + item = checkItem; + } else if (action instanceof ActionToolbarMenuCheckItemDescriptor) { + CheckItem checkItem = new CheckItem(); + ActionToolbarMenuCheckItemDescriptor<T> checkItemDescriptor = (ActionToolbarMenuCheckItemDescriptor<T>) action; + checkItem.setChecked(checkItemDescriptor.getMustBeChecked().mustBeChecked()); + item = checkItem; + } else { + item = new Item(); + } + item.setText(genMenuItemText(action)); + BaseItemListenerAdapter clickListener = new BaseItemListenerAdapter() { + @Override + public void onClick(final BaseItem item, final EventObject e) { + onclick.onEvent(); + } + }; + item.addListener(clickListener); + String iconCls = action.getIconCls(); + String iconUrl = action.getIconUrl(); + if (iconCls != null) { + item.setIconCls(iconCls); + } + if (iconUrl != null) { + item.setIcon(iconUrl); + } + item.setTitle(action.getToolTip()); + if (id != null) { + item.setId(id); + } + } + + public Item getItem() { + return item; + } + + private String genMenuItemText(final ActionToolbarMenuDescriptor<T> action) { + // HorizontalPanel hp = new HorizontalPanel(); + // Label title = new Label(action.getText()); + // hp.add(title); + // hp.setCellWidth(title, "100%"); + // hp.add(new Label(action.getShortcutToS(i 18n))); + // return hp.getElement().getInnerHTML(); + return action.getText() + action.getShortcutToS(); + } + +} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPanel.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -26,9 +26,7 @@ import org.ourproject.kune.platf.client.actions.ActionManager; import org.ourproject.kune.platf.client.actions.ActionToolbarButtonDescriptor; import org.ourproject.kune.platf.client.actions.ActionToolbarButtonSeparator; -import org.ourproject.kune.platf.client.actions.ActionToolbarMenuCheckItemDescriptor; import org.ourproject.kune.platf.client.actions.ActionToolbarMenuDescriptor; -import org.ourproject.kune.platf.client.actions.ActionToolbarMenuRadioDescriptor; import org.ourproject.kune.platf.client.actions.ActionToolbarPosition; import org.ourproject.kune.platf.client.ui.AbstractToolbar; import org.ourproject.kune.platf.client.ui.FlowToolbar; @@ -38,15 +36,11 @@ import com.calclab.suco.client.events.Listener0; import com.calclab.suco.client.ioc.Provider; import com.google.gwt.user.client.ui.Widget; -import com.gwtext.client.core.EventObject; import com.gwtext.client.core.Ext; import com.gwtext.client.widgets.ToolbarButton; -import com.gwtext.client.widgets.menu.BaseItem; -import com.gwtext.client.widgets.menu.CheckItem; import com.gwtext.client.widgets.menu.Item; import com.gwtext.client.widgets.menu.Menu; import com.gwtext.client.widgets.menu.MenuItem; -import com.gwtext.client.widgets.menu.event.BaseItemListenerAdapter; public class ActionToolbarPanel<T> implements ActionToolbarView<T> { @@ -60,7 +54,7 @@ this(actionManagerProvider, false); } - public ActionToolbarPanel(final Provider<ActionManager> actionManagerProvider, boolean flow) { + public ActionToolbarPanel(final Provider<ActionManager> actionManagerProvider, final boolean flow) { if (flow) { toolbar = new FlowToolbar(); } else { @@ -124,7 +118,7 @@ public void detach() { } - public int getLeftPosition(ActionDescriptor<T> action) { + public int getLeftPosition(final ActionDescriptor<T> action) { final ToolbarButton button = findButton(action); if (button != null) { return button.getAbsoluteLeft(); @@ -136,7 +130,7 @@ return toolbar; } - public int getTopPosition(ActionDescriptor<T> action) { + public int getTopPosition(final ActionDescriptor<T> action) { final ToolbarButton button = findButton(action); if (button != null) { return button.getAbsoluteTop(); @@ -167,7 +161,8 @@ toolbar.setNormalStyle(); } - public void setParentMenuTitle(ActionToolbarPosition position, String origTitle, String origTooltip, String newTitle) { + public void setParentMenuTitle(final ActionToolbarPosition position, final String origTitle, + final String origTooltip, final String newTitle) { final String menuKey = genMenuKey(position, origTitle, origTooltip, null, null); ToolbarButton button = buttons.get(menuKey); if (button != null) { @@ -208,59 +203,27 @@ toolbar.add(widget); } - private void addFloatStyle(Widget widget) { + private void addFloatStyle(final Widget widget) { if (toolbar instanceof FlowToolbar) { widget.addStyleName("kune-floatleft"); } } - private void addSeparator(Menu menu, boolean separator) { + private void addSeparator(final Menu menu, final boolean separator) { if (separator) { menu.addSeparator(); } } private Item createToolbarMenu(final ActionToolbarPosition toolBarPos, final String menuTitle, - final String menuTooltip, final String menuSubTitle, final ActionItem<T> actionItem, String id) { + final String menuTooltip, final String menuSubTitle, final ActionItem<T> actionItem, final String id) { final ActionToolbarMenuDescriptor<T> action = (ActionToolbarMenuDescriptor<T>) actionItem.getAction(); - final Item item; - if (action instanceof ActionToolbarMenuRadioDescriptor) { - CheckItem checkItem = new CheckItem(); - ActionToolbarMenuRadioDescriptor<T> radioDescriptor = (ActionToolbarMenuRadioDescriptor<T>) action; - checkItem.setGroup(radioDescriptor.getGroup()); - checkItem.setChecked(radioDescriptor.mustBeChecked()); - item = checkItem; - } else if (action instanceof ActionToolbarMenuCheckItemDescriptor) { - CheckItem checkItem = new CheckItem(); - ActionToolbarMenuCheckItemDescriptor<T> checkItemDescriptor = (ActionToolbarMenuCheckItemDescriptor<T>) action; - checkItem.setChecked(checkItemDescriptor.getMustBeChecked().mustBeChecked()); - item = checkItem; - } else { - item = new Item(); - } - item.setText(genMenuItemText(action)); - BaseItemListenerAdapter clickListener = new BaseItemListenerAdapter() { - @Override - public void onClick(BaseItem item, EventObject e) { + + Item item = (new ActionMenuItem<T>(actionItem, id, new Listener0() { + public void onEvent() { actionManagerProvider.get().doAction(actionItem); } - }; - item.addListener(clickListener); - String iconCls = action.getIconCls(); - String iconUrl = action.getIconUrl(); - if (iconCls != null) { - item.setIconCls(iconCls); - } - if (iconUrl != null) { - item.setIcon(iconUrl); - } - // ToolTip tip = new ToolTip(); - // tip.setHtml(action.getToolTip()); - // tip.setShowDelay(5000); - item.setTitle(action.getToolTip()); - if (id != null) { - item.setId(id); - } + })).getItem(); final String menuKey = genMenuKey(toolBarPos, menuTitle, menuTooltip, null, null); final String subMenuKey = genMenuKey(toolBarPos, menuTitle, menuTooltip, menuSubTitle, null); @@ -294,7 +257,7 @@ } private Menu createToolbarMenu(final ActionToolbarPosition barPosition, final String iconUrl, final String iconCls, - final String menuTitle, final String menuKey, final String menuTooltip, int position) { + final String menuTitle, final String menuKey, final String menuTooltip, final int position) { final Menu menu = new Menu(); menu.setShadow(true); final ToolbarButton toolbarMenu = new ToolbarButton(menuTitle); @@ -330,16 +293,6 @@ return id; } - private String genMenuItemText(final ActionToolbarMenuDescriptor<T> action) { - // HorizontalPanel hp = new HorizontalPanel(); - // Label title = new Label(action.getText()); - // hp.add(title); - // hp.setCellWidth(title, "100%"); - // hp.add(new Label(action.getShortcutToS(i 18n))); - // return hp.getElement().getInnerHTML(); - return action.getText() + action.getShortcutToS(); - } - private String genMenuKey(final ActionToolbarPosition pos, final String menuTitle, final String menuTooltip, final String menuSubTitle, final String actionText) { Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/CoreModule.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -23,6 +23,7 @@ import org.ourproject.kune.platf.client.app.EntityOptionsGroup; import org.ourproject.kune.platf.client.app.ToolGroup; import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageGroup; +import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertMediaGroup; import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkGroup; import org.ourproject.kune.platf.client.ui.rte.insertspecialchar.InsertSpecialCharGroup; @@ -36,6 +37,7 @@ registerDecorator(ToolGroup.class, new ToolGroup(container)); registerDecorator(EntityOptionsGroup.class, new EntityOptionsGroup(container)); registerDecorator(InsertImageGroup.class, new InsertImageGroup(container)); + registerDecorator(InsertMediaGroup.class, new InsertMediaGroup(container)); registerDecorator(InsertLinkGroup.class, new InsertLinkGroup(container)); registerDecorator(InsertSpecialCharGroup.class, new InsertSpecialCharGroup(container)); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/services/PlatformModule.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -73,6 +73,7 @@ import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageDialogPanel; import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageDialogPresenter; import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageGroup; +import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertMediaGroup; import org.ourproject.kune.platf.client.ui.rte.insertimg.ext.InsertImageExt; import org.ourproject.kune.platf.client.ui.rte.insertimg.ext.InsertImageExtPanel; import org.ourproject.kune.platf.client.ui.rte.insertimg.ext.InsertImageExtPresenter; @@ -87,6 +88,13 @@ import org.ourproject.kune.platf.client.ui.rte.insertlink.ext.InsertLinkExtPanel; import org.ourproject.kune.platf.client.ui.rte.insertlink.ext.InsertLinkExtPresenter; import org.ourproject.kune.platf.client.ui.rte.insertlink.ext.InsertLinkExtView; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.ExternalMediaRegistry; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.InsertMediaDialog; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.InsertMediaDialogPanel; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.InsertMediaDialogPresenter; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.ext.InsertExtMedia; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.ext.InsertExtMediaPanel; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.ext.InsertExtMediaPresenter; import org.ourproject.kune.platf.client.ui.rte.insertspecialchar.InsertSpecialCharDialog; import org.ourproject.kune.platf.client.ui.rte.insertspecialchar.InsertSpecialCharDialogPanel; import org.ourproject.kune.platf.client.ui.rte.insertspecialchar.InsertSpecialCharDialogPresenter; @@ -330,7 +338,7 @@ final RTEditorPresenter presenter = new RTEditorPresenter($(I18nTranslationService.class), $(Session.class), topBar, sndBar, $(RTEImgResources.class), $$(InsertLinkDialog.class), $$(ColorWebSafePalette.class), $$(EditHtmlDialog.class), $$(InsertImageDialog.class), - $$(InsertTableDialog.class), $$(InsertSpecialCharDialog.class), $(DeferredCommandWrapper.class)); + $$(InsertMediaDialog.class), $$(InsertTableDialog.class), $$(InsertSpecialCharDialog.class), $(DeferredCommandWrapper.class)); final RTEditorPanel panel = new RTEditorPanel(presenter, $(I18nUITranslationService.class), $(ActionManager.class), $(GlobalShortcutRegister.class)); presenter.init(panel); @@ -479,6 +487,32 @@ } }); + register(InsertMediaGroup.class, new Factory<InsertExtMedia>(InsertExtMedia.class) { + @Override + public InsertExtMedia create() { + final InsertExtMediaPresenter presenter = new InsertExtMediaPresenter($(InsertMediaDialog.class), $(ExternalMediaRegistry.class)); + final InsertExtMediaPanel panel = new InsertExtMediaPanel(presenter, i18n, $(ExternalMediaRegistry.class)); + presenter.init(panel); + return presenter; + } + }); + + register(Singleton.class, new Factory<InsertMediaDialog>(InsertMediaDialog.class) { + @Override + public InsertMediaDialog create() { + final InsertMediaDialogPresenter presenter = new InsertMediaDialogPresenter(); + final InsertMediaDialogPanel panel = new InsertMediaDialogPanel(presenter, i18n, $(Images.class), $(InsertMediaGroup.class)); + presenter.init(panel); + return presenter; + } + }); + + register(Singleton.class, new Factory<ExternalMediaRegistry>(ExternalMediaRegistry.class) { + @Override + public ExternalMediaRegistry create() { + return new ExternalMediaRegistry(); + }}); + $(ApplicationComponentGroup.class).createAll(); $(ToolGroup.class).createAll(); $(Application.class).start(); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/tabbed/AbstractTabbedDialogPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/tabbed/AbstractTabbedDialogPresenter.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/dialogs/tabbed/AbstractTabbedDialogPresenter.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -26,11 +26,11 @@ private AbstractTabbedDialogView view; - public void activateTab(int index) { + public void activateTab(final int index) { view.activateTab(index); } - public void addTab(View tab) { + public void addTab(final View tab) { view.addTab(tab); } @@ -46,19 +46,20 @@ view.hideMessages(); } - public void init(AbstractTabbedDialogView view) { + public void init(final AbstractTabbedDialogView view) { this.view = view; } - public void insertTab(int index, View tab) { + public void insertTab(final int index, final View tab) { view.insertTab(index, tab); } - public void setErrorMessage(String message, Level level) { + public void setErrorMessage(final String message, final Level level) { view.setErrorMessage(message, level); } public void show() { + hideMessages(); view.createAndShow(); } Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTELinkPopup.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTELinkPopup.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTELinkPopup.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,48 @@ +package org.ourproject.kune.platf.client.ui.rte.basic; + +import org.ourproject.kune.platf.client.actions.ActionItem; + +import com.calclab.suco.client.events.Listener0; +import com.google.gwt.user.client.ui.ClickListener; +import com.google.gwt.user.client.ui.HorizontalPanel; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.PopupPanel; +import com.google.gwt.user.client.ui.Widget; + +public class RTELinkPopup { + private final HorizontalPanel hp; + private PopupPanel popupPalette; + + public RTELinkPopup() { + hp = new HorizontalPanel(); + hp.setSpacing(5); + } + + public void addAction(final ActionItem<Object> item, final Listener0 onClick) { + Label actionLabel = new Label(); + actionLabel.setText(item.getAction().getText()); + actionLabel.addStyleName("k-rte-changelink"); + actionLabel.addClickListener(new ClickListener() { + public void onClick(final Widget arg0) { + onClick.onEvent(); + } + }); + hp.add(actionLabel); + } + + public void hide() { + if (popupPalette != null) { + popupPalette.hide(); + } + } + + public void show(final int left, final int top) { + popupPalette = new PopupPanel(false, false); + popupPalette.addStyleName("k-rte-changelink-popup"); + popupPalette.setVisible(false); + popupPalette.show(); + popupPalette.setPopupPosition(left, top); + popupPalette.setWidget(hp); + popupPalette.setVisible(true); + } +} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditor.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -13,6 +13,7 @@ public final ActionToolbarPosition topbarPosition = new ActionToolbarPosition("rte-topbar"); public final ActionToolbarPosition sndbarPosition = new ActionToolbarPosition("rte-sndbar");; + public final ActionToolbarPosition linkCtxPosition = new ActionToolbarPosition("rte-linkctx");; void addAction(ActionDescriptor<Object> action); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPanel.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -28,8 +28,11 @@ import org.xwiki.gwt.dom.client.Range; import org.xwiki.gwt.dom.client.Selection; +import com.calclab.suco.client.events.Listener0; import com.google.gwt.dom.client.Element; +import com.google.gwt.user.client.Command; import com.google.gwt.user.client.DOM; +import com.google.gwt.user.client.DeferredCommand; import com.google.gwt.user.client.Event; import com.google.gwt.user.client.ui.FocusListener; import com.google.gwt.user.client.ui.Widget; @@ -38,11 +41,11 @@ private class EventListener implements FocusListener { - public void onFocus(Widget sender) { + public void onFocus(final Widget sender) { presenter.onEditorFocus(); } - public void onLostFocus(Widget sender) { + public void onLostFocus(final Widget sender) { } } private final I18nUITranslationService i18n; @@ -52,9 +55,10 @@ private final ActionManager actionManager; private final ShortcutRegister shortcutRegister; private final GlobalShortcutRegister globalShortcutReg; + private final RTELinkPopup linkCtxMenu; - public RTEditorPanel(final RTEditorPresenter presenter, I18nUITranslationService i18n, - final ActionManager actionManager, GlobalShortcutRegister globalShortcutReg) { + public RTEditorPanel(final RTEditorPresenter presenter, final I18nUITranslationService i18n, + final ActionManager actionManager, final GlobalShortcutRegister globalShortcutReg) { this.presenter = presenter; this.i18n = i18n; this.actionManager = actionManager; @@ -66,10 +70,10 @@ addFocusListener(listener); setWidth("96%"); setHeight("100%"); - + linkCtxMenu = new RTELinkPopup(); } - public void addActions(ActionItemCollection<Object> actionItems) { + public void addActions(final ActionItemCollection<Object> actionItems) { for (ActionItem<Object> actionItem : actionItems) { ActionDescriptor<Object> action = actionItem.getAction(); if (action.hasShortcut() && action.mustBeAdded(null)) { @@ -79,7 +83,15 @@ } } - public void adjustSize(int height) { + public void addCtxAction(final ActionItem<Object> actionItem) { + linkCtxMenu.addAction(actionItem, new Listener0() { + public void onEvent() { + actionManager.doAction(actionItem); + } + }); + } + + public void adjustSize(final int height) { setHeight("" + height); } @@ -95,7 +107,7 @@ extended.copy(); } - public void createLink(String url) { + public void createLink(final String url) { extended.createLink(url); } @@ -141,6 +153,10 @@ return getFstRange().cloneContents().getInnerText(); } + public void hideLinkCtxMenu() { + linkCtxMenu.hide(); + } + public void insertBlockquote() { DocumentFragment extracted = getFstRange().cloneContents(); // delete(); @@ -148,18 +164,18 @@ focus(); } - public void insertComment(String author) { + public void insertComment(final String author) { String comment = null; createCommentAndSelectIt(author, comment); } - public void insertCommentNotUsingSelection(String author) { + public void insertCommentNotUsingSelection(final String author) { getFstRange().collapse(false); createCommentAndSelectIt(author, null); focus(); } - public void insertCommentUsingSelection(String author) { + public void insertCommentUsingSelection(final String author) { DocumentFragment extracted = getFstRange().cloneContents(); extended.delete(); String comment = extracted.getInnerText(); @@ -171,11 +187,11 @@ extended.insertHorizontalRule(); } - public void insertHtml(String html) { + public void insertHtml(final String html) { extended.insertHtml(html); } - public void insertImage(String url) { + public void insertImage(final String url) { extended.insertImage(url); } @@ -203,6 +219,14 @@ return basic.isItalic(); } + public boolean isLink() { + if (LinkExecutableUtils.getSelectedAnchor(this) != null) { + return true; + } else { + return false; + } + } + public boolean isStrikethrough() { return extended.isStrikethrough(); } @@ -237,7 +261,7 @@ @SuppressWarnings("unchecked") @Override - public void onBrowserEvent(Event event) { + public void onBrowserEvent(final Event event) { switch (DOM.eventGetType(event)) { case Event.ONCLICK: updateStatus(); @@ -256,6 +280,7 @@ } else { super.onBrowserEvent(event); updateStatus(); + updateLinkInfo(); if (isAnEditionKey(event.getKeyCode())) { fireEdit(); } @@ -288,22 +313,33 @@ basic.selectAll(); } - public void setBackColor(String color) { + public void setBackColor(final String color) { basic.setBackColor(color); } - public void setFontName(String name) { + public void setFontName(final String name) { basic.setFontName(name); } - public void setFontSize(FontSize size) { + public void setFontSize(final FontSize size) { basic.setFontSize(size); } - public void setForeColor(String color) { + public void setForeColor(final String color) { basic.setForeColor(color); } + public void showLinkCtxMenu() { + DeferredCommand.addCommand(new Command() { + public void execute() { + org.xwiki.gwt.dom.client.Element selectedAnchor = LinkExecutableUtils.getSelectedAnchor(RTEditorPanel.this); + linkCtxMenu.show(RTEditorPanel.this.getAbsoluteLeft() + selectedAnchor.getAbsoluteLeft(), + RTEditorPanel.this.getAbsoluteTop() + selectedAnchor.getAbsoluteTop() + 20); + } + }); + + } + public void toggleBold() { basic.toggleBold(); } @@ -340,7 +376,7 @@ presenter.fireOnEdit(); } - private void createCommentAndSelectIt(String author, String comment) { + private void createCommentAndSelectIt(final String author, final String comment) { Element commentEl = createCommentElement(author, comment); Range innerCommentRange = getDocument().createRange(); getFstRange().insertNode(commentEl); @@ -349,7 +385,7 @@ fireEdit(); } - private Element createCommentElement(String userName, String insertComment) { + private Element createCommentElement(final String userName, final String insertComment) { String time = i18n.formatDateWithLocale(new Date(), true); Element span = getDocument().createSpanElement(); String comment = insertComment != null ? insertComment : i18n.t("type your comment here"); @@ -367,7 +403,7 @@ return getDocument().getSelection(); } - private boolean isAnEditionKey(int keyCode) { + private boolean isAnEditionKey(final int keyCode) { if (keyCode != KEY_HOME && keyCode != KEY_END && keyCode != KEY_UP && keyCode != KEY_DOWN && keyCode != KEY_LEFT && keyCode != KEY_RIGHT && keyCode != KEY_PAGEDOWN && keyCode != KEY_PAGEUP && keyCode != KEY_ESCAPE) { @@ -377,6 +413,10 @@ } } + private void updateLinkInfo() { + presenter.updateLinkInfo(); + } + /** * Updates the status of all the stateful buttons. */ Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -16,7 +16,6 @@ import org.ourproject.kune.platf.client.i18n.I18nTranslationService; import org.ourproject.kune.platf.client.shortcuts.ShortcutDescriptor; import org.ourproject.kune.platf.client.state.Session; -import org.ourproject.kune.platf.client.ui.TextUtils; import org.ourproject.kune.platf.client.ui.noti.NotifyUser; import org.ourproject.kune.platf.client.ui.palette.ColorWebSafePalette; import org.ourproject.kune.platf.client.ui.rte.RichTextArea; @@ -26,6 +25,7 @@ import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageDialog; import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkDialog; import org.ourproject.kune.platf.client.ui.rte.insertlink.LinkInfo; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.InsertMediaDialog; import org.ourproject.kune.platf.client.ui.rte.insertspecialchar.InsertSpecialCharDialog; import org.ourproject.kune.platf.client.ui.rte.inserttable.InsertTableDialog; import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper; @@ -75,17 +75,19 @@ private Listener<String> insertTableListener; private Listener<LinkInfo> insertLinkListener; private Listener<ImageInfo> insertImageListener; + private Listener<String> insertMediaListener; private Listener<String> updateHtmlListener; private ActionToolbarButtonDescriptor<Object> insertTableBtn; private final Provider<InsertSpecialCharDialog> insertSpecialCharDialog; protected Listener<String> insertSpecialCharListener; + private final Provider<InsertMediaDialog> insertMediaDialog; - public RTEditorPresenter(I18nTranslationService i18n, Session session, RTEActionTopToolbar topBar, - RTEActionSndToolbar sndBar, RTEImgResources imgResources, - Provider<InsertLinkDialog> textEditorInsertElement, Provider<ColorWebSafePalette> palette, - Provider<EditHtmlDialog> editHtmlDialog, Provider<InsertImageDialog> insertImageDialog, - Provider<InsertTableDialog> insertTableDialog, Provider<InsertSpecialCharDialog> insertSpecialCharDialog, - DeferredCommandWrapper deferred) { + public RTEditorPresenter(final I18nTranslationService i18n, final Session session, + final RTEActionTopToolbar topBar, final RTEActionSndToolbar sndBar, final RTEImgResources imgResources, + final Provider<InsertLinkDialog> textEditorInsertElement, final Provider<ColorWebSafePalette> palette, + final Provider<EditHtmlDialog> editHtmlDialog, final Provider<InsertImageDialog> insertImageDialog, + final Provider<InsertMediaDialog> insertMediaDialog, final Provider<InsertTableDialog> insertTableDialog, + final Provider<InsertSpecialCharDialog> insertSpecialCharDialog, final DeferredCommandWrapper deferred) { this.i18n = i18n; this.session = session; this.topBar = topBar; @@ -94,6 +96,7 @@ this.palette = palette; this.editHtmlDialog = editHtmlDialog; this.insertImageDialog = insertImageDialog; + this.insertMediaDialog = insertMediaDialog; this.insertTableDialog = insertTableDialog; this.insertSpecialCharDialog = insertSpecialCharDialog; this.deferred = deferred; @@ -105,22 +108,22 @@ actions = new ActionItemCollection<Object>(); this.onEdit = new Event0("onRTEEdit"); canBeBasic = new ActionAddCondition<Object>() { - public boolean mustBeAdded(Object param) { + public boolean mustBeAdded(final Object param) { return view.canBeBasic(); } }; canBeExtended = new ActionAddCondition<Object>() { - public boolean mustBeAdded(Object param) { + public boolean mustBeAdded(final Object param) { return isExtended(); } }; } - public void addAction(ActionDescriptor<Object> action) { + public void addAction(final ActionDescriptor<Object> action) { actions.add(withNoItem(action)); } - public void addActions(ActionCollection<Object> actioncollection) { + public void addActions(final ActionCollection<Object> actioncollection) { actions.addAll(withNoItem(actioncollection)); } @@ -177,7 +180,7 @@ return topBar; } - public void init(RTEditorView view) { + public void init(final RTEditorView view) { this.view = view; createBasicActions(); } @@ -188,24 +191,32 @@ palette.get().hide(); } - public void setExtended(boolean extended) { + public void setExtended(final boolean extended) { this.extended = extended; } - public void setFocus(boolean focus) { + public void setFocus(final boolean focus) { view.setFocus(focus); } - public void setHtml(String html) { + public void setHtml(final String html) { view.setHTML(html); view.focus(); } - public void setText(String text) { + public void setText(final String text) { view.setText(text); view.focus(); } + public void updateLinkInfo() { + if (isExtended() && view.isLink()) { + view.showLinkCtxMenu(); + } else { + view.hideLinkCtxMenu(); + } + } + public void updateStatus() { if (view.canBeBasic()) { sndBar.setPushButtonPressed(bold, view.isBold()); @@ -424,7 +435,7 @@ public void onEvent() { if (updateHtmlListener == null) { updateHtmlListener = new Listener<String>() { - public void onEvent(String html) { + public void onEvent(final String html) { view.setHTML(html); fireOnEdit(); } @@ -474,7 +485,7 @@ } }); comment.setEnableCondition(new ActionEnableCondition<Object>() { - public boolean mustBeEnabled(Object param) { + public boolean mustBeEnabled(final Object param) { return session.isLogged(); } }); @@ -587,7 +598,7 @@ public void onEvent() { if (insertImageListener == null) { insertImageListener = new Listener<ImageInfo>() { - public void onEvent(ImageInfo imageInfo) { + public void onEvent(final ImageInfo imageInfo) { String img = imageInfo.toString(); Log.debug("Image: " + imageInfo); view.focus(); @@ -597,9 +608,7 @@ }; } InsertImageDialog dialog = insertImageDialog.get(); - dialog.setImageInfo(new ImageInfo("", ImageInfo.DEF_WRAP_VALUE, - ImageInfo.DEF_CLICK_ORIGINAL_VALUE, ImageInfo.POSITION_LEFT, - ImageInfo.SIZE_ORIGINAL)); + dialog.reset(); dialog.setOnCreateImage(insertImageListener); dialog.show(); } @@ -616,34 +625,64 @@ imgMenu.setParentMenuTitle(i18n.t(INSERT_MENU)); imgMenu.setActionPosition(topbarPosition); + final ActionToolbarMenuDescriptor<Object> insertMedia = new ActionToolbarMenuDescriptor<Object>(accessRol, + topbarPosition, new Listener0() { + public void onEvent() { + deferred.addCommand(new Listener0() { + public void onEvent() { + if (insertMediaListener == null) { + insertMediaListener = new Listener<String>() { + public void onEvent(final String html) { + Log.debug("Media: " + html); + view.focus(); + view.insertHtml(html); + fireOnEdit(); + } + }; + } + InsertMediaDialog dialog = insertMediaDialog.get(); + dialog.setOnCreate(insertMediaListener); + dialog.show(); + } + }); + } + }); + insertMedia.setIconCls(getCssName(imgResources.film())); + insertMedia.setTextDescription(i18n.t("Audio/Video...")); + insertMedia.setAddCondition(canBeExtended); + insertMedia.setParentMenuTitle(i18n.t(INSERT_MENU)); + ActionToolbarButtonDescriptor<Object> createOrEditLinkBtn = new ActionToolbarButtonDescriptor<Object>( accessRol, sndbarPosition, new Listener0() { public void onEvent() { - if (insertLinkListener == null) { - insertLinkListener = new Listener<LinkInfo>() { - public void onEvent(LinkInfo linkInfo) { - String link = linkInfo.toString(); - Log.debug("Link: " + link); - view.focus(); - view.insertHtml(link); - fireOnEdit(); + deferred.addCommand(new Listener0() { + public void onEvent() { + if (insertLinkListener == null) { + insertLinkListener = new Listener<LinkInfo>() { + public void onEvent(final LinkInfo linkInfo) { + String link = linkInfo.toString(); + Log.debug("Link: " + link); + view.focus(); + view.insertHtml(link); + fireOnEdit(); + } + }; } - }; - } - LinkInfo linkInfo = view.getLinkInfoIfHref(); - InsertLinkDialog dialog = insertLinkDialog.get(); - dialog.setLinkInfo(linkInfo); - dialog.setOnCreateLink(insertLinkListener); - dialog.show(); - String href = linkInfo.getHref(); - if (href.length() > 0) { - if (href.startsWith("mailto")) { - dialog.activateTab(2); - } else { - dialog.activateTab(1); + LinkInfo linkInfo = view.getLinkInfoIfHref(); + InsertLinkDialog dialog = insertLinkDialog.get(); + dialog.setLinkInfo(linkInfo); + dialog.setOnCreateLink(insertLinkListener); + dialog.show(); + String href = linkInfo.getHref(); + if (href.length() > 0) { + if (href.startsWith("mailto")) { + dialog.activateTab(2); + } else { + dialog.activateTab(1); + } + } } - } - + }); } }); createOrEditLinkBtn.setIconCls(getCssName(imgResources.link())); @@ -659,6 +698,13 @@ createOrEditLink.setActionPosition(topbarPosition); createOrEditLink.setParentMenuTitle(i18n.t(INSERT_MENU)); + ActionToolbarMenuDescriptor<Object> editLinkCtx = new ActionToolbarMenuDescriptor<Object>(createOrEditLink); + editLinkCtx.setTextDescription(i18n.t("Change")); + editLinkCtx.setToolTip(null); + editLinkCtx.setShortcut(null); + editLinkCtx.setActionPosition(linkCtxPosition); + editLinkCtx.setParentMenuTitle(i18n.t(INSERT_MENU)); + ActionToolbarButtonDescriptor<Object> removeLink = new ActionToolbarButtonDescriptor<Object>(accessRol, sndbarPosition, new Listener0() { public void onEvent() { @@ -671,6 +717,13 @@ removeLink.setShortcut(new ShortcutDescriptor(true, true, 'K')); removeLink.setAddCondition(canBeExtended); + ActionToolbarMenuDescriptor<Object> removeLinkCtx = new ActionToolbarMenuDescriptor<Object>(removeLink); + removeLinkCtx.setTextDescription(i18n.t("Remove")); + removeLinkCtx.setToolTip(null); + removeLinkCtx.setShortcut(null); + removeLinkCtx.setActionPosition(linkCtxPosition); + removeLinkCtx.setParentMenuTitle(i18n.t(INSERT_MENU)); + final ActionToolbarMenuDescriptor<Object> removeFormat = new ActionToolbarMenuDescriptor<Object>(accessRol, topbarPosition, new Listener0() { public void onEvent() { @@ -704,7 +757,7 @@ NotifyUser.showProgressLoading(); if (insertSpecialCharListener == null) { insertSpecialCharListener = new Listener<String>() { - public void onEvent(String character) { + public void onEvent(final String character) { view.insertHtml(character); } }; @@ -720,17 +773,6 @@ insertSpecialChar.setParentMenuTitle(i18n.t(INSERT_MENU)); insertSpecialChar.setTopSeparator(true); - final ActionToolbarMenuDescriptor<Object> insertMedia = new ActionToolbarMenuDescriptor<Object>(accessRol, - topbarPosition, new Listener0() { - public void onEvent() { - NotifyUser.info(TextUtils.IN_DEVELOPMENT); - } - }); - insertMedia.setIconCls(getCssName(imgResources.film())); - insertMedia.setTextDescription(i18n.t("Media...")); - insertMedia.setAddCondition(canBeExtended); - insertMedia.setParentMenuTitle(i18n.t(INSERT_MENU)); - final ActionToolbarMenuDescriptor<Object> insertTable = new ActionToolbarMenuDescriptor<Object>(accessRol, topbarPosition, new Listener0() { public void onEvent() { @@ -757,7 +799,7 @@ public void onEvent() { palette.get().show(getActionLeftPosition(sndBar, insertTableBtn), getActionTopPosition(sndBar, removeFormatBtn), new Listener<String>() { - public void onEvent(String color) { + public void onEvent(final String color) { palette.get().hide(); view.setForeColor(color); fireOnEdit(); @@ -774,7 +816,7 @@ public void onEvent() { palette.get().show(getActionLeftPosition(sndBar, fontColor), getActionTopPosition(sndBar, fontColor), new Listener<String>() { - public void onEvent(String color) { + public void onEvent(final String color) { palette.get().hide(); view.setBackColor(color); fireOnEdit(); @@ -853,9 +895,12 @@ } actions.add(withNoItem(fontColor)); actions.add(withNoItem(backgroundColor)); + + view.addCtxAction(withNoItem(editLinkCtx)); + view.addCtxAction(withNoItem(removeLinkCtx)); } - private ActionToolbarMenuDescriptor<Object> createFontNameAction(ActionAddCondition<Object> canBeBasic, + private ActionToolbarMenuDescriptor<Object> createFontNameAction(final ActionAddCondition<Object> canBeBasic, final String fontName) { final ActionToolbarMenuDescriptor<Object> font = new ActionToolbarMenuDescriptor<Object>(accessRol, sndbarPosition, new Listener0() { @@ -871,8 +916,8 @@ return font; } - private ActionToolbarMenuDescriptor<Object> createFontSizeAction(ActionAddCondition<Object> canBeBasic, - final int fontSize, String fontSizeName) { + private ActionToolbarMenuDescriptor<Object> createFontSizeAction(final ActionAddCondition<Object> canBeBasic, + final int fontSize, final String fontSizeName) { final ActionToolbarMenuDescriptor<Object> font = new ActionToolbarMenuDescriptor<Object>(accessRol, sndbarPosition, new Listener0() { public void onEvent() { @@ -888,15 +933,16 @@ return font; } - private int getActionLeftPosition(ActionToolbar<Object> bar, ActionToolbarButtonDescriptor<Object> action) { + private int getActionLeftPosition(final ActionToolbar<Object> bar, + final ActionToolbarButtonDescriptor<Object> action) { return bar.getLeftPosition(action); } - private int getActionTopPosition(ActionToolbar<Object> bar, ActionToolbarButtonDescriptor<Object> action) { + private int getActionTopPosition(final ActionToolbar<Object> bar, final ActionToolbarButtonDescriptor<Object> action) { return bar.getTopPosition(action); } - private String getCssName(ImageResource imageResource) { + private String getCssName(final ImageResource imageResource) { return RTEImgResources.SUFFIX + imageResource.getName(); } @@ -906,7 +952,7 @@ private ActionEnableCondition<Object> isInsertHtmlSupported() { return new ActionEnableCondition<Object>() { - public boolean mustBeEnabled(Object param) { + public boolean mustBeEnabled(final Object param) { return true; } }; @@ -915,9 +961,8 @@ private void onInsertTablePressed() { if (insertTableListener == null) { insertTableListener = new Listener<String>() { - public void onEvent(String table) { + public void onEvent(final String table) { if (view.isAnythingSelected()) { - // FIXME // move to end of selection? } view.insertHtml(table); @@ -929,11 +974,11 @@ insertTableDialog.get().show(); } - private void styleToolbar(ActionToolbar<Object> bar) { + private void styleToolbar(final ActionToolbar<Object> bar) { bar.setNormalStyle(); } - private ActionItemCollection<Object> withNoItem(ActionCollection<Object> actions) { + private ActionItemCollection<Object> withNoItem(final ActionCollection<Object> actions) { ActionItemCollection<Object> collection = new ActionItemCollection<Object>(); for (ActionDescriptor<Object> action : actions) { // this action don't have a associated item @@ -942,7 +987,7 @@ return collection; } - private ActionItem<Object> withNoItem(ActionDescriptor<Object> action) { + private ActionItem<Object> withNoItem(final ActionDescriptor<Object> action) { return new ActionItem<Object>(action, null); } } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorView.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -1,6 +1,7 @@ package org.ourproject.kune.platf.client.ui.rte.basic; import org.ourproject.kune.platf.client.View; +import org.ourproject.kune.platf.client.actions.ActionItem; import org.ourproject.kune.platf.client.actions.ActionItemCollection; import org.ourproject.kune.platf.client.ui.rte.RichTextArea.FontSize; import org.ourproject.kune.platf.client.ui.rte.insertlink.LinkInfo; @@ -9,6 +10,8 @@ void addActions(ActionItemCollection<Object> actions); + void addCtxAction(ActionItem<Object> actionItem); + void adjustSize(int height); boolean canBeBasic(); @@ -35,6 +38,8 @@ String getText(); + void hideLinkCtxMenu(); + void insertBlockquote(); void insertComment(String author); @@ -61,6 +66,8 @@ boolean isItalic(); + boolean isLink(); + boolean isStrikethrough(); boolean isSubscript(); @@ -101,6 +108,8 @@ void setText(String text); + void showLinkCtxMenu(); + void toggleBold(); void toggleItalic(); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ImageInfo.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ImageInfo.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ImageInfo.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -39,7 +39,8 @@ private String position; private String size; - public ImageInfo(String src, boolean wraptext, boolean clickOriginal, String position, String size) { + public ImageInfo(final String src, final boolean wraptext, final boolean clickOriginal, final String position, + final String size) { this.src = src; this.wraptext = wraptext; this.clickOriginal = clickOriginal; @@ -80,23 +81,23 @@ return wraptext; } - public void setClickOriginal(boolean clickOriginal) { + public void setClickOriginal(final boolean clickOriginal) { this.clickOriginal = clickOriginal; } - public void setPosition(String position) { + public void setPosition(final String position) { this.position = position; } - public void setSize(String size) { + public void setSize(final String size) { this.size = size; } - public void setSrc(String src) { + public void setSrc(final String src) { this.src = src; } - public void setWraptext(boolean wraptext) { + public void setWraptext(final boolean wraptext) { this.wraptext = wraptext; } @@ -123,7 +124,7 @@ private String getStyleSize() { for (String[] current : sizes) { - if (current[1].equals(size)) { + if (current[0].equals(size)) { return current[2]; } } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/InsertImageDialog.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/InsertImageDialog.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/InsertImageDialog.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -11,12 +11,8 @@ ImageInfo getImageInfo(); - void setImageInfo(ImageInfo imageInfo); + void reset(); - void setImagePosition(String position); - - void setImageSize(String size); - void setOnCreateImage(Listener<ImageInfo> listener); void setOnInsertImagePressed(Listener0 onInsertLinkPressed); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/InsertImageDialogPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/InsertImageDialogPresenter.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/InsertImageDialogPresenter.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -11,7 +11,11 @@ private ImageInfo imageInfo; private Listener0 onInsertPressed; - public void fireOnInsertImage(ImageInfo imageInfo) { + public InsertImageDialogPresenter() { + initImageInfo(); + } + + public void fireOnInsertImage(final ImageInfo imageInfo) { onCreateListener.onEvent(imageInfo); super.hide(); } @@ -20,23 +24,15 @@ return imageInfo; } - public void setImageInfo(ImageInfo imageInfo) { - this.imageInfo = imageInfo; + public void reset() { + initImageInfo(); } - public void setImagePosition(String position) { - imageInfo.setPosition(position); - } - - public void setImageSize(String size) { - imageInfo.setSize(size); - } - - public void setOnCreateImage(Listener<ImageInfo> listener) { + public void setOnCreateImage(final Listener<ImageInfo> listener) { onCreateListener = listener; } - public void setOnInsertImagePressed(Listener0 onInsertPressed) { + public void setOnInsertImagePressed(final Listener0 onInsertPressed) { this.onInsertPressed = onInsertPressed; } @@ -47,4 +43,9 @@ protected void onInsert() { onInsertPressed.onEvent(); } + + private void initImageInfo() { + imageInfo = new ImageInfo("", ImageInfo.DEF_WRAP_VALUE, ImageInfo.DEF_CLICK_ORIGINAL_VALUE, + ImageInfo.POSITION_LEFT, ImageInfo.SIZE_ORIGINAL); + } } Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/InsertMediaGroup.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/InsertMediaGroup.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/InsertMediaGroup.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,27 @@ +package org.ourproject.kune.platf.client.ui.rte.insertimg; + +import org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia.InsertMediaAbstract; + +import com.calclab.suco.client.ioc.Container; +import com.calclab.suco.client.ioc.Provider; +import com.calclab.suco.client.ioc.decorator.ProviderCollection; +import com.calclab.suco.client.ioc.decorator.Singleton; + +public class InsertMediaGroup extends ProviderCollection { + + public InsertMediaGroup(final Container container) { + super(container, Singleton.instance); + } + + public void createAll() { + for (final Provider<?> p : getProviders()) { + p.get(); + } + } + + public void resetAll() { + for (final Provider<?> p : getProviders()) { + ((InsertMediaAbstract) p.get()).reset(); + } + } +} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/abstractimg/InsertImageAbstractPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/abstractimg/InsertImageAbstractPanel.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/abstractimg/InsertImageAbstractPanel.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -13,6 +13,8 @@ import com.gwtext.client.widgets.form.Checkbox; import com.gwtext.client.widgets.form.ComboBox; import com.gwtext.client.widgets.form.FieldSet; +import com.gwtext.client.widgets.form.Label; +import com.gwtext.client.widgets.form.event.CheckboxListenerAdapter; import com.gwtext.client.widgets.form.event.ComboBoxListenerAdapter; import com.gwtext.client.widgets.form.event.FormPanelListenerAdapter; @@ -24,12 +26,16 @@ private final ComboBox positionCombo; protected final Checkbox wrapText; protected final Checkbox clickOriginal; + private final Label intro; - public InsertImageAbstractPanel(String title, final InsertImageAbstractPresenter presenter) { + public InsertImageAbstractPanel(final String title, final InsertImageAbstractPresenter presenter) { super(title); super.setAutoWidth(true); super.setHeight(InsertImageDialogView.HEIGHT); + super.getFormPanel().setLabelWidth(DEF_FIELD_LABEL_WITH + 20); + intro = new Label(); + final Store storeSizes = new SimpleStore(new String[] { "abbr", "trans", "size" }, getSizes()); storeSizes.load(); @@ -46,34 +52,60 @@ clickOriginal.setChecked(ImageInfo.DEF_CLICK_ORIGINAL_VALUE); clickOriginal.setWidth(DEF_FIELD_WIDTH); + sizeCombo.addListener(new ComboBoxListenerAdapter() { + @Override + public void onSelect(final ComboBox comboBox, final Record record, final int index) { + String size = record.getAsString("abbr"); + presenter.setSize(size); + } + }); + positionCombo.addListener(new ComboBoxListenerAdapter() { @Override - public void onSelect(ComboBox comboBox, Record record, int index) { + public void onSelect(final ComboBox comboBox, final Record record, final int index) { String pos = record.getAsString("abbr"); + presenter.setPosition(pos); setWrapVisible(pos); } }); super.addListener(new FormPanelListenerAdapter() { @Override - public void onActivate(Panel panel) { + public void onActivate(final Panel panel) { ImageInfo linkImage = presenter.getImageInfo(); updateValues(linkImage); presenter.onActivate(); } }); + clickOriginal.addListener(new CheckboxListenerAdapter() { + @Override + public void onCheck(final Checkbox field, final boolean checked) { + presenter.onClickOriginalChecked(checked); + } + }); + + wrapText.addListener(new CheckboxListenerAdapter() { + @Override + public void onCheck(final Checkbox field, final boolean checked) { + presenter.onWrapTextChecked(checked); + } + }); + FieldSet advanced = new FieldSet(Resources.i18n.t("More options")); advanced.setCollapsible(true); advanced.setCollapsed(true); advanced.setAutoHeight(true); advanced.setAutoWidth(true); advanced.setAutoScroll(false); + advanced.addClass("kune-Margin-Large-t"); + // advanced.setPaddings(10, 0, 0, 0); advanced.add(sizeCombo); advanced.add(positionCombo); advanced.add(wrapText); advanced.add(clickOriginal); + add(intro); add(advanced); } @@ -98,11 +130,15 @@ } @Override - public void insert(int index, Component component) { + public void insert(final int index, final Component component) { super.insert(index, component); } - protected void updateValues(ImageInfo imageInfo) { + public void setIntro(final String text) { + intro.setHtml(text); + } + + protected void updateValues(final ImageInfo imageInfo) { sizeCombo.setValue(imageInfo.getSize()); String position = imageInfo.getPosition(); positionCombo.setValue(position); @@ -111,7 +147,7 @@ setWrapVisible(position); } - private ComboBox createCombo(final Store storeSizes, String title) { + private ComboBox createCombo(final Store storeSizes, final String title) { ComboBox cb = new ComboBox(); cb.setEditable(false); cb.setForceSelection(true); @@ -119,6 +155,7 @@ cb.setFieldLabel(title); cb.setStore(storeSizes); cb.setDisplayField("trans"); + cb.setValueField("abbr"); cb.setMode(ComboBox.LOCAL); cb.setTriggerAction(ComboBox.ALL); cb.setTypeAhead(true); @@ -158,7 +195,7 @@ return sizesObjs; } - private void setWrapVisible(String position) { + private void setWrapVisible(final String position) { if (position.equals(ImageInfo.POSITION_CENTER)) { wrapText.setVisible(false); } else { Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/abstractimg/InsertImageAbstractPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/abstractimg/InsertImageAbstractPresenter.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/abstractimg/InsertImageAbstractPresenter.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -12,6 +12,7 @@ protected InsertImageAbstractView view; protected final InsertImageDialog insertImageDialog; private final Listener0 onInsertImagePressed; + protected ImageInfo imageInfo; public InsertImageAbstractPresenter(final InsertImageDialog insertImageDialog) { this.insertImageDialog = insertImageDialog; @@ -35,7 +36,7 @@ return view; } - public void init(InsertImageAbstractView view) { + public void init(final InsertImageAbstractView view) { this.view = view; insertImageDialog.addTab(view); } @@ -48,23 +49,39 @@ insertImageDialog.setOnInsertImagePressed(onInsertImagePressed); } - public void onInsert(ImageInfo linkInfo) { + public void onClickOriginalChecked(final boolean checked) { + insertImageDialog.getImageInfo().setClickOriginal(checked); + } + + public void onInsert(final ImageInfo linkInfo) { insertImageDialog.fireOnInsertImage(linkInfo); reset(); } - public void onPositionFieldChanged(String position) { - insertImageDialog.setImagePosition(position); + public void onPositionFieldChanged(final String position) { + insertImageDialog.getImageInfo().setPosition(position); } - public void onSizeFieldChanged(String size) { - insertImageDialog.setImageSize(size); + public void onSizeFieldChanged(final String size) { + insertImageDialog.getImageInfo().setSize(size); } + public void onWrapTextChecked(final boolean checked) { + insertImageDialog.getImageInfo().setWraptext(checked); + } + public void reset() { view.reset(); } + public void setPosition(final String position) { + insertImageDialog.getImageInfo().setPosition(position); + } + + public void setSize(final String size) { + insertImageDialog.getImageInfo().setSize(size); + } + protected ImageInfo updateImageInfo() { return new ImageInfo(view.getSrc(), view.getWrapText(), view.getClickOriginal(), view.getPosition(), view.getSize()); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/abstractimg/InsertImageAbstractView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/abstractimg/InsertImageAbstractView.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/abstractimg/InsertImageAbstractView.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -12,9 +12,10 @@ String getSrc(); + boolean getWrapText(); + boolean isValid(); void reset(); - boolean getWrapText(); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ext/InsertImageExtPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ext/InsertImageExtPanel.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ext/InsertImageExtPanel.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -4,11 +4,14 @@ import org.ourproject.kune.platf.client.ui.TextUtils; import org.ourproject.kune.platf.client.ui.rte.insertimg.abstractimg.InsertImageAbstractPanel; +import com.google.gwt.user.client.Command; +import com.google.gwt.user.client.DeferredCommand; +import com.google.gwt.user.client.ui.Frame; +import com.google.gwt.user.client.ui.Label; +import com.gwtext.client.core.EventCallback; import com.gwtext.client.core.EventObject; -import com.gwtext.client.widgets.Button; import com.gwtext.client.widgets.PaddedPanel; import com.gwtext.client.widgets.Panel; -import com.gwtext.client.widgets.event.ButtonListenerAdapter; import com.gwtext.client.widgets.form.TextField; import com.gwtext.client.widgets.layout.FitLayout; @@ -17,9 +20,12 @@ private static final String LINK_FIELD = "iiep-img-field"; private final TextField srcField; private final Panel previewPanel; + private final InsertImageExtPresenter presenter; + private final Label previewLabel; - public InsertImageExtPanel(final InsertImageExtPresenter presenter, I18nTranslationService i18n) { - super(i18n.t("External image"), presenter); + public InsertImageExtPanel(final InsertImageExtPresenter presenter, final I18nTranslationService i18n) { + super(i18n.t("External"), presenter); + this.presenter = presenter; srcField = new TextField(); srcField.setTabIndex(1); @@ -34,22 +40,54 @@ srcField.setValidationEvent(false); srcField.setId(LINK_FIELD); insert(0, srcField); + previewPanel = new Panel(); previewPanel.setLayout(new FitLayout()); - previewPanel.setHeight(125); + previewPanel.setHeight(75); + add(new PaddedPanel(previewPanel, 0)); - Button preview = new Button(i18n.t("Preview")); - preview.addListener(new ButtonListenerAdapter() { - @Override - public void onClick(Button button, EventObject e) { - // presenter.onPreview(); + + srcField.addKeyPressListener(new EventCallback() { + public void execute(final EventObject e) { + refreshPreview(); } }); - addButton(preview); + + previewLabel = new Label(i18n.t("Image preview will be displayed here.")); + // previewLabel.setStyleName("kune-Margin-20-trbl"); + previewLabel.addStyleName("k-preview-panel"); + previewReset(); } @Override public String getSrc() { return srcField.getValueAsString(); } + + @Override + public void reset() { + super.reset(); + previewReset(); + } + + public void setPreviewUrl(final String url) { + Frame previewFrame = new Frame(url); + previewPanel.clear(); + previewPanel.add(previewFrame); + previewPanel.doLayout(); + } + + private void previewReset() { + previewPanel.clear(); + previewPanel.add(previewLabel); + } + + private void refreshPreview() { + DeferredCommand.addCommand(new Command() { + public void execute() { + presenter.onPreview(); + } + }); + } + } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ext/InsertImageExtPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ext/InsertImageExtPresenter.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ext/InsertImageExtPresenter.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -5,8 +5,21 @@ public class InsertImageExtPresenter extends InsertImageAbstractPresenter implements InsertImageExt { + private InsertImageExtView view; + public InsertImageExtPresenter(InsertImageDialog insertImageDialog) { super(insertImageDialog); } + public void init(InsertImageExtView view) { + super.init(view); + this.view = view; + } + + public void onPreview() { + if (isValid()) { + view.setPreviewUrl(view.getSrc()); + } + } + } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ext/InsertImageExtView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ext/InsertImageExtView.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertimg/ext/InsertImageExtView.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -3,4 +3,7 @@ import org.ourproject.kune.platf.client.ui.rte.insertimg.abstractimg.InsertImageAbstractView; public interface InsertImageExtView extends InsertImageAbstractView { + + void setPreviewUrl(String src); + } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialog.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialog.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialog.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -32,10 +32,6 @@ void setLinkInfo(LinkInfo linkInfo); - void setLinkText(String text); - - void setLinkTitle(String title); - void setOnCreateLink(Listener<LinkInfo> listener); void setOnInsertLinkPressed(Listener0 onInsertLinkPressed); Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialogPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialogPresenter.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/InsertLinkDialogPresenter.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -30,7 +30,11 @@ private LinkInfo linkInfo; private Listener0 onInsertLinkPressed; - public void fireOnInsertLink(LinkInfo linkInfo) { + public InsertLinkDialogPresenter() { + linkInfo = new LinkInfo(""); + } + + public void fireOnInsertLink(final LinkInfo linkInfo) { onCreateListener.onEvent(linkInfo); super.hide(); } @@ -43,23 +47,15 @@ super.hide(); } - public void setLinkInfo(LinkInfo linkInfo) { + public void setLinkInfo(final LinkInfo linkInfo) { this.linkInfo = linkInfo; } - public void setLinkText(String text) { - linkInfo.setText(text); - } - - public void setLinkTitle(String title) { - linkInfo.setTitle(title); - } - public void setOnCreateLink(final Listener<LinkInfo> listener) { this.onCreateListener = listener; } - public void setOnInsertLinkPressed(Listener0 onInsertLinkPressed) { + public void setOnInsertLinkPressed(final Listener0 onInsertLinkPressed) { this.onInsertLinkPressed = onInsertLinkPressed; } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/LinkInfo.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/LinkInfo.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/LinkInfo.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -8,14 +8,15 @@ public static final String TITLE = "title"; public static final String TARGET = "target"; public static final String _BLANK = "_blank"; + private static final String NO_TARGET = null; - public static LinkInfo parse(Element element) { + public static LinkInfo parse(final Element element) { String target = element.getAttribute(TARGET); return new LinkInfo(element.getInnerText(), element.getTitle(), element.getAttribute(HREF), target != null && target.equals(_BLANK)); } - public static LinkInfo parse(org.xwiki.gwt.dom.client.Element element) { + public static LinkInfo parse(final org.xwiki.gwt.dom.client.Element element) { String target = element.getAttribute(TARGET); return new LinkInfo(element.getInnerText(), element.getTitle(), element.getAttribute(HREF), target != null && target.equals(_BLANK)); @@ -26,29 +27,27 @@ private String href; private String target; - public LinkInfo(String text) { + public LinkInfo(final String text) { this(text, null, "", false); } - public LinkInfo(String text, String href) { + public LinkInfo(final String text, final String href) { this.text = text; this.href = href; } - public LinkInfo(String text, String title, String href, boolean inNewWindow) { + public LinkInfo(final String text, final String title, final String href, final boolean inNewWindow) { this.text = text; this.href = href; this.title = title; - if (inNewWindow) { - this.setTarget(_BLANK); - } + setInNewWindow(inNewWindow); } public Element getElement() { Element anchor = DOM.createAnchor(); com.google.gwt.user.client.Element element = (com.google.gwt.user.client.Element) anchor; DOM.setElementProperty(element, HREF, href); - if (getTarget() != null) { + if (getTarget() != NO_TARGET) { DOM.setElementProperty(element, TARGET, getTarget()); } if (title != null) { @@ -75,26 +74,34 @@ } public boolean inSameWindow() { - if (target != null) { + if (target != NO_TARGET) { return target.equals(_BLANK); } else { return false; } } - public void setHref(String href) { + public void setHref(final String href) { this.href = href; } - public void setTarget(String target) { + public void setInNewWindow(final boolean inNewWindow) { + if (inNewWindow) { + this.setTarget(_BLANK); + } else { + setTarget(NO_TARGET); + } + } + + public void setTarget(final String target) { this.target = target; } - public void setText(String text) { + public void setText(final String text) { this.text = text; } - public void setTitle(String title) { + public void setTitle(final String title) { this.title = title; } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/abstractlink/InsertLinkAbstractPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/abstractlink/InsertLinkAbstractPanel.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/abstractlink/InsertLinkAbstractPanel.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -14,6 +14,7 @@ import com.gwtext.client.widgets.form.Checkbox; import com.gwtext.client.widgets.form.FieldSet; import com.gwtext.client.widgets.form.TextField; +import com.gwtext.client.widgets.form.event.CheckboxListenerAdapter; import com.gwtext.client.widgets.form.event.FormPanelListenerAdapter; public class InsertLinkAbstractPanel extends DefaultForm { @@ -23,7 +24,7 @@ protected TextField onOverField; protected final Checkbox sameWindow; - public InsertLinkAbstractPanel(String title, final InsertLinkAbstractPresenter presenter) { + public InsertLinkAbstractPanel(final String title, final InsertLinkAbstractPresenter presenter) { super(title); super.setAutoWidth(true); super.setHeight(InsertLinkDialogView.HEIGHT); @@ -56,7 +57,7 @@ sameWindow.setChecked(false); textField.addKeyPressListener(new EventCallback() { - public void execute(EventObject e) { + public void execute(final EventObject e) { DeferredCommand.addCommand(new Command() { public void execute() { presenter.onTextFieldChanged(textField.getRawValue()); @@ -66,7 +67,7 @@ }); onOverField.addKeyPressListener(new EventCallback() { - public void execute(EventObject e) { + public void execute(final EventObject e) { DeferredCommand.addCommand(new Command() { public void execute() { presenter.onOverFieldChanged(onOverField.getRawValue()); @@ -75,9 +76,16 @@ } }); + sameWindow.addListener(new CheckboxListenerAdapter() { + @Override + public void onCheck(final Checkbox field, final boolean checked) { + presenter.onSameWindowCheck(checked); + } + }); + super.addListener(new FormPanelListenerAdapter() { @Override - public void onActivate(Panel panel) { + public void onActivate(final Panel panel) { LinkInfo linkInfo = presenter.getLinkInfo(); updateValues(linkInfo); presenter.onActivate(); @@ -113,11 +121,11 @@ } @Override - public void insert(int index, Component component) { + public void insert(final int index, final Component component) { super.insert(index, component); } - protected void updateValues(LinkInfo linkInfo) { + protected void updateValues(final LinkInfo linkInfo) { textField.setValue(linkInfo.getText()); onOverField.setValue(linkInfo.getTitle()); if (sameWindow.isVisible()) { Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/abstractlink/InsertLinkAbstractPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/abstractlink/InsertLinkAbstractPresenter.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/abstractlink/InsertLinkAbstractPresenter.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -54,7 +54,7 @@ return view; } - public void init(InsertLinkAbstractView view) { + public void init(final InsertLinkAbstractView view) { this.view = view; editorInsertDialog.addTab(view); } @@ -67,19 +67,23 @@ editorInsertDialog.setOnInsertLinkPressed(onInsertLinkPressed); } - public void onInsert(LinkInfo linkInfo) { + public void onInsert(final LinkInfo linkInfo) { editorInsertDialog.fireOnInsertLink(linkInfo); reset(); } - public void onOverFieldChanged(String title) { - editorInsertDialog.setLinkTitle(title); + public void onOverFieldChanged(final String title) { + editorInsertDialog.getLinkInfo().setTitle(title); } - public void onTextFieldChanged(String text) { - editorInsertDialog.setLinkText(text); + public void onSameWindowCheck(final boolean checked) { + editorInsertDialog.getLinkInfo().setInNewWindow(checked); } + public void onTextFieldChanged(final String text) { + editorInsertDialog.getLinkInfo().setText(text); + } + public void reset() { view.reset(); } Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/ext/InsertLinkExtPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/ext/InsertLinkExtPanel.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertlink/ext/InsertLinkExtPanel.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -47,6 +47,7 @@ previewPanel = new Panel(); previewPanel.setLayout(new FitLayout()); previewPanel.setHeight(125); + previewPanel.setCls("k-preview-panel"); add(new PaddedPanel(previewPanel, 0)); Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ExternalMediaDescriptor.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ExternalMediaDescriptor.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ExternalMediaDescriptor.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,36 @@ +package org.ourproject.kune.platf.client.ui.rte.insertmedia; + +public class ExternalMediaDescriptor { + + private final String name; + private final String siteurl; + private final String detectRegex; + private final String idRegex; + private final String embedTemplate; + + public ExternalMediaDescriptor(final String name, final String siteurl, final String detectRegex, + final String idRegex, final String embedTemplate) { + this.name = name; + this.siteurl = siteurl; + this.detectRegex = detectRegex; + this.idRegex = idRegex; + this.embedTemplate = embedTemplate; + } + + public String getEmbed(final String url) { + String id = url.replaceFirst(idRegex, "kk"); + return embedTemplate.replaceFirst("\\[%d\\]", id); + } + + public boolean is(final String url) { + return url.matches(detectRegex); + } + + public String getName() { + return name; + } + + public String getSiteurl() { + return siteurl; + } +} Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ExternalMediaRegistry.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ExternalMediaRegistry.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ExternalMediaRegistry.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,33 @@ +package org.ourproject.kune.platf.client.ui.rte.insertmedia; + +import java.util.ArrayList; +import java.util.Iterator; + +public class ExternalMediaRegistry extends ArrayList<ExternalMediaDescriptor> { + + private static final long serialVersionUID = 1L; + + public static final ExternalMediaDescriptor NO_MEDIA = new ExternalMediaDescriptor(null, null, null, null, null); + + public ExternalMediaDescriptor get(final String url) { + for (ExternalMediaDescriptor media : this) { + if (media.is(url)) { + return media; + } + + } + return NO_MEDIA; + } + + public String getNames() { + String names = ""; + for (Iterator<ExternalMediaDescriptor> iterator = this.iterator(); iterator.hasNext();) { + ExternalMediaDescriptor elem = iterator.next(); + names += elem.getName(); + if (iterator.hasNext()) { + names += ", "; + } + } + return names; + } +} \ No newline at end of file Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialog.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialog.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialog.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,16 @@ +package org.ourproject.kune.platf.client.ui.rte.insertmedia; + +import org.ourproject.kune.platf.client.ui.dialogs.tabbed.AbstractTabbedDialog; + +import com.calclab.suco.client.events.Listener; +import com.calclab.suco.client.events.Listener0; + +public interface InsertMediaDialog extends AbstractTabbedDialog { + + void fireOnInsertMedia(String html); + + void setOnCreate(Listener<String> listener); + + void setOnInsertPressed(Listener0 onInsertPressed); + +} Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialogPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialogPanel.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialogPanel.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,56 @@ +package org.ourproject.kune.platf.client.ui.rte.insertmedia; + +import org.ourproject.kune.platf.client.i18n.I18nTranslationService; +import org.ourproject.kune.platf.client.services.Images; +import org.ourproject.kune.platf.client.ui.dialogs.tabbed.AbstractTabbedDialogPanel; +import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertMediaGroup; + +import com.calclab.suco.client.events.Listener0; +import com.gwtext.client.core.EventObject; +import com.gwtext.client.widgets.Button; +import com.gwtext.client.widgets.event.ButtonListenerAdapter; + +public class InsertMediaDialogPanel extends AbstractTabbedDialogPanel implements InsertMediaDialogView { + + private static final String INSERT_MEDIA_DIALOG = "k-imdp-dialog"; + private static final String INSERT_MEDIA_DIALOG_ERROR_ID = "k-imdp-dialog-err"; + private final InsertMediaGroup insertMediaGroup; + + public InsertMediaDialogPanel(final InsertMediaDialogPresenter presenter, final I18nTranslationService i18n, + final Images images, final InsertMediaGroup insertMediaGroup) { + super(INSERT_MEDIA_DIALOG, i18n.t("Insert Media (audio/video)"), 380, HEIGHT + 100, 380, HEIGHT + 100, true, + images, INSERT_MEDIA_DIALOG_ERROR_ID); + super.setIconCls("k-film-icon"); + this.insertMediaGroup = insertMediaGroup; + + super.addHideListener(new Listener0() { + public void onEvent() { + insertMediaGroup.resetAll(); + } + }); + + Button insert = new Button(i18n.t("Insert")); + insert.addListener(new ButtonListenerAdapter() { + @Override + public void onClick(final Button button, final EventObject e) { + presenter.onInsert(); + } + }); + + Button cancel = new Button(i18n.t("Cancel")); + cancel.addListener(new ButtonListenerAdapter() { + @Override + public void onClick(final Button button, final EventObject e) { + presenter.onCancel(); + } + }); + addButton(insert); + addButton(cancel); + } + + @Override + public void createAndShow() { + insertMediaGroup.createAll(); + super.createAndShow(); + } +} Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialogPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialogPresenter.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialogPresenter.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,33 @@ +package org.ourproject.kune.platf.client.ui.rte.insertmedia; + +import org.ourproject.kune.platf.client.ui.dialogs.tabbed.AbstractTabbedDialogPresenter; + +import com.calclab.suco.client.events.Listener; +import com.calclab.suco.client.events.Listener0; + +public class InsertMediaDialogPresenter extends AbstractTabbedDialogPresenter implements InsertMediaDialog { + + private Listener0 onInsertPressed; + Listener<String> onCreateListener; + + public void fireOnInsertMedia(String html) { + onCreateListener.onEvent(html); + super.hide(); + } + + public void setOnCreate(Listener<String> listener) { + onCreateListener = listener; + } + + public void setOnInsertPressed(Listener0 onInsertPressed) { + this.onInsertPressed = onInsertPressed; + } + + protected void onCancel() { + super.hide(); + } + + protected void onInsert() { + onInsertPressed.onEvent(); + } +} Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialogView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialogView.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/InsertMediaDialogView.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,9 @@ +package org.ourproject.kune.platf.client.ui.rte.insertmedia; + +import org.ourproject.kune.platf.client.View; + +public interface InsertMediaDialogView extends View { + + int HEIGHT = 150; + +} Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstract.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstract.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstract.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,7 @@ +package org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia; + +public interface InsertMediaAbstract { + + void reset(); + +} Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstractPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstractPanel.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstractPanel.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,57 @@ +package org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia; + +import org.ourproject.kune.platf.client.i18n.Resources; +import org.ourproject.kune.platf.client.ui.dialogs.DefaultForm; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.InsertMediaDialogView; + +import com.gwtext.client.widgets.Component; +import com.gwtext.client.widgets.Panel; +import com.gwtext.client.widgets.form.Label; +import com.gwtext.client.widgets.form.TextField; +import com.gwtext.client.widgets.form.event.FormPanelListenerAdapter; + +public class InsertMediaAbstractPanel extends DefaultForm implements InsertMediaAbstractView { + + protected TextField hrefField; + private final Label intro; + + public InsertMediaAbstractPanel(final String title, final InsertMediaAbstractPresenter presenter) { + super(title); + super.setAutoWidth(true); + super.setHeight(InsertMediaDialogView.HEIGHT); + + intro = new Label(); + + hrefField = new TextField(); + hrefField.setTabIndex(1); + hrefField.setLabel(Resources.i18n.t("Link")); + hrefField.setWidth(DEF_FIELD_WIDTH); + hrefField.setAllowBlank(false); + hrefField.setMinLength(3); + hrefField.setMaxLength(250); + hrefField.setValidationEvent(false); + + super.addListener(new FormPanelListenerAdapter() { + @Override + public void onActivate(final Panel panel) { + presenter.onActivate(); + } + }); + + add(intro); + add(hrefField); + } + + public String getSrc() { + return hrefField.getRawValue(); + } + + @Override + public void insert(final int index, final Component component) { + super.insert(index, component); + } + + public void setIntro(final String text) { + intro.setHtml(text); + } +} Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstractPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstractPresenter.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstractPresenter.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,58 @@ +package org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia; + +import org.ourproject.kune.platf.client.View; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.InsertMediaDialog; + +import com.allen_sauer.gwt.log.client.Log; +import com.calclab.suco.client.events.Listener0; + +public class InsertMediaAbstractPresenter implements InsertMediaAbstract { + + protected InsertMediaAbstractView view; + protected final InsertMediaDialog insertMediaDialog; + private final Listener0 onInsertMediaPressed; + + public InsertMediaAbstractPresenter(final InsertMediaDialog insertMediaDialog) { + this.insertMediaDialog = insertMediaDialog; + onInsertMediaPressed = new Listener0() { + public void onEvent() { + if (isValid()) { + String embedInfo = updateMediaInfo(); + insertMediaDialog.fireOnInsertMedia(embedInfo); + } else { + Log.debug("Form in InsertMedia not valid"); + } + } + }; + } + + public View getView() { + return view; + } + + public void init(final InsertMediaAbstractView view) { + this.view = view; + insertMediaDialog.addTab(view); + } + + public boolean isValid() { + return view.isValid(); + } + + public void onActivate() { + insertMediaDialog.setOnInsertPressed(onInsertMediaPressed); + } + + public void onInsert(final String linkInfo) { + insertMediaDialog.fireOnInsertMedia(linkInfo); + reset(); + } + + public void reset() { + view.reset(); + } + + protected String updateMediaInfo() { + return ""; + } +} Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstractView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstractView.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/abstractmedia/InsertMediaAbstractView.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,13 @@ +package org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia; + +import org.ourproject.kune.platf.client.View; + +public interface InsertMediaAbstractView extends View { + + String getSrc(); + + boolean isValid(); + + void reset(); + +} Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMedia.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMedia.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMedia.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,7 @@ +package org.ourproject.kune.platf.client.ui.rte.insertmedia.ext; + +import org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia.InsertMediaAbstract; + +public interface InsertExtMedia extends InsertMediaAbstract { + +} Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMediaPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMediaPanel.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMediaPanel.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,16 @@ +package org.ourproject.kune.platf.client.ui.rte.insertmedia.ext; + +import org.ourproject.kune.platf.client.i18n.I18nTranslationService; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.ExternalMediaRegistry; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia.InsertMediaAbstractPanel; + +public class InsertExtMediaPanel extends InsertMediaAbstractPanel implements InsertExtMediaView { + + public InsertExtMediaPanel(final InsertExtMediaPresenter presenter, final I18nTranslationService i18n, + final ExternalMediaRegistry externalMediaRegistry) { + super(i18n.t("External"), presenter); + String supportedVideos = externalMediaRegistry.getNames(); + setIntro(i18n.t("Provide a link to the external video (supported videos: [%s])", supportedVideos) + "<br/>"); + } + +} Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMediaPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMediaPresenter.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMediaPresenter.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,45 @@ +package org.ourproject.kune.platf.client.ui.rte.insertmedia.ext; + +import org.ourproject.kune.platf.client.ui.noti.NotifyUser.Level; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.ExternalMediaDescriptor; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.ExternalMediaRegistry; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.InsertMediaDialog; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia.InsertMediaAbstractPresenter; + +public class InsertExtMediaPresenter extends InsertMediaAbstractPresenter implements InsertExtMedia { + + private InsertExtMediaView view; + private final ExternalMediaRegistry externalMediaRegistry; + private ExternalMediaDescriptor mediaDescriptor; + + public InsertExtMediaPresenter(final InsertMediaDialog insertMediaDialog, + final ExternalMediaRegistry externalMediaRegistry) { + super(insertMediaDialog); + this.externalMediaRegistry = externalMediaRegistry; + + externalMediaRegistry.add(new ExternalMediaDescriptor("youtube", "http://youtube.com", + "http://[a-z]*.youtube.com/watch?v=.*", "FIXME", "<embed [%d]>")); + } + + public void init(final InsertExtMediaView view) { + super.init(view); + this.view = view; + } + + @Override + public boolean isValid() { + String url = view.getSrc(); + mediaDescriptor = externalMediaRegistry.get(url); + if (mediaDescriptor.equals(ExternalMediaRegistry.NO_MEDIA)) { + insertMediaDialog.setErrorMessage("We cannot process this video link", Level.error); + return false; + } else { + return true; + } + } + + @Override + protected String updateMediaInfo() { + return mediaDescriptor.getEmbed(view.getSrc()); + } +} Added: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMediaView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMediaView.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertmedia/ext/InsertExtMediaView.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,6 @@ +package org.ourproject.kune.platf.client.ui.rte.insertmedia.ext; + +import org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia.InsertMediaAbstractView; + +public interface InsertExtMediaView extends InsertMediaAbstractView { +} Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertspecialchar/InsertSpecialCharDialogPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertspecialchar/InsertSpecialCharDialogPanel.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/insertspecialchar/InsertSpecialCharDialogPanel.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -15,17 +15,17 @@ private static final String INSERT_SPECIAL_CHAR_DIALOG_ERROR_ID = "iscdp-err"; private final InsertSpecialCharGroup insertSpecialCharGroup; - public InsertSpecialCharDialogPanel(final InsertSpecialCharDialogPresenter presenter, Images images, - I18nTranslationService i18n, InsertSpecialCharGroup insertSpecialCharGroup, RTEImgResources imgResources) { + public InsertSpecialCharDialogPanel(final InsertSpecialCharDialogPresenter presenter, final Images images, + final I18nTranslationService i18n, final InsertSpecialCharGroup insertSpecialCharGroup, + final RTEImgResources imgResources) { super(INSERT_SPECIAL_CHAR_DIALOG, i18n.t("Insert Special Character"), 495, HEIGHT + 90, 495, HEIGHT + 90, true, images, INSERT_SPECIAL_CHAR_DIALOG_ERROR_ID); - // super.setIconCls(RTEImgResources.SUFFIX + - // imgResources.insertspreadsheet().getName()); + super.setIconCls("k-specialchars-icon"); this.insertSpecialCharGroup = insertSpecialCharGroup; Button close = new Button(i18n.t("Close")); close.addListener(new ButtonListenerAdapter() { @Override - public void onClick(Button button, EventObject e) { + public void onClick(final Button button, final EventObject e) { hide(); } }); Modified: trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/wiki/client/WikiClientActions.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -80,7 +80,7 @@ parentMenuTitleCtx, Position.ctx, TYPE_ROOT, TYPE_FOLDER); // createContentModeratedActions(parentMenuTitle, contentsModerated); - + createTranslateAction(parentMenuTitle, TYPE_FOLDER, TYPE_WIKIPAGE); createContentRenameAction(parentMenuTitle, i18n.t("Rename"), contents); createRenameContentInCtxAction(parentMenuTitleCtx, i18n.t("Rename"), containersNoRoot); createEditAction(parentMenuTitle, TYPE_WIKIPAGE); @@ -102,8 +102,6 @@ createGoHomeAction(containers); - createTranslateAction(TYPE_FOLDER, TYPE_WIKIPAGE); - createDelContainerAction("Delete folder", parentMenuTitleCtx, containersNoRoot); createDelContentAction(parentMenuTitle, i18n.t("Delete"), contents); createShowDeletedItems(parentMenuTitleCtx, all); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/AbstractFoldableContentActions.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -98,14 +98,16 @@ protected final EntityHeader entityLogo; private final SitePublicSpaceLink publicLink; - public AbstractFoldableContentActions(Session session, StateManager stateManager, I18nUITranslationService i18n, - ErrorHandler errorHandler, DeferredCommandWrapper deferredCommandWrapper, - Provider<GroupServiceAsync> groupServiceProvider, Provider<ContentServiceAsync> contentServiceProvider, - Provider<FileUploader> fileUploaderProvider, ContextNavigator contextNavigator, - ContentActionRegistry contentActionRegistry, ContextActionRegistry contextActionRegistry, - Provider<FileDownloadUtils> fileDownloadProvider, Provider<ContentEditor> textEditorProvider, - Provider<ContextPropEditor> contextPropEditorProvider, FoldableContent foldableContent, - EntityHeader entityLogo, SitePublicSpaceLink publicLink) { + public AbstractFoldableContentActions(final Session session, final StateManager stateManager, + final I18nUITranslationService i18n, final ErrorHandler errorHandler, + final DeferredCommandWrapper deferredCommandWrapper, + final Provider<GroupServiceAsync> groupServiceProvider, + final Provider<ContentServiceAsync> contentServiceProvider, + final Provider<FileUploader> fileUploaderProvider, final ContextNavigator contextNavigator, + final ContentActionRegistry contentActionRegistry, final ContextActionRegistry contextActionRegistry, + final Provider<FileDownloadUtils> fileDownloadProvider, final Provider<ContentEditor> textEditorProvider, + final Provider<ContextPropEditor> contextPropEditorProvider, final FoldableContent foldableContent, + final EntityHeader entityLogo, final SitePublicSpaceLink publicLink) { this.session = session; this.stateManager = stateManager; this.i18n = i18n; @@ -125,7 +127,7 @@ this.publicLink = publicLink; createActions(); session.onInitDataReceived(new Listener<InitDataDTO>() { - public void onEvent(InitDataDTO parameter) { + public void onEvent(final InitDataDTO parameter) { createPostSessionInitActions(); } }); @@ -134,7 +136,7 @@ protected void createActions() { } - protected void createContentModeratedActions(String parentMenuTitle, final String... contentsModerated) { + protected void createContentModeratedActions(final String parentMenuTitle, final String... contentsModerated) { createSetStatusAction(AccessRolDTO.Administrator, i18n.t("Published online"), ContentStatusDTO.publishedOnline, contentsModerated); createSetStatusAction(AccessRolDTO.Editor, i18n.t("Editing in progress"), ContentStatusDTO.editingInProgress, @@ -147,7 +149,8 @@ contentsModerated); } - protected void createContentRenameAction(String parentMenuTitle, String textDescription, String... registerInTypes) { + protected void createContentRenameAction(final String parentMenuTitle, final String textDescription, + final String... registerInTypes) { final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtn = new ActionToolbarMenuAndItemDescriptor<StateToken>( AccessRolDTO.Editor, CONTENT_TOPBAR, new Listener<StateToken>() { public void onEvent(final StateToken stateToken) { @@ -162,7 +165,8 @@ contentActionRegistry.addAction(renameCtn, registerInTypes); } - protected void createDelContainerAction(String text, String parentMenuTitle, String... registerInTypes) { + protected void createDelContainerAction(final String text, final String parentMenuTitle, + final String... registerInTypes) { final ActionToolbarMenuAndItemDescriptor<StateToken> delContainer = new ActionToolbarMenuAndItemDescriptor<StateToken>( AccessRolDTO.Administrator, CONTENT_TOPBAR, new Listener<StateToken>() { public void onEvent(final StateToken token) { @@ -177,7 +181,8 @@ contextActionRegistry.addAction(delContainer, registerInTypes); } - protected void createDelContentAction(String parentMenuTitle, String textDescription, String... registerInTypes) { + protected void createDelContentAction(final String parentMenuTitle, final String textDescription, + final String... registerInTypes) { final ActionToolbarMenuAndItemDescriptor<StateToken> delContent = new ActionToolbarMenuAndItemDescriptor<StateToken>( AccessRolDTO.Administrator, CONTENT_TOPBAR, new Listener<StateToken>() { public void onEvent(final StateToken token) { @@ -202,7 +207,7 @@ contentActionRegistry.addAction(delContent, registerInTypes); } - protected void createDownloadActions(String typeUploadedfile) { + protected void createDownloadActions(final String typeUploadedfile) { ActionToolbarButtonDescriptor<StateToken> download = new ActionToolbarButtonDescriptor<StateToken>( AccessRolDTO.Viewer, CONTENT_TOPBAR, new Listener<StateToken>() { public void onEvent(final StateToken token) { @@ -229,7 +234,7 @@ } protected ActionToolbarButtonDescriptor<StateToken> createEditAction(final String fileMenuTitle, - String... registerInTypes) { + final String... registerInTypes) { ActionToolbarButtonDescriptor<StateToken> editContent = new ActionToolbarButtonDescriptor<StateToken>( AccessRolDTO.Editor, CONTENT_TOPBAR, new Listener<StateToken>() { public void onEvent(final StateToken stateToken) { @@ -258,7 +263,7 @@ } } - public void onSuccess(Object param) { + public void onSuccess(final Object param) { NotifyUser.hideProgress(); session.getContentState().setContent(html); editor.onSavedSuccessful(); @@ -295,7 +300,7 @@ return editContent; } - protected ActionMenuItemDescriptor<StateToken> createGoAction(String... registerInTypes) { + protected ActionMenuItemDescriptor<StateToken> createGoAction(final String... registerInTypes) { ActionMenuItemDescriptor<StateToken> go = new ActionMenuItemDescriptor<StateToken>(AccessRolDTO.Viewer, new Listener<StateToken>() { public void onEvent(final StateToken token) { @@ -309,7 +314,7 @@ return go; } - protected ActionToolbarButtonDescriptor<StateToken> createGoHomeAction(String... registerInTypes) { + protected ActionToolbarButtonDescriptor<StateToken> createGoHomeAction(final String... registerInTypes) { ActionToolbarButtonDescriptor<StateToken> goGroupHome = new ActionToolbarButtonDescriptor<StateToken>( AccessRolDTO.Viewer, CONTEXT_TOPBAR, new Listener<StateToken>() { public void onEvent(final StateToken token) { @@ -319,7 +324,7 @@ goGroupHome.setMustBeAuthenticated(false); goGroupHome.setIconUrl("images/group-home.png"); goGroupHome.setEnableCondition(new ActionEnableCondition<StateToken>() { - public boolean mustBeEnabled(StateToken token) { + public boolean mustBeEnabled(final StateToken token) { final StateToken defContentToken = session.getCurrentState().getGroup().getDefaultContent().getStateToken(); return !session.getCurrentStateToken().equals(defContentToken); } @@ -331,7 +336,7 @@ protected void createNewContainerAction(final String contentTypeId, final String iconUrl, final String textDescription, final String parentMenuTitle, final String parentMenuSubtitle, - final String defaultName, Position position, String... registerInTypes) { + final String defaultName, final Position position, final String... registerInTypes) { final ActionToolbarMenuAndItemDescriptor<StateToken> addFolder; addFolder = new ActionToolbarMenuAndItemDescriptor<StateToken>(AccessRolDTO.Editor, CONTENT_TOPBAR, new Listener<StateToken>() { @@ -354,8 +359,8 @@ } protected ActionToolbarMenuAndItemDescriptor<StateToken> createNewContentAction(final String typeId, - String iconUrl, final String description, final String parentMenuTitle, Position position, - String... registerInTypes) { + final String iconUrl, final String description, final String parentMenuTitle, final Position position, + final String... registerInTypes) { final ActionToolbarMenuAndItemDescriptor<StateToken> addContent = new ActionToolbarMenuAndItemDescriptor<StateToken>( AccessRolDTO.Editor, CONTEXT_TOPBAR, new Listener0() { public void onEvent() { @@ -381,8 +386,8 @@ protected void createPostSessionInitActions() { } - protected ActionToolbarMenuDescriptor<StateToken> createRefreshCntAction(String parentMenuTitle, - String... registerInTypes) { + protected ActionToolbarMenuDescriptor<StateToken> createRefreshCntAction(final String parentMenuTitle, + final String... registerInTypes) { final ActionToolbarMenuDescriptor<StateToken> refreshCnt = new ActionToolbarMenuDescriptor<StateToken>( AccessRolDTO.Editor, CONTENT_TOPBAR, new Listener<StateToken>() { public void onEvent(final StateToken stateToken) { @@ -398,8 +403,8 @@ return refreshCnt; } - protected ActionToolbarMenuDescriptor<StateToken> createRefreshCxtAction(String parentMenuTitleCtx, - String... registerInTypes) { + protected ActionToolbarMenuDescriptor<StateToken> createRefreshCxtAction(final String parentMenuTitleCtx, + final String... registerInTypes) { final ActionToolbarMenuDescriptor<StateToken> refreshCtx = new ActionToolbarMenuDescriptor<StateToken>( AccessRolDTO.Editor, CONTEXT_TOPBAR, new Listener<StateToken>() { public void onEvent(final StateToken stateToken) { @@ -415,8 +420,8 @@ return refreshCtx; } - protected ActionToolbarMenuAndItemDescriptor<StateToken> createRenameContentInCtxAction(String parentMenuTitleCtx, - String textDescription, String... registerInTypes) { + protected ActionToolbarMenuAndItemDescriptor<StateToken> createRenameContentInCtxAction( + final String parentMenuTitleCtx, final String textDescription, final String... registerInTypes) { final ActionToolbarMenuAndItemDescriptor<StateToken> renameCtx = new ActionToolbarMenuAndItemDescriptor<StateToken>( AccessRolDTO.Editor, CONTEXT_TOPBAR, new Listener<StateToken>() { public void onEvent(final StateToken stateToken) { @@ -429,8 +434,8 @@ return renameCtx; } - protected ActionToolbarMenuDescriptor<StateToken> createSetAsDefContent(String parentMenuTitle, - String... registerInTypes) { + protected ActionToolbarMenuDescriptor<StateToken> createSetAsDefContent(final String parentMenuTitle, + final String... registerInTypes) { final ActionToolbarMenuDescriptor<StateToken> setAsDefGroupContent; setAsDefGroupContent = new ActionToolbarMenuDescriptor<StateToken>(AccessRolDTO.Administrator, CONTENT_TOPBAR, new Listener<StateToken>() { @@ -455,7 +460,7 @@ } protected void createSetStatusAction(final AccessRolDTO rol, final String textDescription, - final ContentStatusDTO status, String[] contentsModerated) { + final ContentStatusDTO status, final String[] contentsModerated) { final ActionToolbarMenuRadioDescriptor<StateToken> action = new ActionToolbarMenuRadioDescriptor<StateToken>( rol, CONTENT_TOPBAR, new Listener<StateToken>() { public void onEvent(final StateToken stateToken) { @@ -476,7 +481,7 @@ contentActionRegistry.addAction(action, contentsModerated); } - protected void createShowDeletedItems(String parentMenuTitle, String... registerInTypes) { + protected void createShowDeletedItems(final String parentMenuTitle, final String... registerInTypes) { ActionToolbarMenuCheckItemDescriptor<StateToken> showDeletedItems = new ActionToolbarMenuCheckItemDescriptor<StateToken>( AccessRolDTO.Editor, CONTEXT_TOPBAR, new Listener0() { public void onEvent() { @@ -500,24 +505,26 @@ contextActionRegistry.addAction(showDeletedItems, registerInTypes); } - protected ActionToolbarButtonDescriptor<StateToken> createTranslateAction(String... registerInTypes) { - ActionToolbarButtonDescriptor<StateToken> translateContent = new ActionToolbarButtonDescriptor<StateToken>( + protected ActionToolbarMenuDescriptor<StateToken> createTranslateAction(final String fileMenuTitle, + final String... registerInTypes) { + ActionToolbarMenuDescriptor<StateToken> translateContent = new ActionToolbarMenuDescriptor<StateToken>( AccessRolDTO.Editor, CONTENT_TOPBAR, new Listener<StateToken>() { public void onEvent(final StateToken stateToken) { NotifyUser.important(i18n.t("Sorry, this functionality is currently in development")); } }); + translateContent.setParentMenuTitle(fileMenuTitle); translateContent.setTextDescription(i18n.tWithNT("Translate", "used in button")); translateContent.setToolTip(i18n.t("Translate this document to other languages")); translateContent.setIconUrl("images/language.gif"); - translateContent.setLeftSeparator(ActionToolbarButtonSeparator.spacer); translateContent.setEnableCondition(notDeleted()); contentActionRegistry.addAction(translateContent, registerInTypes); return translateContent; } protected ActionToolbarButtonAndItemDescriptor<StateToken> createUploadAction(final String textDescription, - final String iconUrl, final String toolTip, final String permitedExtensions, String... registerInTypes) { + final String iconUrl, final String toolTip, final String permitedExtensions, + final String... registerInTypes) { final ActionToolbarButtonAndItemDescriptor<StateToken> uploadFile; uploadFile = new ActionToolbarButtonAndItemDescriptor<StateToken>(AccessRolDTO.Editor, CONTEXT_BOTTOMBAR, new Listener0() { @@ -539,7 +546,7 @@ return uploadFile; } - protected ActionToolbarButtonAndItemDescriptor<StateToken> createUploadMediaAction(String... registerInTypes) { + protected ActionToolbarButtonAndItemDescriptor<StateToken> createUploadMediaAction(final String... registerInTypes) { ActionToolbarButtonAndItemDescriptor<StateToken> uploadMedia = createUploadAction(i18n.t("Upload media"), "images/nav/upload.png", i18n.t("Upload some media (images, videos...)"), session.getGalleryPermittedExtensions()); @@ -556,13 +563,13 @@ * TYPE_UPLOADEDFILE); */ @SuppressWarnings("unused") - private ActionToolbarMenuAndItemDescriptor<StateToken> createSetGroupLogoAction(String parentMenuTitle) { + private ActionToolbarMenuAndItemDescriptor<StateToken> createSetGroupLogoAction(final String parentMenuTitle) { final ActionToolbarMenuAndItemDescriptor<StateToken> setGroupLogo = new ActionToolbarMenuAndItemDescriptor<StateToken>( AccessRolDTO.Administrator, CONTENT_TOPBAR, new Listener<StateToken>() { public void onEvent(final StateToken token) { groupServiceProvider.get().setGroupFullLogo(session.getUserHash(), token, new AsyncCallbackSimple<GroupDTO>() { - public void onSuccess(GroupDTO newGroup) { + public void onSuccess(final GroupDTO newGroup) { NotifyUser.info("Logo selected"); if (session.getCurrentState().getGroup().getShortName().equals( newGroup.getShortName())) { @@ -577,7 +584,7 @@ setGroupLogo.setTextDescription(i18n.t("Set this as the group logo")); setGroupLogo.setIconUrl("images/nav/picture.png"); setGroupLogo.setEnableCondition(new ActionEnableCondition<StateToken>() { - public boolean mustBeEnabled(StateToken token) { + public boolean mustBeEnabled(final StateToken token) { final BasicMimeTypeDTO mime = session.getContentState().getMimeType(); return mime != null && mime.getType().equals("image"); } @@ -587,7 +594,7 @@ private ActionEnableCondition<StateToken> notDefAndNotDeleted() { return new ActionEnableCondition<StateToken>() { - public boolean mustBeEnabled(StateToken token) { + public boolean mustBeEnabled(final StateToken token) { final boolean isNotDefContentToken = !session.getCurrentState().getGroup().getDefaultContent().getStateToken().equals( session.getCurrentStateToken()); return isNotDefContentToken && notDeleted().mustBeEnabled(token); @@ -597,7 +604,7 @@ private ActionEnableCondition<StateToken> notDeleted() { return new ActionEnableCondition<StateToken>() { - public boolean mustBeEnabled(StateToken token) { + public boolean mustBeEnabled(final StateToken token) { final boolean isNotDeleted = !(session.isCurrentStateAContent() && session.getContentState().getStatus().equals( ContentStatusDTO.inTheDustbin)); return isNotDeleted; @@ -605,8 +612,8 @@ }; } - private void register(ActionToolbarMenuAndItemDescriptor<StateToken> action, Position position, - String... registerInTypes) { + private void register(final ActionToolbarMenuAndItemDescriptor<StateToken> action, final Position position, + final String... registerInTypes) { switch (position) { case ctx: contextActionRegistry.addAction(action, registerInTypes); Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -52,8 +52,10 @@ import org.ourproject.kune.platf.client.ui.rte.img.RTEImgResources; import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageDialog; import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertImageGroup; +import org.ourproject.kune.platf.client.ui.rte.insertimg.InsertMediaGroup; import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkDialog; import org.ourproject.kune.platf.client.ui.rte.insertlink.InsertLinkGroup; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.InsertMediaDialog; import org.ourproject.kune.platf.client.ui.rte.saving.RTESavingEditorPanel; import org.ourproject.kune.platf.client.utils.DeferredCommandWrapper; import org.ourproject.kune.platf.client.utils.TimerWrapper; @@ -77,6 +79,9 @@ import org.ourproject.kune.workspace.client.editor.insertlocallink.InsertLinkLocal; import org.ourproject.kune.workspace.client.editor.insertlocallink.InsertLinkLocalPanel; import org.ourproject.kune.workspace.client.editor.insertlocallink.InsertLinkLocalPresenter; +import org.ourproject.kune.workspace.client.editor.insertlocalmedia.InsertLocalMedia; +import org.ourproject.kune.workspace.client.editor.insertlocalmedia.InsertLocalMediaPanel; +import org.ourproject.kune.workspace.client.editor.insertlocalmedia.InsertLocalMediaPresenter; import org.ourproject.kune.workspace.client.entityheader.EntityHeader; import org.ourproject.kune.workspace.client.entityheader.EntityHeaderPanel; import org.ourproject.kune.workspace.client.entityheader.EntityHeaderPresenter; @@ -956,6 +961,17 @@ } }); + register(InsertMediaGroup.class, new Factory<InsertLocalMedia>(InsertLocalMedia.class) { + @Override + public InsertLocalMedia create() { + final InsertLocalMediaPresenter presenter = new InsertLocalMediaPresenter($(InsertMediaDialog.class)); + final InsertLocalMediaPanel panel = new InsertLocalMediaPanel(presenter, + $(I18nTranslationService.class)); + presenter.init(panel); + return presenter; + } + }); + $(GlobalShortcutRegister.class).enable(); } } Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalimg/InsertImageLocalPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalimg/InsertImageLocalPanel.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalimg/InsertImageLocalPanel.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -8,9 +8,10 @@ public class InsertImageLocalPanel extends InsertImageAbstractPanel implements InsertImageLocalView { - public InsertImageLocalPanel(final InsertImageLocalPresenter presenter, I18nTranslationService i18n) { - super(i18n.t("Local image"), presenter); - insert(0, new Label(TextUtils.IN_DEVELOPMENT)); + public InsertImageLocalPanel(final InsertImageLocalPresenter presenter, final I18nTranslationService i18n) { + super(i18n.t("Local"), presenter); + Label label = new Label(); + label.setHtml(TextUtils.IN_DEVELOPMENT + "<br/><br/>"); + insert(0, label); } - } Added: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMedia.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMedia.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMedia.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,7 @@ +package org.ourproject.kune.workspace.client.editor.insertlocalmedia; + +import org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia.InsertMediaAbstract; + +public interface InsertLocalMedia extends InsertMediaAbstract { + +} Added: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMediaPanel.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMediaPanel.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMediaPanel.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,14 @@ +package org.ourproject.kune.workspace.client.editor.insertlocalmedia; + +import org.ourproject.kune.platf.client.i18n.I18nTranslationService; +import org.ourproject.kune.platf.client.ui.TextUtils; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia.InsertMediaAbstractPanel; + +public class InsertLocalMediaPanel extends InsertMediaAbstractPanel implements InsertLocalMediaView { + + public InsertLocalMediaPanel(final InsertLocalMediaPresenter presenter, final I18nTranslationService i18n) { + super(i18n.t("Local"), presenter); + setIntro(TextUtils.IN_DEVELOPMENT + "<br/><br/>"); + } + +} Added: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMediaPresenter.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMediaPresenter.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMediaPresenter.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,18 @@ +package org.ourproject.kune.workspace.client.editor.insertlocalmedia; + +import org.ourproject.kune.platf.client.ui.rte.insertmedia.InsertMediaDialog; +import org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia.InsertMediaAbstractPresenter; + +public class InsertLocalMediaPresenter extends InsertMediaAbstractPresenter implements InsertLocalMedia { + + private InsertLocalMediaView view; + + public InsertLocalMediaPresenter(InsertMediaDialog insertMediaDialog) { + super(insertMediaDialog); + } + + public void init(InsertLocalMediaView view) { + super.init(view); + this.view = view; + } +} Added: trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMediaView.java =================================================================== --- trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMediaView.java 2009-03-26 00:07:59 UTC (rev 1088) +++ trunk/src/main/java/org/ourproject/kune/workspace/client/editor/insertlocalmedia/InsertLocalMediaView.java 2009-03-30 13:48:35 UTC (rev 1089) @@ -0,0 +1,6 @@ +package org.ourproject.kune.workspace.client.editor.insertlocalmedia; + +import org.ourproject.kune.platf.client.ui.rte.insertmedia.abstractmedia.InsertMediaAbstractView; + +public interface InsertLocalMediaView extends InsertMediaAbstractView { +}