summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlberto Ruiz <alberto.ruiz@sun.com>2007-12-03 10:02:16 +0000
committerAlberto Ruiz <alberto.ruiz@sun.com>2007-12-03 10:02:16 +0000
commit02bfea120506c2649acc24e2eed86de20a23f638 (patch)
treefdebef630b2cbeaa01fd066c1e2cf5708716c14c
2007-03-12 Alberto Ruiz <alberto.ruiz@sun.com>
* Initial commit.
-rw-r--r--AUTHORS0
-rw-r--r--COPYING680
-rw-r--r--ChangeLog2
-rw-r--r--INSTALL49
-rw-r--r--Makefile.am7
-rw-r--r--NEWS0
-rw-r--r--README0
-rwxr-xr-xautogen.sh66
-rw-r--r--configure.ac169
-rw-r--r--m4/ac_check_class.m4107
-rw-r--r--m4/ac_check_classpath.m423
-rw-r--r--m4/ac_check_junit.m454
-rw-r--r--m4/ac_check_rqrd_class.m426
-rw-r--r--m4/ac_expand.m48
-rw-r--r--m4/ac_java_options.m432
-rw-r--r--m4/ac_prog_jar.m436
-rw-r--r--m4/ac_prog_java.m479
-rw-r--r--m4/ac_prog_java_works.m497
-rw-r--r--m4/ac_prog_javac.m443
-rw-r--r--m4/ac_prog_javac_works.m435
-rw-r--r--m4/ac_prog_javadoc.m437
-rw-r--r--m4/ac_prog_javah.m426
-rw-r--r--m4/ac_try_compile_java.m439
-rw-r--r--m4/ac_try_run_javac.m440
-rw-r--r--src/Makefile.am1
-rw-r--r--src/com/Makefile.am1
-rw-r--r--src/com/sun/Makefile.am1
-rw-r--r--src/com/sun/apoc/Makefile.am1
-rw-r--r--src/com/sun/apoc/manager/AlertViewBean.java107
-rw-r--r--src/com/sun/apoc/manager/BrowseTreeBaseViewBean.java106
-rw-r--r--src/com/sun/apoc/manager/BrowseTreeIndexViewBean.java102
-rw-r--r--src/com/sun/apoc/manager/BrowseTreeMastheadViewBean.java100
-rw-r--r--src/com/sun/apoc/manager/BrowseTreeViewBean.java307
-rw-r--r--src/com/sun/apoc/manager/ChooserHelper.java286
-rw-r--r--src/com/sun/apoc/manager/Constants.java147
-rw-r--r--src/com/sun/apoc/manager/ContextHelpHelper.java355
-rwxr-xr-xsrc/com/sun/apoc/manager/ContextsLoginViewBean.java220
-rw-r--r--src/com/sun/apoc/manager/EditColorViewBean.java495
-rwxr-xr-xsrc/com/sun/apoc/manager/EditListViewBean.java343
-rwxr-xr-xsrc/com/sun/apoc/manager/EntitiesFindButtonsViewBean.java67
-rwxr-xr-xsrc/com/sun/apoc/manager/EntitiesFindIndexViewBean.java115
-rwxr-xr-xsrc/com/sun/apoc/manager/EntitiesFindParameterViewBean.java123
-rwxr-xr-xsrc/com/sun/apoc/manager/EntitiesFindResultViewBean.java172
-rwxr-xr-xsrc/com/sun/apoc/manager/EntitiesNavigationViewBean.java228
-rwxr-xr-xsrc/com/sun/apoc/manager/EntitiesSearchButtonsViewBean.java71
-rwxr-xr-xsrc/com/sun/apoc/manager/EntitiesSearchIndexViewBean.java105
-rwxr-xr-xsrc/com/sun/apoc/manager/EntitiesSearchParameterViewBean.java339
-rwxr-xr-xsrc/com/sun/apoc/manager/EntitiesSearchResultViewBean.java201
-rwxr-xr-xsrc/com/sun/apoc/manager/EntityContentViewBean.java301
-rwxr-xr-xsrc/com/sun/apoc/manager/MainWindowTabsModel.java82
-rw-r--r--src/com/sun/apoc/manager/Makefile.am7
-rw-r--r--src/com/sun/apoc/manager/ManagerServlet.java112
-rw-r--r--src/com/sun/apoc/manager/MastheadViewBean.java134
-rw-r--r--src/com/sun/apoc/manager/ModelTypeMapImpl.java56
-rwxr-xr-xsrc/com/sun/apoc/manager/OnepanePageletView.java116
-rwxr-xr-xsrc/com/sun/apoc/manager/OnepaneViewBean.java177
-rw-r--r--src/com/sun/apoc/manager/PaletteModel.java58
-rw-r--r--src/com/sun/apoc/manager/PaletteModelImpl.java270
-rw-r--r--src/com/sun/apoc/manager/PaletteRowTiledView.java107
-rw-r--r--src/com/sun/apoc/manager/PaletteTDTiledView.java141
-rw-r--r--src/com/sun/apoc/manager/PoliciesFramesetViewBean.java62
-rw-r--r--src/com/sun/apoc/manager/PolicySettingsButtonsViewBean.java170
-rw-r--r--src/com/sun/apoc/manager/PolicySettingsContentViewBean.java621
-rw-r--r--src/com/sun/apoc/manager/PolicySettingsFramesetViewBean.java62
-rw-r--r--src/com/sun/apoc/manager/ProfileWindowFramesetViewBean.java130
-rw-r--r--src/com/sun/apoc/manager/ProfileWindowSettingsTreeViewBean.java422
-rw-r--r--src/com/sun/apoc/manager/ProfileWindowViewBean.java259
-rwxr-xr-xsrc/com/sun/apoc/manager/ProfilesApplicabilityViewBean.java133
-rwxr-xr-xsrc/com/sun/apoc/manager/ProfilesAssignViewBean.java162
-rwxr-xr-xsrc/com/sun/apoc/manager/ProfilesImportViewBean.java378
-rwxr-xr-xsrc/com/sun/apoc/manager/ProfilesNewViewBean.java135
-rwxr-xr-xsrc/com/sun/apoc/manager/ProfilesSearchButtonsViewBean.java67
-rwxr-xr-xsrc/com/sun/apoc/manager/ProfilesSearchIndexViewBean.java83
-rwxr-xr-xsrc/com/sun/apoc/manager/ProfilesSearchParameterViewBean.java121
-rwxr-xr-xsrc/com/sun/apoc/manager/ProfilesSearchResultViewBean.java150
-rw-r--r--src/com/sun/apoc/manager/RemoteDesktopButtonsViewBean.java95
-rw-r--r--src/com/sun/apoc/manager/RemoteDesktopFramesetViewBean.java67
-rw-r--r--src/com/sun/apoc/manager/RemoteDesktopMastheadViewBean.java89
-rw-r--r--src/com/sun/apoc/manager/RemoteDesktopNavigationTreeViewBean.java211
-rw-r--r--src/com/sun/apoc/manager/RemoteDesktopViewerFramesetViewBean.java75
-rw-r--r--src/com/sun/apoc/manager/RemoteDesktopViewerViewBean.java160
-rw-r--r--src/com/sun/apoc/manager/SearchWindowBrowseTreeBaseViewBean.java106
-rw-r--r--src/com/sun/apoc/manager/SearchWindowBrowseTreeIndexViewBean.java98
-rw-r--r--src/com/sun/apoc/manager/SearchWindowBrowseTreeMastheadViewBean.java100
-rw-r--r--src/com/sun/apoc/manager/SearchWindowBrowseTreeViewBean.java269
-rw-r--r--src/com/sun/apoc/manager/SelectContextViewBean.java230
-rw-r--r--src/com/sun/apoc/manager/SettingsSummaryViewBean.java481
-rw-r--r--src/com/sun/apoc/manager/ShowResultsButtonsViewBean.java93
-rw-r--r--src/com/sun/apoc/manager/ShowResultsFramesetViewBean.java70
-rw-r--r--src/com/sun/apoc/manager/ShowResultsViewBean.java796
-rwxr-xr-xsrc/com/sun/apoc/manager/SyncButtonsViewBean.java94
-rwxr-xr-xsrc/com/sun/apoc/manager/SyncIndexViewBean.java64
-rwxr-xr-xsrc/com/sun/apoc/manager/SyncLoginViewBean.java288
-rwxr-xr-xsrc/com/sun/apoc/manager/SyncResultViewBean.java439
-rwxr-xr-xsrc/com/sun/apoc/manager/TaskView.java377
-rw-r--r--src/com/sun/apoc/manager/TemplateHelpMastheadViewBean.java95
-rw-r--r--src/com/sun/apoc/manager/TemplateHelpWindowViewBean.java70
-rwxr-xr-xsrc/com/sun/apoc/manager/ThreepaneViewBean.java106
-rw-r--r--src/com/sun/apoc/manager/Toolbox2.java1054
-rw-r--r--src/com/sun/apoc/manager/UploadFileBean.java181
-rwxr-xr-xsrc/com/sun/apoc/manager/WelcomeViewBean.java179
-rw-r--r--src/com/sun/apoc/manager/build.xml.in49
-rw-r--r--src/com/sun/apoc/manager/contexts/AddContextWizardImpl.java697
-rw-r--r--src/com/sun/apoc/manager/contexts/AddContextWizardPageModel.java177
-rw-r--r--src/com/sun/apoc/manager/contexts/AddContextWizardServlet.java81
-rwxr-xr-xsrc/com/sun/apoc/manager/contexts/ManagerTableModel.java276
-rwxr-xr-xsrc/com/sun/apoc/manager/contexts/ManagerTableView.java380
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard10View.java1180
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard11View.java219
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard12View.java244
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard13View.java161
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard14View.java142
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard15View.java207
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard1View.java139
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard2View.java266
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard3View.java329
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard4View.java281
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard5View.java172
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard6View.java186
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard7View.java238
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard8View.java195
-rw-r--r--src/com/sun/apoc/manager/contexts/Wizard9View.java238
-rwxr-xr-xsrc/com/sun/apoc/manager/entities/FindTiledModel.java168
-rwxr-xr-xsrc/com/sun/apoc/manager/entities/FindTiledView.java79
-rwxr-xr-xsrc/com/sun/apoc/manager/entities/MemberTableModel.java112
-rwxr-xr-xsrc/com/sun/apoc/manager/entities/MemberTableView.java114
-rwxr-xr-xsrc/com/sun/apoc/manager/entities/NavigationModel.java825
-rwxr-xr-xsrc/com/sun/apoc/manager/entities/SearchTableModel.java305
-rwxr-xr-xsrc/com/sun/apoc/manager/entities/SearchTableView.java163
-rw-r--r--src/com/sun/apoc/manager/profiles/AdvancedOptionsViewBean.java336
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/AssignTableModel.java127
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/AssignTableView.java140
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/AssignedAboveTableModel.java114
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/AssignedAboveTableView.java130
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/AssignedTableModel.java105
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/AssignedTableView.java411
-rw-r--r--src/com/sun/apoc/manager/profiles/AssigneesTableModel.java163
-rw-r--r--src/com/sun/apoc/manager/profiles/AssigneesViewBean.java295
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/AvailableDomainTableView.java77
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/AvailableOrgTableView.java77
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/AvailableTableModel.java192
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/AvailableTableView.java325
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/AvailableView.java193
-rw-r--r--src/com/sun/apoc/manager/profiles/CopyMoveWizard1View.java221
-rw-r--r--src/com/sun/apoc/manager/profiles/CopyMoveWizard2View.java181
-rw-r--r--src/com/sun/apoc/manager/profiles/CopyMoveWizard3View.java345
-rw-r--r--src/com/sun/apoc/manager/profiles/CopyMoveWizard4View.java358
-rw-r--r--src/com/sun/apoc/manager/profiles/CopyMoveWizard5View.java233
-rw-r--r--src/com/sun/apoc/manager/profiles/CopyMoveWizardImpl.java412
-rw-r--r--src/com/sun/apoc/manager/profiles/CopyMoveWizardOverviewView.java165
-rw-r--r--src/com/sun/apoc/manager/profiles/CopyMoveWizardPageModel.java169
-rw-r--r--src/com/sun/apoc/manager/profiles/GeneralSettingsViewBean.java267
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/PrioritizationListModel.java99
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/PrioritizationTableModel.java117
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/PrioritizationTableView.java152
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/ProfileModel.java479
-rw-r--r--src/com/sun/apoc/manager/profiles/ProfileWindowModel.java477
-rw-r--r--src/com/sun/apoc/manager/profiles/ProfileWindowPageletView.java122
-rw-r--r--src/com/sun/apoc/manager/profiles/ProfileWindowSettingsCategoriesTableModel.java129
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/SearchTableModel.java163
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/SearchTableView.java86
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/SearchTiledModel.java177
-rwxr-xr-xsrc/com/sun/apoc/manager/profiles/SearchTiledView.java78
-rw-r--r--src/com/sun/apoc/manager/report/CategoryTiledModel.java133
-rw-r--r--src/com/sun/apoc/manager/report/CategoryTiledView.java130
-rw-r--r--src/com/sun/apoc/manager/report/ElementsInvolvedTableModel.java79
-rw-r--r--src/com/sun/apoc/manager/report/PolicyMgrReportHelper.java282
-rw-r--r--src/com/sun/apoc/manager/report/PropertyTiledModel.java393
-rw-r--r--src/com/sun/apoc/manager/report/PropertyTiledView.java132
-rw-r--r--src/com/sun/apoc/manager/report/ResultsData.java93
-rw-r--r--src/com/sun/apoc/manager/report/SectionTiledModel.java129
-rw-r--r--src/com/sun/apoc/manager/report/SectionTiledView.java128
-rw-r--r--src/com/sun/apoc/manager/resource/ResourceRepository.java283
-rw-r--r--src/com/sun/apoc/manager/resource/apoc_manager.properties998
-rw-r--r--src/com/sun/apoc/manager/resource/apoc_manager_de.properties998
-rw-r--r--src/com/sun/apoc/manager/resource/apoc_manager_en.properties998
-rw-r--r--src/com/sun/apoc/manager/resource/apoc_manager_en_US.properties998
-rw-r--r--src/com/sun/apoc/manager/resource/apoc_manager_es.properties998
-rw-r--r--src/com/sun/apoc/manager/resource/apoc_manager_fr.properties998
-rw-r--r--src/com/sun/apoc/manager/resource/apoc_manager_ja.properties1111
-rw-r--r--src/com/sun/apoc/manager/resource/apoc_manager_ko.properties1105
-rw-r--r--src/com/sun/apoc/manager/resource/apoc_manager_zh_CN.properties1062
-rw-r--r--src/com/sun/apoc/manager/resource/apoc_manager_zh_TW.properties1062
-rw-r--r--src/com/sun/apoc/manager/settings/ColorChooserTag.java375
-rw-r--r--src/com/sun/apoc/manager/settings/ColorChooserView.java59
-rw-r--r--src/com/sun/apoc/manager/settings/JumpLinks.java65
-rw-r--r--src/com/sun/apoc/manager/settings/JumpLinksTag.java178
-rw-r--r--src/com/sun/apoc/manager/settings/ListTag.java219
-rw-r--r--src/com/sun/apoc/manager/settings/ListView.java59
-rw-r--r--src/com/sun/apoc/manager/settings/PolicyMgrHelper.java336
-rw-r--r--src/com/sun/apoc/manager/settings/PropertyHelper.java78
-rw-r--r--src/com/sun/apoc/manager/settings/PropertyTag.java598
-rw-r--r--src/com/sun/apoc/manager/settings/PropertyView.java54
-rw-r--r--src/com/sun/apoc/manager/settings/Section.java304
-rw-r--r--src/com/sun/apoc/manager/settings/SectionModel.java560
-rw-r--r--src/com/sun/apoc/manager/settings/SectionTiledView.java93
-rw-r--r--src/com/sun/apoc/manager/settings/SetModel.java247
-rw-r--r--src/com/sun/apoc/manager/settings/Sheet.java106
-rw-r--r--src/com/sun/apoc/manager/settings/SheetModel.java194
-rw-r--r--src/com/sun/apoc/manager/settings/SheetTag.java283
-rw-r--r--src/com/sun/apoc/manager/settings/SpinProperty.java47
-rw-r--r--src/com/sun/apoc/manager/settings/SpinPropertyTag.java158
-rwxr-xr-xsrc/com/sun/apoc/manager/sync/ContextTiledModel.java941
-rwxr-xr-xsrc/com/sun/apoc/manager/sync/ContextTiledView.java134
-rwxr-xr-xsrc/com/sun/apoc/manager/sync/ProfileTableModel.java350
-rw-r--r--src/com/sun/apoc/templates/Makefile.am7
-rw-r--r--src/com/sun/apoc/templates/build.xml.in49
-rw-r--r--src/com/sun/apoc/templates/handler/ActionHandler.java65
-rw-r--r--src/com/sun/apoc/templates/handler/ActionHandlerClassLoader.java87
-rw-r--r--src/com/sun/apoc/templates/handler/ActionHandlerProperty.java125
-rw-r--r--src/com/sun/apoc/templates/handler/BaseActionHandler.java131
-rw-r--r--src/com/sun/apoc/templates/handler/HandlerContext.java100
-rw-r--r--src/com/sun/apoc/templates/parsing/LocalizedElement.java45
-rw-r--r--src/com/sun/apoc/templates/parsing/NarratedElement.java43
-rw-r--r--src/com/sun/apoc/templates/parsing/TemplateActionHandler.java82
-rw-r--r--src/com/sun/apoc/templates/parsing/TemplateCategory.java123
-rw-r--r--src/com/sun/apoc/templates/parsing/TemplateElement.java125
-rw-r--r--src/com/sun/apoc/templates/parsing/TemplatePage.java182
-rw-r--r--src/com/sun/apoc/templates/parsing/TemplateProperty.java254
-rw-r--r--src/com/sun/apoc/templates/parsing/TemplatePropertyConstraint.java57
-rw-r--r--src/com/sun/apoc/templates/parsing/TemplateRepository.java633
-rw-r--r--src/com/sun/apoc/templates/parsing/TemplateSection.java87
-rw-r--r--src/com/sun/apoc/templates/parsing/TemplateSet.java71
-rw-r--r--src/com/sun/apoc/templates/parsing/TemplateXMLHandler.java137
-rw-r--r--src/com/sun/apoc/templates/parsing/TemplateXMLHandlerModel.java708
-rw-r--r--webconsole/Makefile.am69
-rw-r--r--webconsole/WEB-INF/apoc.tld122
-rw-r--r--webconsole/WEB-INF/app.xml78
-rw-r--r--webconsole/WEB-INF/policymgr.cfg4
-rw-r--r--webconsole/WEB-INF/web.xml124
-rw-r--r--webconsole/apoc.reg4
-rw-r--r--webconsole/com_sun_web_ui/images/PrimaryProductName.pngbin0 -> 2385 bytes
-rw-r--r--webconsole/com_sun_web_ui/images/ProductName.properties11
-rw-r--r--webconsole/com_sun_web_ui/images/SecondaryProductName.pngbin0 -> 1786 bytes
-rw-r--r--webconsole/com_sun_web_ui/images/VersionProductName.pngbin0 -> 3238 bytes
-rw-r--r--webconsole/deploy/apoc-ad.ldf129
-rw-r--r--webconsole/deploy/apoc.schema48
-rw-r--r--webconsole/dtd/policytemplate.dtd165
-rw-r--r--webconsole/html/Makefile.am9
-rw-r--r--webconsole/html/de/Makefile.am10
-rw-r--r--webconsole/html/de/help.html74
-rw-r--r--webconsole/html/de/help/JavaHelpSearch/DOCSbin0 -> 2836 bytes
-rw-r--r--webconsole/html/de/help/JavaHelpSearch/DOCS.TAB9
-rw-r--r--webconsole/html/de/help/JavaHelpSearch/Makefile.am11
-rw-r--r--webconsole/html/de/help/JavaHelpSearch/OFFSETS1
-rw-r--r--webconsole/html/de/help/JavaHelpSearch/POSITIONSbin0 -> 9000 bytes
-rw-r--r--webconsole/html/de/help/JavaHelpSearch/SCHEMA2
-rw-r--r--webconsole/html/de/help/JavaHelpSearch/TMAPbin0 -> 12288 bytes
-rw-r--r--webconsole/html/de/help/Makefile.am55
-rw-r--r--webconsole/html/de/help/app.hs14
-rw-r--r--webconsole/html/de/help/background.html66
-rw-r--r--webconsole/html/de/help/copyright.html120
-rw-r--r--webconsole/html/de/help/empty.html51
-rw-r--r--webconsole/html/de/help/gbgca.html11
-rw-r--r--webconsole/html/de/help/gbgcd.html25
-rw-r--r--webconsole/html/de/help/gbgce.html25
-rw-r--r--webconsole/html/de/help/gbgcg.html13
-rw-r--r--webconsole/html/de/help/gbgcm.html14
-rw-r--r--webconsole/html/de/help/gbgcn.html28
-rw-r--r--webconsole/html/de/help/gbgcr.html15
-rw-r--r--webconsole/html/de/help/gbgda.html20
-rw-r--r--webconsole/html/de/help/gbgdc.html12
-rw-r--r--webconsole/html/de/help/gbgdh.html19
-rw-r--r--webconsole/html/de/help/gbgeb.html12
-rw-r--r--webconsole/html/de/help/gbgec.html25
-rw-r--r--webconsole/html/de/help/gbgkr.html18
-rw-r--r--webconsole/html/de/help/gbgni.html16
-rw-r--r--webconsole/html/de/help/gbgot.html20
-rw-r--r--webconsole/html/de/help/gbgou.html16
-rw-r--r--webconsole/html/de/help/gbgow.html15
-rw-r--r--webconsole/html/de/help/gbgoy.html36
-rw-r--r--webconsole/html/de/help/gbgoz.html34
-rw-r--r--webconsole/html/de/help/gbgpa.html29
-rw-r--r--webconsole/html/de/help/gbgpb.html17
-rw-r--r--webconsole/html/de/help/gbgpe.html13
-rw-r--r--webconsole/html/de/help/gbgpj.html16
-rw-r--r--webconsole/html/de/help/gbgpm.html16
-rw-r--r--webconsole/html/de/help/gbgpn.html16
-rw-r--r--webconsole/html/de/help/gbgpp.html14
-rw-r--r--webconsole/html/de/help/gbgpr.html27
-rw-r--r--webconsole/html/de/help/gbgps.html16
-rw-r--r--webconsole/html/de/help/gbgpt.html43
-rw-r--r--webconsole/html/de/help/gbgpu.html15
-rw-r--r--webconsole/html/de/help/gbgpw.html15
-rw-r--r--webconsole/html/de/help/gbgqa.html24
-rw-r--r--webconsole/html/de/help/gbgqe.html13
-rw-r--r--webconsole/html/de/help/gbgqf.html15
-rw-r--r--webconsole/html/de/help/gbgqh.html16
-rw-r--r--webconsole/html/de/help/gbgqj.html14
-rw-r--r--webconsole/html/de/help/gbgqm.html29
-rw-r--r--webconsole/html/de/help/gbgqt.html20
-rw-r--r--webconsole/html/de/help/gbgqu.html16
-rw-r--r--webconsole/html/de/help/gbzbc.html27
-rw-r--r--webconsole/html/de/help/gbzci.html27
-rw-r--r--webconsole/html/de/help/index.xml51
-rw-r--r--webconsole/html/de/help/map.jhm46
-rw-r--r--webconsole/html/de/help/p1.html23
-rw-r--r--webconsole/html/de/help/toc.xml59
-rw-r--r--webconsole/html/de/helpContent.html336
-rw-r--r--webconsole/html/de/helpNav.html69
-rw-r--r--webconsole/html/de/helpToolbar.html27
-rw-r--r--webconsole/html/en/Makefile.am14
-rw-r--r--webconsole/html/en/blank.html4
-rw-r--r--webconsole/html/en/help.html74
-rw-r--r--webconsole/html/en/help/JavaHelpSearch/DOCSbin0 -> 3053 bytes
-rw-r--r--webconsole/html/en/help/JavaHelpSearch/DOCS.TAB2
-rw-r--r--webconsole/html/en/help/JavaHelpSearch/Makefile.am11
-rw-r--r--webconsole/html/en/help/JavaHelpSearch/OFFSETSbin0 -> 136 bytes
-rw-r--r--webconsole/html/en/help/JavaHelpSearch/POSITIONSbin0 -> 7246 bytes
-rw-r--r--webconsole/html/en/help/JavaHelpSearch/SCHEMA2
-rw-r--r--webconsole/html/en/help/JavaHelpSearch/TMAPbin0 -> 14336 bytes
-rw-r--r--webconsole/html/en/help/Makefile.am55
-rw-r--r--webconsole/html/en/help/app.hs29
-rw-r--r--webconsole/html/en/help/background.html66
-rw-r--r--webconsole/html/en/help/copyright.html120
-rw-r--r--webconsole/html/en/help/css/Makefile.am7
-rw-r--r--webconsole/html/en/help/css/ic_bullet.gifbin0 -> 48 bytes
-rw-r--r--webconsole/html/en/help/css/ic_bullet_white.gifbin0 -> 48 bytes
-rw-r--r--webconsole/html/en/help/empty.html58
-rw-r--r--webconsole/html/en/help/ents/Makefile.am24
-rw-r--r--webconsole/html/en/help/ents/OElig.gifbin0 -> 1112 bytes
-rw-r--r--webconsole/html/en/help/ents/Scaron.gifbin0 -> 672 bytes
-rw-r--r--webconsole/html/en/help/ents/Yuml.gifbin0 -> 656 bytes
-rw-r--r--webconsole/html/en/help/ents/ap.gifbin0 -> 588 bytes
-rw-r--r--webconsole/html/en/help/ents/check.gifbin0 -> 638 bytes
-rw-r--r--webconsole/html/en/help/ents/cong.gifbin0 -> 600 bytes
-rw-r--r--webconsole/html/en/help/ents/copy.gifbin0 -> 1090 bytes
-rw-r--r--webconsole/html/en/help/ents/exist.gifbin0 -> 612 bytes
-rw-r--r--webconsole/html/en/help/ents/forall.gifbin0 -> 644 bytes
-rw-r--r--webconsole/html/en/help/ents/infin.gifbin0 -> 604 bytes
-rw-r--r--webconsole/html/en/help/ents/lgr.gifbin0 -> 631 bytes
-rw-r--r--webconsole/html/en/help/ents/loz.gifbin0 -> 634 bytes
-rw-r--r--webconsole/html/en/help/ents/ne.gifbin0 -> 607 bytes
-rw-r--r--webconsole/html/en/help/ents/oelig.gifbin0 -> 649 bytes
-rw-r--r--webconsole/html/en/help/ents/pi.gifbin0 -> 613 bytes
-rw-r--r--webconsole/html/en/help/ents/reg.gifbin0 -> 1088 bytes
-rw-r--r--webconsole/html/en/help/ents/ring.gifbin0 -> 344 bytes
-rw-r--r--webconsole/html/en/help/ents/scaron.gifbin0 -> 625 bytes
-rw-r--r--webconsole/html/en/help/ents/trade.gifbin0 -> 647 bytes
-rw-r--r--webconsole/html/en/help/gbgca.html26
-rw-r--r--webconsole/html/en/help/gbgcd.html40
-rw-r--r--webconsole/html/en/help/gbgce.html55
-rw-r--r--webconsole/html/en/help/gbgcg.html28
-rw-r--r--webconsole/html/en/help/gbgcm.html36
-rw-r--r--webconsole/html/en/help/gbgcn.html49
-rw-r--r--webconsole/html/en/help/gbgcr.html29
-rw-r--r--webconsole/html/en/help/gbgda.html38
-rw-r--r--webconsole/html/en/help/gbgdc.html29
-rw-r--r--webconsole/html/en/help/gbgdh.html53
-rw-r--r--webconsole/html/en/help/gbgeb.html26
-rw-r--r--webconsole/html/en/help/gbgec.html41
-rw-r--r--webconsole/html/en/help/gbgkr.html34
-rw-r--r--webconsole/html/en/help/gbgni.html31
-rw-r--r--webconsole/html/en/help/gbgot.html58
-rw-r--r--webconsole/html/en/help/gbgou.html30
-rw-r--r--webconsole/html/en/help/gbgow.html30
-rw-r--r--webconsole/html/en/help/gbgoy.html62
-rw-r--r--webconsole/html/en/help/gbgoz.html70
-rw-r--r--webconsole/html/en/help/gbgpa.html60
-rw-r--r--webconsole/html/en/help/gbgpb.html33
-rw-r--r--webconsole/html/en/help/gbgpe.html25
-rw-r--r--webconsole/html/en/help/gbgpj.html30
-rw-r--r--webconsole/html/en/help/gbgpm.html31
-rw-r--r--webconsole/html/en/help/gbgpn.html30
-rw-r--r--webconsole/html/en/help/gbgpp.html27
-rw-r--r--webconsole/html/en/help/gbgpr.html31
-rw-r--r--webconsole/html/en/help/gbgps.html30
-rw-r--r--webconsole/html/en/help/gbgpt.html74
-rw-r--r--webconsole/html/en/help/gbgpu.html28
-rw-r--r--webconsole/html/en/help/gbgpw.html28
-rw-r--r--webconsole/html/en/help/gbgqa.html46
-rw-r--r--webconsole/html/en/help/gbgqe.html26
-rw-r--r--webconsole/html/en/help/gbgqf.html30
-rw-r--r--webconsole/html/en/help/gbgqh.html30
-rw-r--r--webconsole/html/en/help/gbgqj.html28
-rw-r--r--webconsole/html/en/help/gbgqm.html63
-rw-r--r--webconsole/html/en/help/gbgqt.html41
-rw-r--r--webconsole/html/en/help/gbgqu.html30
-rw-r--r--webconsole/html/en/help/gbzbc.html29
-rw-r--r--webconsole/html/en/help/gbzci.html29
-rw-r--r--webconsole/html/en/help/graphics/Makefile.am25
-rw-r--r--webconsole/html/en/help/graphics/a.gifbin0 -> 43 bytes
-rw-r--r--webconsole/html/en/help/graphics/ar_lg_red_r_pad.gifbin0 -> 78 bytes
-rw-r--r--webconsole/html/en/help/graphics/ar_lg_yell_r_pad.gifbin0 -> 78 bytes
-rw-r--r--webconsole/html/en/help/graphics/caution.gifbin0 -> 207 bytes
-rw-r--r--webconsole/html/en/help/graphics/contract.gifbin0 -> 43 bytes
-rw-r--r--webconsole/html/en/help/graphics/dot.gifbin0 -> 43 bytes
-rw-r--r--webconsole/html/en/help/graphics/down.gifbin0 -> 54 bytes
-rw-r--r--webconsole/html/en/help/graphics/expand.gifbin0 -> 62 bytes
-rw-r--r--webconsole/html/en/help/graphics/ix-example.gifbin0 -> 121 bytes
-rw-r--r--webconsole/html/en/help/graphics/ix-general.gifbin0 -> 111 bytes
-rw-r--r--webconsole/html/en/help/graphics/ix-generic.gifbin0 -> 71 bytes
-rw-r--r--webconsole/html/en/help/graphics/ix-procedure.gifbin0 -> 115 bytes
-rw-r--r--webconsole/html/en/help/graphics/logo_sun.gifbin0 -> 1597 bytes
-rw-r--r--webconsole/html/en/help/graphics/next.gifbin0 -> 84 bytes
-rw-r--r--webconsole/html/en/help/graphics/prev.gifbin0 -> 85 bytes
-rw-r--r--webconsole/html/en/help/graphics/procedure-toc.gifbin0 -> 91 bytes
-rw-r--r--webconsole/html/en/help/graphics/procedure.gifbin0 -> 250 bytes
-rw-r--r--webconsole/html/en/help/graphics/tx_lg_products_services.gifbin0 -> 813 bytes
-rw-r--r--webconsole/html/en/help/graphics/tx_lg_support_training.gifbin0 -> 754 bytes
-rw-r--r--webconsole/html/en/help/graphics/violet-bar.gifbin0 -> 297 bytes
-rw-r--r--webconsole/html/en/help/index.xml32
-rw-r--r--webconsole/html/en/help/map.jhm46
-rw-r--r--webconsole/html/en/help/p1.html23
-rw-r--r--webconsole/html/en/help/toc.xml47
-rw-r--r--webconsole/html/en/helpContent.html666
-rw-r--r--webconsole/html/en/helpNav.html170
-rw-r--r--webconsole/html/en/helpToolbar.html27
-rw-r--r--webconsole/html/en/notemphelp.html14
-rw-r--r--webconsole/html/en/version.txt1
-rw-r--r--webconsole/html/en/versionInfo.shtml39
-rw-r--r--webconsole/html/es/Makefile.am10
-rw-r--r--webconsole/html/es/help.html74
-rw-r--r--webconsole/html/es/help/JavaHelpSearch/DOCSbin0 -> 2613 bytes
-rw-r--r--webconsole/html/es/help/JavaHelpSearch/DOCS.TABbin0 -> 533 bytes
-rw-r--r--webconsole/html/es/help/JavaHelpSearch/Makefile.am11
-rw-r--r--webconsole/html/es/help/JavaHelpSearch/OFFSETS1
-rw-r--r--webconsole/html/es/help/JavaHelpSearch/POSITIONSbin0 -> 9470 bytes
-rw-r--r--webconsole/html/es/help/JavaHelpSearch/SCHEMA2
-rw-r--r--webconsole/html/es/help/JavaHelpSearch/TMAPbin0 -> 12288 bytes
-rw-r--r--webconsole/html/es/help/Makefile.am55
-rw-r--r--webconsole/html/es/help/app.hs14
-rw-r--r--webconsole/html/es/help/background.html66
-rw-r--r--webconsole/html/es/help/copyright.html120
-rw-r--r--webconsole/html/es/help/empty.html51
-rw-r--r--webconsole/html/es/help/gbgca.html11
-rw-r--r--webconsole/html/es/help/gbgcd.html25
-rw-r--r--webconsole/html/es/help/gbgce.html25
-rw-r--r--webconsole/html/es/help/gbgcg.html13
-rw-r--r--webconsole/html/es/help/gbgcm.html14
-rw-r--r--webconsole/html/es/help/gbgcn.html28
-rw-r--r--webconsole/html/es/help/gbgcr.html15
-rw-r--r--webconsole/html/es/help/gbgda.html20
-rw-r--r--webconsole/html/es/help/gbgdc.html12
-rw-r--r--webconsole/html/es/help/gbgdh.html19
-rw-r--r--webconsole/html/es/help/gbgeb.html12
-rw-r--r--webconsole/html/es/help/gbgec.html25
-rw-r--r--webconsole/html/es/help/gbgkr.html18
-rw-r--r--webconsole/html/es/help/gbgni.html16
-rw-r--r--webconsole/html/es/help/gbgot.html20
-rw-r--r--webconsole/html/es/help/gbgou.html16
-rw-r--r--webconsole/html/es/help/gbgow.html15
-rw-r--r--webconsole/html/es/help/gbgoy.html36
-rw-r--r--webconsole/html/es/help/gbgoz.html34
-rw-r--r--webconsole/html/es/help/gbgpa.html29
-rw-r--r--webconsole/html/es/help/gbgpb.html17
-rw-r--r--webconsole/html/es/help/gbgpe.html13
-rw-r--r--webconsole/html/es/help/gbgpj.html16
-rw-r--r--webconsole/html/es/help/gbgpm.html16
-rw-r--r--webconsole/html/es/help/gbgpn.html16
-rw-r--r--webconsole/html/es/help/gbgpp.html14
-rw-r--r--webconsole/html/es/help/gbgpr.html27
-rw-r--r--webconsole/html/es/help/gbgps.html16
-rw-r--r--webconsole/html/es/help/gbgpt.html43
-rw-r--r--webconsole/html/es/help/gbgpu.html15
-rw-r--r--webconsole/html/es/help/gbgpw.html15
-rw-r--r--webconsole/html/es/help/gbgqa.html24
-rw-r--r--webconsole/html/es/help/gbgqe.html13
-rw-r--r--webconsole/html/es/help/gbgqf.html15
-rw-r--r--webconsole/html/es/help/gbgqh.html16
-rw-r--r--webconsole/html/es/help/gbgqj.html14
-rw-r--r--webconsole/html/es/help/gbgqm.html29
-rw-r--r--webconsole/html/es/help/gbgqt.html20
-rw-r--r--webconsole/html/es/help/gbgqu.html16
-rw-r--r--webconsole/html/es/help/gbzbc.html27
-rw-r--r--webconsole/html/es/help/gbzci.html27
-rw-r--r--webconsole/html/es/help/index.xml50
-rw-r--r--webconsole/html/es/help/map.jhm46
-rw-r--r--webconsole/html/es/help/p1.html23
-rw-r--r--webconsole/html/es/help/toc.xml59
-rw-r--r--webconsole/html/es/helpContent.html336
-rw-r--r--webconsole/html/es/helpNav.html69
-rw-r--r--webconsole/html/es/helpToolbar.html30
-rw-r--r--webconsole/html/fr/Makefile.am12
-rw-r--r--webconsole/html/fr/help.html74
-rw-r--r--webconsole/html/fr/help/JavaHelpSearch/DOCSbin0 -> 2784 bytes
-rw-r--r--webconsole/html/fr/help/JavaHelpSearch/DOCS.TAB7
-rw-r--r--webconsole/html/fr/help/JavaHelpSearch/Makefile.am11
-rw-r--r--webconsole/html/fr/help/JavaHelpSearch/OFFSETS1
-rw-r--r--webconsole/html/fr/help/JavaHelpSearch/POSITIONSbin0 -> 9081 bytes
-rw-r--r--webconsole/html/fr/help/JavaHelpSearch/SCHEMA2
-rw-r--r--webconsole/html/fr/help/JavaHelpSearch/TMAPbin0 -> 12288 bytes
-rw-r--r--webconsole/html/fr/help/Makefile.am55
-rw-r--r--webconsole/html/fr/help/app.hs29
-rw-r--r--webconsole/html/fr/help/background.html66
-rw-r--r--webconsole/html/fr/help/copyright.html120
-rw-r--r--webconsole/html/fr/help/empty.html51
-rw-r--r--webconsole/html/fr/help/gbgca.html11
-rw-r--r--webconsole/html/fr/help/gbgcd.html25
-rw-r--r--webconsole/html/fr/help/gbgce.html25
-rw-r--r--webconsole/html/fr/help/gbgcg.html13
-rw-r--r--webconsole/html/fr/help/gbgcm.html14
-rw-r--r--webconsole/html/fr/help/gbgcn.html28
-rw-r--r--webconsole/html/fr/help/gbgcr.html15
-rw-r--r--webconsole/html/fr/help/gbgda.html20
-rw-r--r--webconsole/html/fr/help/gbgdc.html12
-rw-r--r--webconsole/html/fr/help/gbgdh.html19
-rw-r--r--webconsole/html/fr/help/gbgeb.html12
-rw-r--r--webconsole/html/fr/help/gbgec.html25
-rw-r--r--webconsole/html/fr/help/gbgkr.html18
-rw-r--r--webconsole/html/fr/help/gbgni.html16
-rw-r--r--webconsole/html/fr/help/gbgot.html20
-rw-r--r--webconsole/html/fr/help/gbgou.html16
-rw-r--r--webconsole/html/fr/help/gbgow.html15
-rw-r--r--webconsole/html/fr/help/gbgoy.html36
-rw-r--r--webconsole/html/fr/help/gbgoz.html34
-rw-r--r--webconsole/html/fr/help/gbgpa.html29
-rw-r--r--webconsole/html/fr/help/gbgpb.html17
-rw-r--r--webconsole/html/fr/help/gbgpe.html13
-rw-r--r--webconsole/html/fr/help/gbgpj.html16
-rw-r--r--webconsole/html/fr/help/gbgpm.html16
-rw-r--r--webconsole/html/fr/help/gbgpn.html16
-rw-r--r--webconsole/html/fr/help/gbgpp.html14
-rw-r--r--webconsole/html/fr/help/gbgpr.html27
-rw-r--r--webconsole/html/fr/help/gbgps.html16
-rw-r--r--webconsole/html/fr/help/gbgpt.html43
-rw-r--r--webconsole/html/fr/help/gbgpu.html15
-rw-r--r--webconsole/html/fr/help/gbgpw.html15
-rw-r--r--webconsole/html/fr/help/gbgqa.html24
-rw-r--r--webconsole/html/fr/help/gbgqe.html13
-rw-r--r--webconsole/html/fr/help/gbgqf.html15
-rw-r--r--webconsole/html/fr/help/gbgqh.html16
-rw-r--r--webconsole/html/fr/help/gbgqj.html14
-rw-r--r--webconsole/html/fr/help/gbgqm.html29
-rw-r--r--webconsole/html/fr/help/gbgqt.html20
-rw-r--r--webconsole/html/fr/help/gbgqu.html16
-rw-r--r--webconsole/html/fr/help/gbzbc.html27
-rw-r--r--webconsole/html/fr/help/gbzci.html27
-rw-r--r--webconsole/html/fr/help/index.xml32
-rw-r--r--webconsole/html/fr/help/map.jhm46
-rw-r--r--webconsole/html/fr/help/p1.html23
-rw-r--r--webconsole/html/fr/help/toc.xml47
-rw-r--r--webconsole/html/fr/helpContent.html336
-rw-r--r--webconsole/html/fr/helpNav.html69
-rw-r--r--webconsole/html/fr/helpToolbar.html26
-rw-r--r--webconsole/html/fr/version.txt1
-rw-r--r--webconsole/html/fr/versionInfo.shtml38
-rw-r--r--webconsole/html/images/Makefile.am8
-rw-r--r--webconsole/html/images/help_ldap_v4.pngbin0 -> 18192 bytes
-rw-r--r--webconsole/html/images/help_merge.gifbin0 -> 19422 bytes
-rw-r--r--webconsole/html/images/help_protected_v3.pngbin0 -> 18581 bytes
-rw-r--r--webconsole/html/ja/Makefile.am10
-rw-r--r--webconsole/html/ja/help.html74
-rw-r--r--webconsole/html/ja/help/JavaHelpSearch/DOCSbin0 -> 2498 bytes
-rw-r--r--webconsole/html/ja/help/JavaHelpSearch/DOCS.TAB5
-rw-r--r--webconsole/html/ja/help/JavaHelpSearch/Makefile.am11
-rw-r--r--webconsole/html/ja/help/JavaHelpSearch/OFFSETS2
-rw-r--r--webconsole/html/ja/help/JavaHelpSearch/POSITIONSbin0 -> 8243 bytes
-rw-r--r--webconsole/html/ja/help/JavaHelpSearch/SCHEMA2
-rw-r--r--webconsole/html/ja/help/JavaHelpSearch/TMAPbin0 -> 12288 bytes
-rw-r--r--webconsole/html/ja/help/Makefile.am55
-rw-r--r--webconsole/html/ja/help/app.hs12
-rw-r--r--webconsole/html/ja/help/background.html66
-rw-r--r--webconsole/html/ja/help/copyright.html120
-rw-r--r--webconsole/html/ja/help/empty.html46
-rw-r--r--webconsole/html/ja/help/gbgca.html10
-rw-r--r--webconsole/html/ja/help/gbgcd.html24
-rw-r--r--webconsole/html/ja/help/gbgce.html24
-rw-r--r--webconsole/html/ja/help/gbgcg.html12
-rw-r--r--webconsole/html/ja/help/gbgcm.html13
-rw-r--r--webconsole/html/ja/help/gbgcn.html27
-rw-r--r--webconsole/html/ja/help/gbgcr.html14
-rw-r--r--webconsole/html/ja/help/gbgda.html19
-rw-r--r--webconsole/html/ja/help/gbgdc.html11
-rw-r--r--webconsole/html/ja/help/gbgdh.html18
-rw-r--r--webconsole/html/ja/help/gbgeb.html12
-rw-r--r--webconsole/html/ja/help/gbgec.html24
-rw-r--r--webconsole/html/ja/help/gbgkr.html17
-rw-r--r--webconsole/html/ja/help/gbgni.html15
-rw-r--r--webconsole/html/ja/help/gbgot.html19
-rw-r--r--webconsole/html/ja/help/gbgou.html15
-rw-r--r--webconsole/html/ja/help/gbgow.html14
-rw-r--r--webconsole/html/ja/help/gbgoy.html35
-rw-r--r--webconsole/html/ja/help/gbgoz.html33
-rw-r--r--webconsole/html/ja/help/gbgpa.html28
-rw-r--r--webconsole/html/ja/help/gbgpb.html16
-rw-r--r--webconsole/html/ja/help/gbgpe.html12
-rw-r--r--webconsole/html/ja/help/gbgpj.html15
-rw-r--r--webconsole/html/ja/help/gbgpm.html15
-rw-r--r--webconsole/html/ja/help/gbgpn.html15
-rw-r--r--webconsole/html/ja/help/gbgpp.html13
-rw-r--r--webconsole/html/ja/help/gbgpr.html14
-rw-r--r--webconsole/html/ja/help/gbgps.html15
-rw-r--r--webconsole/html/ja/help/gbgpt.html42
-rw-r--r--webconsole/html/ja/help/gbgpu.html14
-rw-r--r--webconsole/html/ja/help/gbgpw.html14
-rw-r--r--webconsole/html/ja/help/gbgqa.html23
-rw-r--r--webconsole/html/ja/help/gbgqe.html12
-rw-r--r--webconsole/html/ja/help/gbgqf.html14
-rw-r--r--webconsole/html/ja/help/gbgqh.html15
-rw-r--r--webconsole/html/ja/help/gbgqj.html13
-rw-r--r--webconsole/html/ja/help/gbgqm.html28
-rw-r--r--webconsole/html/ja/help/gbgqt.html19
-rw-r--r--webconsole/html/ja/help/gbgqu.html15
-rw-r--r--webconsole/html/ja/help/gbzbc.html13
-rw-r--r--webconsole/html/ja/help/gbzci.html13
-rw-r--r--webconsole/html/ja/help/index.xml32
-rw-r--r--webconsole/html/ja/help/map.jhm46
-rw-r--r--webconsole/html/ja/help/p1.html23
-rw-r--r--webconsole/html/ja/help/toc.xml46
-rw-r--r--webconsole/html/ja/helpContent.html429
-rw-r--r--webconsole/html/ja/helpNav.html141
-rw-r--r--webconsole/html/ja/helpToolbar.html27
-rw-r--r--webconsole/html/ko/Makefile.am10
-rw-r--r--webconsole/html/ko/help.html74
-rw-r--r--webconsole/html/ko/help/JavaHelpSearch/DOCSbin0 -> 3167 bytes
-rw-r--r--webconsole/html/ko/help/JavaHelpSearch/DOCS.TAB14
-rw-r--r--webconsole/html/ko/help/JavaHelpSearch/Makefile.am11
-rw-r--r--webconsole/html/ko/help/JavaHelpSearch/OFFSETSbin0 -> 134 bytes
-rw-r--r--webconsole/html/ko/help/JavaHelpSearch/POSITIONSbin0 -> 6665 bytes
-rw-r--r--webconsole/html/ko/help/JavaHelpSearch/SCHEMA2
-rw-r--r--webconsole/html/ko/help/JavaHelpSearch/TMAPbin0 -> 14336 bytes
-rw-r--r--webconsole/html/ko/help/Makefile.am55
-rw-r--r--webconsole/html/ko/help/app.hs12
-rw-r--r--webconsole/html/ko/help/background.html66
-rw-r--r--webconsole/html/ko/help/copyright.html120
-rw-r--r--webconsole/html/ko/help/empty.html46
-rw-r--r--webconsole/html/ko/help/gbgca.html10
-rw-r--r--webconsole/html/ko/help/gbgcd.html24
-rw-r--r--webconsole/html/ko/help/gbgce.html24
-rw-r--r--webconsole/html/ko/help/gbgcg.html12
-rw-r--r--webconsole/html/ko/help/gbgcm.html13
-rw-r--r--webconsole/html/ko/help/gbgcn.html27
-rw-r--r--webconsole/html/ko/help/gbgcr.html14
-rw-r--r--webconsole/html/ko/help/gbgda.html19
-rw-r--r--webconsole/html/ko/help/gbgdc.html11
-rw-r--r--webconsole/html/ko/help/gbgdh.html18
-rw-r--r--webconsole/html/ko/help/gbgeb.html11
-rw-r--r--webconsole/html/ko/help/gbgec.html24
-rw-r--r--webconsole/html/ko/help/gbgkr.html17
-rw-r--r--webconsole/html/ko/help/gbgni.html15
-rw-r--r--webconsole/html/ko/help/gbgot.html19
-rw-r--r--webconsole/html/ko/help/gbgou.html15
-rw-r--r--webconsole/html/ko/help/gbgow.html14
-rw-r--r--webconsole/html/ko/help/gbgoy.html35
-rw-r--r--webconsole/html/ko/help/gbgoz.html33
-rw-r--r--webconsole/html/ko/help/gbgpa.html28
-rw-r--r--webconsole/html/ko/help/gbgpb.html16
-rw-r--r--webconsole/html/ko/help/gbgpe.html12
-rw-r--r--webconsole/html/ko/help/gbgpj.html15
-rw-r--r--webconsole/html/ko/help/gbgpm.html15
-rw-r--r--webconsole/html/ko/help/gbgpn.html15
-rw-r--r--webconsole/html/ko/help/gbgpp.html13
-rw-r--r--webconsole/html/ko/help/gbgpr.html14
-rw-r--r--webconsole/html/ko/help/gbgps.html15
-rw-r--r--webconsole/html/ko/help/gbgpt.html42
-rw-r--r--webconsole/html/ko/help/gbgpu.html14
-rw-r--r--webconsole/html/ko/help/gbgpw.html14
-rw-r--r--webconsole/html/ko/help/gbgqa.html23
-rw-r--r--webconsole/html/ko/help/gbgqe.html12
-rw-r--r--webconsole/html/ko/help/gbgqf.html14
-rw-r--r--webconsole/html/ko/help/gbgqh.html15
-rw-r--r--webconsole/html/ko/help/gbgqj.html13
-rw-r--r--webconsole/html/ko/help/gbgqm.html28
-rw-r--r--webconsole/html/ko/help/gbgqt.html19
-rw-r--r--webconsole/html/ko/help/gbgqu.html15
-rw-r--r--webconsole/html/ko/help/gbzbc.html13
-rw-r--r--webconsole/html/ko/help/gbzci.html13
-rw-r--r--webconsole/html/ko/help/index.xml30
-rw-r--r--webconsole/html/ko/help/map.jhm46
-rw-r--r--webconsole/html/ko/help/p1.html23
-rw-r--r--webconsole/html/ko/help/toc.xml44
-rw-r--r--webconsole/html/ko/helpContent.html336
-rw-r--r--webconsole/html/ko/helpNav.html69
-rw-r--r--webconsole/html/ko/helpToolbar.html27
-rw-r--r--webconsole/html/zh_CN/Makefile.am10
-rw-r--r--webconsole/html/zh_CN/help.html74
-rw-r--r--webconsole/html/zh_CN/help/JavaHelpSearch/DOCSbin0 -> 1910 bytes
-rw-r--r--webconsole/html/zh_CN/help/JavaHelpSearch/DOCS.TAB3
-rw-r--r--webconsole/html/zh_CN/help/JavaHelpSearch/Makefile.am11
-rw-r--r--webconsole/html/zh_CN/help/JavaHelpSearch/OFFSETS1
-rw-r--r--webconsole/html/zh_CN/help/JavaHelpSearch/POSITIONSbin0 -> 2459 bytes
-rw-r--r--webconsole/html/zh_CN/help/JavaHelpSearch/SCHEMA2
-rw-r--r--webconsole/html/zh_CN/help/JavaHelpSearch/TMAPbin0 -> 22528 bytes
-rw-r--r--webconsole/html/zh_CN/help/Makefile.am55
-rw-r--r--webconsole/html/zh_CN/help/app.hs12
-rw-r--r--webconsole/html/zh_CN/help/background.html66
-rw-r--r--webconsole/html/zh_CN/help/copyright.html120
-rw-r--r--webconsole/html/zh_CN/help/empty.html46
-rw-r--r--webconsole/html/zh_CN/help/gbgca.html10
-rw-r--r--webconsole/html/zh_CN/help/gbgcd.html24
-rw-r--r--webconsole/html/zh_CN/help/gbgce.html24
-rw-r--r--webconsole/html/zh_CN/help/gbgcg.html12
-rw-r--r--webconsole/html/zh_CN/help/gbgcm.html13
-rw-r--r--webconsole/html/zh_CN/help/gbgcn.html27
-rw-r--r--webconsole/html/zh_CN/help/gbgcr.html14
-rw-r--r--webconsole/html/zh_CN/help/gbgda.html19
-rw-r--r--webconsole/html/zh_CN/help/gbgdc.html11
-rw-r--r--webconsole/html/zh_CN/help/gbgdh.html18
-rw-r--r--webconsole/html/zh_CN/help/gbgeb.html11
-rw-r--r--webconsole/html/zh_CN/help/gbgec.html24
-rw-r--r--webconsole/html/zh_CN/help/gbgkr.html17
-rw-r--r--webconsole/html/zh_CN/help/gbgni.html15
-rw-r--r--webconsole/html/zh_CN/help/gbgot.html19
-rw-r--r--webconsole/html/zh_CN/help/gbgou.html15
-rw-r--r--webconsole/html/zh_CN/help/gbgow.html14
-rw-r--r--webconsole/html/zh_CN/help/gbgoy.html35
-rw-r--r--webconsole/html/zh_CN/help/gbgoz.html33
-rw-r--r--webconsole/html/zh_CN/help/gbgpa.html28
-rw-r--r--webconsole/html/zh_CN/help/gbgpb.html16
-rw-r--r--webconsole/html/zh_CN/help/gbgpe.html12
-rw-r--r--webconsole/html/zh_CN/help/gbgpj.html15
-rw-r--r--webconsole/html/zh_CN/help/gbgpm.html15
-rw-r--r--webconsole/html/zh_CN/help/gbgpn.html15
-rw-r--r--webconsole/html/zh_CN/help/gbgpp.html13
-rw-r--r--webconsole/html/zh_CN/help/gbgpr.html14
-rw-r--r--webconsole/html/zh_CN/help/gbgps.html15
-rw-r--r--webconsole/html/zh_CN/help/gbgpt.html42
-rw-r--r--webconsole/html/zh_CN/help/gbgpu.html14
-rw-r--r--webconsole/html/zh_CN/help/gbgpw.html14
-rw-r--r--webconsole/html/zh_CN/help/gbgqa.html23
-rw-r--r--webconsole/html/zh_CN/help/gbgqe.html12
-rw-r--r--webconsole/html/zh_CN/help/gbgqf.html14
-rw-r--r--webconsole/html/zh_CN/help/gbgqh.html15
-rw-r--r--webconsole/html/zh_CN/help/gbgqj.html13
-rw-r--r--webconsole/html/zh_CN/help/gbgqm.html28
-rw-r--r--webconsole/html/zh_CN/help/gbgqt.html19
-rw-r--r--webconsole/html/zh_CN/help/gbgqu.html15
-rw-r--r--webconsole/html/zh_CN/help/gbzbc.html13
-rw-r--r--webconsole/html/zh_CN/help/gbzci.html13
-rw-r--r--webconsole/html/zh_CN/help/index.xml30
-rw-r--r--webconsole/html/zh_CN/help/map.jhm46
-rw-r--r--webconsole/html/zh_CN/help/p1.html23
-rw-r--r--webconsole/html/zh_CN/help/toc.xml44
-rw-r--r--webconsole/html/zh_CN/helpContent.html336
-rw-r--r--webconsole/html/zh_CN/helpNav.html69
-rw-r--r--webconsole/html/zh_CN/helpToolbar.html27
-rw-r--r--webconsole/html/zh_TW/Makefile.am10
-rw-r--r--webconsole/html/zh_TW/help.html74
-rw-r--r--webconsole/html/zh_TW/help/JavaHelpSearch/DOCSbin0 -> 1889 bytes
-rw-r--r--webconsole/html/zh_TW/help/JavaHelpSearch/DOCS.TAB4
-rw-r--r--webconsole/html/zh_TW/help/JavaHelpSearch/Makefile.am11
-rw-r--r--webconsole/html/zh_TW/help/JavaHelpSearch/OFFSETSbin0 -> 127 bytes
-rw-r--r--webconsole/html/zh_TW/help/JavaHelpSearch/POSITIONSbin0 -> 2420 bytes
-rw-r--r--webconsole/html/zh_TW/help/JavaHelpSearch/SCHEMA2
-rw-r--r--webconsole/html/zh_TW/help/JavaHelpSearch/TMAPbin0 -> 22528 bytes
-rw-r--r--webconsole/html/zh_TW/help/Makefile.am55
-rw-r--r--webconsole/html/zh_TW/help/app.hs12
-rw-r--r--webconsole/html/zh_TW/help/background.html66
-rw-r--r--webconsole/html/zh_TW/help/copyright.html120
-rw-r--r--webconsole/html/zh_TW/help/empty.html46
-rw-r--r--webconsole/html/zh_TW/help/gbgca.html10
-rw-r--r--webconsole/html/zh_TW/help/gbgcd.html24
-rw-r--r--webconsole/html/zh_TW/help/gbgce.html24
-rw-r--r--webconsole/html/zh_TW/help/gbgcg.html12
-rw-r--r--webconsole/html/zh_TW/help/gbgcm.html13
-rw-r--r--webconsole/html/zh_TW/help/gbgcn.html27
-rw-r--r--webconsole/html/zh_TW/help/gbgcr.html14
-rw-r--r--webconsole/html/zh_TW/help/gbgda.html19
-rw-r--r--webconsole/html/zh_TW/help/gbgdc.html11
-rw-r--r--webconsole/html/zh_TW/help/gbgdh.html18
-rw-r--r--webconsole/html/zh_TW/help/gbgeb.html11
-rw-r--r--webconsole/html/zh_TW/help/gbgec.html24
-rw-r--r--webconsole/html/zh_TW/help/gbgkr.html17
-rw-r--r--webconsole/html/zh_TW/help/gbgni.html15
-rw-r--r--webconsole/html/zh_TW/help/gbgot.html19
-rw-r--r--webconsole/html/zh_TW/help/gbgou.html15
-rw-r--r--webconsole/html/zh_TW/help/gbgow.html14
-rw-r--r--webconsole/html/zh_TW/help/gbgoy.html35
-rw-r--r--webconsole/html/zh_TW/help/gbgoz.html33
-rw-r--r--webconsole/html/zh_TW/help/gbgpa.html28
-rw-r--r--webconsole/html/zh_TW/help/gbgpb.html16
-rw-r--r--webconsole/html/zh_TW/help/gbgpe.html12
-rw-r--r--webconsole/html/zh_TW/help/gbgpj.html15
-rw-r--r--webconsole/html/zh_TW/help/gbgpm.html15
-rw-r--r--webconsole/html/zh_TW/help/gbgpn.html15
-rw-r--r--webconsole/html/zh_TW/help/gbgpp.html13
-rw-r--r--webconsole/html/zh_TW/help/gbgpr.html14
-rw-r--r--webconsole/html/zh_TW/help/gbgps.html15
-rw-r--r--webconsole/html/zh_TW/help/gbgpt.html42
-rw-r--r--webconsole/html/zh_TW/help/gbgpu.html14
-rw-r--r--webconsole/html/zh_TW/help/gbgpw.html14
-rw-r--r--webconsole/html/zh_TW/help/gbgqa.html23
-rw-r--r--webconsole/html/zh_TW/help/gbgqe.html12
-rw-r--r--webconsole/html/zh_TW/help/gbgqf.html14
-rw-r--r--webconsole/html/zh_TW/help/gbgqh.html15
-rw-r--r--webconsole/html/zh_TW/help/gbgqj.html13
-rw-r--r--webconsole/html/zh_TW/help/gbgqm.html28
-rw-r--r--webconsole/html/zh_TW/help/gbgqt.html19
-rw-r--r--webconsole/html/zh_TW/help/gbgqu.html15
-rw-r--r--webconsole/html/zh_TW/help/gbzbc.html13
-rw-r--r--webconsole/html/zh_TW/help/gbzci.html13
-rw-r--r--webconsole/html/zh_TW/help/index.xml30
-rw-r--r--webconsole/html/zh_TW/help/map.jhm46
-rw-r--r--webconsole/html/zh_TW/help/p1.html23
-rw-r--r--webconsole/html/zh_TW/help/toc.xml44
-rw-r--r--webconsole/html/zh_TW/helpContent.html336
-rw-r--r--webconsole/html/zh_TW/helpNav.html69
-rw-r--r--webconsole/html/zh_TW/helpToolbar.html27
-rw-r--r--webconsole/images/apocname.gifbin0 -> 2440 bytes
-rw-r--r--webconsole/images/apocname.pngbin0 -> 3399 bytes
-rw-r--r--webconsole/images/apoctitle.gifbin0 -> 1724 bytes
-rw-r--r--webconsole/images/appIcon.gifbin0 -> 287 bytes
-rw-r--r--webconsole/images/arrow.gifbin0 -> 817 bytes
-rw-r--r--webconsole/images/colors.pngbin0 -> 73406 bytes
-rw-r--r--webconsole/images/console_logo.gifbin0 -> 1086 bytes
-rw-r--r--webconsole/images/cross.gifbin0 -> 864 bytes
-rw-r--r--webconsole/images/cursor.gifbin0 -> 127 bytes
-rw-r--r--webconsole/images/decrease.pngbin0 -> 208 bytes
-rw-r--r--webconsole/images/domain.pngbin0 -> 342 bytes
-rw-r--r--webconsole/images/domainAssigned.pngbin0 -> 457 bytes
-rw-r--r--webconsole/images/host.pngbin0 -> 340 bytes
-rw-r--r--webconsole/images/hostAssigned.pngbin0 -> 473 bytes
-rw-r--r--webconsole/images/icon_empty.pngbin0 -> 949 bytes
-rw-r--r--webconsole/images/icon_protected_above.pngbin0 -> 1026 bytes
-rw-r--r--webconsole/images/icon_protected_here.pngbin0 -> 1010 bytes
-rw-r--r--webconsole/images/icon_set_above.pngbin0 -> 998 bytes
-rw-r--r--webconsole/images/icon_set_here.pngbin0 -> 967 bytes
-rw-r--r--webconsole/images/increase.pngbin0 -> 186 bytes
-rw-r--r--webconsole/images/increase_decrease.pngbin0 -> 213 bytes
-rw-r--r--webconsole/images/org.pngbin0 -> 654 bytes
-rw-r--r--webconsole/images/orgAssigned.pngbin0 -> 726 bytes
-rw-r--r--webconsole/images/popuptitle.gifbin0 -> 1531 bytes
-rw-r--r--webconsole/images/popuptitle.pngbin0 -> 2756 bytes
-rw-r--r--webconsole/images/role.pngbin0 -> 592 bytes
-rw-r--r--webconsole/images/roleAssigned.pngbin0 -> 685 bytes
-rw-r--r--webconsole/images/search.gifbin0 -> 159 bytes
-rw-r--r--webconsole/images/server.gifbin0 -> 917 bytes
-rw-r--r--webconsole/images/user.pngbin0 -> 622 bytes
-rw-r--r--webconsole/images/userAssigned.pngbin0 -> 697 bytes
-rw-r--r--webconsole/images/x.pngbin0 -> 191 bytes
-rw-r--r--webconsole/js/EditColor.js575
-rw-r--r--webconsole/js/MainWindow.js376
-rw-r--r--webconsole/js/ProfileWindow.js946
-rw-r--r--webconsole/jsp/Alert.jsp75
-rw-r--r--webconsole/jsp/ContentAreaPoliciesSet.xml22
-rw-r--r--webconsole/jsp/ContentAreaPoliciesSimpleSet.xml12
-rw-r--r--webconsole/jsp/EditColor.jsp321
-rw-r--r--webconsole/jsp/EditColorPageTitle.xml14
-rw-r--r--webconsole/jsp/EditList.jsp351
-rw-r--r--webconsole/jsp/EditListTitle.xml21
-rw-r--r--webconsole/jsp/EntityContent.jsp328
-rw-r--r--webconsole/jsp/Makefile.am172
-rw-r--r--webconsole/jsp/Masthead.jsp62
-rw-r--r--webconsole/jsp/Onepane.jsp75
-rw-r--r--webconsole/jsp/Task.jsp213
-rw-r--r--webconsole/jsp/TemplateHelp.jsp67
-rw-r--r--webconsole/jsp/TemplateHelpMasthead.jsp62
-rw-r--r--webconsole/jsp/TemplateHelpTitle.xml13
-rw-r--r--webconsole/jsp/Threepane.jsp75
-rw-r--r--webconsole/jsp/UploadFile.jsp150
-rw-r--r--webconsole/jsp/Welcome.jsp297
-rw-r--r--webconsole/jsp/categories/Navigation.xml13
-rw-r--r--webconsole/jsp/categories/PolicyCategories.jsp64
-rw-r--r--webconsole/jsp/contexts/ContextDetailsTable.xml11
-rw-r--r--webconsole/jsp/contexts/Login.jsp89
-rw-r--r--webconsole/jsp/contexts/LoginSheet.xml36
-rw-r--r--webconsole/jsp/contexts/LoginTitle.xml15
-rw-r--r--webconsole/jsp/contexts/ManagerTable.xml46
-rw-r--r--webconsole/jsp/contexts/ManagerTitle.xml13
-rw-r--r--webconsole/jsp/contexts/Wizard1.jsp100
-rw-r--r--webconsole/jsp/contexts/Wizard10.jsp231
-rw-r--r--webconsole/jsp/contexts/Wizard11.jsp105
-rw-r--r--webconsole/jsp/contexts/Wizard12.jsp114
-rw-r--r--webconsole/jsp/contexts/Wizard13.jsp110
-rw-r--r--webconsole/jsp/contexts/Wizard14.jsp109
-rw-r--r--webconsole/jsp/contexts/Wizard15.jsp137
-rw-r--r--webconsole/jsp/contexts/Wizard16.jsp148
-rw-r--r--webconsole/jsp/contexts/Wizard17.jsp156
-rw-r--r--webconsole/jsp/contexts/Wizard18.jsp114
-rw-r--r--webconsole/jsp/contexts/Wizard19.jsp110
-rw-r--r--webconsole/jsp/contexts/Wizard2.jsp141
-rw-r--r--webconsole/jsp/contexts/Wizard3.jsp155
-rw-r--r--webconsole/jsp/contexts/Wizard4.jsp139
-rw-r--r--webconsole/jsp/contexts/Wizard5.jsp107
-rw-r--r--webconsole/jsp/contexts/Wizard6.jsp110
-rw-r--r--webconsole/jsp/contexts/Wizard7.jsp110
-rw-r--r--webconsole/jsp/contexts/Wizard8.jsp108
-rw-r--r--webconsole/jsp/contexts/Wizard9.jsp169
-rw-r--r--webconsole/jsp/entities/BrowseTree.jsp122
-rw-r--r--webconsole/jsp/entities/BrowseTreeBase.jsp73
-rw-r--r--webconsole/jsp/entities/BrowseTreeIndex.jsp81
-rw-r--r--webconsole/jsp/entities/BrowseTreeMasthead.jsp64
-rw-r--r--webconsole/jsp/entities/BrowseTreeTitle.xml19
-rw-r--r--webconsole/jsp/entities/FindButtons.jsp62
-rw-r--r--webconsole/jsp/entities/FindIndex.jsp86
-rw-r--r--webconsole/jsp/entities/FindParameter.jsp114
-rw-r--r--webconsole/jsp/entities/FindParameter.xml19
-rw-r--r--webconsole/jsp/entities/FindResult.jsp108
-rw-r--r--webconsole/jsp/entities/FindTable.xml26
-rw-r--r--webconsole/jsp/entities/MemberTable.xml11
-rw-r--r--webconsole/jsp/entities/Navigation.jsp191
-rw-r--r--webconsole/jsp/entities/ProfileTable.xml40
-rw-r--r--webconsole/jsp/entities/SearchButtons.jsp85
-rw-r--r--webconsole/jsp/entities/SearchIndex.jsp112
-rw-r--r--webconsole/jsp/entities/SearchParameter.jsp251
-rw-r--r--webconsole/jsp/entities/SearchParameter.xml39
-rw-r--r--webconsole/jsp/entities/SearchParameterAdvanced.xml72
-rw-r--r--webconsole/jsp/entities/SearchResult.jsp122
-rw-r--r--webconsole/jsp/entities/SearchResultTitle.xml12
-rw-r--r--webconsole/jsp/entities/SearchTable.xml18
-rw-r--r--webconsole/jsp/entities/SearchTableUser.xml21
-rw-r--r--webconsole/jsp/entities/SearchTitle.xml24
-rw-r--r--webconsole/jsp/entities/SearchWindowBrowseTree.jsp106
-rw-r--r--webconsole/jsp/entities/SearchWindowBrowseTreeBase.jsp73
-rw-r--r--webconsole/jsp/entities/SearchWindowBrowseTreeIndex.jsp81
-rw-r--r--webconsole/jsp/entities/SearchWindowBrowseTreeMasthead.jsp64
-rw-r--r--webconsole/jsp/profiles/AdvancedOptions.jsp128
-rw-r--r--webconsole/jsp/profiles/AdvancedOptionsPageTitle.xml21
-rw-r--r--webconsole/jsp/profiles/AdvancedOptionsPropertySheet.xml20
-rw-r--r--webconsole/jsp/profiles/Applicability.jsp83
-rw-r--r--webconsole/jsp/profiles/ApplicabilitySheet.xml15
-rw-r--r--webconsole/jsp/profiles/ApplicabilityTitle.xml17
-rw-r--r--webconsole/jsp/profiles/Assign.jsp152
-rw-r--r--webconsole/jsp/profiles/AssignTable.xml18
-rw-r--r--webconsole/jsp/profiles/AssignTitle.xml20
-rw-r--r--webconsole/jsp/profiles/AssignedAboveTable.xml15
-rw-r--r--webconsole/jsp/profiles/AssignedTable.xml57
-rw-r--r--webconsole/jsp/profiles/Assignees.jsp130
-rw-r--r--webconsole/jsp/profiles/AssigneesPageTitle.xml14
-rw-r--r--webconsole/jsp/profiles/AssigneesTable.xml22
-rw-r--r--webconsole/jsp/profiles/Available.jsp302
-rw-r--r--webconsole/jsp/profiles/AvailableTable.xml44
-rw-r--r--webconsole/jsp/profiles/CopyMoveWizard1.jsp198
-rw-r--r--webconsole/jsp/profiles/CopyMoveWizard2.jsp135
-rw-r--r--webconsole/jsp/profiles/CopyMoveWizard3.jsp195
-rw-r--r--webconsole/jsp/profiles/CopyMoveWizard4.jsp154
-rw-r--r--webconsole/jsp/profiles/CopyMoveWizard5.jsp105
-rw-r--r--webconsole/jsp/profiles/CopyMoveWizardOverview.jsp101
-rw-r--r--webconsole/jsp/profiles/EditPriorities.jsp217
-rw-r--r--webconsole/jsp/profiles/EditPrioritiesTitle.xml19
-rw-r--r--webconsole/jsp/profiles/GeneralSettings.jsp69
-rw-r--r--webconsole/jsp/profiles/GeneralSettingsPageTitle.xml21
-rw-r--r--webconsole/jsp/profiles/GeneralSettingsPropertySheet.xml38
-rw-r--r--webconsole/jsp/profiles/Import.jsp181
-rw-r--r--webconsole/jsp/profiles/ImportTitle.xml19
-rw-r--r--webconsole/jsp/profiles/Login.jsp111
-rw-r--r--webconsole/jsp/profiles/LoginSheet.xml37
-rw-r--r--webconsole/jsp/profiles/LoginTitle.xml15
-rw-r--r--webconsole/jsp/profiles/New.jsp80
-rw-r--r--webconsole/jsp/profiles/NewSheet.xml22
-rw-r--r--webconsole/jsp/profiles/NewTitle.xml19
-rw-r--r--webconsole/jsp/profiles/PoliciesFrameset.jsp64
-rw-r--r--webconsole/jsp/profiles/PrioritizationTable.xml32
-rw-r--r--webconsole/jsp/profiles/ProfileWindow.jsp79
-rw-r--r--webconsole/jsp/profiles/ProfileWindowFrameset.jsp95
-rw-r--r--webconsole/jsp/profiles/SearchButtons.jsp62
-rw-r--r--webconsole/jsp/profiles/SearchIndex.jsp99
-rw-r--r--webconsole/jsp/profiles/SearchParameter.jsp112
-rw-r--r--webconsole/jsp/profiles/SearchParameter.xml19
-rw-r--r--webconsole/jsp/profiles/SearchResult.jsp108
-rw-r--r--webconsole/jsp/profiles/SearchTable.xml26
-rw-r--r--webconsole/jsp/profiles/SettingsSummary.jsp196
-rw-r--r--webconsole/jsp/profiles/SettingsSummaryPageTitle.xml14
-rw-r--r--webconsole/jsp/remote/RemoteDesktopButtons.jsp74
-rw-r--r--webconsole/jsp/remote/RemoteDesktopFrameset.jsp68
-rw-r--r--webconsole/jsp/remote/RemoteDesktopMasthead.jsp63
-rw-r--r--webconsole/jsp/remote/RemoteDesktopNavigationTree.jsp108
-rw-r--r--webconsole/jsp/remote/RemoteDesktopPageTitle.xml19
-rw-r--r--webconsole/jsp/remote/RemoteDesktopViewer.jsp78
-rw-r--r--webconsole/jsp/remote/RemoteDesktopViewerFrameset.jsp65
-rw-r--r--webconsole/jsp/remote/RemoteDesktopViewerPageTitle.xml13
-rw-r--r--webconsole/jsp/report/ElementsInvolvedTable.xml9
-rw-r--r--webconsole/jsp/report/ShowResults.jsp726
-rw-r--r--webconsole/jsp/report/ShowResultsButtons.jsp80
-rw-r--r--webconsole/jsp/report/ShowResultsFrameset.jsp82
-rw-r--r--webconsole/jsp/report/ShowResultsPageTitle.xml20
-rw-r--r--webconsole/jsp/settings/Buttons.jsp111
-rw-r--r--webconsole/jsp/settings/Content.jsp261
-rw-r--r--webconsole/jsp/settings/ContentAreaPoliciesSection.xml49
-rw-r--r--webconsole/jsp/settings/ContentPageTitle.xml21
-rw-r--r--webconsole/jsp/settings/Frameset.jsp64
-rw-r--r--webconsole/jsp/sync/Buttons.jsp121
-rw-r--r--webconsole/jsp/sync/Contexts.xml52
-rw-r--r--webconsole/jsp/sync/Index.jsp86
-rw-r--r--webconsole/jsp/sync/Login.jsp86
-rw-r--r--webconsole/jsp/sync/LoginSheet.xml35
-rw-r--r--webconsole/jsp/sync/Result.jsp287
-rw-r--r--webconsole/jsp/sync/Table.xml17
969 files changed, 83235 insertions, 0 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/AUTHORS
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..b8a9e57
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,680 @@
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+
+1. Definitions.
+
+1.1. Contributor means each individual or entity that creates or
+contributes to the creation of Modifications.
+
+1.2. Contributor Version means the combination of the Original
+Software, prior Modifications used by a Contributor (if any),
+and the Modifications made by that particular Contributor.
+
+1.3. Covered Software means (a) the Original Software, or (b)
+Modifications, or (c) the combination of files containing
+Original Software with files containing Modifications, in each
+case including portions thereof.
+
+1.4. Executable means the Covered Software in any form other
+than Source Code.
+
+1.5. Initial Developer means the individual or entity that first
+makes Original Software available under this License.
+
+1.6. Larger Workmeans a work which combines Covered Software or
+portions thereof with code not governed by the terms of this
+License.
+
+1.7. License means this document.
+
+1.8. Licensable means having the right to grant, to the maximum
+extent possible, whether at the time of the initial grant or
+subsequently acquired, any and all of the rights conveyed herein.
+
+1.9. Modifications means the Source Code and Executable form of
+any of the following: A. Any file that results from an addition
+to, deletion from or modification of the contents of a file
+containing Original Software or previous Modifications; B. Any
+new file that contains any part of the Original Software or
+previous Modification; or C. Any new file that is contributed or
+otherwise made available under the terms of this License.
+
+1.10. Original Software means the Source Code and Executable
+form of computer software code that is originally released under
+this License.
+
+1.11. Patent Claims means any patent claim(s), now owned or
+hereafter acquired, including without limitation, method,
+process, and apparatus claims, in any patent Licensable by
+grantor.
+
+1.12. Source Code means (a) the common form of computer software
+code in which modifications are made and (b) associated
+documentation included in or with such code.
+
+1.13. You (or Your) means an individual or a legal entity
+exercising rights under, and complying with all of the terms of,
+this License. For legal entities, You includes any entity which
+controls, is controlled by, or is under common control with You.
+For purposes of this definition, control means (a) the power,
+direct or indirect, to cause the direction or management of such
+entity, whether by contract or otherwise, or (b) ownership of
+more than fifty percent (50%) of the outstanding shares or
+beneficial ownership of such entity.
+
+2. License Grants.
+
+2.1. The Initial Developer Grant. Conditioned upon Your
+compliance with Section 3.1 below and subject to third party
+intellectual property claims, the Initial Developer hereby
+grants You a world-wide, royalty-free, non-exclusive license:
+
+(a) under intellectual property rights (other than patent or
+trademark) Licensable by Initial Developer, to use, reproduce,
+modify, display, perform, sublicense and distribute the Original
+Software (or portions thereof), with or without Modifications,
+and/or as part of a Larger Work; and
+
+(b) under Patent Claims infringed by the making, using or
+selling of Original Software, to make, have made, use, practice,
+sell, and offer for sale, and/or otherwise dispose of the
+Original Software (or portions thereof);
+
+(c) The licenses granted in Sections 2.1(a) and (b) are
+effective on the date Initial Developer first distributes or
+otherwise makes the Original Software available to a third party
+under the terms of this License;
+
+(d) Notwithstanding Section 2.1(b) above, no patent license is
+granted: (1) for code that You delete from the Original
+Software, or (2) for infringements caused by: (i) the
+modification of the Original Software, or (ii) the combination
+of the Original Software with other software or devices.
+
+2.2. Contributor Grant. Conditioned upon Your compliance with
+Section 3.1 below and subject to third party intellectual
+property claims, each Contributor hereby grants You a
+world-wide, royalty-free, non-exclusive license:
+
+(a) under intellectual property rights (other than patent or
+trademark) Licensable by Contributor to use, reproduce, modify,
+display, perform, sublicense and distribute the Modifications
+created by such Contributor (or portions thereof), either on an
+unmodified basis, with other Modifications, as Covered Software
+and/or as part of a Larger Work; and
+
+(b) under Patent Claims infringed by the making, using, or
+selling of Modifications made by that Contributor either alone
+and/or in combination with its Contributor Version (or portions
+of such combination), to make, use, sell, offer for sale, have
+made, and/or otherwise dispose of: (1) Modifications made by
+that Contributor (or portions thereof); and (2) the combination
+of Modifications made by that Contributor with its Contributor
+Version (or portions of such combination).
+
+(c) The licenses granted in Sections 2.2(a) and 2.2(b)
+areeffective on the date Contributor first distributes or
+otherwise makes the Modifications available to a third party.
+
+(d) Notwithstanding Section 2.2(b) above, no patent license is
+granted: (1) for any code that Contributor has deleted from the
+Contributor Version; (2) for infringements caused by: (i) third
+party modifications of Contributor Version, or (ii) the
+combination of Modifications made by that Contributor with other
+software (except as part of the Contributor Version) or other
+devices; or (3) under Patent Claims infringed by Covered
+Software in the absence of Modifications made by that
+Contributor.
+
+3. Distribution Obligations.
+
+3.1. Availability of Source Code. Any Covered Software that You
+distribute or otherwise make available in Executable form must
+also be made available in Source Code form and that Source Code
+form must be distributed only under the terms of this License.
+You must include a copy of this License with every copy of the
+Source Code form of the Covered Software You distribute or
+otherwise make available. You must inform recipients of any such
+Covered Software in Executable form as to how they can obtain
+such Covered Software in Source Code form in a reasonable manner
+on or through a medium customarily used for software exchange.
+
+3.2. Modifications. The Modifications that You create or to
+which You contribute are governed by the terms of this License.
+You represent that You believe Your Modifications are Your
+original creation(s) and/or You have sufficient rights to grant
+the rights conveyed by this License.
+
+3.3. Required Notices. You must include a notice in each of Your
+Modifications that identifies You as the Contributor of the
+Modification. You may not remove or alter any copyright, patent
+or trademark notices contained within the Covered Software, or
+any notices of licensing or any descriptive text giving
+attribution to any Contributor or the Initial Developer.
+
+3.4. Application of Additional Terms. You may not offer or
+impose any terms on any Covered Software in Source Code form
+that alters or restricts the applicable version of this License
+or the recipients rights hereunder. You may choose to offer, and
+to charge a fee for, warranty, support, indemnity or liability
+obligations to one or more recipients of Covered
+Software. However, you may do so only on Your own behalf, and
+not on behalf of the Initial Developer or any Contributor. You
+must make it absolutely clear that any such warranty, support,
+indemnity or liability obligation is offered by You alone, and
+You hereby agree to indemnify the Initial Developer and every
+Contributor for any liability incurred by the Initial Developer
+or such Contributor as a result of warranty, support, indemnity
+or liability terms You offer.
+
+3.5. Distribution of Executable Versions. You may distribute the
+Executable form of the Covered Software under the terms of this
+License or under the terms of a license of Your choice, which
+may contain terms different from this License, provided that You
+are in compliance with the terms of this License and that the
+license for the Executable form does not attempt to limit or
+alter the recipients rights in the Source Code form from the
+rights set forth in this License. If You distribute the Covered
+Software in Executable form under a different license, You must
+make it absolutely clear that any terms which differ from this
+License are offered by You alone, not by the Initial Developer
+or Contributor. You hereby agree to indemnify the Initial
+Developer and every Contributor for any liability incurred by
+the Initial Developer or such Contributor as a result of any
+such terms You offer.
+
+3.6. Larger Works. You may create a Larger Work by combining
+Covered Software with other code not governed by the terms of
+this License and distribute the Larger Work as a single product.
+In such a case, You must make sure the requirements of this
+License are fulfilled for the Covered Software.
+
+4. Versions of the License.
+
+4.1. New Versions. Sun Microsystems, Inc. is the initial license
+steward and may publish revised and/or new versions of this
+License from time to time. Each version will be given a
+distinguishing version number. Except as provided in Section
+4.3, no one other than the license steward has the right to
+modify this License.
+
+4.2. Effect of New Versions. You may always continue to use,
+distribute or otherwise make the Covered Software available
+under the terms of the version of the License under which You
+originally received the Covered Software. If the Initial
+Developer includes a notice in the Original Software prohibiting
+it from being distributed or otherwise made available under any
+subsequent version of the License, You must distribute and make
+the Covered Software available under the terms of the version of
+the License under which You originally received the Covered
+Software. Otherwise, You may also choose to use, distribute or
+otherwise make the Covered Software available under the terms of
+any subsequent version of the License published by the license
+steward.
+
+4.3. Modified Versions. When You are an Initial Developer and
+You want to create a new license for Your Original Software, You
+may create and use a modified version of this License if You:
+(a) rename the license and remove any references to the name of
+the license steward (except to note that the license differs
+from this License); and (b) otherwise make it clear that the
+license contains terms which differ from this License.
+
+5. DISCLAIMER OF WARRANTY. COVERED SOFTWARE IS PROVIDED UNDER
+THIS LICENSE ON AN AS IS BASIS, WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
+WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS,
+MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED
+SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE
+DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY
+OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING,
+REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE
+IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+6. TERMINATION.
+
+6.1. This License and the rights granted hereunder will
+terminate automatically if You fail to comply with terms herein
+and fail to cure such breach within 30 days of becoming aware of
+the breach. Provisions which, by their nature, must remain in
+effect beyond the termination of this License shall survive.
+
+6.2. If You assert a patent infringement claim (excluding
+declaratory judgment actions) against Initial Developer or a
+Contributor (the Initial Developer or Contributor against whom
+You assert such claim is referred to as Participant) alleging
+that the Participant Software (meaning the Contributor Version
+where the Participant is a Contributor or the Original Software
+where the Participant is the Initial Developer) directly or
+indirectly infringes any patent, then any and all rights granted
+directly or indirectly to You by such Participant, the Initial
+Developer (if the Initial Developer is not the Participant) and
+all Contributors under Sections 2.1 and/or 2.2 of this License
+shall, upon 60 days notice from Participant terminate
+prospectively and automatically at the expiration of such 60 day
+notice period, unless if within such 60 day period You withdraw
+Your claim with respect to the Participant Software against such
+Participant either unilaterally or pursuant to a written
+agreement with Participant.
+
+6.3. In the event of termination under Sections 6.1 or 6.2
+above, all end user licenses that have been validly granted by
+You or any distributor hereunder prior to termination (excluding
+licenses granted to You by any distributor) shall survive
+termination.
+
+7. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO
+LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR
+OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER
+CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY
+SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY
+INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOST
+PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
+MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES,
+EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY
+OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO
+LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH
+PARTYS NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH
+LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR
+LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS
+EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+8. U.S. GOVERNMENT END USERS. The Covered Software is a
+commercial item, as that term is defined in 48 C.F.R. 2.101
+(Oct. 1995), consisting of commercial computer software (as that
+term is defined at 48 C.F.R. 252.227-7014(a)(1)) and commercial
+computer software documentation as such terms are used in 48
+C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and
+48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all
+U.S. Government End Users acquire Covered Software with only
+those rights set forth herein. This U.S. Government Rights
+clause is in lieu of, and supersedes, any other FAR, DFAR, or
+other clause or provision that addresses Government rights in
+computer software under this License.
+
+9. MISCELLANEOUS. This License represents the complete agreement
+concerning subject matter hereof. If any provision of this
+License is held to be unenforceable, such provision shall be
+reformed only to the extent necessary to make it enforceable.
+This License shall be governed by the law of the jurisdiction
+specified in a notice contained within the Original Software
+(except to the extent applicable law, if any, provides
+otherwise), excluding such jurisdictions conflict-of-law
+provisions. Any litigation relating to this License shall be
+subject to the jurisdiction of the courts located in the
+jurisdiction and venue specified in a notice contained within
+the Original Software, with the losing party responsible for
+costs, including, without limitation, court costs and reasonable
+attorneys fees and expenses. The application of the United
+Nations Convention on Contracts for the International Sale of
+Goods is expressly excluded. Any law or regulation which
+provides that the language of a contract shall be construed
+against the drafter shall not apply to this License. You agree
+that You alone are responsible for compliance with the United
+States export administration regulations (and the export control
+laws and regulation of any other countries) when You use,
+distribute or otherwise make available any Covered Software.
+
+10. RESPONSIBILITY FOR CLAIMS. As between Initial Developer and
+the Contributors, each party is responsible for claims and
+damages arising, directly or indirectly, out of its utilization
+of rights under this License and You agree to work with Initial
+Developer and Contributors to distribute such responsibility on
+an equitable basis. Nothing herein is intended or shall be
+deemed to constitute any admission of liability.
+
+----------------------------------------------------------------
+
+NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND
+DISTRIBUTION LICENSE (CDDL): This code is released under the
+CDDL and shall be governed by the laws of the State of
+California (excluding conflict-of-law provisions). Any
+litigation relating to this License shall be subject to the
+jurisdiction of the Federal Courts of the Northern District of
+California and the state courts of the State of California, with
+venue lying in Santa Clara County, California.
+
+----------------------------------------------------------------
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..9183d38
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,2 @@
+2007-03-12 Alberto Ruiz <alberto.ruiz@sun.com>
+ * Initial commit.
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..02322fc
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,49 @@
+-----------------------
+--- Desktop Manager ---
+-----------------------
+
+
+
+- Step 1: Generating the configure script -
+-------------------------------------------
+
+NOTE: Tarball releases already include a configure script so this step is unnecessary in that case.
+
+Type this in the root path of the source code to generate the configure script:
+
+$ ./autogen.sh --help
+
+- Step 2: Calling the configure script -
+----------------------------------------
+
+In the root path of the source code, you should execute the configure script. For more information on changing the default paths, execute configure with the --help option.
+
+$ ./configure --prefix=/usr \
+ --with-webconsole-prefix=/opt/sun/webconsole \
+ --with-jato-path=/opt/sun/share/lib/jato.jar \
+ --with-ns-ldap-path=/usr/share/lib/java/ldapjdk.jar
+
+NOTE: You should use the same prefix than the SPI, otherwise you need to set the --with-apoc-dir option.
+
+- Step 3: Building the sources -
+--------------------------------
+
+If the configuration ends successfully, then you should build and install the sources:
+
+$ make
+$ make install
+
+- Step 4: Post installation -
+-----------------------------
+
+After installation, you should copy or make symbolic link from some files of the Java Web Console repository, the following example assumes that the webconsole is installed under /opt/sun/webconsole:
+
+$ cd /opt/sun/webconsole/apoc
+$ ln -s /opt/sun/webconsole/private/import/tld WEB-INF/
+$ ln -s /opt/sun/webconsole/private/import/lib/registrationservlet.jar WEB-INF/lib/
+$ ln -s /opt/sun/webconsole/private/import/help com_sun_web_ui/
+$ ln -s /opt/sun/webconsole/private/import/jsp com_sun_web_ui/
+
+Finally, you need to install the APOC Template Packages on the apoc/packages directory, if you have them installed already somewhere else, a symbolink link will work here as well:
+
+$ ln -s /usr/share/apoc/packages /opt/sun/webconsole/apoc/packages
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..28c594b
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,7 @@
+SUBDIRS = webconsole src
+
+apocwcdir= $(APOC_WCROOT)/WEB-INF/lib
+
+apocwc_DATA= \
+ build/class/apoc_manager.jar \
+ build/class/apoc_templates.jar
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/NEWS
diff --git a/README b/README
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/README
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..ddd061a
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,66 @@
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+ORIGDIR=`pwd`
+cd $srcdir
+PROJECT=DESKTOPMANAGER
+
+DIE=0
+
+(autoconf --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "You must have autoconf installed to compile $PROJECT."
+ echo "Install the appropriate package for your distribution,"
+ echo "or get the source tarball at http://ftp.gnu.org/gnu/autoconf/"
+ DIE=1
+}
+
+
+AM1_10=`which automake-1.10.1`
+AM1_9=`which automake-1.9`
+
+if test -x "`which automake-1.9`"
+then
+ AUTOMAKE=`which automake-1.9`
+ ACLOCAL=`which aclocal-1.9`
+ ACLOCAL_FLAGS="-I m4/"
+elif test -x "`which automake-1.10`"
+then
+ AUTOMAKE=`which automake-1.10`
+ ACLOCAL=`which aclocal-1.10`
+ ACLOCAL_FLAGS="-I m4/"
+else
+ echo
+ echo "You must have automake 1.10.x or 1.9.x installed to compile $PROJECT."
+ echo "Install the appropriate package for your distribution,"
+ echo "or get the source tarball at http://ftp.gnu.org/gnu/automake/"
+ DIE=1
+fi
+
+if test "$DIE" -eq 1; then
+ exit 1
+fi
+
+if test -z "$AUTOGEN_SUBDIR_MODE"; then
+ if test -z "$*"; then
+ echo "I am going to run ./configure with no arguments - if you wish "
+ echo "to pass any to it, please specify them on the $0 command line."
+ fi
+fi
+
+rm -rf autom4te.cache
+
+$ACLOCAL $ACLOCAL_FLAGS || exit $?
+$AUTOMAKE --add-missing || exit $?
+autoconf || exit $?
+cd $ORIGDIR || exit $?
+
+if test -z "$AUTOGEN_SUBDIR_MODE"; then
+ $srcdir/configure --enable-maintainer-mode $AUTOGEN_CONFIGURE_ARGS "$@" || exit $?
+
+ echo
+ echo "Now type 'make' to compile $PROJECT."
+fi
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..73ec069
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,169 @@
+AC_INIT(apoc-desktop-manager, 1.0)
+
+AM_INIT_AUTOMAKE
+AC_JAVA_OPTIONS
+
+AC_EXPAND(datadir, NONE, EXPANDED_DATADIR)
+AC_EXPAND(prefix, NONE, EXPANDED_PREFIX)
+
+dnl ---------------
+dnl -- APOC Path --
+dnl ---------------
+
+APOCPATH=$EXPANDED_DATADIR'/lib/apoc'
+AC_ARG_WITH(apoc-path,
+AC_HELP_STRING( [--with-apoc-path=DIR],
+ [specify a path to install the apoc libraries (DATADIR/lib/apoc)]),
+[
+ if test "$withval" != "no"
+ then
+ APOCPATH="$withval"
+ fi
+])
+
+dnl -- Adding the SPI to the classpath --
+
+SPIJDK=$APOCPATH/spi.jar
+CLASSPATH=$CLASSPATH:$SPIJDK
+
+dnl -----------------------
+dnl -- Checking for JATO --
+dnl -----------------------
+
+JATOJDK=$EXPANDED_DATADIR/lib/jato/jato.jar
+AC_ARG_WITH(jato-path,
+AC_HELP_STRING( [--with-jato-path=DIR],
+ [specify the JATO JDK path or jar file (DATADIR/lib/jato/jato.jar)]),
+[
+ if test "$withval" != "no"
+ then
+ JATOJDK=$withval
+ fi
+])
+CLASSPATH=$CLASSPATH:$JATOJDK
+
+LDAPJDK=$EXPANDED_DATADIR/lib/apoc/ldapjdk.jar
+AC_ARG_WITH(ns-ldap-path,
+AC_HELP_STRING( [--with-ns-ldap-path=DIR],
+ [specify the LDAP JDK path or jar file (DATADIR/lib/apoc/ldapjdk.jar)]),
+[
+ if test "$withval" != "no"
+ then
+ LDAPJDK=$withval
+ fi
+])
+
+WCROOT="$prefix"/share/webconsole
+AC_ARG_WITH(webconsole-prefix,
+AC_HELP_STRING( [--with-webconsole-prefix=DIR],
+ [specify the webconsole installation path (PREFIX)]),
+[
+ if test "$withval" != "no"
+ then
+ WCROOT="$withval"
+ PATH=$PATH:"$withval"/sbin
+ fi
+])
+APOC_WCROOT=$WCROOT/apoc
+WC_LIBPATH=$WCROOT/lib
+WC_PRIVLIBS=$WCROOT/private/container/common/lib
+CLASSPATH=$CLASSPATH:$WC_PRIVLIBS/servlet-api.jar
+PATH=$PATH:$WCROOT/bin
+
+AC_CHECK_PROG(WCADMIN, wcadmin, wcadmin, no)
+if test $WCADMIN == "no"
+then
+ AC_MSG_ERROR(Java Web Console not found.
+If it is already installed plase use --with-webconsole-prefix=DIR to point to the path where the webconsole files are stored.)
+fi
+
+AC_PROG_JAVAC
+AC_PROG_JAVA
+AC_PROG_JAR
+
+AC_CHECK_PROG(ANT, ant, ant, no)
+if test $ANT == "no"
+then
+ AC_MSG_ERROR(Apache's Ant was not found in path.)
+fi
+
+export CLASSPATH
+AC_CHECK_CLASS(com.sun.apoc.spi.PolicyManager, [], [
+AC_MSG_ERROR(
+APOC SPI not found in Classpath
+If it is already installed please use --with-apoc-path=DIR to point to the path where the spi.jar file is stored.)
+])
+
+AC_CHECK_CLASS(javax.servlet.ServletException, [], [
+AC_MSG_ERROR(
+Servlet classes not found in Classpath.
+The Java Web Console is not correctly isntalled. Please use --with-webconsole-prefix=DIR to poont to a correct webconsole installation.)
+])
+
+AC_CHECK_CLASS(com.iplanet.jato.ModelManager, [], [
+AC_MSG_ERROR(
+Jato classes not found in Classpath.
+If it is already installed please use --with-jato-path=DIR to point to the path or jar file.)
+])
+
+dnl Workaround to override the SPI manifest Class-Path
+dnl For some reason, ant ignores the manifest attr
+export CLASSPATH=".:..:$LDAPJDK"
+
+AC_CHECK_CLASS(netscape.ldap.LDAPConnection, [], [
+AC_MSG_ERROR(
+Mozilla/Netscape LDAP JDK classes not found in Classpath.
+If it is already installed please use --with-ns-ldap-path=DIR to point to the path or jar file.)
+])
+
+
+AC_SUBST(SPIJDK)
+AC_SUBST(WC_LIBPATH)
+AC_SUBST(WC_PRIVLIBS)
+AC_SUBST(JATOJDK)
+AC_SUBST(LDAPJDK)
+
+AC_SUBST(APOC_WCROOT)
+
+AC_OUTPUT([
+Makefile
+src/Makefile
+src/com/Makefile
+src/com/sun/apoc/templates/Makefile
+src/com/sun/apoc/templates/build.xml
+src/com/sun/apoc/Makefile
+src/com/sun/apoc/manager/Makefile
+src/com/sun/apoc/manager/build.xml
+src/com/sun/Makefile
+webconsole/html/zh_CN/Makefile
+webconsole/html/zh_CN/help/JavaHelpSearch/Makefile
+webconsole/html/zh_CN/help/Makefile
+webconsole/html/zh_TW/Makefile
+webconsole/html/zh_TW/help/JavaHelpSearch/Makefile
+webconsole/html/zh_TW/help/Makefile
+webconsole/html/ja/Makefile
+webconsole/html/ja/help/JavaHelpSearch/Makefile
+webconsole/html/ja/help/Makefile
+webconsole/html/de/help/Makefile
+webconsole/html/de/help/JavaHelpSearch/Makefile
+webconsole/html/de/Makefile
+webconsole/html/Makefile
+webconsole/html/ko/Makefile
+webconsole/html/ko/help/Makefile
+webconsole/html/ko/help/JavaHelpSearch/Makefile
+webconsole/html/images/Makefile
+webconsole/html/en/help/css/Makefile
+webconsole/html/en/help/graphics/Makefile
+webconsole/html/en/help/ents/Makefile
+webconsole/html/en/help/Makefile
+webconsole/html/en/help/JavaHelpSearch/Makefile
+webconsole/html/en/Makefile
+webconsole/html/fr/Makefile
+webconsole/html/fr/help/Makefile
+webconsole/html/fr/help/JavaHelpSearch/Makefile
+webconsole/html/es/help/Makefile
+webconsole/html/es/help/JavaHelpSearch/Makefile
+webconsole/html/es/Makefile
+webconsole/jsp/Makefile
+webconsole/Makefile
+])
diff --git a/m4/ac_check_class.m4 b/m4/ac_check_class.m4
new file mode 100644
index 0000000..b12e7f0
--- /dev/null
+++ b/m4/ac_check_class.m4
@@ -0,0 +1,107 @@
+dnl @synopsis AC_CHECK_CLASS
+dnl
+dnl AC_CHECK_CLASS tests the existence of a given Java class, either in
+dnl a jar or in a '.class' file.
+dnl
+dnl *Warning*: its success or failure can depend on a proper setting of the
+dnl CLASSPATH env. variable.
+dnl
+dnl Note: This is part of the set of autoconf M4 macros for Java programs.
+dnl It is VERY IMPORTANT that you download the whole set, some
+dnl macros depend on other. Unfortunately, the autoconf archive does not
+dnl support the concept of set of macros, so I had to break it for
+dnl submission.
+dnl The general documentation, as well as the sample configure.in, is
+dnl included in the AC_PROG_JAVA macro.
+dnl
+dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr>
+dnl @version $Id: ac_check_class.ac,v 12.0 2004/11/17 03:43:38 bostic Exp $
+dnl
+AC_DEFUN([AC_CHECK_CLASS],[
+AC_REQUIRE([AC_PROG_JAVA])
+ac_var_name=`echo $1 | sed 's/\./_/g'`
+dnl Normaly I'd use a AC_CACHE_CHECK here but since the variable name is
+dnl dynamic I need an extra level of extraction
+AC_MSG_CHECKING([for $1 class])
+AC_CACHE_VAL(ac_cv_class_$ac_var_name, [
+if test x$ac_cv_prog_uudecode_base64 = xyes; then
+dnl /**
+dnl * Test.java: used to test dynamicaly if a class exists.
+dnl */
+dnl public class Test
+dnl {
+dnl
+dnl public static void
+dnl main( String[] argv )
+dnl {
+dnl Class lib;
+dnl if (argv.length < 1)
+dnl {
+dnl System.err.println ("Missing argument");
+dnl System.exit (77);
+dnl }
+dnl try
+dnl {
+dnl lib = Class.forName (argv[0]);
+dnl }
+dnl catch (ClassNotFoundException e)
+dnl {
+dnl System.exit (1);
+dnl }
+dnl lib = null;
+dnl System.exit (0);
+dnl }
+dnl
+dnl }
+cat << \EOF > Test.uue
+begin-base64 644 Test.class
+yv66vgADAC0AKQcAAgEABFRlc3QHAAQBABBqYXZhL2xhbmcvT2JqZWN0AQAE
+bWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAPTGluZU51
+bWJlclRhYmxlDAAKAAsBAANlcnIBABVMamF2YS9pby9QcmludFN0cmVhbTsJ
+AA0ACQcADgEAEGphdmEvbGFuZy9TeXN0ZW0IABABABBNaXNzaW5nIGFyZ3Vt
+ZW50DAASABMBAAdwcmludGxuAQAVKExqYXZhL2xhbmcvU3RyaW5nOylWCgAV
+ABEHABYBABNqYXZhL2lvL1ByaW50U3RyZWFtDAAYABkBAARleGl0AQAEKEkp
+VgoADQAXDAAcAB0BAAdmb3JOYW1lAQAlKExqYXZhL2xhbmcvU3RyaW5nOylM
+amF2YS9sYW5nL0NsYXNzOwoAHwAbBwAgAQAPamF2YS9sYW5nL0NsYXNzBwAi
+AQAgamF2YS9sYW5nL0NsYXNzTm90Rm91bmRFeGNlcHRpb24BAAY8aW5pdD4B
+AAMoKVYMACMAJAoAAwAlAQAKU291cmNlRmlsZQEACVRlc3QuamF2YQAhAAEA
+AwAAAAAAAgAJAAUABgABAAcAAABtAAMAAwAAACkqvgSiABCyAAwSD7YAFBBN
+uAAaKgMyuAAeTKcACE0EuAAaAUwDuAAasQABABMAGgAdACEAAQAIAAAAKgAK
+AAAACgAAAAsABgANAA4ADgATABAAEwASAB4AFgAiABgAJAAZACgAGgABACMA
+JAABAAcAAAAhAAEAAQAAAAUqtwAmsQAAAAEACAAAAAoAAgAAAAQABAAEAAEA
+JwAAAAIAKA==
+====
+EOF
+ if uudecode$EXEEXT Test.uue; then
+ :
+ else
+ echo "configure: __oline__: uudecode had trouble decoding base 64 file 'Test.uue'" >&AC_FD_CC
+ echo "configure: failed file was:" >&AC_FD_CC
+ cat Test.uue >&AC_FD_CC
+ ac_cv_prog_uudecode_base64=no
+ fi
+ rm -f Test.uue
+ if AC_TRY_COMMAND($JAVA $JAVAFLAGS Test $1) >/dev/null 2>&1; then
+ eval "ac_cv_class_$ac_var_name=yes"
+ else
+ eval "ac_cv_class_$ac_var_name=no"
+ fi
+ rm -f Test.class
+else
+ AC_TRY_COMPILE_JAVA([$1], , [eval "ac_cv_class_$ac_var_name=yes"],
+ [eval "ac_cv_class_$ac_var_name=no"])
+fi
+eval "ac_var_val=$`eval echo ac_cv_class_$ac_var_name`"
+eval "HAVE_$ac_var_name=$`echo ac_cv_class_$ac_var_val`"
+HAVE_LAST_CLASS=$ac_var_val
+if test x$ac_var_val = xyes; then
+ ifelse([$2], , :, [$2])
+else
+ ifelse([$3], , :, [$3])
+fi
+])
+dnl for some reason the above statment didn't fall though here?
+dnl do scripts have variable scoping?
+eval "ac_var_val=$`eval echo ac_cv_class_$ac_var_name`"
+AC_MSG_RESULT($ac_var_val)
+])
diff --git a/m4/ac_check_classpath.m4 b/m4/ac_check_classpath.m4
new file mode 100644
index 0000000..b18d479
--- /dev/null
+++ b/m4/ac_check_classpath.m4
@@ -0,0 +1,23 @@
+dnl @synopsis AC_CHECK_CLASSPATH
+dnl
+dnl AC_CHECK_CLASSPATH just displays the CLASSPATH, for the edification
+dnl of the user.
+dnl
+dnl Note: This is part of the set of autoconf M4 macros for Java programs.
+dnl It is VERY IMPORTANT that you download the whole set, some
+dnl macros depend on other. Unfortunately, the autoconf archive does not
+dnl support the concept of set of macros, so I had to break it for
+dnl submission.
+dnl The general documentation, as well as the sample configure.in, is
+dnl included in the AC_PROG_JAVA macro.
+dnl
+dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr>
+dnl @version $Id: ac_check_classpath.ac,v 12.0 2004/11/17 03:43:38 bostic Exp $
+dnl
+AC_DEFUN([AC_CHECK_CLASSPATH],[
+if test "x$CLASSPATH" = x; then
+ echo "You have no CLASSPATH, I hope it is good"
+else
+ echo "You have CLASSPATH $CLASSPATH, hope it is correct"
+fi
+])
diff --git a/m4/ac_check_junit.m4 b/m4/ac_check_junit.m4
new file mode 100644
index 0000000..cc02e32
--- /dev/null
+++ b/m4/ac_check_junit.m4
@@ -0,0 +1,54 @@
+dnl @synopsis AC_CHECK_JUNIT
+dnl
+dnl AC_CHECK_JUNIT tests the availability of the Junit testing
+dnl framework, and set some variables for conditional compilation
+dnl of the test suite by automake.
+dnl
+dnl If available, JUNIT is set to a command launching the text
+dnl based user interface of Junit, @JAVA_JUNIT@ is set to $JAVA_JUNIT
+dnl and @TESTS_JUNIT@ is set to $TESTS_JUNIT, otherwise they are set
+dnl to empty values.
+dnl
+dnl You can use these variables in your Makefile.am file like this :
+dnl
+dnl # Some of the following classes are built only if junit is available
+dnl JAVA_JUNIT = Class1Test.java Class2Test.java AllJunitTests.java
+dnl
+dnl noinst_JAVA = Example1.java Example2.java @JAVA_JUNIT@
+dnl
+dnl EXTRA_JAVA = $(JAVA_JUNIT)
+dnl
+dnl TESTS_JUNIT = AllJunitTests
+dnl
+dnl TESTS = StandaloneTest1 StandaloneTest2 @TESTS_JUNIT@
+dnl
+dnl EXTRA_TESTS = $(TESTS_JUNIT)
+dnl
+dnl AllJunitTests :
+dnl echo "#! /bin/sh" > $@
+dnl echo "exec @JUNIT@ my.package.name.AllJunitTests" >> $@
+dnl chmod +x $@
+dnl
+dnl @author Luc Maisonobe
+dnl @version $Id: ac_check_junit.ac,v 12.0 2004/11/17 03:43:38 bostic Exp $
+dnl
+AC_DEFUN([AC_CHECK_JUNIT],[
+AC_CACHE_VAL(ac_cv_prog_JUNIT,[
+AC_CHECK_CLASS(junit.textui.TestRunner)
+if test x"`eval 'echo $ac_cv_class_junit_textui_TestRunner'`" != xno ; then
+ ac_cv_prog_JUNIT='$(CLASSPATH_ENV) $(JAVA) $(JAVAFLAGS) junit.textui.TestRunner'
+fi])
+AC_MSG_CHECKING([for junit])
+if test x"`eval 'echo $ac_cv_prog_JUNIT'`" != x ; then
+ JUNIT="$ac_cv_prog_JUNIT"
+ JAVA_JUNIT='$(JAVA_JUNIT)'
+ TESTS_JUNIT='$(TESTS_JUNIT)'
+else
+ JUNIT=
+ JAVA_JUNIT=
+ TESTS_JUNIT=
+fi
+AC_MSG_RESULT($JAVA_JUNIT)
+AC_SUBST(JUNIT)
+AC_SUBST(JAVA_JUNIT)
+AC_SUBST(TESTS_JUNIT)])
diff --git a/m4/ac_check_rqrd_class.m4 b/m4/ac_check_rqrd_class.m4
new file mode 100644
index 0000000..c7c26b8
--- /dev/null
+++ b/m4/ac_check_rqrd_class.m4
@@ -0,0 +1,26 @@
+dnl @synopsis AC_CHECK_RQRD_CLASS
+dnl
+dnl AC_CHECK_RQRD_CLASS tests the existence of a given Java class, either in
+dnl a jar or in a '.class' file and fails if it doesn't exist.
+dnl Its success or failure can depend on a proper setting of the
+dnl CLASSPATH env. variable.
+dnl
+dnl Note: This is part of the set of autoconf M4 macros for Java programs.
+dnl It is VERY IMPORTANT that you download the whole set, some
+dnl macros depend on other. Unfortunately, the autoconf archive does not
+dnl support the concept of set of macros, so I had to break it for
+dnl submission.
+dnl The general documentation, as well as the sample configure.in, is
+dnl included in the AC_PROG_JAVA macro.
+dnl
+dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr>
+dnl @version $Id: ac_check_rqrd_class.ac,v 12.0 2004/11/17 03:43:38 bostic Exp $
+dnl
+
+AC_DEFUN([AC_CHECK_RQRD_CLASS],[
+CLASS=`echo $1|sed 's/\./_/g'`
+AC_CHECK_CLASS($1)
+if test "$HAVE_LAST_CLASS" = "no"; then
+ AC_MSG_ERROR([Required class $1 missing, exiting.])
+fi
+])
diff --git a/m4/ac_expand.m4 b/m4/ac_expand.m4
new file mode 100644
index 0000000..ae8188a
--- /dev/null
+++ b/m4/ac_expand.m4
@@ -0,0 +1,8 @@
+AC_DEFUN([AC_EXPAND], [
+ test "x$prefix" = xNONE && prefix="$ac_default_prefix"
+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+ ac_expand=[$]$1
+ test "x$ac_expand" = xNONE && ac_expand="[$]$2"
+ ac_expand=`eval echo [$]ac_expand`
+ $3=`eval echo [$]ac_expand`
+])
diff --git a/m4/ac_java_options.m4 b/m4/ac_java_options.m4
new file mode 100644
index 0000000..e71adfe
--- /dev/null
+++ b/m4/ac_java_options.m4
@@ -0,0 +1,32 @@
+dnl @synopsis AC_JAVA_OPTIONS
+dnl
+dnl AC_JAVA_OPTIONS adds configure command line options used for Java m4
+dnl macros. This Macro is optional.
+dnl
+dnl Note: This is part of the set of autoconf M4 macros for Java programs.
+dnl It is VERY IMPORTANT that you download the whole set, some
+dnl macros depend on other. Unfortunately, the autoconf archive does not
+dnl support the concept of set of macros, so I had to break it for
+dnl submission.
+dnl The general documentation, as well as the sample configure.in, is
+dnl included in the AC_PROG_JAVA macro.
+dnl
+dnl @author Devin Weaver <ktohg@tritarget.com>
+dnl @version $Id: ac_java_options.ac,v 12.0 2004/11/17 03:43:38 bostic Exp $
+dnl
+AC_DEFUN([AC_JAVA_OPTIONS],[
+AC_ARG_WITH(java-prefix,
+ [ --with-java-prefix=PFX prefix where Java runtime is installed (optional)])
+AC_ARG_WITH(javac-flags,
+ [ --with-javac-flags=FLAGS flags to pass to the Java compiler (optional)])
+AC_ARG_WITH(java-flags,
+ [ --with-java-flags=FLAGS flags to pass to the Java VM (optional)])
+JAVAPREFIX=$with_java_prefix
+JAVACFLAGS=$with_javac_flags
+JAVAFLAGS=$with_java_flags
+AC_SUBST(JAVAPREFIX)dnl
+AC_SUBST(JAVACFLAGS)dnl
+AC_SUBST(JAVAFLAGS)dnl
+AC_SUBST(JAVA)dnl
+AC_SUBST(JAVAC)dnl
+])
diff --git a/m4/ac_prog_jar.m4 b/m4/ac_prog_jar.m4
new file mode 100644
index 0000000..c60a79a
--- /dev/null
+++ b/m4/ac_prog_jar.m4
@@ -0,0 +1,36 @@
+dnl @synopsis AC_PROG_JAR
+dnl
+dnl AC_PROG_JAR tests for an existing jar program. It uses the environment
+dnl variable JAR then tests in sequence various common jar programs.
+dnl
+dnl If you want to force a specific compiler:
+dnl
+dnl - at the configure.in level, set JAR=yourcompiler before calling
+dnl AC_PROG_JAR
+dnl
+dnl - at the configure level, setenv JAR
+dnl
+dnl You can use the JAR variable in your Makefile.in, with @JAR@.
+dnl
+dnl Note: This macro depends on the autoconf M4 macros for Java programs.
+dnl It is VERY IMPORTANT that you download that whole set, some
+dnl macros depend on other. Unfortunately, the autoconf archive does not
+dnl support the concept of set of macros, so I had to break it for
+dnl submission.
+dnl
+dnl The general documentation of those macros, as well as the sample
+dnl configure.in, is included in the AC_PROG_JAVA macro.
+dnl
+dnl @author Egon Willighagen <egonw@sci.kun.nl>
+dnl @version $Id: ac_prog_jar.ac,v 12.0 2004/11/17 03:43:38 bostic Exp $
+dnl
+AC_DEFUN([AC_PROG_JAR],[
+AC_REQUIRE([AC_EXEEXT])dnl
+if test "x$JAVAPREFIX" = x; then
+ test "x$JAR" = x && AC_CHECK_PROGS(JAR, jar$EXEEXT)
+else
+ test "x$JAR" = x && AC_CHECK_PROGS(JAR, jar, $JAVAPREFIX)
+fi
+test "x$JAR" = x && AC_MSG_ERROR([no acceptable jar program found in \$PATH])
+AC_PROVIDE([$0])dnl
+])
diff --git a/m4/ac_prog_java.m4 b/m4/ac_prog_java.m4
new file mode 100644
index 0000000..05c65e7
--- /dev/null
+++ b/m4/ac_prog_java.m4
@@ -0,0 +1,79 @@
+dnl @synopsis AC_PROG_JAVA
+dnl
+dnl Here is a summary of the main macros:
+dnl
+dnl AC_PROG_JAVAC: finds a Java compiler.
+dnl
+dnl AC_PROG_JAVA: finds a Java virtual machine.
+dnl
+dnl AC_CHECK_CLASS: finds if we have the given class (beware of CLASSPATH!).
+dnl
+dnl AC_CHECK_RQRD_CLASS: finds if we have the given class and stops otherwise.
+dnl
+dnl AC_TRY_COMPILE_JAVA: attempt to compile user given source.
+dnl
+dnl AC_TRY_RUN_JAVA: attempt to compile and run user given source.
+dnl
+dnl AC_JAVA_OPTIONS: adds Java configure options.
+dnl
+dnl AC_PROG_JAVA tests an existing Java virtual machine. It uses the
+dnl environment variable JAVA then tests in sequence various common Java
+dnl virtual machines. For political reasons, it starts with the free ones.
+dnl You *must* call [AC_PROG_JAVAC] before.
+dnl
+dnl If you want to force a specific VM:
+dnl
+dnl - at the configure.in level, set JAVA=yourvm before calling AC_PROG_JAVA
+dnl (but after AC_INIT)
+dnl
+dnl - at the configure level, setenv JAVA
+dnl
+dnl You can use the JAVA variable in your Makefile.in, with @JAVA@.
+dnl
+dnl *Warning*: its success or failure can depend on a proper setting of the
+dnl CLASSPATH env. variable.
+dnl
+dnl TODO: allow to exclude virtual machines (rationale: most Java programs
+dnl cannot run with some VM like kaffe).
+dnl
+dnl Note: This is part of the set of autoconf M4 macros for Java programs.
+dnl It is VERY IMPORTANT that you download the whole set, some
+dnl macros depend on other. Unfortunately, the autoconf archive does not
+dnl support the concept of set of macros, so I had to break it for
+dnl submission.
+dnl
+dnl A Web page, with a link to the latest CVS snapshot is at
+dnl <http://www.internatif.org/bortzmeyer/autoconf-Java/>.
+dnl
+dnl This is a sample configure.in
+dnl Process this file with autoconf to produce a configure script.
+dnl
+dnl AC_INIT(UnTag.java)
+dnl
+dnl dnl Checks for programs.
+dnl AC_CHECK_CLASSPATH
+dnl AC_PROG_JAVAC
+dnl AC_PROG_JAVA
+dnl
+dnl dnl Checks for classes
+dnl AC_CHECK_RQRD_CLASS(org.xml.sax.Parser)
+dnl AC_CHECK_RQRD_CLASS(com.jclark.xml.sax.Driver)
+dnl
+dnl AC_OUTPUT(Makefile)
+dnl
+dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr>
+dnl @version $Id: ac_prog_java.ac,v 12.1 2006/08/24 14:45:36 bostic Exp $
+dnl
+dnl Note: Modified to prefer java over kaffe. [#8059]
+dnl
+AC_DEFUN([AC_PROG_JAVA],[
+AC_REQUIRE([AC_EXEEXT])dnl
+if test x$JAVAPREFIX = x; then
+ test x$JAVA = x && AC_CHECK_PROGS(JAVA, java$EXEEXT kaffe$EXEEXT)
+else
+ test x$JAVA = x && AC_CHECK_PROGS(JAVA, java$EXEEXT kaffe$EXEEXT, $JAVAPREFIX)
+fi
+test x$JAVA = x && AC_MSG_ERROR([no acceptable Java virtual machine found in \$PATH])
+AC_PROG_JAVA_WORKS
+AC_PROVIDE([$0])dnl
+])
diff --git a/m4/ac_prog_java_works.m4 b/m4/ac_prog_java_works.m4
new file mode 100644
index 0000000..f0ff8c5
--- /dev/null
+++ b/m4/ac_prog_java_works.m4
@@ -0,0 +1,97 @@
+dnl @synopsis AC_PROG_JAVA_WORKS
+dnl
+dnl Internal use ONLY.
+dnl
+dnl Note: This is part of the set of autoconf M4 macros for Java programs.
+dnl It is VERY IMPORTANT that you download the whole set, some
+dnl macros depend on other. Unfortunately, the autoconf archive does not
+dnl support the concept of set of macros, so I had to break it for
+dnl submission.
+dnl The general documentation, as well as the sample configure.in, is
+dnl included in the AC_PROG_JAVA macro.
+dnl
+dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr>
+dnl @version $Id: ac_prog_java_works.ac,v 12.0 2004/11/17 03:43:38 bostic Exp $
+dnl
+AC_DEFUN([AC_PROG_JAVA_WORKS], [
+AC_CHECK_PROG(uudecode, uudecode$EXEEXT, yes)
+if test x$uudecode = xyes; then
+AC_CACHE_CHECK([if uudecode can decode base 64 file], ac_cv_prog_uudecode_base64, [
+dnl /**
+dnl * Test.java: used to test if java compiler works.
+dnl */
+dnl public class Test
+dnl {
+dnl
+dnl public static void
+dnl main( String[] argv )
+dnl {
+dnl System.exit (0);
+dnl }
+dnl
+dnl }
+cat << \EOF > Test.uue
+begin-base64 644 Test.class
+yv66vgADAC0AFQcAAgEABFRlc3QHAAQBABBqYXZhL2xhbmcvT2JqZWN0AQAE
+bWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAPTGluZU51
+bWJlclRhYmxlDAAKAAsBAARleGl0AQAEKEkpVgoADQAJBwAOAQAQamF2YS9s
+YW5nL1N5c3RlbQEABjxpbml0PgEAAygpVgwADwAQCgADABEBAApTb3VyY2VG
+aWxlAQAJVGVzdC5qYXZhACEAAQADAAAAAAACAAkABQAGAAEABwAAACEAAQAB
+AAAABQO4AAyxAAAAAQAIAAAACgACAAAACgAEAAsAAQAPABAAAQAHAAAAIQAB
+AAEAAAAFKrcAErEAAAABAAgAAAAKAAIAAAAEAAQABAABABMAAAACABQ=
+====
+EOF
+if uudecode$EXEEXT Test.uue; then
+ ac_cv_prog_uudecode_base64=yes
+else
+ echo "configure: __oline__: uudecode had trouble decoding base 64 file 'Test.uue'" >&AC_FD_CC
+ echo "configure: failed file was:" >&AC_FD_CC
+ cat Test.uue >&AC_FD_CC
+ ac_cv_prog_uudecode_base64=no
+fi
+rm -f Test.uue])
+fi
+if test x$ac_cv_prog_uudecode_base64 != xyes; then
+ rm -f Test.class
+ AC_MSG_WARN([I have to compile Test.class from scratch])
+ if test x$ac_cv_prog_javac_works = xno; then
+ AC_MSG_ERROR([Cannot compile java source. $JAVAC does not work properly])
+ fi
+ if test x$ac_cv_prog_javac_works = x; then
+ AC_PROG_JAVAC
+ fi
+fi
+AC_CACHE_CHECK(if $JAVA works, ac_cv_prog_java_works, [
+JAVA_TEST=Test.java
+CLASS_TEST=Test.class
+TEST=Test
+changequote(, )dnl
+cat << \EOF > $JAVA_TEST
+/* [#]line __oline__ "configure" */
+public class Test {
+public static void main (String args[]) {
+ System.exit (0);
+} }
+EOF
+changequote([, ])dnl
+if test x$ac_cv_prog_uudecode_base64 != xyes; then
+ if AC_TRY_COMMAND($JAVAC $JAVACFLAGS $JAVA_TEST) && test -s $CLASS_TEST; then
+ :
+ else
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat $JAVA_TEST >&AC_FD_CC
+ AC_MSG_ERROR(The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?))
+ fi
+fi
+if AC_TRY_COMMAND($JAVA $JAVAFLAGS $TEST) >/dev/null 2>&1; then
+ ac_cv_prog_java_works=yes
+else
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat $JAVA_TEST >&AC_FD_CC
+ AC_MSG_ERROR(The Java VM $JAVA failed (see config.log, check the CLASSPATH?))
+fi
+rm -fr $JAVA_TEST $CLASS_TEST Test.uue
+])
+AC_PROVIDE([$0])dnl
+]
+)
diff --git a/m4/ac_prog_javac.m4 b/m4/ac_prog_javac.m4
new file mode 100644
index 0000000..b3607dc
--- /dev/null
+++ b/m4/ac_prog_javac.m4
@@ -0,0 +1,43 @@
+dnl @synopsis AC_PROG_JAVAC
+dnl
+dnl AC_PROG_JAVAC tests an existing Java compiler. It uses the environment
+dnl variable JAVAC then tests in sequence various common Java compilers. For
+dnl political reasons, it starts with the free ones.
+dnl
+dnl If you want to force a specific compiler:
+dnl
+dnl - at the configure.in level, set JAVAC=yourcompiler before calling
+dnl AC_PROG_JAVAC
+dnl
+dnl - at the configure level, setenv JAVAC
+dnl
+dnl You can use the JAVAC variable in your Makefile.in, with @JAVAC@.
+dnl
+dnl *Warning*: its success or failure can depend on a proper setting of the
+dnl CLASSPATH env. variable.
+dnl
+dnl TODO: allow to exclude compilers (rationale: most Java programs cannot compile
+dnl with some compilers like guavac).
+dnl
+dnl Note: This is part of the set of autoconf M4 macros for Java programs.
+dnl It is VERY IMPORTANT that you download the whole set, some
+dnl macros depend on other. Unfortunately, the autoconf archive does not
+dnl support the concept of set of macros, so I had to break it for
+dnl submission.
+dnl The general documentation, as well as the sample configure.in, is
+dnl included in the AC_PROG_JAVA macro.
+dnl
+dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr>
+dnl @version $Id: ac_prog_javac.ac,v 12.0 2004/11/17 03:43:38 bostic Exp $
+dnl
+AC_DEFUN([AC_PROG_JAVAC],[
+AC_REQUIRE([AC_EXEEXT])dnl
+if test "x$JAVAPREFIX" = x; then
+ test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, javac$EXEEXT "gcj$EXEEXT -C" guavac$EXEEXT jikes$EXEEXT)
+else
+ test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, javac$EXEEXT "gcj$EXEEXT -C" guavac$EXEEXT jikes$EXEEXT, $JAVAPREFIX)
+fi
+test "x$JAVAC" = x && AC_MSG_ERROR([no acceptable Java compiler found in \$PATH])
+AC_PROG_JAVAC_WORKS
+AC_PROVIDE([$0])dnl
+])
diff --git a/m4/ac_prog_javac_works.m4 b/m4/ac_prog_javac_works.m4
new file mode 100644
index 0000000..0cfd1f2
--- /dev/null
+++ b/m4/ac_prog_javac_works.m4
@@ -0,0 +1,35 @@
+dnl @synopsis AC_PROG_JAVAC_WORKS
+dnl
+dnl Internal use ONLY.
+dnl
+dnl Note: This is part of the set of autoconf M4 macros for Java programs.
+dnl It is VERY IMPORTANT that you download the whole set, some
+dnl macros depend on other. Unfortunately, the autoconf archive does not
+dnl support the concept of set of macros, so I had to break it for
+dnl submission.
+dnl The general documentation, as well as the sample configure.in, is
+dnl included in the AC_PROG_JAVA macro.
+dnl
+dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr>
+dnl @version $Id: ac_prog_javac_works.ac,v 12.0 2004/11/17 03:43:38 bostic Exp $
+dnl
+AC_DEFUN([AC_PROG_JAVAC_WORKS],[
+AC_CACHE_CHECK([if $JAVAC works], ac_cv_prog_javac_works, [
+JAVA_TEST=Test.java
+CLASS_TEST=Test.class
+cat << \EOF > $JAVA_TEST
+/* [#]line __oline__ "configure" */
+public class Test {
+}
+EOF
+if AC_TRY_COMMAND($JAVAC $JAVACFLAGS $JAVA_TEST) >/dev/null 2>&1; then
+ ac_cv_prog_javac_works=yes
+else
+ AC_MSG_ERROR([The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)])
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat $JAVA_TEST >&AC_FD_CC
+fi
+rm -f $JAVA_TEST $CLASS_TEST
+])
+AC_PROVIDE([$0])dnl
+])
diff --git a/m4/ac_prog_javadoc.m4 b/m4/ac_prog_javadoc.m4
new file mode 100644
index 0000000..36b95bd
--- /dev/null
+++ b/m4/ac_prog_javadoc.m4
@@ -0,0 +1,37 @@
+dnl @synopsis AC_PROG_JAVADOC
+dnl
+dnl AC_PROG_JAVADOC tests for an existing javadoc generator. It uses the environment
+dnl variable JAVADOC then tests in sequence various common javadoc generator.
+dnl
+dnl If you want to force a specific compiler:
+dnl
+dnl - at the configure.in level, set JAVADOC=yourgenerator before calling
+dnl AC_PROG_JAVADOC
+dnl
+dnl - at the configure level, setenv JAVADOC
+dnl
+dnl You can use the JAVADOC variable in your Makefile.in, with @JAVADOC@.
+dnl
+dnl Note: This macro depends on the autoconf M4 macros for Java programs.
+dnl It is VERY IMPORTANT that you download that whole set, some
+dnl macros depend on other. Unfortunately, the autoconf archive does not
+dnl support the concept of set of macros, so I had to break it for
+dnl submission.
+dnl
+dnl The general documentation of those macros, as well as the sample
+dnl configure.in, is included in the AC_PROG_JAVA macro.
+dnl
+dnl @author Egon Willighagen <egonw@sci.kun.nl>
+dnl @version $Id: ac_prog_javadoc.ac,v 12.0 2004/11/17 03:43:38 bostic Exp $
+dnl
+AC_DEFUN([AC_PROG_JAVADOC],[
+AC_REQUIRE([AC_EXEEXT])dnl
+if test "x$JAVAPREFIX" = x; then
+ test "x$JAVADOC" = x && AC_CHECK_PROGS(JAVADOC, javadoc$EXEEXT)
+else
+ test "x$JAVADOC" = x && AC_CHECK_PROGS(JAVADOC, javadoc, $JAVAPREFIX)
+fi
+test "x$JAVADOC" = x && AC_MSG_ERROR([no acceptable javadoc generator found in \$PATH])
+AC_PROVIDE([$0])dnl
+])
+
diff --git a/m4/ac_prog_javah.m4 b/m4/ac_prog_javah.m4
new file mode 100644
index 0000000..7563036
--- /dev/null
+++ b/m4/ac_prog_javah.m4
@@ -0,0 +1,26 @@
+dnl @synopsis AC_PROG_JAVAH
+dnl
+dnl AC_PROG_JAVAH tests the availability of the javah header generator
+dnl and looks for the jni.h header file. If available, JAVAH is set to
+dnl the full path of javah and CPPFLAGS is updated accordingly.
+dnl
+dnl @author Luc Maisonobe
+dnl @version $Id: ac_prog_javah.ac,v 12.0 2004/11/17 03:43:38 bostic Exp $
+dnl
+AC_DEFUN([AC_PROG_JAVAH],[
+AC_REQUIRE([AC_CANONICAL_SYSTEM])dnl
+AC_REQUIRE([AC_PROG_CPP])dnl
+AC_PATH_PROG(JAVAH,javah)
+if test x"`eval 'echo $ac_cv_path_JAVAH'`" != x ; then
+ AC_TRY_CPP([#include <jni.h>],,[
+ ac_save_CPPFLAGS="$CPPFLAGS"
+changequote(, )dnl
+ ac_dir=`echo $ac_cv_path_JAVAH | sed 's,\(.*\)/[^/]*/[^/]*$,\1/include,'`
+ ac_machdep=`echo $build_os | sed 's,[-0-9].*,,'`
+changequote([, ])dnl
+ CPPFLAGS="$ac_save_CPPFLAGS -I$ac_dir -I$ac_dir/$ac_machdep"
+ AC_TRY_CPP([#include <jni.h>],
+ ac_save_CPPFLAGS="$CPPFLAGS",
+ AC_MSG_WARN([unable to include <jni.h>]))
+ CPPFLAGS="$ac_save_CPPFLAGS"])
+fi])
diff --git a/m4/ac_try_compile_java.m4 b/m4/ac_try_compile_java.m4
new file mode 100644
index 0000000..d22aeab
--- /dev/null
+++ b/m4/ac_try_compile_java.m4
@@ -0,0 +1,39 @@
+dnl @synopsis AC_TRY_COMPILE_JAVA
+dnl
+dnl AC_TRY_COMPILE_JAVA attempt to compile user given source.
+dnl
+dnl *Warning*: its success or failure can depend on a proper setting of the
+dnl CLASSPATH env. variable.
+dnl
+dnl Note: This is part of the set of autoconf M4 macros for Java programs.
+dnl It is VERY IMPORTANT that you download the whole set, some
+dnl macros depend on other. Unfortunately, the autoconf archive does not
+dnl support the concept of set of macros, so I had to break it for
+dnl submission.
+dnl The general documentation, as well as the sample configure.in, is
+dnl included in the AC_PROG_JAVA macro.
+dnl
+dnl @author Devin Weaver <ktohg@tritarget.com>
+dnl @version $Id: ac_try_compile_java.ac,v 12.0 2004/11/17 03:43:38 bostic Exp $
+dnl
+AC_DEFUN([AC_TRY_COMPILE_JAVA],[
+AC_REQUIRE([AC_PROG_JAVAC])dnl
+cat << \EOF > Test.java
+/* [#]line __oline__ "configure" */
+ifelse([$1], , , [import $1;])
+public class Test {
+[$2]
+}
+EOF
+if AC_TRY_COMMAND($JAVAC $JAVACFLAGS Test.java) && test -s Test.class
+then
+dnl Don't remove the temporary files here, so they can be examined.
+ ifelse([$3], , :, [$3])
+else
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat Test.java >&AC_FD_CC
+ifelse([$4], , , [ rm -fr Test*
+ $4
+])dnl
+fi
+rm -fr Test*])
diff --git a/m4/ac_try_run_javac.m4 b/m4/ac_try_run_javac.m4
new file mode 100644
index 0000000..0124935
--- /dev/null
+++ b/m4/ac_try_run_javac.m4
@@ -0,0 +1,40 @@
+dnl @synopsis AC_TRY_RUN_JAVA
+dnl
+dnl AC_TRY_RUN_JAVA attempt to compile and run user given source.
+dnl
+dnl *Warning*: its success or failure can depend on a proper setting of the
+dnl CLASSPATH env. variable.
+dnl
+dnl Note: This is part of the set of autoconf M4 macros for Java programs.
+dnl It is VERY IMPORTANT that you download the whole set, some
+dnl macros depend on other. Unfortunately, the autoconf archive does not
+dnl support the concept of set of macros, so I had to break it for
+dnl submission.
+dnl The general documentation, as well as the sample configure.in, is
+dnl included in the AC_PROG_JAVA macro.
+dnl
+dnl @author Devin Weaver <ktohg@tritarget.com>
+dnl @version $Id: ac_try_run_javac.ac,v 12.0 2004/11/17 03:43:38 bostic Exp $
+dnl
+AC_DEFUN([AC_TRY_RUN_JAVA],[
+AC_REQUIRE([AC_PROG_JAVAC])dnl
+AC_REQUIRE([AC_PROG_JAVA])dnl
+cat << \EOF > Test.java
+/* [#]line __oline__ "configure" */
+ifelse([$1], , , [include $1;])
+public class Test {
+[$2]
+}
+EOF
+if AC_TRY_COMMAND($JAVAC $JAVACFLAGS Test.java) && test -s Test.class && ($JAVA $JAVAFLAGS Test; exit) 2>/dev/null
+then
+dnl Don't remove the temporary files here, so they can be examined.
+ ifelse([$3], , :, [$3])
+else
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat Test.java >&AC_FD_CC
+ifelse([$4], , , [ rm -fr Test*
+ $4
+])dnl
+fi
+rm -fr Test*])
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..17e533f
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = com
diff --git a/src/com/Makefile.am b/src/com/Makefile.am
new file mode 100644
index 0000000..1d06788
--- /dev/null
+++ b/src/com/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = sun
diff --git a/src/com/sun/Makefile.am b/src/com/sun/Makefile.am
new file mode 100644
index 0000000..b5d5f2c
--- /dev/null
+++ b/src/com/sun/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = apoc
diff --git a/src/com/sun/apoc/Makefile.am b/src/com/sun/apoc/Makefile.am
new file mode 100644
index 0000000..6437663
--- /dev/null
+++ b/src/com/sun/apoc/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = manager templates
diff --git a/src/com/sun/apoc/manager/AlertViewBean.java b/src/com/sun/apoc/manager/AlertViewBean.java
new file mode 100644
index 0000000..d8810cc
--- /dev/null
+++ b/src/com/sun/apoc/manager/AlertViewBean.java
@@ -0,0 +1,107 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.view.alert.CCAlert;
+import com.sun.web.ui.view.alert.CCAlertFullPage;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+public class AlertViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "Alert";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/Alert.jsp";
+ public static final String CHILD_TITLE = "AlertTitle";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_TRACEHINT = "TraceHint";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ private Throwable m_exception = null;
+ private CCPageTitleModel m_titleModel = null;
+
+ public AlertViewBean(RequestContext rc) {
+ super(PAGE_NAME);
+ setRequestContext(rc);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_titleModel = new CCPageTitleModel(
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
+ "<!DOCTYPE pagetitle SYSTEM \"tags/dtd/pagetitle.dtd\">" +
+ "<pagetitle>" +
+ "</pagetitle>");
+ m_titleModel.setAlertIconType(CCAlert.TYPE_ERROR);
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_TITLE, CCPageTitle.class);
+ registerChild(CHILD_ALERT, CCAlertFullPage.class);
+ registerChild(CHILD_TRACEHINT, CCStaticTextField.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_ALERT)) {
+ CCAlertFullPage child = new CCAlertFullPage(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE) || name.equals(CHILD_TRACEHINT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void setException(Exception exception) {
+ m_exception = exception;
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ Toolbox2.prepareErrorDisplay(m_exception, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ }
+}
diff --git a/src/com/sun/apoc/manager/BrowseTreeBaseViewBean.java b/src/com/sun/apoc/manager/BrowseTreeBaseViewBean.java
new file mode 100644
index 0000000..70caa29
--- /dev/null
+++ b/src/com/sun/apoc/manager/BrowseTreeBaseViewBean.java
@@ -0,0 +1,106 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.iplanet.jato.view.html.OptionList;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.view.html.*;
+import com.iplanet.jato.model.ModelControlException;
+
+
+import javax.servlet.ServletException;
+
+
+
+public class BrowseTreeBaseViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "BrowseTreeBase";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/BrowseTreeBase.jsp";
+ public static final String CHILD_FORM = "BrowseTreeFormBase";
+ public static final String CHILD_OK_BUTTON = "OkButton";
+ public static final String CHILD_CANCEL_BUTTON = "CancelButton";
+
+ public BrowseTreeBaseViewBean(RequestContext rc) throws ModelControlException {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_OK_BUTTON, CCButton.class);
+ registerChild(CHILD_CANCEL_BUTTON, CCButton.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ if (name.equals(CHILD_OK_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ if (name.equals(CHILD_CANCEL_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ CCButton okBtn = (CCButton)getChild(CHILD_OK_BUTTON);
+ String returnPath = (String)getSession().getAttribute(Constants.BROWSE_TREE_RETURN_PATH);
+ if (returnPath != null && returnPath.equals("true")) {
+ okBtn.setExtraHtml("onClick=\"javascript:top.opener.focus(); top.opener.submitBrowse(top.browsetree.getEntityId(), top.browsetree.getEntityType(), top.browsetree.getEntityPath()); top.window.close(); return false;\"");
+ } else {
+ okBtn.setExtraHtml("onClick=\"javascript:top.opener.focus(); top.opener.submitBrowse(top.browsetree.getEntityId(), top.browsetree.getEntityType()); top.window.close(); return false;\"");
+
+ }
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/BrowseTreeIndexViewBean.java b/src/com/sun/apoc/manager/BrowseTreeIndexViewBean.java
new file mode 100644
index 0000000..3d7b6fa
--- /dev/null
+++ b/src/com/sun/apoc/manager/BrowseTreeIndexViewBean.java
@@ -0,0 +1,102 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+
+
+public class BrowseTreeIndexViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "BrowseTreeIndex";
+ public static final String DEFAULT_DISPLAY_URL= "/jsp/entities/BrowseTreeIndex.jsp";
+ public static final String CHILD_TITLE = "BrowseTreeTitle";
+
+ private String m_EntityType = null;
+ private String m_EntityId = null;
+ private String m_Context = null;
+ private String m_ShowSearch = null;
+ private String m_ReturnPath = null;
+
+ public BrowseTreeIndexViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_EntityType = Toolbox2.getParameter("EntityType");
+ m_EntityId = Toolbox2.decode(Toolbox2.getParameter("EntityId"));
+ m_Context = Toolbox2.decode(Toolbox2.getParameter("ContextId"));
+ m_ShowSearch = Toolbox2.decode(Toolbox2.getParameter("ShowSearch"));
+ m_ReturnPath = Toolbox2.decode(Toolbox2.getParameter("ReturnPath"));
+ RequestManager.getRequestContext().getRequest()
+ .getSession(true).setAttribute(Constants.BROWSE_TREE_ENTITY, m_EntityId);
+ RequestManager.getRequestContext().getRequest()
+ .getSession(true).setAttribute(Constants.BROWSE_TREE_ENTITY_TYPE, m_EntityType);
+ RequestManager.getRequestContext().getRequest()
+ .getSession(true).setAttribute(Constants.BROWSE_TREE_CONTEXT, m_Context);
+ RequestManager.getRequestContext().getRequest()
+ .getSession(true).setAttribute(Constants.BROWSE_TREE_SHOW_SEARCH, m_ShowSearch);
+ RequestManager.getRequestContext().getRequest()
+ .getSession(true).setAttribute(Constants.BROWSE_TREE_RETURN_PATH, m_ReturnPath);
+ RequestManager.getRequestContext().getRequest()
+ .getSession(true).setAttribute(Constants.BROWSE_TREE_MODEL, null);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_TITLE, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_TITLE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ if(m_EntityType.equals(EnvironmentConstants.USER_SOURCE)) {
+ child.setValue("APOC.browse.title.org");
+ } else if (m_EntityType.equals(EnvironmentConstants.HOST_SOURCE)) {
+ child.setValue("APOC.browse.title.dom");
+ } else {
+ child.setValue("APOC.browse.title");
+ }
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+}
diff --git a/src/com/sun/apoc/manager/BrowseTreeMastheadViewBean.java b/src/com/sun/apoc/manager/BrowseTreeMastheadViewBean.java
new file mode 100644
index 0000000..4f22111
--- /dev/null
+++ b/src/com/sun/apoc/manager/BrowseTreeMastheadViewBean.java
@@ -0,0 +1,100 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+
+
+public class BrowseTreeMastheadViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "BrowseTreeMasthead";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/BrowseTreeMasthead.jsp";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_TITLE = "BrowseTreeTitle";
+ private CCPageTitleModel m_titleModel = null;
+ private String m_pageTitleText = "";
+
+ public BrowseTreeMastheadViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_titleModel = new CCPageTitleModel();
+ String sEntityType = (String)RequestManager.getRequest().getSession(false).getAttribute(Constants.BROWSE_TREE_ENTITY_TYPE);
+ if(sEntityType.equals(EnvironmentConstants.USER_SOURCE)) {
+ m_titleModel.setPageTitleText("APOC.browse.title.org");
+ m_pageTitleText = "APOC.browse.title.org";
+ } else if (sEntityType.equals(EnvironmentConstants.HOST_SOURCE)) {
+ m_titleModel.setPageTitleText("APOC.browse.title.dom");
+ m_pageTitleText = "APOC.browse.title.dom";
+ } else {
+ m_titleModel.setPageTitleText("APOC.browse.title");
+ m_pageTitleText = "APOC.browse.title";
+ }
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ m_titleModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ Toolbox2.setPageTitleHelp(m_titleModel, "APOC.browse.tree.nav",
+ "APOC.browse.title.text", "gbgcm.html");
+ return child;
+ }
+ else if (m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/BrowseTreeViewBean.java b/src/com/sun/apoc/manager/BrowseTreeViewBean.java
new file mode 100644
index 0000000..22d3b47
--- /dev/null
+++ b/src/com/sun/apoc/manager/BrowseTreeViewBean.java
@@ -0,0 +1,307 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.taglib.header.CCHtmlHeaderTag;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCDropDownMenu;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.tree.CCDynamicTree;
+import com.sun.web.ui.view.tree.CCTreeEventHandlerInterface;
+import java.io.IOException;
+import javax.servlet.ServletException;
+
+public class BrowseTreeViewBean extends ViewBeanBase implements CCTreeEventHandlerInterface {
+
+ public static final String CHILD_HEADER = "HtmlHeader";
+ public static final String PAGE_NAME = "BrowseTree";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/BrowseTree.jsp";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_FORM = "BrowseTreeForm";
+ public static final String CHILD_SEARCH_BUTTON = "SearchButton";
+ public static final String CHILD_TREE = "Tree";
+ public static final String CHILD_ROOT_ENTITY = "RootEntity";
+ public static final String CHILD_SELECTED_ENTITY = "SelectedEntity";
+ public static final String CHILD_SELECTED_ENTITY_TYPE = "SelectedEntityType";
+ public static final String CHILD_SELECTED_ENTITY_PATH = "SelectedEntityPath";
+ public static final String CHILD_DEFAULT_HREF = "DefaultHref";
+ public static final String CHILD_ENTITY_HREF = "EntityHref";
+ public static final String CHILD_SHOWSEARCH_HIDDEN = "ShowSearch";
+ public static final String CHILD_ROOT_ENTITY_HIDDEN = "HiddenRootEntity";
+ public static final String CHILD_ROOT_ENTITY_TYPE_HIDDEN= "HiddenRootEntityType";
+
+ private String m_root = null;
+ private String m_sContext = "";
+ private String m_sEntityId = "";
+ private boolean m_bReload = false;
+ private boolean m_isFirstLoad = false;
+
+ public BrowseTreeViewBean(RequestContext rc) throws ModelControlException {
+ super(PAGE_NAME);
+ setRequestContext(rc);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ String sEntityId = (String)RequestManager.getRequest().getSession(false).getAttribute(Constants.BROWSE_TREE_ENTITY);
+ String sEntityType = (String)RequestManager.getRequest().getSession(false).getAttribute(Constants.BROWSE_TREE_ENTITY_TYPE);
+ String sContext = (String)RequestManager.getRequest().getSession(false).getAttribute(Constants.BROWSE_TREE_CONTEXT);
+ if( (sEntityId.length() != 0) || (sContext.length() != 0)){
+ getModel().initTree(sContext, sEntityType, sEntityId);
+ m_sContext = sContext;
+ m_sEntityId = sEntityId;
+ m_isFirstLoad = true;
+ }
+ RequestManager.getRequest().getSession(false).setAttribute(Constants.BROWSE_TREE_ENTITY, "");
+ RequestManager.getRequest().getSession(false).setAttribute(Constants.BROWSE_TREE_CONTEXT, "");
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_SEARCH_BUTTON, CCButton.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_SELECTED_ENTITY,CCStaticTextField.class);
+ registerChild(CHILD_SELECTED_ENTITY_TYPE,CCStaticTextField.class);
+ registerChild(CHILD_SELECTED_ENTITY_PATH,CCStaticTextField.class);
+ registerChild(CHILD_ROOT_ENTITY,CCStaticTextField.class);
+ registerChild(CHILD_TREE, CCDynamicTree.class);
+ registerChild(CHILD_DEFAULT_HREF, CCHref.class);
+ registerChild(CHILD_ENTITY_HREF, CCHref.class);
+ registerChild(CHILD_SHOWSEARCH_HIDDEN,CCHiddenField.class);
+ registerChild(CHILD_ROOT_ENTITY_HIDDEN,CCHiddenField.class);
+ registerChild(CHILD_ROOT_ENTITY_TYPE_HIDDEN,CCHiddenField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_SEARCH_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_SELECTED_ENTITY)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_ROOT_ENTITY)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_SELECTED_ENTITY_TYPE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_SELECTED_ENTITY_PATH)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_TREE)) {
+ CCDynamicTree child = new CCDynamicTree(this, name, getModel());
+ return child;
+ }
+ else if (name.equals(CHILD_DEFAULT_HREF) || name.equals(CHILD_ENTITY_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_SHOWSEARCH_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, "true");
+ return child;
+ }
+ else if (name.equals(CHILD_ROOT_ENTITY_HIDDEN) || name.equals(CHILD_ROOT_ENTITY_TYPE_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void nodeClicked(RequestInvocationEvent event, int id, String treeName) {
+ m_bReload = true;
+ getSession().setAttribute(Constants.BROWSE_TREE_SELECTED_ENTITY, getModel().getStoredValue(id));
+ forwardTo(getRequestContext());
+ }
+
+ public void turnerClicked(RequestInvocationEvent event, int id, String treeName) {
+ try {
+ getModel().retrieve(id);
+ }
+ catch (ModelControlException mce) {
+ }
+ forwardTo(getRequestContext());
+ }
+
+ public void handleEntityHrefRequest(RequestInvocationEvent event) {
+ CCHref href = (CCHref) getChild(CHILD_DEFAULT_HREF);
+ String sHref = (String) href.getValue();
+ int nSelected = 1;
+
+ try {
+ CCDynamicTree tree = (CCDynamicTree) getChild(CHILD_TREE);
+ nSelected = getModel().retrieve(Toolbox2.decode(sHref));
+ tree.yokeTo(nSelected);
+ forwardTo(getRequestContext());
+ }
+ catch (ModelControlException mce) {
+ CCDebug.trace1("", mce);
+ }
+ }
+
+ public void handleDefaultHrefRequest(RequestInvocationEvent event) {
+ CCHref href = (CCHref) getChild(CHILD_DEFAULT_HREF);
+ String sHref = Toolbox2.decode((String) href.getValue());
+ int nOldSelected = getModel().getSelectedNode().getId();
+ int nSelected = 1;
+
+ try {
+ nSelected = getModel().retrieve(false);
+
+ if (!sHref.equals("a")) {
+ nSelected = getModel().retrieve(sHref);
+ }
+
+ if (nSelected!=nOldSelected) {
+ m_bReload = true;
+ CCDynamicTree tree = (CCDynamicTree) getChild(CHILD_TREE);
+ tree.yokeTo(nSelected);
+ }
+ }
+ catch (ModelControlException mce) {
+ CCDebug.trace1("", mce);
+ }
+ forwardTo(getRequestContext());
+ }
+
+ public boolean beginViewMenuDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCDropDownMenu dropdown = (CCDropDownMenu) getChild(event.getChildName());
+ dropdown.setValue(getModel().isLeavesFiltered()?"0":"1");
+ return true;
+ }
+
+ public boolean beginSearchButtonDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+
+ CCButton button = (CCButton)getChild(event.getChildName());
+ StringBuffer buffer = new StringBuffer();
+ buffer.append("onClick=")
+ .append("\"javascript:openSearchWindow('")
+ .append(Toolbox2.encode(m_sContext))
+ .append("','',getRootEntityId(), getRootEntityType()")
+ .append("); return false;\"");
+ button.setExtraHtml(buffer.toString());
+
+ String sShowSearch = (String) ((CCHiddenField)getChild(CHILD_SHOWSEARCH_HIDDEN)).getValue();
+ return Boolean.valueOf(sShowSearch).booleanValue();
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ if (m_isFirstLoad) {
+ getModel().retrieve(getModel().getSelectedNode().getId());
+ getModel().getSelectedNode().setExpanded(true);
+ try {
+ getModel().expandRoot();
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ }
+ }
+ Entity rootEntity = getModel().getRootEntity();
+ if (rootEntity != null) {
+ ((CCHiddenField)getChild(CHILD_ROOT_ENTITY_HIDDEN)).setValue(rootEntity.getId());
+ ((CCHiddenField)getChild(CHILD_ROOT_ENTITY_TYPE_HIDDEN)).setValue(rootEntity.getPolicySourceName());
+ }
+ String entityId = getModel().getSelectedNode().getValue();
+ String entityType = getModel().getNodeType(getModel().getSelectedNode());
+ ((CCStaticTextField)getChild(CHILD_SELECTED_ENTITY)).setValue(entityId);
+ ((CCStaticTextField)getChild(CHILD_SELECTED_ENTITY_TYPE)).setValue(entityType);
+ ((CCStaticTextField)getChild(CHILD_SELECTED_ENTITY_PATH)).setValue(Toolbox2.getParentagePath(entityId, entityType, false, true, ">"));
+
+ String sShowSearch = (String) getSession().getAttribute(Constants.BROWSE_TREE_SHOW_SEARCH);
+ if (sShowSearch!=null && sShowSearch.length()>0) {
+ ((CCHiddenField)getChild(CHILD_SHOWSEARCH_HIDDEN)).setValue(sShowSearch);
+ getSession().removeAttribute(CHILD_SHOWSEARCH_HIDDEN);
+ }
+ }
+
+ public boolean beginHtmlHeaderDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ super.endDisplay(event);
+ // Reset state when displaying this page for the first time;
+ // otherwise, state will persist until cookies expire.
+ if (event.getChildName().indexOf(CHILD_HEADER) != -1) {
+ CCHtmlHeaderTag tag = (CCHtmlHeaderTag) event.getSource();
+ tag.resetFocus(m_isFirstLoad);
+ tag.resetScroll(m_isFirstLoad);
+ }
+ return true;
+ }
+
+ protected NavigationModel getModel() {
+ NavigationModel model = (NavigationModel)getRequestContext().getRequest().getSession().getAttribute(Constants.BROWSE_TREE_MODEL);
+ if (model == null) {
+ try {
+ model = new NavigationModel(Constants.BROWSE_TREE_SELECTED_ENTITY);
+ model.expandRoot();
+ } catch (ModelControlException mce) {
+ CCDebug.trace3(mce.toString());
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ }
+ model.setName(Constants.BROWSE_TREE_MODEL);
+ getRequestContext().getRequest().getSession().setAttribute(Constants.BROWSE_TREE_MODEL, model);
+ }
+ return model;
+ }
+}
diff --git a/src/com/sun/apoc/manager/ChooserHelper.java b/src/com/sun/apoc/manager/ChooserHelper.java
new file mode 100644
index 0000000..5a52519
--- /dev/null
+++ b/src/com/sun/apoc/manager/ChooserHelper.java
@@ -0,0 +1,286 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import java.util.Vector;
+import java.util.Arrays;
+import java.lang.Integer;
+
+import com.iplanet.jato.RequestParticipant;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.DefaultModel;
+import com.iplanet.jato.model.ModelControlException;
+
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.common.CCI18N;
+
+import com.iplanet.jato.view.html.OptionList;
+import com.iplanet.jato.view.html.Option;
+
+import com.sun.apoc.spi.cfgtree.property.Property;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+
+import com.sun.apoc.templates.parsing.TemplateRepository ;
+import com.sun.apoc.templates.parsing.TemplateCategory ;
+import com.sun.apoc.templates.parsing.TemplatePage ;
+import com.sun.apoc.templates.parsing.TemplateSection ;
+import com.sun.apoc.templates.parsing.TemplateProperty ;
+import com.sun.apoc.templates.parsing.TemplatePropertyConstraint;
+
+import com.sun.apoc.manager.settings.PolicyMgrHelper;
+
+import java.net.URLEncoder;
+import java.net.URLDecoder;
+import java.io.UnsupportedEncodingException;
+
+import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+/**
+ *
+ * @author sl146471
+ */
+public class ChooserHelper {
+
+ private ArrayList m_elementsList = new ArrayList();
+ private ArrayList m_statesList = new ArrayList();
+ private TemplateProperty m_chooser = null;
+ private TemplateProperty m_definedChooser = null;
+ private String m_definedChooserPath = null;
+ private boolean m_saveRequired = false;
+
+ //String used to maintain constant list width as recommended by HCI guidelines
+ public static final String LIST_WIDTH_STRING = "______________________________" ;
+ public static final String SYSTEM_ADDED_FLAG = " (*)" ;
+ public static final String LIST_SEPARATOR = ";" ;
+ private static final String STATELIST_DATAPATH = "_states" ;
+
+
+ public ChooserHelper(String chooserId) {
+ m_chooser = Toolbox2.getProperty(chooserId);
+ m_definedChooser = m_chooser;
+ m_definedChooserPath = chooserId;
+ initChooserHelper();
+ }
+
+ private void initChooserHelper() {
+ // initialize the TemplateProperty which defines this choosers attrs
+ String extendsChooser = m_chooser.getExtendsChooser();
+ if(extendsChooser != null) {
+ m_definedChooser = Toolbox2.getProperty(extendsChooser);
+ m_definedChooserPath = extendsChooser;
+ }
+
+ try {
+ //initialize the value and states lists
+ PolicyMgrHelper pmgrHelper = ProfileWindowFramesetViewBean.getProfileHelper();
+ Property elementsProp = pmgrHelper.getProperty(m_definedChooser.getChooserPath());
+ Property statesProp = pmgrHelper.getProperty(m_definedChooser.getChooserPath() + STATELIST_DATAPATH);
+ String[] elementsList = null ;
+ String[] statesList = null ;
+
+ if(elementsProp != null) {
+ elementsList = elementsProp.getValue().split(LIST_SEPARATOR);
+ statesList = statesProp.getValue().split(LIST_SEPARATOR);
+ } else {
+ elementsList = getDefaultElementsList();
+ statesList = getDefaultStatesList(elementsList.length);
+ }
+
+ for (int i = 0; i < elementsList.length; i++) {
+ m_elementsList.add(elementsList[i]);
+ m_statesList.add(statesList[i]);
+ }
+ } catch (SPIException e) {
+ CCDebug.trace1("Error initializing chooser settings!", e);
+ }
+ }
+
+ private String[] getDefaultElementsList() {
+ return getSortedConstraints(m_definedChooser.getConstraints());
+ }
+
+ private String[] getDefaultStatesList(int size) {
+ String[] statesList = new String[size];
+ for(int i = 0; i < size; i++) {
+ statesList[i] = "false";
+ }
+ return statesList;
+ }
+
+ private String[] getSortedConstraints(Vector constraints) {
+ String[] constraintsArray = null;
+ if (constraints != null) {
+ constraintsArray = new String[constraints.size()];
+ for(int j=0; j < constraints.size(); j++) {
+ TemplatePropertyConstraint constraint = (TemplatePropertyConstraint) constraints.elementAt(j);
+ constraintsArray[j] = constraint.getValue();
+ }
+ Arrays.sort(constraintsArray, String.CASE_INSENSITIVE_ORDER);
+ } else {
+ constraintsArray = new String[0];
+ }
+ return constraintsArray;
+ }
+
+
+ public void saveChanges() {
+ String chooserDataPath = m_definedChooser.getChooserPath();
+ PolicyMgrHelper pmgrHelper = ProfileWindowFramesetViewBean.getProfileHelper();
+ try {
+ Property elementsProp = pmgrHelper.getProperty(chooserDataPath);
+ Property statesProp = pmgrHelper.getProperty(chooserDataPath + STATELIST_DATAPATH);
+ if (elementsProp == null) {
+ elementsProp = pmgrHelper.createProperty(chooserDataPath);
+ statesProp = pmgrHelper.createProperty(chooserDataPath + STATELIST_DATAPATH);
+ }
+ elementsProp.putString(getElementsStringList());
+ statesProp.putString(getStatesStringList());
+
+ pmgrHelper.flushAllChanges();
+ } catch (SPIException e) {
+ CCDebug.trace1("Error saving changes for chooser!", e);
+ }
+ }
+
+ public String getElementsStringList() {
+ String elementsStringList = "";
+ for(int i = 0; i < m_elementsList.size(); i++) {
+ elementsStringList = elementsStringList.concat((String)m_elementsList.get(i)).concat(";");
+ }
+ return elementsStringList;
+ }
+
+ public String getStatesStringList() {
+ String statesStringList = "";
+ for(int i = 0; i < m_statesList.size(); i++) {
+ statesStringList = (statesStringList.concat((String)m_statesList.get(i))).concat(";");
+ }
+ return statesStringList;
+ }
+
+ public ArrayList getElementsList() {
+ return m_elementsList;
+ }
+
+ public ArrayList getStatesList() {
+ return m_statesList;
+ }
+
+ public TemplateProperty getDefiningChooser() {
+ return m_definedChooser;
+ }
+
+ public String getDefiningChooserPath() {
+ return m_definedChooserPath;
+ }
+
+ public String getDefaultElementsStringList() {
+ String[] defaults = getDefaultElementsList();
+ String elementsStringList = "";
+ for(int i = 0; i < defaults.length; i++) {
+ elementsStringList = elementsStringList.concat(defaults[i]).concat(";");
+ }
+ return elementsStringList;
+ }
+
+ public void setElementsList(String values, String separator) {
+ m_elementsList.clear();
+ String[] valuesArr = values.split(separator);
+ for(int i = 0; i < valuesArr.length; i++) {
+ m_elementsList.add(valuesArr[i]);
+ }
+ }
+
+ public void setStatesList(String states, String separator) {
+ m_statesList.clear();
+ String[] statesArr = states.split(separator);
+ for(int i = 0; i < statesArr.length; i++) {
+ m_statesList.add(statesArr[i]);
+ }
+ }
+
+ public void setElementsList(ArrayList values) {
+ m_elementsList.clear();
+ m_elementsList = values;
+ }
+
+ public void setStatesList(ArrayList states) {
+ m_statesList.clear();
+ m_statesList = states;
+ }
+
+
+ public void setSystemElements(ArrayList values) {
+ for (int i = 0; i < values.size(); i++) {
+ String value = (String)values.get(i);
+ addToSortedList(value);
+ }
+ if (m_saveRequired) {
+ saveChanges();
+ m_saveRequired = false;
+ }
+ }
+
+
+ private void addToSortedList(String value) {
+ // Add elements to the sorted list in order - if an element is already
+ // present then break out of loop.
+ for(int i = 0; i < m_elementsList.size(); i++) {
+ String storedValue = (String)m_elementsList.get(i);
+ if(value.compareToIgnoreCase(storedValue) == 0) {
+ break;
+ }
+ else if(value.compareToIgnoreCase(storedValue) < 0) {
+ m_elementsList.add(i, value);
+ m_statesList.add(i, "true");
+ m_saveRequired = true;
+ break;
+ }
+ else if(i == (m_elementsList.size() - 1)) {
+ m_elementsList.add(value);
+ m_statesList.add("true");
+ m_saveRequired = true;
+ break;
+ }
+ }
+ }
+
+}
diff --git a/src/com/sun/apoc/manager/Constants.java b/src/com/sun/apoc/manager/Constants.java
new file mode 100644
index 0000000..d6f3b54
--- /dev/null
+++ b/src/com/sun/apoc/manager/Constants.java
@@ -0,0 +1,147 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+
+/**
+ * This class defines the necessary constants for accessing session
+ * attributes and query parameters
+ */
+public abstract class Constants {
+
+ //
+ // ---------------------- Session attributes -------------------------------
+ //
+
+ /**
+ * The instance of the Java registry proxy (<code>jproxy</code>)
+ */
+ public static final String POLICY_MANAGER = "PolicyManager";
+ public static final String POLICY_MANAGER_HELPER = "PolicyMgrHelper";
+ public static final String POLICY_MANAGER_USER = "PolicyManagerUser";
+ public static final String POLICY_MANAGER_NAME = "PolicyManagerName";
+ public static final String SELECTED_MAINWINDOW_TAB = "SelectedMainWindowTab";
+ public static final String SELECTED_ENTITY = "SelectedEntity";
+ public static final String SELECTED_SEARCH_ENTITY = "SelectedSearchEntity";
+ public static final String SELECTED_PROFILE = "SelectedProfile";
+ public static final String FIRST_VISIT = "FirstVisit";
+ public static final String BROWSE_TREE_ENTITY = "BrowseTreeEntity";
+ public static final String BROWSE_TREE_ENTITY_TYPE = "BrowseTreeEntityType";
+ public static final String BROWSE_TREE_CONTEXT = "BrowseTreeContext";
+ public static final String BROWSE_TREE_SHOW_SEARCH = "BrowseTreeShowSearch";
+ public static final String BROWSE_TREE_SELECTED_ENTITY = "BrowseTreeSelectedEntity";
+ public static final String BROWSE_TREE_RETURN_PATH = "BrowseTreeReturnPath";
+ public static final String BROWSE_TREE_MODEL = "BrowseTree";
+ public static final String SEARCH_WINDOW_PREFIX = "SearchWindow";
+ public static final String PROFILE_SEARCH_PROFILE = "ProfileSearchProfile";
+ public static final String REPORT_TYPE = "ReportType";
+ public static final String POLICY_GROUP_REPORT_TYPE = "PolicyGroupReport";
+ public static final String ENTITY_REPORT_TYPE = "EntityReport";
+ public static final String AUTH_CONTEXTS = "AuthorizedContexts";
+ public static final String SYNC_ENVIRONMENT = "SyncEnvironment";
+ public static final String BACKEND_TYPES = "BackendTypes";
+
+
+ // ------------------------ content area local
+
+ /**
+ * The path to the currently selected configuration node
+ * (e.g. something like "org.openoffic.Office.Writer/Contents/Display")
+ */
+ public static final String NODE_PATH = "NodePath";
+
+ /**
+ * The path to the last selected template
+ * (e.g. /StarOffice7/Advanced")
+ */
+ public static final String TEMPLATE_PATH =
+ "ContentArea.PolicyTemplateSelection";
+
+ /**
+ * The name of the selected template (e.g. DisableCommands)
+ */
+ public static final String TEMPLATE_SELECTION =
+ "ContentArea.PageletView.ContentAreaPolicies.CategoryHref";
+
+ //
+ // ---------------------- Div -------------------------------
+ //
+
+ /**
+ * The String containing the base name for the manager resource file
+ */
+ public static final String RES_BASE_NAME = "com.sun.apoc.manager.resource.apoc_manager";
+
+ //
+ // ------------------------ DEPRECATED STUFF --------------------------------
+ //
+
+ /**
+ * The viewed entity id is the entity id selected in the navigation area and viewed in the content area
+ */
+ public static final String VIEWED_ENTITY_ID = "ViewedEntityId";
+
+ /**
+ * The scope (either user or host)
+ */
+ public static final String SCOPE = "Scope";
+
+ /**
+ * The entity id for navigation table drill down
+ */
+ public static final String ENTITY_ID = "NameHref";
+
+ /**
+ * The current entity id is the entity id pointed to by parentage path
+ */
+ public static final String CURRENT_ENTITY_ID = "CurrentEntityId";
+
+ /**
+ * The selected configuration locale
+ */
+ public static final String LOCALE_SELECTION = "LocaleSelection";
+
+ /**
+ * The current scope is user-based configuration
+ */
+ public static final int SCOPE_USER = 0;
+
+ /**
+ * The current scope is host-based configuration
+ */
+ public static final int SCOPE_HOST = 1;
+}
diff --git a/src/com/sun/apoc/manager/ContextHelpHelper.java b/src/com/sun/apoc/manager/ContextHelpHelper.java
new file mode 100644
index 0000000..4defbf2
--- /dev/null
+++ b/src/com/sun/apoc/manager/ContextHelpHelper.java
@@ -0,0 +1,355 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.util.HtmlUtil;
+import com.iplanet.jato.util.NonSyncStringBuffer;
+import com.sun.management.services.registration.Help;
+import com.sun.management.services.registration.MgmtAppRegistrationServiceFactory;
+import com.sun.management.services.registration.RegistrationInfo;
+import com.sun.web.ui.common.CCClientSniffer;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.common.CCStyle;
+import com.sun.web.ui.common.CCSystem;
+import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.Locale;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+
+// Note that this entire class is needed only because of a bug in Lockhart 3.x
+// in which the helpFileName attribute of the helpwindow tag is ignored. Hence
+// most of this code is a rehashed version of the methods in CCHelpWindowTag from v2.2.6
+public class ContextHelpHelper {
+ // Parameter names.
+ public static final String PARAM_APPNAME = "appName";
+ public static final String PARAM_HELPFILE = "helpFile";
+ public static final String PARAM_MASTHEADTITLE = "mastheadTitle";
+ public static final String PARAM_PAGETITLE = "pageTitle";
+ public static final String PARAM_WINDOWTITLE = "windowTitle";
+ public static final String PARAM_SHOWCLOSEBUTTON = "showCloseButton";
+ public static final String PARAM_HELPLOGOWIDTH = "helpLogoWidth";
+ public static final String PARAM_HELPLOGOHEIGHT = "helpLogoHeight";
+
+ // Set default window values.
+ private static final String DEFAULT_HEIGHT = "500";
+ private static final String DEFAULT_WIDTH = "750";
+ private static final String DEFAULT_HELPDIR = "html";
+ private static final String DEFAULT_TARGET = "helpWindow";
+
+ // Set default window values.
+ private static final String HELP2_DEFAULT_HEIGHT = "500";
+ private static final String HELP2_DEFAULT_WIDTH = "750";
+ private static final String HELP2_DEFAULT_TARGET = "help2_Window";
+
+ // Display URLs.
+ private static final String HELP2_DISPLAY_URL = "/cchelp2/Help2";
+
+ private String mAppName;
+ private String mBundleId;
+ private String mFilename;
+ private String mTooltip;
+ private String mText;
+ private String mUrlStart;
+ private String mDisplayUrl;
+ private CCClientSniffer mClientSniffer;
+
+ public ContextHelpHelper(String appName, String bundleId, String filename,
+ String tooltip, String text) {
+ mAppName = appName;
+ mBundleId = bundleId;
+ mFilename = filename;
+ mTooltip = tooltip;
+ mText = text;
+ mUrlStart = getUrlStart();
+ mDisplayUrl = getDisplayUrl();
+ mClientSniffer = getClientSniffer();
+ }
+
+ public String getHelpLink() {
+ Help help = getHelp();
+ String height = "";
+ String status = "";
+ String width = "";
+ String windowTitle = "";
+ String logoWidth = "";
+ String logoHeight = "";
+ if (help != null) {
+ height = help.getHeight();
+ status = help.getStatus();
+ width = help.getWidth();
+ windowTitle = help.getWindowTitle();
+ logoWidth = help.getHelpLogoWidth();
+ logoHeight = help.getHelpLogoHeight();
+ }
+ String pageTitle = "help.pagetitle";
+
+ NonSyncStringBuffer buffer = new NonSyncStringBuffer();
+ buffer.append("<a")
+ .append(" href=\"")
+ .append(mDisplayUrl.toString());
+
+ NonSyncStringBuffer paramsBuffer =
+ new NonSyncStringBuffer();
+ addEncodedParameter(paramsBuffer, PARAM_APPNAME, mAppName);
+ String file = getLocalizedTextFile(mFilename);
+ addEncodedParameter(paramsBuffer, PARAM_HELPFILE, file);
+ addEncodedParameter(paramsBuffer, PARAM_WINDOWTITLE, Toolbox2.getI18n(windowTitle));
+ addEncodedParameter(paramsBuffer, PARAM_PAGETITLE, Toolbox2.getI18n(pageTitle));
+ addEncodedParameter(paramsBuffer, PARAM_HELPLOGOWIDTH, logoWidth);
+ addEncodedParameter(paramsBuffer, PARAM_HELPLOGOHEIGHT, logoHeight);
+ buffer.append(paramsBuffer.toString());
+ buffer.append("\"");
+ appendAttribute(buffer, "class", CCStyle.HELP_PAGE_LINK);
+ appendAttribute(buffer, "target", DEFAULT_TARGET);
+ appendAttribute(buffer, "title", Toolbox2.getI18n(mTooltip));
+ if (status != null) {
+ NonSyncStringBuffer tmpBuffer = new NonSyncStringBuffer();
+
+ tmpBuffer.append("javascript:")
+ .append("window.status='")
+ .append(Toolbox2.getI18n(status))
+ .append("'; return true");
+
+ appendAttribute(buffer, "onmouseover", tmpBuffer.toString());
+ appendAttribute(buffer, "onfocus", tmpBuffer.toString());
+
+ tmpBuffer = new NonSyncStringBuffer("javascript: window.status=''; return true");
+
+ appendAttribute(buffer, "onmouseout", tmpBuffer.toString());
+ appendAttribute(buffer, "onblur", tmpBuffer.toString());
+ }
+
+ appendAttribute(buffer, "onclick", getOpenWindowJavascript(
+ "",
+ DEFAULT_TARGET,
+ Integer.parseInt((height != null)
+ ? height : DEFAULT_HEIGHT),
+ Integer.parseInt((width != null)
+ ? width : DEFAULT_WIDTH),
+ "scrollbars,resizable"));
+
+ buffer.append(">");
+ buffer.append(mText);
+ buffer.append("</a>");
+ return buffer.toString();
+ }
+
+
+ private void appendAttribute(NonSyncStringBuffer buffer, String name, String value) {
+ buffer.append(" ")
+ .append(name)
+ .append("=\"")
+ .append(HtmlUtil.escapeQuotes(value))
+ .append("\"");
+ }
+
+ private String getOpenWindowJavascript(String url, String name,
+ int height, int width, String features) {
+ NonSyncStringBuffer buffer = new NonSyncStringBuffer();
+
+ buffer.append("javascript:var win = window.open('")
+ .append(url)
+ .append("','")
+ .append(name)
+ .append("','")
+ .append("height=")
+ .append(height)
+ .append(",width=")
+ .append(width)
+ .append(",top='+((screen.height-(screen.height/1.618))-(")
+ .append(height)
+ .append("/2))+',left='+((screen.width-")
+ .append(width)
+ .append(")/2)+'");
+
+ if (features != null) {
+ buffer.append(",").append(features);
+ }
+
+ buffer.append("')");
+ buffer.append(";win.focus()");
+ return buffer.toString();
+ }
+
+ private void addEncodedParameter(NonSyncStringBuffer buf, String name, String value) {
+ if (buf == null || name == null || value == null) {
+ return;
+ }
+
+ try {
+ buf.append((buf.length() == 0) ? "?" : "&");
+ buf.append(name)
+ .append("=")
+ .append(URLEncoder.encode(value, CCI18N.UTF8_ENCODING));
+ } catch (UnsupportedEncodingException ex) {
+ }
+ }
+
+ private String getLocalizedTextFile(String file) {
+ if (file == null) {
+ return null;
+ }
+
+ NonSyncStringBuffer buffer = new NonSyncStringBuffer(256);
+ String localizedFile = null;
+ buffer.append(mAppName)
+ .append(CCSystem.URL_SEPARATOR)
+ .append(DEFAULT_HELPDIR);
+
+ // if the buffer doesn't start with "/", prepend it
+ if (!buffer.toString().startsWith(CCSystem.URL_SEPARATOR)) {
+ buffer.insert(0, CCSystem.URL_SEPARATOR);
+ }
+
+ HttpServletRequest request = RequestManager.getRequestContext().getRequest();
+ String localAppName = request.getContextPath();
+ String prefixedPath = buffer.toString();
+
+ file = "help" + CCSystem.URL_SEPARATOR + file;
+
+ // Create a list of locales to test.
+ ArrayList locales = new ArrayList();
+ locales.add(CCI18N.getTagsLocale(RequestManager.getRequestContext().getRequest()));
+ locales.add(Locale.ENGLISH);
+
+ prefixedPath = prefixedPath.substring(localAppName.length());
+ ServletContext appContext = RequestManager.getRequestContext().getServletContext();
+
+ for (int i = 0; i < locales.size(); i++) {
+ String urlPath = prefixedPath + CCSystem.URL_SEPARATOR +
+ (Locale) locales.get(i) + CCSystem.URL_SEPARATOR + file;
+
+ urlPath = urlPath.replaceAll(
+ CCSystem.URL_SEPARATOR + CCSystem.URL_SEPARATOR + "*",
+ CCSystem.URL_SEPARATOR);
+
+ String testPath = urlPath;
+ int index = testPath.indexOf("?");
+ if (index >= 0) {
+ testPath = urlPath.substring(0, index);
+ }
+ try {
+ if (appContext.getResource(testPath) != null) {
+ localizedFile = mUrlStart + localAppName + urlPath;
+ break;
+ }
+ } catch (MalformedURLException muex) {
+ CCDebug.trace3("getResource failed for " + urlPath);
+ }
+ }
+
+ return localizedFile;
+ }
+
+ private boolean isIe() {
+ return getClientSniffer().isIe();
+ }
+
+ private boolean isNav4() {
+ return getClientSniffer().isNav4();
+ }
+
+ private boolean isGecko() {
+ return getClientSniffer().isGecko();
+ }
+
+ private String getDisplayUrl() {
+ NonSyncStringBuffer displayURL = new NonSyncStringBuffer(mUrlStart);
+ // Set the display URL to the JSP associated with the correct
+ // browser.
+ String appContext = RequestManager.getRequestContext().getRequest().getContextPath();
+ if (isIe()) {
+ displayURL.append(appContext +
+ HELP2_DISPLAY_URL + "Ie");
+ } else if (isNav4()) {
+ displayURL.append(appContext +
+ HELP2_DISPLAY_URL + "Nav4");
+ } else if (isGecko()) {
+ displayURL.append(appContext +
+ HELP2_DISPLAY_URL + "Nav6up");
+ } else {
+ // Default display will be for Nav6up
+ displayURL.append(appContext +
+ HELP2_DISPLAY_URL + "Nav6up");
+ }
+ return displayURL.toString();
+ }
+
+ private Help getHelp() {
+ Help help = null;
+ String pluginName = null;
+ String appDir = null;
+ try {
+ if (mAppName != null) {
+ pluginName = MgmtAppRegistrationServiceFactory.getPluginName(mAppName);
+ if (pluginName != null) {
+ appDir = MgmtAppRegistrationServiceFactory.getRegisteredAppDir(pluginName);
+ RegistrationInfo regInfo = MgmtAppRegistrationServiceFactory. getRegistrationInfo(pluginName);
+ if (regInfo != null) {
+ help = regInfo.getManagementApp().getHelp();
+ }
+ }
+ }
+ } catch (NoClassDefFoundError e) {
+ CCDebug.trace3("MgmtAppRegistrationServiceFactory not found");
+ }
+ return help;
+ }
+
+ private String getUrlStart() {
+ HttpServletRequest request = RequestManager.getRequestContext().getRequest();
+ String port = Integer.toString(request.getServerPort());
+ NonSyncStringBuffer urlbuffer = new NonSyncStringBuffer(request.getScheme());
+ urlbuffer.append("://")
+ .append(request.getServerName())
+ .append(":")
+ .append(port);
+ return urlbuffer.toString();
+ }
+
+ private CCClientSniffer getClientSniffer() {
+ if (mClientSniffer == null) {
+ mClientSniffer = new CCClientSniffer(RequestManager.getRequestContext().getRequest());
+ }
+ return mClientSniffer;
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/ContextsLoginViewBean.java b/src/com/sun/apoc/manager/ContextsLoginViewBean.java
new file mode 100755
index 0000000..257dc9e
--- /dev/null
+++ b/src/com/sun/apoc/manager/ContextsLoginViewBean.java
@@ -0,0 +1,220 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.iplanet.sso.SSOToken;
+import com.iplanet.sso.SSOTokenManager;
+import com.sun.management.services.authentication.UserPrincipal;
+import com.sun.management.services.authentication.PasswordCredential;
+import com.sun.web.ui.model.CCMastheadModel;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.model.CCPropertySheetModel;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.masthead.CCPrimaryMasthead;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.propertysheet.CCPropertySheet;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.Set;
+import javax.security.auth.Subject;
+import javax.servlet.ServletException;
+
+
+public class ContextsLoginViewBean extends ViewBeanBase {
+
+ public static final String PAGE_NAME = "ContextsLogin";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/contexts/Login.jsp";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_CONTEXTLOGIN_TITLE = "ContextLoginTitle";
+ public static final String CHILD_CONTEXTLOGIN_SHEET = "ContextLoginSheet";
+ public static final String CHILD_CONTEXT_HIDDEN = "SelectedContext";
+ //
+ private CCPageTitleModel m_titleModel = null;
+ private CCPropertySheetModel m_sheetModel = null;
+
+ public ContextsLoginViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+
+ m_titleModel = new CCPageTitleModel();
+
+ m_sheetModel = new CCPropertySheetModel(
+ RequestManager.getRequestContext().getServletContext(), "/jsp/contexts/LoginSheet.xml");
+
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_MASTHEAD, CCPrimaryMasthead.class);
+ registerChild(CHILD_CONTEXTLOGIN_TITLE, CCPageTitle.class);
+ registerChild(CHILD_CONTEXTLOGIN_SHEET, CCPropertySheet.class);
+ registerChild(CHILD_CONTEXT_HIDDEN, CCHiddenField.class);
+ m_titleModel.registerChildren(this);
+ m_sheetModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_MASTHEAD)) {
+ CCMastheadModel model = new CCMastheadModel();
+ CCPrimaryMasthead child = new CCPrimaryMasthead(this, model, name);
+ return child;
+ }
+ else if (name.equals(CHILD_CONTEXTLOGIN_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_CONTEXTLOGIN_SHEET)) {
+ CCPropertySheet child = new CCPropertySheet(this, m_sheetModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_CONTEXT_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+ }
+ else if ((m_titleModel != null) && m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else if ((m_sheetModel != null) && m_sheetModel.isChildSupported(name)) {
+ View child = m_sheetModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleCancelButtonRequest(RequestInvocationEvent event) {
+ getViewBean(WelcomeViewBean.class).forwardTo(getRequestContext());
+ }
+
+ public void handleLoginButtonRequest(RequestInvocationEvent event) {
+ CCHiddenField context = (CCHiddenField) getChild(CHILD_CONTEXT_HIDDEN);
+ CCTextField username = (CCTextField) getChild("UsernameText");
+ CCTextField password = (CCTextField) getChild("PasswordText");
+ String sContext = (String) context.getValue();
+ String sUsername = (String) username.getValue();
+ String sPassword = (String) password.getValue();
+
+ try {
+ Toolbox2.setPolicyManager(sContext, sUsername, sPassword);
+ getViewBean(ThreepaneViewBean.class).forwardTo(getRequestContext());
+ } catch (Exception e) {
+ Toolbox2.prepareErrorDisplay(e, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ forwardTo();
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+
+ CCHiddenField context = (CCHiddenField) getChild(CHILD_CONTEXT_HIDDEN);
+ String sContext= (String) context.getValue();
+ String sUsername = null;
+ String sPassword = null;
+ if ( (sContext==null) || (sContext.length()==0) ) {
+ String sHrefContext = Toolbox2.getParameter("NameHref");
+ context.setValue(sHrefContext);
+ }
+
+ sContext = (String) context.getValue();
+ CCStaticTextField contextText = (CCStaticTextField) getChild("ContextText");
+ contextText.setValue(sContext);
+
+ try {
+ Toolbox2.unsetPolicyManager();
+ SSOTokenManager tokenmanger = SSOTokenManager.getInstance();
+ SSOToken token = tokenmanger.createSSOToken(RequestManager.getRequest());
+ Subject subject = token.getSubject();
+
+ if (subject != null) {
+ Set principals = subject.getPrincipals(UserPrincipal.class);
+ Set credentials = subject.getPrivateCredentials(PasswordCredential.class);
+ Iterator principalIter = principals.iterator();
+ Iterator credentialIter = credentials.iterator();
+
+ while ((principalIter.hasNext()) && (sUsername == null)) {
+ sUsername = ((UserPrincipal) principalIter.next()).getUserName();
+ }
+
+ while ((credentialIter.hasNext()) && (sPassword == null)) {
+ sPassword = new String(((PasswordCredential) credentialIter.next()).getUserPassword());
+ }
+ }
+ try {
+ // test the console login credentials and default them if theyre good
+ Toolbox2.createPolicyManager(sContext, sUsername, sPassword, false);
+ CCTextField username = (CCTextField) getChild("UsernameText");
+ CCTextField password = (CCTextField) getChild("PasswordText");
+ username.setValue(sUsername);
+ password.setValue(sPassword);
+ } catch (Exception e) {
+ // if the login credentials dont work then dont default the textfields
+ }
+
+ } catch (Exception e) {
+ Toolbox2.prepareErrorDisplay(e, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ }
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ return ((alert.getSummary() != null) && (alert.getSummary().length() > 0));
+ }
+}
diff --git a/src/com/sun/apoc/manager/EditColorViewBean.java b/src/com/sun/apoc/manager/EditColorViewBean.java
new file mode 100644
index 0000000..67444a1
--- /dev/null
+++ b/src/com/sun/apoc/manager/EditColorViewBean.java
@@ -0,0 +1,495 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+import java.io.IOException;
+import java.io.PrintWriter;
+import javax.servlet.ServletException;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.settings.SectionModel;
+
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.apoc.manager.settings.SpinProperty;
+
+public class EditColorViewBean extends ViewBeanBase {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME =
+ "EditColor";
+
+ // The URL that points to the JSP which uses this ViewBean
+ public static final String DEFAULT_DISPLAY_URL =
+ "/jsp/EditColor.jsp";
+
+ public static final String CHILD_MASTHEAD =
+ "SecondaryMH";
+ public static final String CHILD_PAGETITLE =
+ "PageTitle";
+ public static final String CHILD_FORM =
+ "EditColorForm";
+ public static final String CHILD_INTROTEXT =
+ "IntroText";
+ public static final String CHILD_PALETTE_HEADING =
+ "PaletteHeading";
+ public static final String CHILD_COLOR_HEADING =
+ "ColorHeading";
+ public static final String CHILD_ORIGINAL_HEADING =
+ "OriginalHeading";
+ public static final String CHILD_WHEEL_HEADING =
+ "WheelHeading";
+ public static final String CHILD_ALT_WHEEL =
+ "AltWheel";
+ public static final String CHILD_SUMMARY_SLIDER =
+ "SummarySlider";
+ public static final String CHILD_PALETTEROW_TILEDVIEW =
+ "PaletteRowTiledView";
+ public static final String CHILD_RED =
+ "Red";
+ public static final String CHILD_GREEN =
+ "Green";
+ public static final String CHILD_BLUE =
+ "Blue";
+ public static final String CHILD_HUE =
+ "Hue";
+ public static final String CHILD_SAT =
+ "Sat";
+ public static final String CHILD_LUM =
+ "Lum";
+ public static final String CHILD_NAME_LABEL =
+ "NameLabel";
+ public static final String CHILD_HTML_LABEL =
+ "HtmlLabel";
+ public static final String CHILD_NAME_VALUE =
+ "NameValue";
+ public static final String CHILD_HTML_VALUE =
+ "HtmlValue";
+ public static final String CHILD_RESTORE_BUTTON =
+ "RestoreButton";
+ public static final String CHILD_CONFIRM_RESTORE =
+ "RestoreConfirm";
+ public static final String CHILD_LOCALIZED_NONAME =
+ "LocalizedNoName";
+ public static final String CHILD_ADD_BUTTON =
+ "AddButton";
+ public static final String CHILD_REPLACE_BUTTON =
+ "ReplaceButton";
+ public static final String CHILD_REPLACE_ALERT =
+ "ReplaceAlert";
+ public static final String CHILD_ADD_ALERT =
+ "AddAlert";
+ public static final String CHILD_REMOVE_BUTTON =
+ "RemoveButton";
+ public static final String CHILD_REMOVE_ALERT =
+ "RemoveAlert";
+ public static final String CHILD_NAME_ALERT =
+ "NameAlert";
+ public static final String CHILD_RESTOREORIGCOLOR_BUTTON =
+ "RestoreOrigColorButton";
+ public static final String CHILD_BG_ORG_COLOR =
+ "BgOrgColor";
+ public static final String CHILD_ALT_BG_ORG_COLOR =
+ "AltBgOrgColor";
+ public static final String CHILD_BG_COLOR =
+ "BgColor";
+ public static final String CHILD_ALT_BG_COLOR =
+ "AltBgColor";
+ public static final String CHILD_HIDDEN_VALUES =
+ "HiddenValues";
+ public static final String CHILD_HIDDEN_NAMES =
+ "HiddenNames";
+
+ private CCPageTitleModel m_pagetitleModel = null;
+ private CCI18N m_I18n;
+ private static String m_OriginalColor;
+ private static String m_OriginalColorName;
+ private String m_OrgString;
+ private String m_TemplateSelection;
+
+ public EditColorViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ setUpVariables();
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ registerChild(CHILD_PAGETITLE, CCPageTitle.class);
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_INTROTEXT, CCStaticTextField.class);
+ registerChild(CHILD_PALETTE_HEADING, CCLabel.class);
+ registerChild(CHILD_COLOR_HEADING, CCLabel.class);
+ registerChild(CHILD_ORIGINAL_HEADING, CCLabel.class);
+ registerChild(CHILD_WHEEL_HEADING, CCLabel.class);
+ registerChild(CHILD_ALT_WHEEL, CCStaticTextField.class);
+ registerChild(CHILD_SUMMARY_SLIDER, CCStaticTextField.class);
+ registerChild(CHILD_PALETTEROW_TILEDVIEW, PaletteRowTiledView.class);
+ registerChild(CHILD_RED, SpinProperty.class);
+ registerChild(CHILD_GREEN, SpinProperty.class);
+ registerChild(CHILD_BLUE, SpinProperty.class);
+ registerChild(CHILD_HUE, SpinProperty.class);
+ registerChild(CHILD_SAT, SpinProperty.class);
+ registerChild(CHILD_LUM, SpinProperty.class);
+ registerChild(CHILD_NAME_LABEL, CCLabel.class);
+ registerChild(CHILD_HTML_LABEL, CCLabel.class);
+ registerChild(CHILD_NAME_VALUE, CCTextField.class);
+ registerChild(CHILD_HTML_VALUE, CCTextField.class);
+ registerChild(CHILD_RESTORE_BUTTON, CCButton.class);
+ registerChild(CHILD_RESTOREORIGCOLOR_BUTTON, CCButton.class);
+ registerChild(CHILD_CONFIRM_RESTORE, CCStaticTextField.class);
+ registerChild(CHILD_LOCALIZED_NONAME, CCStaticTextField.class);
+ registerChild(CHILD_ADD_BUTTON, CCButton.class);
+ registerChild(CHILD_REPLACE_BUTTON, CCButton.class);
+ registerChild(CHILD_REPLACE_ALERT, CCStaticTextField.class);
+ registerChild(CHILD_ADD_ALERT, CCStaticTextField.class);
+ registerChild(CHILD_REMOVE_BUTTON, CCButton.class);
+ registerChild(CHILD_REMOVE_ALERT, CCStaticTextField.class);
+ registerChild(CHILD_NAME_ALERT, CCStaticTextField.class);
+ registerChild(CHILD_BG_ORG_COLOR, CCStaticTextField.class);
+ registerChild(CHILD_ALT_BG_ORG_COLOR, CCStaticTextField.class);
+ registerChild(CHILD_BG_COLOR, CCStaticTextField.class);
+ registerChild(CHILD_ALT_BG_COLOR, CCStaticTextField.class);
+ registerChild(CHILD_HIDDEN_VALUES, CCHiddenField.class);
+ registerChild(CHILD_HIDDEN_NAMES, CCHiddenField.class);
+ m_pagetitleModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this,
+ CHILD_MASTHEAD);
+ String sSubProductName = m_I18n.getMessage("APOC.masthead.altText");
+
+ child.setAlt(sSubProductName);
+ child.setHeight("21");
+ child.setWidth("355");
+ child.setSrc("/apoc/images/popuptitle.gif");
+ return child;
+
+ } else if (name.equals(CHILD_PAGETITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_pagetitleModel, CHILD_PAGETITLE);
+ return child;
+
+ } else if (name.equals(CHILD_FORM)) {
+ CCForm child = new CCForm(this, CHILD_PAGETITLE);
+ return child;
+
+ } else if (name.equals(CHILD_INTROTEXT)) {
+ String introText = m_I18n.getMessage("APOC.setcolor.introtext");
+ CCStaticTextField child = new CCStaticTextField(this,
+ CHILD_INTROTEXT, introText);
+ return child;
+
+ } else if (name.equals(CHILD_PALETTE_HEADING)) {
+ String paletteHead = m_I18n.getMessage("APOC.setcolor.palette.heading");
+ CCLabel child = new CCLabel(this,
+ CHILD_PALETTE_HEADING, paletteHead);
+ child.setEscape(false);
+ return child;
+
+ } else if (name.equals(CHILD_COLOR_HEADING)) {
+ String colorHead = m_I18n.getMessage("APOC.setcolor.color.heading");
+ CCLabel child = new CCLabel(this, CHILD_COLOR_HEADING, colorHead);
+ child.setEscape(false);
+ return child;
+
+ } else if (name.equals(CHILD_ORIGINAL_HEADING)) {
+ String orgHead = m_I18n.getMessage("APOC.setcolor.original.heading");
+ CCLabel child = new CCLabel(this, CHILD_ORIGINAL_HEADING, orgHead);
+ child.setEscape(false);
+ return child;
+
+ } else if (name.equals(CHILD_WHEEL_HEADING)) {
+ String wheelHead = m_I18n.getMessage("APOC.setcolor.wheel.heading");
+ CCLabel child = new CCLabel(this, CHILD_WHEEL_HEADING, wheelHead);
+ child.setEscape(false);
+ return child;
+
+ } else if (name.equals(CHILD_ALT_WHEEL)) {
+ String alt = m_I18n.getMessage("APOC.setcolor.wheel.alt");
+ CCStaticTextField child = new CCStaticTextField(this,
+ CHILD_ALT_WHEEL, alt);
+ return child;
+
+ } else if (name.equals(CHILD_SUMMARY_SLIDER)) {
+ String summary = m_I18n.getMessage("APOC.setcolor.slider.summary");
+ CCStaticTextField child = new CCStaticTextField(this,
+ CHILD_SUMMARY_SLIDER, summary);
+ return child;
+
+ } else if (name.equals(CHILD_PALETTEROW_TILEDVIEW)) {
+ PaletteRowTiledView child = new PaletteRowTiledView(this,
+ CHILD_PALETTEROW_TILEDVIEW);
+ return child;
+
+ } else if (name.equals(CHILD_RED)) {
+ SpinProperty child = new SpinProperty(this, CHILD_RED, "APOC.setcolor.red.heading");
+
+ return child;
+
+ } else if (name.equals(CHILD_GREEN)) {
+ SpinProperty child = new SpinProperty(this, CHILD_GREEN, "APOC.setcolor.green.heading");
+ return child;
+
+ } else if (name.equals(CHILD_BLUE)) {
+ SpinProperty child = new SpinProperty(this, CHILD_BLUE, "APOC.setcolor.blue.heading");
+ return child;
+
+ } else if (name.equals(CHILD_HUE)) {
+ SpinProperty child = new SpinProperty(this, CHILD_HUE, "APOC.setcolor.hue.heading");
+ return child;
+
+ } else if (name.equals(CHILD_SAT)) {
+ SpinProperty child = new SpinProperty(this, CHILD_SAT, "APOC.setcolor.sat.heading");
+ return child;
+
+ } else if (name.equals(CHILD_LUM)) {
+ SpinProperty child = new SpinProperty(this, CHILD_LUM, "APOC.setcolor.lum.heading");
+ return child;
+
+ } else if (name.equals(CHILD_NAME_LABEL)) {
+ String nameLabel = m_I18n.getMessage("APOC.navigation.name.label");
+ CCLabel child = new CCLabel(this, CHILD_NAME_LABEL, nameLabel);
+ return child;
+
+ } else if (name.equals(CHILD_HTML_LABEL)) {
+ String htmlLabel = m_I18n.getMessage("APOC.setcolor.html.heading");
+ CCLabel child = new CCLabel(this, CHILD_HTML_LABEL, htmlLabel);
+ child.setEscape(false);
+ return child;
+
+ } else if (name.equals(CHILD_NAME_VALUE)) {
+ CCTextField child = new CCTextField(this, CHILD_NAME_VALUE, m_OriginalColorName);
+ return child;
+
+ } else if (name.equals(CHILD_HTML_VALUE)) {
+ CCTextField child = new CCTextField(this, CHILD_HTML_VALUE, m_OriginalColor);
+ return child;
+
+ } else if (name.equals(CHILD_RESTORE_BUTTON)) {
+ String butName = m_I18n.getMessage("APOC.setcolor.restore.button");
+ CCButton child = new CCButton(this, CHILD_RESTORE_BUTTON, butName);
+ return child;
+
+ } else if (name.equals(CHILD_CONFIRM_RESTORE)) {
+ String confirmText = m_I18n.getMessage("APOC.setcolor.restore.confirm");
+ CCStaticTextField child = new CCStaticTextField(this,
+ CHILD_CONFIRM_RESTORE, confirmText);
+ return child;
+
+ } else if (name.equals(CHILD_LOCALIZED_NONAME)) {
+ String localizedNoName = m_I18n.getMessage("APOC.setcolor.noname");
+ CCStaticTextField child = new CCStaticTextField(this,
+ CHILD_LOCALIZED_NONAME, localizedNoName);
+ return child;
+
+ } else if (name.equals(CHILD_ADD_BUTTON)) {
+ String butName = m_I18n.getMessage("APOC.setcolor.add.button");
+ CCButton child = new CCButton(this, CHILD_ADD_BUTTON, butName);
+ return child;
+
+ } else if (name.equals(CHILD_REPLACE_BUTTON)) {
+ String butName = m_I18n.getMessage("APOC.setcolor.replace.button");
+ CCButton child = new CCButton(this, CHILD_REPLACE_BUTTON, butName);
+ return child;
+
+ } else if (name.equals(CHILD_REPLACE_ALERT)) {
+ String alertName = m_I18n.getMessage("APOC.setcolor.replace.alert");
+ CCStaticTextField child = new CCStaticTextField(this,
+ CHILD_REPLACE_ALERT, alertName);
+ return child;
+
+ } else if (name.equals(CHILD_ADD_ALERT)) {
+ String alertName = m_I18n.getMessage("APOC.setcolor.add.alert");
+ CCStaticTextField child = new CCStaticTextField(this,
+ CHILD_ADD_ALERT, alertName);
+ return child;
+
+ } else if (name.equals(CHILD_REMOVE_BUTTON)) {
+ String butName = m_I18n.getMessage("APOC.setcolor.remove.button");
+ CCButton child = new CCButton(this, CHILD_REMOVE_BUTTON, butName);
+ return child;
+
+ } else if (name.equals(CHILD_REMOVE_ALERT)) {
+ String alertName = m_I18n.getMessage("APOC.setcolor.remove.alert");
+ CCStaticTextField child = new CCStaticTextField(this,
+ CHILD_REMOVE_ALERT, alertName);
+ return child;
+
+ } else if (name.equals(CHILD_NAME_ALERT)) {
+ String alertName = m_I18n.getMessage("APOC.setcolor.name.alert");
+ CCStaticTextField child = new CCStaticTextField(this,
+ CHILD_NAME_ALERT, alertName);
+ return child;
+
+ } else if (name.equals(CHILD_RESTOREORIGCOLOR_BUTTON)) {
+ String butName = m_I18n.getMessage("APOC.setcolor.restoreorigcolor.button");
+ CCButton child = new CCButton(this, CHILD_RESTOREORIGCOLOR_BUTTON, butName);
+ return child;
+
+ } else if (name.equals(CHILD_BG_ORG_COLOR)) {
+ StringBuffer col = new StringBuffer("#");
+ col.append(m_OriginalColor);
+ CCStaticTextField child = new CCStaticTextField(this,
+ CHILD_BG_ORG_COLOR, col);
+ return child;
+
+ } else if (name.equals(CHILD_ALT_BG_ORG_COLOR)) {
+ StringBuffer col = new StringBuffer("#");
+ col.append(m_OriginalColor);
+ Object[] args = {col.toString()};
+ String alt = m_I18n.getMessage("APOC.setcolor.original.alt", args);
+ CCStaticTextField child = new CCStaticTextField(this,
+ CHILD_ALT_BG_ORG_COLOR, alt);
+ return child;
+
+ } else if (name.equals(CHILD_BG_COLOR)) {
+ StringBuffer col = new StringBuffer("#");
+ col.append(m_OriginalColor);
+ CCStaticTextField child = new CCStaticTextField(this,
+ CHILD_BG_COLOR, col);
+ return child;
+
+ } else if (name.equals(CHILD_ALT_BG_COLOR)) {
+ StringBuffer col = new StringBuffer("#");
+ col.append(m_OriginalColor);
+ Object[] args = {col.toString()};
+ String alt = m_I18n.getMessage("APOC.setcolor.color.alt", args);
+ CCStaticTextField child = new CCStaticTextField(this,
+ CHILD_ALT_BG_COLOR, alt);
+ return child;
+
+ } else if (name.equals(CHILD_HIDDEN_VALUES)) {
+ CCHiddenField child = new CCHiddenField(this,
+ CHILD_HIDDEN_VALUES, "");
+ return child;
+
+ } else if (name.equals(CHILD_HIDDEN_NAMES)) {
+ CCHiddenField child = new CCHiddenField(this,
+ CHILD_HIDDEN_NAMES, "");
+ return child;
+
+ } else if (m_pagetitleModel.isChildSupported(name)) {
+ return m_pagetitleModel.createChild(this, name);
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ public boolean beginCloseButtonDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ CCButton child = (CCButton) getChild("CloseButton");
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(" onClick=\"")
+ .append("top.close();\"");
+ child.setExtraHtml(buffer.toString());
+ return true;
+ }
+
+
+ public void handleSetColorButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException{
+ String paletteNames = getDisplayFieldStringValue(CHILD_HIDDEN_NAMES);
+ String paletteValues = getDisplayFieldStringValue(CHILD_HIDDEN_VALUES);
+ PaletteRowTiledView rowView = (PaletteRowTiledView)
+ getChild(CHILD_PALETTEROW_TILEDVIEW);
+ PaletteTDTiledView tdView = (PaletteTDTiledView)
+ rowView.getChild(PaletteRowTiledView.CHILD_TD_TILEDVIEW);
+ PaletteModel model = (PaletteModel) tdView.getPrimaryModel();
+ model.updateColors(paletteNames, paletteValues);
+ model.storeColorsInBackend();
+
+ PrintWriter pw = getRequestContext().getResponse().getWriter() ;
+ StringBuffer buffer = new StringBuffer();
+ buffer.append("<html><header>") ;
+ buffer.append("<script type=\"text/javascript\">") ;
+ buffer.append("top.window.close();</script>") ;
+ buffer.append("</header><body></body></html>") ;
+ pw.write(buffer.toString()) ;
+ pw.flush() ;
+ }
+
+ private void setUpVariables() {
+ // The resources
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ String localizedNoName = m_I18n.getMessage("APOC.setcolor.noname");
+ String localizedNotSet = SectionModel.getUndefinedValue();
+ // The original Color
+ String orgColorParam = Toolbox2.getParameter("OrgColor");
+ if ((orgColorParam.equals("")) || (orgColorParam.equals(localizedNotSet))) {
+ m_OriginalColor = "ffffff";
+ } else {
+ m_OriginalColor = orgColorParam;
+ }
+ String orgColorName = Toolbox2.getParameter("Name");
+
+ if ((orgColorName.equals(""))
+ || (orgColorName.equals(localizedNotSet))
+ ||(orgColorName.equals(localizedNoName))) {
+ m_OriginalColorName = "";
+ } else {
+ m_OriginalColorName = orgColorName;
+ }
+
+ // The pagetitle model
+ m_pagetitleModel = createPageTitleModel();
+ }
+
+ private CCPageTitleModel createPageTitleModel() {
+ CCPageTitleModel model = new CCPageTitleModel(
+ RequestManager.getRequestContext().getServletContext(),
+ "/jsp/EditColorPageTitle.xml");
+ model.setValue("SetColorButton", "APOC.button.OK");
+ model.setValue("CloseButton", "APOC.button.cancel");
+ return model;
+ }
+
+} \ No newline at end of file
diff --git a/src/com/sun/apoc/manager/EditListViewBean.java b/src/com/sun/apoc/manager/EditListViewBean.java
new file mode 100755
index 0000000..bb6f3b5
--- /dev/null
+++ b/src/com/sun/apoc/manager/EditListViewBean.java
@@ -0,0 +1,343 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.html.StaticTextField;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.iplanet.jato.view.html.OptionList;
+import com.iplanet.jato.view.html.Option;
+
+import com.sun.web.ui.model.CCPropertySheetModel;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.view.html.CCDropDownMenu;
+import com.sun.web.ui.view.html.CCSelectableList;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.view.propertysheet.CCPropertySheet;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.taglib.header.CCHtmlHeaderTag;
+
+import com.sun.apoc.manager.Toolbox2;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import java.util.Vector;
+import java.util.ArrayList;
+
+import com.sun.apoc.templates.parsing.TemplateProperty ;
+import com.sun.apoc.templates.parsing.TemplatePropertyConstraint;
+import com.sun.apoc.manager.resource.ResourceRepository;
+import com.sun.apoc.manager.settings.SectionModel;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import java.net.URLEncoder;
+
+
+public class EditListViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "EditList";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/EditList.jsp";
+ public static final String CHILD_FORM = "ChooserForm";
+ public static final String CHILD_MASTHEAD = "SecondaryMH";
+ public static final String CHILD_EDITLIST_TITLE = "EditListTitle";
+ public static final String CHILD_WINDOW_TITLE = "WindowTitle";
+ public static final String CHILD_LIST = "List";
+ public static final String CHILD_ADDREMOVE_FIELD = "AddTextField";
+ public static final String CHILD_ADDBUTTON = "AddButton";
+ public static final String CHILD_REMOVEBUTTON = "RemoveButton";
+ public static final String CHILD_STATICTEXT = "StaticText";
+ public static final String CHILD_HIDDEN_ELEMENTS = "HiddenElements";
+ public static final String CHILD_HIDDEN_STATES = "HiddenStates";
+ public static final String CHILD_HIDDEN_CHOOSER_DATAPATH = "HiddenChooserDataPath";
+ public static final String CHILD_PROTECTED_ALERT = "ProtectedAlert";
+ public static final String CHILD_SELECTED_ALERT = "SelectedAlert";
+ public static final String CHILD_LIST_WIDTH_MAINTAINER = "ListWidthMaintainer";
+ public static final String CHILD_SYSTEM_ADDED_FLAG = "SystemAddedFlag";
+ public static final String CHILD_UNDEFINED_VALUE = "UndefinedValue";
+
+
+ private CCPageTitleModel m_titleModel = null;
+ private ChooserHelper m_chooserHelper = null ;
+ private String m_chooserPath = null ;
+ private String m_chooserLabel = null ;
+ private String m_localizedChooserLabel = null;
+ private CCI18N m_I18n;
+
+
+ public EditListViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ setUpVariables() ;
+ m_titleModel = new CCPageTitleModel(RequestManager.getRequestContext().getServletContext(),
+ "/jsp/EditListTitle.xml");
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+
+ protected void registerChildren() {
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ registerChild(CHILD_WINDOW_TITLE, CCStaticTextField.class);
+ registerChild(CHILD_EDITLIST_TITLE, CCPageTitle.class);
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_LIST, CCSelectableList.class);
+ registerChild(CHILD_ADDREMOVE_FIELD, CCTextField.class);
+ registerChild(CHILD_ADDBUTTON, CCButton.class);
+ registerChild(CHILD_REMOVEBUTTON, CCButton.class);
+ registerChild(CHILD_HIDDEN_ELEMENTS, CCHiddenField.class) ;
+ registerChild(CHILD_HIDDEN_STATES, CCHiddenField.class) ;
+ registerChild(CHILD_HIDDEN_CHOOSER_DATAPATH, CCHiddenField.class) ;
+ registerChild(CHILD_STATICTEXT, CCStaticTextField.class);
+ registerChild(CHILD_PROTECTED_ALERT, CCStaticTextField.class);
+ registerChild(CHILD_SELECTED_ALERT, CCStaticTextField.class);
+ registerChild(CHILD_LIST_WIDTH_MAINTAINER, CCStaticTextField.class);
+ registerChild(CHILD_SYSTEM_ADDED_FLAG, CCStaticTextField.class);
+ registerChild(CHILD_UNDEFINED_VALUE, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this,
+ CHILD_MASTHEAD);
+ String sSubProductName = m_I18n.getMessage("APOC.masthead.altText");
+
+ child.setAlt(sSubProductName);
+ child.setHeight("21");
+ child.setWidth("355");
+ child.setSrc("/apoc/images/popuptitle.gif");
+ return child;
+ }
+ else if (name.equals(CHILD_WINDOW_TITLE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, getChooserLabel());
+ return child;
+ }
+ else if (name.equals(CHILD_EDITLIST_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ m_titleModel.setPageTitleText(getChooserLabel()) ;
+ return child;
+ }
+ else if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_ADDREMOVE_FIELD)) {
+ CCTextField child = new CCTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_ADDBUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_REMOVEBUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_STATICTEXT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_HIDDEN_ELEMENTS)) {
+ CCHiddenField child = new CCHiddenField(this, name, "");
+ return child;
+ }
+ else if (name.equals(CHILD_HIDDEN_STATES)) {
+ CCHiddenField child = new CCHiddenField(this, name, "");
+ return child;
+ }
+ else if (name.equals(CHILD_HIDDEN_CHOOSER_DATAPATH)) {
+ CCHiddenField child = new CCHiddenField(this, name, "");
+ return child;
+ }
+ else if (name.equals(CHILD_PROTECTED_ALERT)) {
+ String protectedAlert = m_I18n.getMessage("APOC.chooser.protected.alert");
+ CCStaticTextField child = new CCStaticTextField(this, name, protectedAlert);
+ return child;
+ }
+ else if (name.equals(CHILD_SELECTED_ALERT)) {
+ String selectedAlert = m_I18n.getMessage("APOC.chooser.selected.alert");
+ CCStaticTextField child = new CCStaticTextField(this, name, selectedAlert);
+ return child;
+ }
+ else if (name.equals(CHILD_LIST_WIDTH_MAINTAINER)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, ChooserHelper.LIST_WIDTH_STRING);
+ return child;
+ }
+ else if (name.equals(CHILD_SYSTEM_ADDED_FLAG)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, ChooserHelper.SYSTEM_ADDED_FLAG);
+ return child;
+ }
+ else if (name.equals(CHILD_UNDEFINED_VALUE)) {
+ String localizedNotSet = SectionModel.getUndefinedValue();
+ CCStaticTextField child = new CCStaticTextField(this, name, localizedNotSet);
+ return child;
+ }
+ else if (name.equals(CHILD_LIST)) {
+ CCSelectableList child = new CCSelectableList(this, name, (Object)null);
+ child.setOptions(createOptionList()) ;
+ return child;
+ }
+ else if ((m_titleModel != null) && m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+
+ public OptionList createOptionList() {
+ OptionList options = new OptionList() ;
+ ArrayList elements = m_chooserHelper.getElementsList();
+ ArrayList states = m_chooserHelper.getStatesList();
+ for(int i = 0; i < elements.size(); i++) {
+ String element = (String)elements.get(i);
+ String state = (String)states.get(i);
+ if (state.equals("true")) {
+ options.add(element + ChooserHelper.SYSTEM_ADDED_FLAG, element + ChooserHelper.SYSTEM_ADDED_FLAG) ;
+ } else {
+ options.add(element, element) ;
+ }
+ }
+ //Always add the constant list width maintainer string as the last element in the list
+ if(!(options.getValue(options.size()-1).equals(ChooserHelper.LIST_WIDTH_STRING))){
+ options.add(ChooserHelper.LIST_WIDTH_STRING, ChooserHelper.LIST_WIDTH_STRING) ;
+ }
+
+ return options ;
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ // Set the hidden field values from the values in the request
+ String chooserDataPath = Toolbox2.getProperty(m_chooserPath).getChooserPath() ;
+ CCHiddenField child = (CCHiddenField) getChild(CHILD_HIDDEN_CHOOSER_DATAPATH);
+ child.setValue(chooserDataPath) ;
+ }
+
+
+ public void handleOKButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+
+ String elements = getDisplayFieldStringValue(CHILD_HIDDEN_ELEMENTS);
+ String states = getDisplayFieldStringValue(CHILD_HIDDEN_STATES);
+ String chooserDataPath = getDisplayFieldStringValue(CHILD_HIDDEN_CHOOSER_DATAPATH) ;
+ if(elements != null) {
+ m_chooserHelper.setElementsList(elements, ChooserHelper.LIST_SEPARATOR);
+ m_chooserHelper.setStatesList(states, ChooserHelper.LIST_SEPARATOR);
+ m_chooserHelper.saveChanges();
+ }
+
+ PrintWriter pw = getRequestContext().getResponse().getWriter() ;
+ StringBuffer buffer = new StringBuffer();
+ buffer.append("<html><header>") ;
+ buffer.append("<script type=\"text/javascript\">") ;
+ buffer.append("top.window.close();</script>") ;
+ buffer.append("</header><body></body></html>") ;
+ pw.write(buffer.toString()) ;
+ pw.flush() ;
+ }
+
+
+
+ public boolean beginRestoreDefaultsButtonDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ String chooserDefaults = m_chooserHelper.getDefaultElementsStringList() ;
+
+ CCButton child = (CCButton) getChild("RestoreDefaultsButton");
+ StringBuffer buffer = new StringBuffer();
+ buffer.append("onClick=\"javascript: ")
+ .append("var chooserDefaults = '" + chooserDefaults + "';")
+ .append("updateAfterRestore(chooserDefaults);")
+ .append("return false;\"");
+ child.setExtraHtml(buffer.toString());
+
+ return true ;
+ }
+
+
+ protected String getChooserLabel() {
+ if (m_localizedChooserLabel == null) {
+ if (m_chooserLabel == "" || m_chooserLabel == "null") {
+ m_localizedChooserLabel = "APOC.page.chooser.list.editor" ;
+ } else {
+ ResourceRepository resources = ResourceRepository.getDefaultRepository();
+ String localizedLabel = resources.getValidMessage(
+ m_chooserLabel,
+ Toolbox2.getProperty(m_chooserPath).getResourceBundle(),
+ RequestManager.getRequest());
+ // If the string isn't stored in the resources for this category then try the APOC manager resources
+ if (localizedLabel == null) {
+ localizedLabel = m_I18n.getMessage(m_chooserLabel) ;
+ }
+ // If the string isn't stored in either resources then use the original string
+ if (localizedLabel == null) {
+ localizedLabel = m_chooserLabel ;
+ }
+ m_localizedChooserLabel = localizedLabel ;
+ }
+ }
+ return m_localizedChooserLabel;
+ }
+
+
+ private void setUpVariables() {
+ m_chooserPath = Toolbox2.getParameter("ChooserPath");
+ m_chooserLabel = Toolbox2.getParameter("ChooserLabel");
+ m_chooserHelper = (ChooserHelper)RequestManager.getRequest().getSession(false).getAttribute("ChooserHelper");
+ if(m_chooserPath != null && m_chooserPath.length() != 0) {
+ m_chooserHelper = new ChooserHelper(Toolbox2.decode(m_chooserPath));
+ }
+ RequestManager.getRequest().getSession(false).setAttribute("ChooserHelper", m_chooserHelper);
+ }
+
+}
diff --git a/src/com/sun/apoc/manager/EntitiesFindButtonsViewBean.java b/src/com/sun/apoc/manager/EntitiesFindButtonsViewBean.java
new file mode 100755
index 0000000..b29d844
--- /dev/null
+++ b/src/com/sun/apoc/manager/EntitiesFindButtonsViewBean.java
@@ -0,0 +1,67 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+
+public class EntitiesFindButtonsViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "EntitiesFindButtons";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/FindButtons.jsp";
+ public static final String CHILD_CLOSE_BUTTON = "CloseButton";
+
+ public EntitiesFindButtonsViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_CLOSE_BUTTON, CCButton.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_CLOSE_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/EntitiesFindIndexViewBean.java b/src/com/sun/apoc/manager/EntitiesFindIndexViewBean.java
new file mode 100755
index 0000000..5f729b1
--- /dev/null
+++ b/src/com/sun/apoc/manager/EntitiesFindIndexViewBean.java
@@ -0,0 +1,115 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.iplanet.jato.view.html.StaticTextField;
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import java.io.IOException;
+import javax.servlet.ServletException;
+
+
+public class EntitiesFindIndexViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "EntitiesFindIndex";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/FindIndex.jsp";
+ public static final String CHILD_ENTITYID_TEXT = "EntityIdText";
+ public static final String CHILD_TITLE_TEXT = "FindTitle";
+ public static final String CHILD_FIND_HREF = "FindHref";
+ public static final String CHILD_FIND_HIDDEN = "FindModel";
+
+ public EntitiesFindIndexViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ENTITYID_TEXT, StaticTextField.class);
+ registerChild(CHILD_FIND_HREF, CCHref.class);
+ registerChild(CHILD_FIND_HIDDEN, CCHiddenField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_ENTITYID_TEXT)) {
+ String sUrlParam = Toolbox2.encode(Toolbox2.getParameter(Constants.ENTITY_ID));
+ StaticTextField child = new StaticTextField(this, name, (Object) sUrlParam);
+ return child;
+ }
+ else if (name.equals(CHILD_TITLE_TEXT)) {
+ StaticTextField child = new StaticTextField(this, name, "APOC.find.title");
+ return child;
+ }
+ else if (name.equals(CHILD_FIND_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_FIND_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleFindHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ forwardTo(getRequestContext());
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+// mapRequestParameters(RequestManager.getRequest());
+ String sId = (String) ((CCHref) getChild(CHILD_FIND_HREF)).getValue();
+ int nId = Integer.parseInt(sId);
+ StaticTextField text = (StaticTextField) getChild(CHILD_ENTITYID_TEXT);
+ CCHiddenField hidden = (CCHiddenField) getChild(CHILD_FIND_HIDDEN);
+ String sModel = (String) hidden.getValue();
+ NavigationModel navModel= (NavigationModel) getRequestContext().getModelManager().getModel(NavigationModel.class, sModel, true, true);
+ String entityId = Toolbox2.encode(navModel.getStoredEntityId(navModel.getNodeById(nId).getParent().getId()));
+ String entityType = Toolbox2.encode(navModel.getStoredEntityType(navModel.getNodeById(nId).getParent().getId()));
+ text.setValue(entityId + "|" + entityType);
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/EntitiesFindParameterViewBean.java b/src/com/sun/apoc/manager/EntitiesFindParameterViewBean.java
new file mode 100755
index 0000000..c88132d
--- /dev/null
+++ b/src/com/sun/apoc/manager/EntitiesFindParameterViewBean.java
@@ -0,0 +1,123 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.model.CCPropertySheetModel;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.propertysheet.CCPropertySheet;
+import java.io.IOException;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+
+public class EntitiesFindParameterViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "EntitiesFindParameter";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/FindParameter.jsp";
+ public static final String CHILD_FORM = "ParameterForm";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_FIND_TITLE = "FindTitle";
+ public static final String CHILD_FINDPARAMS_PROPS = "FindParams";
+ public static final String CHILD_DEFAULT_HREF = "DefaultHref";
+ private CCPageTitleModel m_titleModel = null;
+ private CCPropertySheetModel m_sheetModel = null;
+ private boolean m_bFindHref = false;
+
+
+ public EntitiesFindParameterViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ ServletContext context = RequestManager.getRequestContext().getServletContext();
+ m_titleModel = new CCPageTitleModel();
+ m_sheetModel = new CCPropertySheetModel(context, "/jsp/entities/FindParameter.xml");
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ registerChild(CHILD_FIND_TITLE, CCPageTitle.class);
+ registerChild(CHILD_FINDPARAMS_PROPS, CCPropertySheet.class);
+ registerChild(CHILD_DEFAULT_HREF, CCHref.class);
+ m_titleModel.registerChildren(this);
+ m_sheetModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_FIND_TITLE)) {
+ View child = new CCPageTitle(this, m_titleModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_FINDPARAMS_PROPS)) {
+ View child = new CCPropertySheet(this, m_sheetModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_DEFAULT_HREF)) {
+ View child = new CCHref(this, name, null);
+ return child;
+ }
+ else if ((m_titleModel != null) && m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else if ((m_sheetModel != null) && m_sheetModel.isChildSupported(name)) {
+ View child = m_sheetModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/EntitiesFindResultViewBean.java b/src/com/sun/apoc/manager/EntitiesFindResultViewBean.java
new file mode 100755
index 0000000..a4fd94d
--- /dev/null
+++ b/src/com/sun/apoc/manager/EntitiesFindResultViewBean.java
@@ -0,0 +1,172 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.entities.FindTiledModel;
+import com.sun.apoc.manager.entities.FindTiledView;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import java.io.IOException;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+public class EntitiesFindResultViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "EntitiesFindResult";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/FindResult.jsp";
+ public static final String CHILD_TILED_VIEW = "EntitiesFindTiledView";
+ public static final String CHILD_FORM = "ResultForm";
+ public static final String CHILD_FIND_HREF = "FindHref";
+ public static final String CHILD_FIND_BUTTON = "FindButton";
+ public static final String CHILD_HELP1_TEXT = "HelpText1";
+ public static final String CHILD_HELP2_TEXT = "HelpText2";
+ public static final String CHILD_ENTITYID_HIDDEN = "EntityId";
+ public static final String CHILD_ENTITY_TYPE_HIDDEN = "EntityType";
+ public static final String CHILD_FINDSTRING_HIDDEN = "FindString";
+ public static final String CHILD_NONE_FOUND_TEXT = "NoneFoundMessage";
+ private boolean m_bFindHref = false;
+ private boolean m_bFoundEntities = false;
+
+ public EntitiesFindResultViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ ServletContext context = RequestManager.getRequestContext().getServletContext();
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_TILED_VIEW, FindTiledView.class);
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_FIND_HREF, CCHref.class);
+ registerChild(CHILD_FIND_BUTTON, CCButton.class);
+ registerChild(CHILD_HELP1_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_HELP2_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_ENTITYID_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_ENTITY_TYPE_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_FINDSTRING_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_NONE_FOUND_TEXT, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_TILED_VIEW)) {
+ View child = new FindTiledView(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_FIND_HREF)) {
+ View child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_FIND_BUTTON)) {
+ View child = new CCButton(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_HELP1_TEXT) || name.equals(CHILD_HELP2_TEXT) || name.equals(CHILD_NONE_FOUND_TEXT)) {
+ View child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_ENTITYID_HIDDEN)||name.equals(CHILD_ENTITY_TYPE_HIDDEN)||name.equals(CHILD_FINDSTRING_HIDDEN)) {
+ View child = new CCHiddenField(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleFindHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ CCHiddenField entityIdHidden = (CCHiddenField) getChild(CHILD_ENTITYID_HIDDEN);
+ CCHiddenField entityTypeHidden = (CCHiddenField) getChild(CHILD_ENTITY_TYPE_HIDDEN);
+ CCHref entityIdHref = (CCHref) getChild(CHILD_FIND_HREF);
+ String sValue = (String) entityIdHref.getValue();
+ String sEntityId = null;
+ String sEntityType = EnvironmentConstants.USER_SOURCE;
+ if (sValue.indexOf("|") != -1) {
+ sEntityType = sValue.substring(sValue.indexOf("|") + 1);
+ sEntityId = sValue.substring(0, sValue.indexOf("|"));
+ } else {
+ sEntityId = sValue;
+ }
+ entityIdHidden.setValue(sEntityId);
+ entityTypeHidden.setValue(sEntityType);
+ m_bFindHref = true;
+ forwardTo(getRequestContext());
+ }
+
+ public void handleFindButtonRequest(RequestInvocationEvent event)
+ throws ModelControlException, ServletException, IOException {
+ CCHiddenField textField = (CCHiddenField) getChild(CHILD_FINDSTRING_HIDDEN);
+ CCHiddenField hiddenField = (CCHiddenField) getChild(CHILD_ENTITYID_HIDDEN);
+ CCHiddenField hiddenTypeField = (CCHiddenField) getChild(CHILD_ENTITY_TYPE_HIDDEN);
+ FindTiledModel model = (FindTiledModel)getModel(FindTiledModel.class);
+ model.retrieve((String) hiddenTypeField.getValue(), (String) hiddenField.getValue(), (String) textField.getValue());
+ setEntitiesFound(model.getSize()>0);
+ forwardTo(getRequestContext());
+ }
+
+ public boolean beginHelpDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ return m_bFindHref;
+ }
+
+ public boolean beginEntitiesFoundDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ super.beginDisplay(event);
+ return (!m_bFindHref && m_bFoundEntities);
+ }
+
+ public boolean beginNoEntitiesFoundDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ return (!m_bFindHref && !m_bFoundEntities);
+ }
+
+ public void setEntitiesFound(boolean bFound) {
+ m_bFoundEntities = bFound;
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/EntitiesNavigationViewBean.java b/src/com/sun/apoc/manager/EntitiesNavigationViewBean.java
new file mode 100755
index 0000000..31b5550
--- /dev/null
+++ b/src/com/sun/apoc/manager/EntitiesNavigationViewBean.java
@@ -0,0 +1,228 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.apoc.spi.SPIException;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCDropDownMenu;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.tree.CCDynamicTree;
+import com.sun.web.ui.view.tree.CCTreeEventHandlerInterface;
+import java.io.IOException;
+import javax.servlet.ServletException;
+public class EntitiesNavigationViewBean extends ViewBeanBase implements CCTreeEventHandlerInterface {
+
+ public static final String PAGE_NAME = "EntitiesNavigation";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/Navigation.jsp";
+ //
+ public static final String CHILD_RELOAD = "ContentConditionalReload";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_SEARCH_TEXT = "SearchText";
+ public static final String CHILD_SEARCH_BUTTON = "SearchButton";
+ public static final String CHILD_TREE = "Tree";
+ public static final String CHILD_DEFAULT_HREF = "DefaultHref";
+ public static final String CHILD_ENTITY_HREF = "EntityHref";
+ public static final String CHILD_CONTEXT = "JSContext";
+ //
+ private String m_sForcedEntity = null;
+ private boolean m_bReload = false;
+
+ public EntitiesNavigationViewBean() throws ModelControlException {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ setRequestContext(RequestManager.getRequestContext());
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_RELOAD, CCStaticTextField.class);
+ registerChild(CHILD_CONTEXT, CCStaticTextField.class);
+ registerChild(CHILD_SEARCH_TEXT, CCTextField.class);
+ registerChild(CHILD_SEARCH_BUTTON, CCButton.class);
+ registerChild(CHILD_TREE, CCDynamicTree.class);
+ registerChild(CHILD_DEFAULT_HREF, CCHref.class);
+ registerChild(CHILD_ENTITY_HREF, CCHref.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_RELOAD)||name.equals(CHILD_CONTEXT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_SEARCH_TEXT)) {
+ CCTextField child = new CCTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_SEARCH_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_TREE)) {
+ CCDynamicTree child = new CCDynamicTree(this, name, getModel());
+ return child;
+ }
+ else if (name.equals(CHILD_DEFAULT_HREF) || name.equals(CHILD_ENTITY_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void nodeClicked(RequestInvocationEvent event, int id, String treeName) {
+ m_bReload = true;
+ getSession().setAttribute(Constants.SELECTED_ENTITY, getModel().getStoredValue(id));
+ forwardTo(getRequestContext());
+ }
+
+ public void turnerClicked(RequestInvocationEvent event, int id, String treeName) {
+ try {
+ getModel().retrieve(id);
+ }
+ catch (ModelControlException mce) {
+ Toolbox2.prepareErrorDisplay(mce, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ }
+ forwardTo(getRequestContext());
+ }
+
+ public void handleDefaultHrefRequest(RequestInvocationEvent event) {
+ CCHref href = (CCHref) getChild(CHILD_DEFAULT_HREF);
+ String sHref = Toolbox2.decode((String) href.getValue());
+ int nOldSelected = getModel().getSelectedNode().getId();
+ int nSelected = 1;
+
+ try {
+ nSelected = getModel().retrieve(false);
+
+ if (!sHref.equals("a")) {
+ nSelected = getModel().retrieve(sHref);
+ }
+
+ if (nSelected!=nOldSelected) {
+ m_bReload = true;
+ getSession().setAttribute(Constants.SELECTED_ENTITY, getModel().getStoredValue(nSelected));
+ CCDynamicTree tree = (CCDynamicTree) getChild(CHILD_TREE);
+ tree.yokeTo(nSelected);
+ }
+ }
+ catch (ModelControlException mce) {
+ Toolbox2.prepareErrorDisplay(mce, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ }
+
+ forwardTo(getRequestContext());
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ getModel().clearDirtyNodeIds();
+ Object firstVisit = getSession().getAttribute(Constants.FIRST_VISIT);
+ if (firstVisit!=null) {
+ getSession().removeAttribute(Constants.FIRST_VISIT);
+ try {
+ getModel().expandRoot();
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ }
+ }
+ }
+
+ public boolean beginContentConditionalReloadDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCStaticTextField script = (CCStaticTextField) getChild(CHILD_RELOAD);
+
+ if (m_bReload){
+ script.setValue("parent.content.location.href='/apoc/manager/EntityContent';");
+ } else {
+ return false;
+ }
+ return true;
+ }
+
+ public boolean beginJSContextDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCStaticTextField context = (CCStaticTextField) getChild(CHILD_CONTEXT);
+ String sContext = "";
+ try {
+ sContext = (String) Toolbox2.getPolicyManager().getEnvironment().get(Constants.POLICY_MANAGER_NAME);
+ } catch (com.sun.apoc.spi.SPIException se) {
+ throw new ServletException(se);
+ }
+ context.setValue(Toolbox2.encode(sContext));
+ return true;
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ return ((alert.getSummary() != null) && (alert.getSummary().length() > 0));
+ }
+
+ public boolean beginViewMenuDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCDropDownMenu dropdown = (CCDropDownMenu) getChild(event.getChildName());
+ dropdown.setValue(getModel().isLeavesFiltered()?"0":"1");
+ return true;
+ }
+
+ protected NavigationModel getModel() {
+ return (NavigationModel) getRequestContext().getModelManager().getModel(NavigationModel.class,
+ "NavTree", true, true);
+ }
+}
diff --git a/src/com/sun/apoc/manager/EntitiesSearchButtonsViewBean.java b/src/com/sun/apoc/manager/EntitiesSearchButtonsViewBean.java
new file mode 100755
index 0000000..a56cfc6
--- /dev/null
+++ b/src/com/sun/apoc/manager/EntitiesSearchButtonsViewBean.java
@@ -0,0 +1,71 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+
+public class EntitiesSearchButtonsViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "EntitiesSearchButtons";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/SearchButtons.jsp";
+ public static final String CHILD_SEARCH_BUTTON = "SearchButton";
+ public static final String CHILD_RESET_BUTTON = "ResetButton";
+ public static final String CHILD_CLOSE_BUTTON = "CloseButton";
+
+ public EntitiesSearchButtonsViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_SEARCH_BUTTON, CCButton.class);
+ registerChild(CHILD_RESET_BUTTON, CCButton.class);
+ registerChild(CHILD_CLOSE_BUTTON, CCButton.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_SEARCH_BUTTON)||name.equals(CHILD_RESET_BUTTON)||name.equals(CHILD_CLOSE_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/EntitiesSearchIndexViewBean.java b/src/com/sun/apoc/manager/EntitiesSearchIndexViewBean.java
new file mode 100755
index 0000000..d42ac26
--- /dev/null
+++ b/src/com/sun/apoc/manager/EntitiesSearchIndexViewBean.java
@@ -0,0 +1,105 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.view.html.CCStaticTextField;
+
+
+public class EntitiesSearchIndexViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "EntitiesSearchIndex";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/SearchIndex.jsp";
+ public static final String CHILD_CONTEXT_TEXT = "JSContext";
+ public static final String CHILD_RESTRICTED_ENTITY= "JSRestrictedEntity";
+ public static final String CHILD_RESTRICTED_TYPE = "JSRestrictedEntityType";
+ public static final String CHILD_TITLE_STATIC = "SearchTitle";
+
+ public EntitiesSearchIndexViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_CONTEXT_TEXT, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_CONTEXT_TEXT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_RESTRICTED_ENTITY)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_RESTRICTED_TYPE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_TITLE_STATIC)) {
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ String sSearch = i18n.getMessage("APOC.search.search");
+ CCStaticTextField child = new CCStaticTextField(this, CHILD_TITLE_STATIC, sSearch);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ String sContext = Toolbox2.getQuery("ContextId");
+ if (sContext.length()==0) {
+ sContext = (String) getSession().getAttribute(Constants.POLICY_MANAGER_NAME);
+ }
+ CCStaticTextField context = (CCStaticTextField) getChild(CHILD_CONTEXT_TEXT);
+ context.setValue(sContext);
+ String sRestrictedEntity = Toolbox2.getQuery("RestrictedEntity");
+ CCStaticTextField restrictedEntity = (CCStaticTextField) getChild(CHILD_RESTRICTED_ENTITY);
+ restrictedEntity.setValue(Toolbox2.encode(sRestrictedEntity));
+ String sRestrictedEntityType = Toolbox2.getQuery("RestrictedEntityType");
+ CCStaticTextField restrictedEntityType = (CCStaticTextField) getChild(CHILD_RESTRICTED_TYPE);
+ restrictedEntityType.setValue(Toolbox2.encode(sRestrictedEntityType));
+ }
+}
diff --git a/src/com/sun/apoc/manager/EntitiesSearchParameterViewBean.java b/src/com/sun/apoc/manager/EntitiesSearchParameterViewBean.java
new file mode 100755
index 0000000..4a20e03
--- /dev/null
+++ b/src/com/sun/apoc/manager/EntitiesSearchParameterViewBean.java
@@ -0,0 +1,339 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.DisplayField;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.iplanet.jato.view.html.OptionList;
+import com.sun.apoc.manager.entities.SearchTableModel;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.model.CCPropertySheetModel;
+import com.sun.web.ui.view.html.CCCheckBox;
+import com.sun.web.ui.view.html.CCDropDownMenu;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.propertysheet.CCPropertySheet;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+
+public class EntitiesSearchParameterViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "EntitiesSearchParameter";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/SearchParameter.jsp";
+ public static final String CHILD_FORM = "SearchForm";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_SEARCHPARAMS_TITLE = "SearchParamsTitle";
+ public static final String CHILD_SEARCHPARAMS_SHEET = "SearchParamsSheet";
+ public static final String CHILD_TOGGLE_HREF = "ToggleOptions";
+ public static final String CHILD_ROWLAYOUT_TEXT = "RowLayout";
+ public static final String CHILD_CONTEXT_TEXT = "JSContext";
+ public static final String CHILD_CONTEXT_HIDDEN = "ContextHidden";
+ public static final String CHILD_ENTITY_HIDDEN = Constants.CURRENT_ENTITY_ID;
+ public static final String CHILD_ENTITY_TYPE_HIDDEN = "CurrentEntityType";
+ public static final String CHILD_RESTRICT_HIDDEN = "RestrictHidden";
+ public static final String CHILD_RESULTS_HIDDEN = "ResultsHidden";
+
+ //
+ private CCPropertySheetModel m_sheetModel = null;
+ private CCPageTitleModel m_titleModel = null;
+ String m_restrictedEntity = "";
+ String m_restrictedEntityType = "";
+
+ public EntitiesSearchParameterViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+
+ ServletContext context = RequestManager.getRequestContext().getServletContext();
+ String sQuery = RequestManager.getRequest().getQueryString();
+ boolean bToggle = (sQuery==null)?false:sQuery.indexOf("ToggleOptions")>0;
+ boolean bWasAdvanced= Toolbox2.getParameter("ResultsMenu").length()>0;
+ String sXmlPath;
+
+ if ((bToggle && !bWasAdvanced) || (!bToggle && bWasAdvanced)) {
+ sXmlPath = "/jsp/entities/SearchParameterAdvanced.xml";
+ } else {
+ sXmlPath = "/jsp/entities/SearchParameter.xml";
+ }
+
+ m_restrictedEntity = Toolbox2.getParameter("RestrictedEntity");
+ if (m_restrictedEntity != null && m_restrictedEntity.length() != 0) {
+ sXmlPath = "/jsp/entities/SearchParameterAdvanced.xml";
+ }
+ m_restrictedEntityType = Toolbox2.getParameter("RestrictedEntityType");
+
+ m_sheetModel = new CCPropertySheetModel(context, sXmlPath);
+ m_titleModel = new CCPageTitleModel(context ,"/jsp/entities/SearchTitle.xml");
+
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ registerChild(CHILD_SEARCHPARAMS_TITLE, CCPageTitle.class);
+ registerChild(CHILD_SEARCHPARAMS_SHEET, CCPropertySheet.class);
+ registerChild(CHILD_ROWLAYOUT_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_ENTITY_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_ENTITY_TYPE_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_RESTRICT_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_RESULTS_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_CONTEXT_HIDDEN, CCHiddenField.class);
+ registerChild(SearchTableModel.CHILD_NAME_HREF, CCHref.class);
+ registerChild(CHILD_TOGGLE_HREF, CCHref.class);
+ registerChild(CHILD_CONTEXT_TEXT, CCStaticTextField.class);
+ m_titleModel.registerChildren(this);
+ m_sheetModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ return child;
+ }
+ if (name.equals(CHILD_SEARCHPARAMS_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ Toolbox2.setPageTitleHelp(m_titleModel, "APOC.search.search",
+ "APOC.search.param.title.help", "gbgpa.html");
+ return child;
+ }
+ else if (name.equals(CHILD_SEARCHPARAMS_SHEET)) {
+ CCPropertySheet child = new CCPropertySheet(this, m_sheetModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_ROWLAYOUT_TEXT)||name.equals(CHILD_CONTEXT_TEXT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_ENTITY_HIDDEN) ||
+ name.equals(CHILD_ENTITY_TYPE_HIDDEN) ||
+ name.equals(CHILD_RESTRICT_HIDDEN) ||
+ name.equals(CHILD_RESULTS_HIDDEN) ||
+ name.equals(CHILD_CONTEXT_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+ }
+ else if (name.equals(SearchTableModel.CHILD_NAME_HREF) || name.equals(CHILD_TOGGLE_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if ((m_titleModel != null) && m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else if ((m_sheetModel != null) && m_sheetModel.isChildSupported(name)) {
+ View child = m_sheetModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleNameHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ forwardTo(event.getRequestContext());
+ }
+
+ public void handleToggleOptionsRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ forwardTo(event.getRequestContext());
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+
+ // simple / advanced
+ boolean bToggle = RequestManager.getRequest().getQueryString().indexOf("ToggleOptions")>0;
+ boolean bWasAdvanced = Toolbox2.getParameter("ResultsMenu").length()>0;
+ CCHiddenField restrictHidden = (CCHiddenField) getChild(CHILD_RESTRICT_HIDDEN);
+ CCHiddenField resultsHidden = (CCHiddenField) getChild(CHILD_RESULTS_HIDDEN);
+
+ if (bWasAdvanced) {
+ String sRestrictCheckbox= Toolbox2.getParameter("RestrictCheckbox");
+ String sResultsMenu = Toolbox2.getParameter("ResultsMenu");
+ restrictHidden.setValue((sRestrictCheckbox.length()==0)?"false":sRestrictCheckbox);
+ resultsHidden.setValue(sResultsMenu);
+ }
+
+ if (!bWasAdvanced && bToggle) {
+ CCCheckBox restrictCheckbox= (CCCheckBox) getChild("RestrictCheckbox");
+ CCDropDownMenu resultsMenu = (CCDropDownMenu) getChild("ResultsMenu");
+ restrictCheckbox.setValue(restrictHidden.getValue());
+ resultsMenu.setValue(resultsHidden.getValue());
+ }
+
+ // context
+ CCHiddenField contextHidden = (CCHiddenField) getChild(CHILD_CONTEXT_HIDDEN);
+ String sContext = (String) contextHidden.getValue();
+
+ if (sContext==null || sContext.length()==0) {
+ sContext = Toolbox2.getQuery("ContextId");
+ contextHidden.setValue(sContext);
+ }
+
+ DisplayField contextText = (DisplayField) getChild(CHILD_CONTEXT_TEXT);
+ contextText.setValue(Toolbox2.encode(sContext));
+
+ // starting entity
+ CCHiddenField entity = (CCHiddenField) getChild(CHILD_ENTITY_HIDDEN);
+ CCHiddenField entityType = (CCHiddenField) getChild(CHILD_ENTITY_TYPE_HIDDEN);
+ String sEntity = (String) entity.getValue();
+ String sEntityType = (String) entityType.getValue();
+
+ if ((sEntity==null) || (sEntity.length()==0)) {
+ try {
+ Entity selectedEntity = Toolbox2.getSelectedEntity();
+ if (selectedEntity != null) {
+ PolicyManager policymgr = Toolbox2.createPolicyManager(sContext, null, null, false);
+ sEntity = policymgr.getRootEntity(selectedEntity.getPolicySourceName()).getId();
+ sEntityType = selectedEntity.getPolicySourceName();
+ }
+ /* PolicyManager policymgr = Toolbox2.createPolicyManager(sContext, null, null, false);
+ String[] sources = policymgr.getSources();
+ if (sources.length > 0) {
+ sEntity = policymgr.getRootEntity(sources[0]).getId();
+ sEntityType = sources[0];
+
+ }*/
+ } catch (Exception ex) {
+ throw new ModelControlException(ex);
+ }
+ }
+
+ entity.setValue(sEntity);
+ entityType.setValue(sEntityType);
+ if (m_restrictedEntity != null && m_restrictedEntity.length() != 0) {
+ entity.setValue(m_restrictedEntity);
+ entityType.setValue(m_restrictedEntityType);
+ restrictHidden.setValue("false");
+ CCCheckBox restrictCheckbox= (CCCheckBox) getChild("RestrictCheckbox");
+ restrictCheckbox.setChecked(true);
+ }
+
+ }
+
+ public boolean beginEntityTypeMenuDisplay(ChildDisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+
+ try {
+ CCDropDownMenu dropDown = (CCDropDownMenu) getChild(event.getChildName());
+ PolicyManager policymgr = Toolbox2.getPolicyManager();
+ ArrayList sources = new ArrayList(Arrays.asList(policymgr.getSources()));
+ OptionList optionList = new OptionList();
+ optionList.add("APOC.search.all", "ALL");
+ if (sources.contains(EnvironmentConstants.USER_SOURCE)) {
+ optionList.add("APOC.search.organizations", "ORG");
+ optionList.add("APOC.search.users", "USERID");
+ optionList.add("APOC.search.roles", "ROLE");
+ }
+ if (sources.contains(EnvironmentConstants.HOST_SOURCE)) {
+ optionList.add("APOC.search.domains", "DOMAIN");
+ optionList.add("APOC.search.hosts", "HOST");
+ }
+ dropDown.setOptions(optionList);
+
+ } catch (Exception ex) {
+ throw new ModelControlException(ex);
+ }
+
+ return true;
+ }
+
+ public boolean beginStartPointTextDisplay(ChildDisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+
+ try {
+ String sEntityId = (String) ((CCHiddenField) getChild(CHILD_ENTITY_HIDDEN)).getValue();
+ String sEntityType = (String) ((CCHiddenField) getChild(CHILD_ENTITY_TYPE_HIDDEN)).getValue();
+ CCStaticTextField child = (CCStaticTextField) getChild(event.getChildName());
+ String sStartPoint = "";
+
+ if (sEntityId.length()==0) {
+ sStartPoint = (String) getSession().getAttribute(Constants.POLICY_MANAGER_NAME);
+ } else {
+ CCHiddenField contextHidden = (CCHiddenField) getChild(CHILD_CONTEXT_HIDDEN);
+ String sContext = (String) contextHidden.getValue();
+ PolicyManager manager = Toolbox2.createPolicyManager(sContext, null, null, false);
+ sStartPoint = Toolbox2.getParentagePath(manager.getEntity(sEntityType, sEntityId), true, true, "/", manager);
+ }
+
+ child.setValue(sStartPoint);
+ } catch (Exception ex) {
+ throw new ModelControlException(ex);
+ }
+
+ return true;
+ }
+
+ public boolean beginRowLayoutDisplay(ChildDisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+
+ CCStaticTextField child = (CCStaticTextField) getChild(event.getChildName());
+ boolean bAdvanced = false;
+ String sRowLayout = "220, *, 45";
+
+ try {
+ bAdvanced = (getChild("ResultsMenu")!=null);
+ } catch (Exception e) {}
+
+ if (bAdvanced) {
+ sRowLayout="300, *, 45";
+ }
+
+ child.setValue(sRowLayout);
+
+ return true;
+ }
+}
diff --git a/src/com/sun/apoc/manager/EntitiesSearchResultViewBean.java b/src/com/sun/apoc/manager/EntitiesSearchResultViewBean.java
new file mode 100755
index 0000000..455f513
--- /dev/null
+++ b/src/com/sun/apoc/manager/EntitiesSearchResultViewBean.java
@@ -0,0 +1,201 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.entities.SearchTableView;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.table.CCActionTable;
+import java.io.IOException;
+import java.util.Map;
+import javax.servlet.ServletException;
+
+public class EntitiesSearchResultViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "EntitiesSearchResult";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/SearchResult.jsp";
+ public static final String CHILD_FORM = "ResultForm";
+ public static final String CHILD_TABLE_VIEW = "EntitiesSearchTableView";
+ public static final String CHILD_SEARCHRESULT_TITLE = "SearchResultTitle";
+ public static final String CHILD_HELP1_TEXT = "HelpText1";
+ public static final String CHILD_HELP2_TEXT = "HelpText2";
+ public static final String CHILD_HELP3_TEXT = "HelpText3";
+ public static final String CHILD_ENTITYID_HIDDEN = "EntityId";
+ public static final String CHILD_ENTITY_TYPE_HIDDEN = "EntityType";
+ public static final String CHILD_TYPE_HIDDEN = "EntityTypeMenu";
+ public static final String CHILD_SEARCHTEXT_HIDDEN = "SearchText";
+ public static final String CHILD_RESULTS_HIDDEN = "ResultsMenu";
+ public static final String CHILD_RESTRICT_HIDDEN = "RestrictCheckbox";
+ public static final String CHILD_CONTEXT_HIDDEN = "ContextId";
+ public static final String CHILD_IS_NEW_SEARCH = "IsNewSearch";
+ public static final String CHILD_SEARCH_BUTTON = "SearchButton";
+ public static final String CHILD_DEFAULT_HREF = "DefaultHref";
+ public static final String DEFAULT_VALUE = "defval";
+ public static final String CHILD_JS_ALERT = "SearchTargetAlert";
+ private CCPageTitleModel m_titleModel = null;
+ private boolean m_bIsDefaultView = false;
+ private CCI18N m_I18n = null;
+
+ public EntitiesSearchResultViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_titleModel = new CCPageTitleModel();
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_SEARCHRESULT_TITLE, CCPageTitle.class);
+ registerChild(CHILD_TABLE_VIEW, SearchTableView.class);
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_HELP1_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_HELP2_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_HELP3_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_ENTITYID_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_ENTITY_TYPE_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_TYPE_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_SEARCHTEXT_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_RESULTS_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_RESTRICT_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_CONTEXT_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_IS_NEW_SEARCH, CCHiddenField.class);
+ registerChild(CHILD_SEARCH_BUTTON, CCButton.class);
+ registerChild(CHILD_DEFAULT_HREF, CCHref.class);
+ registerChild(CHILD_JS_ALERT, CCStaticTextField.class);
+ m_titleModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_SEARCHRESULT_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_TABLE_VIEW)) {
+ SearchTableView child = new SearchTableView(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_ENTITYID_HIDDEN) ||
+ name.equals(CHILD_ENTITY_TYPE_HIDDEN) ||
+ name.equals(CHILD_TYPE_HIDDEN) ||
+ name.equals(CHILD_SEARCHTEXT_HIDDEN) ||
+ name.equals(CHILD_RESULTS_HIDDEN) ||
+ name.equals(CHILD_RESTRICT_HIDDEN) ||
+ name.equals(CHILD_CONTEXT_HIDDEN)||
+ name.equals(CHILD_IS_NEW_SEARCH)) {
+ CCHiddenField child = new CCHiddenField(this, name, DEFAULT_VALUE);
+ return child;
+ }
+ else if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_SEARCH_BUTTON)) {
+ View child = new CCButton(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_DEFAULT_HREF)) {
+ View child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_JS_ALERT)) {
+ String alert1 = m_I18n.getMessage("APOC.navigation.search.target.alert1");
+ CCStaticTextField child = new CCStaticTextField(this, name, alert1);
+ child.setEscape(false);
+ return child;
+ }
+ else if (name.equals(CHILD_HELP1_TEXT) || name.equals(CHILD_HELP2_TEXT) ||
+ name.equals(CHILD_HELP3_TEXT)) {
+ View child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if ((m_titleModel != null) && m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleDefaultHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ m_bIsDefaultView = true;
+ forwardTo(getRequestContext());
+ }
+
+ public void handleSearchButtonRequest(RequestInvocationEvent event)
+ throws ModelControlException, ServletException, IOException {
+ forwardTo(getRequestContext());
+ }
+
+ public boolean beginSearchResultTitleDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ if (m_bIsDefaultView) {
+ m_titleModel.setPageTitleText("APOC.search.help.title");
+ m_titleModel.setPageTitleHelpMessage("");
+ }
+
+ return true;
+ }
+
+ public boolean beginHelpDisplay(ChildDisplayEvent event) throws ModelControlException {
+ return m_bIsDefaultView;
+ }
+
+ public boolean beginEntitiesSearchTableViewDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ CCHiddenField isNewSearch = (CCHiddenField)getChild(CHILD_IS_NEW_SEARCH);
+ String isNewSearchValue = (String)isNewSearch.getValue();
+ if (isNewSearchValue != null && isNewSearchValue.equals("true")) {
+ SearchTableView view = (SearchTableView)getChild(CHILD_TABLE_VIEW);
+ CCActionTable table = (CCActionTable)(view.getChild(view.CHILD_ENTITY_TABLE));
+ table.resetStateData();
+ isNewSearch.setValue("false");
+ }
+ return !m_bIsDefaultView;
+ }
+}
diff --git a/src/com/sun/apoc/manager/EntityContentViewBean.java b/src/com/sun/apoc/manager/EntityContentViewBean.java
new file mode 100755
index 0000000..72b1b06
--- /dev/null
+++ b/src/com/sun/apoc/manager/EntityContentViewBean.java
@@ -0,0 +1,301 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.entities.MemberTableModel;
+import com.sun.apoc.manager.entities.MemberTableView;
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.apoc.templates.parsing.TemplateRepository;
+import com.sun.apoc.manager.profiles.AssignedAboveTableModel;
+import com.sun.apoc.manager.profiles.AssignedAboveTableView;
+import com.sun.apoc.manager.profiles.AssignedTableModel;
+import com.sun.apoc.manager.profiles.AssignedTableView;
+import com.sun.apoc.spi.SPIException;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import java.io.IOException;
+import java.util.Iterator;
+import javax.servlet.ServletException;
+public class EntityContentViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "EntityContent";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/EntityContent.jsp";
+ public static final String CHILD_DEFAULT_HREF = "DefaultHref";
+ public static final String CHILD_UPDATE_HREF = "UpdateHref";
+ public static final String CHILD_RESULT_BUTTON = "ResultButton";
+ public static final String CHILD_FORM = "EntityContentForm";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_READONLY = "JSReadOnly";
+ public static final String CHILD_PROFILE_TITLE = "AssignedTitle";
+ public static final String CHILD_TABLE_VIEW = "AssignedTableView";
+ public static final String CHILD_ABOVETABLE_VIEW = "AssignedAboveTableView";
+ public static final String CHILD_MEMBER_TABLE_VIEW = "MemberTableView";
+ public static final String CHILD_RENAME_TEXT = "RenameMessage";
+ public static final String CHILD_SWAP_TEXT = "NavigationConditionalImageSwap";
+ public static final String CHILD_NAME_HIDDEN = "NewName";
+ public static final String CHILD_COMMENT_HIDDEN = "NewComment";
+ public static final String CHILD_LOCATION_HIDDEN = "NewLocation";
+ public static final String CHILD_COMMAND_HIDDEN = "CommandHidden";
+ public static final String CHILD_PARAMETERS_HIDDEN = "CommandParametersHidden";
+ public static final String CHILD_ANCHOR_HIDDEN = "Anchor";
+ public static final String CHILD_HELPLOCALE_HIDDEN = "HelpLocale";
+ protected AssignedTableModel m_Model = null;
+
+ public EntityContentViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_DEFAULT_HREF, CCHref.class);
+ registerChild(CHILD_UPDATE_HREF, CCHref.class);
+ registerChild(CHILD_RESULT_BUTTON, CCButton.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_READONLY, CCStaticTextField.class);
+ registerChild(CHILD_RENAME_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_SWAP_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_PROFILE_TITLE, CCPageTitle.class);
+ registerChild(CHILD_TABLE_VIEW, AssignedTableView.class);
+ registerChild(CHILD_ABOVETABLE_VIEW, AssignedAboveTableView.class);
+ registerChild(CHILD_MEMBER_TABLE_VIEW, MemberTableView.class);
+ registerChild(CHILD_NAME_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_COMMENT_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_LOCATION_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_COMMAND_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_PARAMETERS_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_ANCHOR_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_HELPLOCALE_HIDDEN, CCHiddenField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_DEFAULT_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_UPDATE_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_RESULT_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE) ||
+ name.equals(CHILD_READONLY) ||
+ name.equals(CHILD_RENAME_TEXT) ||
+ name.equals(CHILD_SWAP_TEXT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_PROFILE_TITLE)) {
+ CCPageTitleModel pageTitleModel = new CCPageTitleModel();
+ Toolbox2.setPageTitleHelp(pageTitleModel, "APOC.sync.result.title",
+ "APOC.profile.page.title", "gbgdc.html");
+ CCPageTitle child = new CCPageTitle(this, pageTitleModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_TABLE_VIEW)) {
+ AssignedTableView child = new AssignedTableView(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_ABOVETABLE_VIEW)) {
+ AssignedAboveTableView child = null;
+ try {
+ child = new AssignedAboveTableView(this, name);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ return child;
+ }
+ else if (name.equals(CHILD_MEMBER_TABLE_VIEW)) {
+ MemberTableView child = null;
+ try {
+ child = new MemberTableView(this, name);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ return child;
+ }
+ else if (name.equals(CHILD_NAME_HIDDEN) ||
+ name.equals(CHILD_COMMENT_HIDDEN) ||
+ name.equals(CHILD_LOCATION_HIDDEN) ||
+ name.equals(CHILD_COMMAND_HIDDEN) ||
+ name.equals(CHILD_PARAMETERS_HIDDEN) ||
+ name.equals(CHILD_ANCHOR_HIDDEN) ||
+ name.equals(CHILD_HELPLOCALE_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleDefaultHrefRequest(RequestInvocationEvent event) {
+ forwardTo(getRequestContext());
+ }
+
+ public void handleUpdateHrefRequest(RequestInvocationEvent event) {
+ TemplateRepository.getDefaultRepository().update();
+ forwardTo(getRequestContext());
+ }
+
+ public boolean beginJSReadOnlyDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCStaticTextField text = (CCStaticTextField) getChild(CHILD_READONLY);
+ boolean bIsReadOnly = false;
+
+ try {
+ bIsReadOnly = Toolbox2.getSelectedEntity().getProfileRepository().isReadOnly();
+ } catch (SPIException se) {
+ throw new ServletException(se);
+ }
+
+ text.setValue(Boolean.toString(bIsReadOnly));
+ return true;
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+
+ if ((alert.getSummary() != null) && (alert.getSummary().length() > 0)) {
+ return true;
+ }
+
+ boolean bIsReadOnly = false;
+
+ try {
+ bIsReadOnly = Toolbox2.getSelectedEntity().getProfileRepository().isReadOnly();
+ } catch (SPIException se) {
+ Toolbox2.prepareErrorDisplay(se, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ return true;
+ }
+
+ if (bIsReadOnly) {
+ alert.setValue(CCAlertInline.TYPE_INFO);
+ alert.setType(CCAlertInline.TYPE_INFO);
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ alert.setSummary(i18n.getMessage("APOC.policies.info.readonly.access"));
+ }
+
+ return bIsReadOnly;
+ }
+
+ public boolean beginAssignedAboveViewDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ AssignedAboveTableModel model = (AssignedAboveTableModel) getModel(AssignedAboveTableModel.class);
+ return (model.getNumRows()>0);
+ }
+
+ public boolean beginConditionalMemberTableDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ MemberTableModel model = (MemberTableModel) getModel(MemberTableModel.class);
+ return (model.getNumRows()>0);
+ }
+
+ public boolean beginAssignedTitleDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCPageTitle title = (CCPageTitle) getChild(event.getChildName());
+ title.getModel().setPageTitleText(Toolbox2.buildEntityTitle(null));
+ return true;
+ }
+
+ public boolean beginCommandHiddenDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCHiddenField hidden = (CCHiddenField) getChild(event.getChildName());
+ hidden.setValue("");
+ return true;
+ }
+
+ public boolean beginCommandParametersHiddenDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCHiddenField hidden = (CCHiddenField) getChild(event.getChildName());
+ hidden.setValue("");
+ return true;
+ }
+
+ public boolean beginNavigationConditionalImageSwapDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ StringBuffer sJavascript = new StringBuffer();
+ CCStaticTextField text = (CCStaticTextField) getChild(event.getChildName());
+ NavigationModel navModel = (NavigationModel) getRequestContext().getModelManager().getModel(
+ NavigationModel.class, "NavTree", true, true);
+ int nSelectedNodeId = navModel.getSelectedNode().getId();
+ Iterator dirtyNodes = navModel.getDirtyNodeIds();
+ while (dirtyNodes.hasNext()) {
+ int nNodeId = ((Integer)dirtyNodes.next()).intValue();
+ boolean bHasAssigned= navModel.getAssignedState(nNodeId);
+ if (nNodeId == nSelectedNodeId) {
+ nNodeId=-1;
+ }
+ sJavascript.append("top.navigation.switchImage("+nNodeId+","+bHasAssigned+"); ");
+ }
+ text.setValue(sJavascript.toString());
+ navModel.clearDirtyNodeIds();
+ return true;
+ }
+
+ public AssignedTableModel getModel() {
+ if (m_Model == null) {
+ m_Model = (AssignedTableModel) getModel(AssignedTableModel.class);
+ m_Model.setDocument(getRequestContext().getServletContext(), "/jsp/profiles/AssignedTable.xml");
+ }
+
+ return m_Model;
+ }
+}
diff --git a/src/com/sun/apoc/manager/MainWindowTabsModel.java b/src/com/sun/apoc/manager/MainWindowTabsModel.java
new file mode 100755
index 0000000..bb9bc9f
--- /dev/null
+++ b/src/com/sun/apoc/manager/MainWindowTabsModel.java
@@ -0,0 +1,82 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestParticipant;
+import com.sun.web.ui.model.CCNavNode;
+import com.sun.web.ui.model.CCTabsModel;
+
+public class MainWindowTabsModel extends CCTabsModel implements RequestParticipant {
+
+// public static final int TASKS_TAB_ID = 1;
+ public static final int ASSIGNED_TAB_ID = 1; //2;
+ public static final int AVAILABLE_TAB_ID= 2; //3;
+
+ public void setRequestContext(RequestContext requestContext){
+
+ // Add tasks node
+// CCNavNode tasksTab = new CCNavNode(TASKS_TAB_ID,
+// "Common Tasks",
+// "Shows a list of common tasks.",
+// "Shows a list of common tasks.");
+// tasksTab.setOnClick("javascript: top.location.href='/apoc/manager/Onepane?Onepane.OnepanePageletView.OnepaneTabs.TabHref="+TASKS_TAB_ID+"'; return false;");
+// addNode(tasksTab);
+
+ // Add assigned profiles node
+ CCNavNode assignedTab = new CCNavNode(ASSIGNED_TAB_ID,
+ "APOC.tabs.tree.title",
+ "APOC.tabs.tree.help",
+ "APOC.tabs.tree.help");
+ assignedTab.setOnClick("javascript: top.location.href='/apoc/manager/Threepane'; return false;");
+ addNode(assignedTab);
+
+ // Add all profiles node
+ CCNavNode allTab = new CCNavNode(AVAILABLE_TAB_ID,
+ "APOC.tabs.all.title",
+ "APOC.tabs.all.help",
+ "APOC.tabs.all.help");
+ allTab.setOnClick("javascript: top.location.href='/apoc/manager/Onepane?Onepane.OnepanePageletView.OnepaneTabs.TabHref="+AVAILABLE_TAB_ID+"'; return false;");
+ addNode(allTab);
+
+
+
+
+// setSelectedNode(TASKS_TAB_ID);
+ setSelectedNode(ASSIGNED_TAB_ID);
+ }
+}
diff --git a/src/com/sun/apoc/manager/Makefile.am b/src/com/sun/apoc/manager/Makefile.am
new file mode 100644
index 0000000..34e56be
--- /dev/null
+++ b/src/com/sun/apoc/manager/Makefile.am
@@ -0,0 +1,7 @@
+ANT = @ANT@
+
+all:
+ $(ANT)
+
+clean-local:
+ $(ANT) -q clean
diff --git a/src/com/sun/apoc/manager/ManagerServlet.java b/src/com/sun/apoc/manager/ManagerServlet.java
new file mode 100644
index 0000000..823a4f8
--- /dev/null
+++ b/src/com/sun/apoc/manager/ManagerServlet.java
@@ -0,0 +1,112 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import javax.servlet.ServletException;
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestContextImpl;
+import com.iplanet.jato.ViewBeanManager;
+import com.iplanet.jato.ModelManager;
+import com.iplanet.jato.ModelTypeMap;
+import com.sun.web.common.ConsoleServletBase;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.apoc.templates.parsing.TemplateRepository;
+
+
+public class ManagerServlet extends ConsoleServletBase {
+
+ public static final String DEFAULT_MODULE_URL = "../manager";
+ public static final String TEMPLATES_BASE_DIR = "/packages";
+ public static final String TEMPLATE_DTD_PATH = "/dtd/policytemplate.dtd";
+
+ private static ModelTypeMap MODEL_TYPE_MAP;
+
+ public static String PACKAGE_NAME =
+ getPackageName(ManagerServlet.class.getName());
+
+
+ protected void initializeRequestContext(RequestContext requestContext) {
+ super.initializeRequestContext(requestContext);
+
+ // Set a view bean manager in the request context. This must be done at
+ // the module level because the view bean manager is module specifc.
+ ViewBeanManager viewBeanManager =
+ new ViewBeanManager(requestContext, PACKAGE_NAME);
+ CCDebug.trace3("PACKAGE_NAME: "+PACKAGE_NAME);
+ ((RequestContextImpl)requestContext).
+ setViewBeanManager(viewBeanManager);
+
+ ModelManager modelManager =
+ new ModelManager(requestContext, MODEL_TYPE_MAP);
+ ((RequestContextImpl)requestContext).setModelManager(modelManager);
+
+ }
+
+
+ public String getModuleURL() {
+ // The superclass can be configured from init params specified at
+ // deployment time. If the superclass has been configured with
+ // a different module URL, it will return a non-null value here.
+ // If it has not been configured with a different URL, we use our
+ // (hopefully) sensible default.
+ String result = (super.getModuleURL() != null)
+ ? super.getModuleURL()
+ : DEFAULT_MODULE_URL;
+ CCDebug.trace3(result);
+ return result;
+ }
+
+
+ protected void onUncaughtException(RequestContext requestContext, Exception e) throws ServletException {
+ // displays an error message for any uncaught exception
+ AlertViewBean alertView = (AlertViewBean) requestContext.getViewBeanManager().getViewBean(AlertViewBean.class);
+ alertView.setException(e);
+ alertView.forwardTo(requestContext);
+ }
+
+
+ public void init() throws ServletException {
+ super.init();
+ String templateDir = getServletContext().getRealPath(TEMPLATES_BASE_DIR);
+ String dtdPath = getServletContext().getRealPath(TEMPLATE_DTD_PATH);
+ TemplateRepository templateRepository =
+ TemplateRepository.getDefaultRepository();
+ templateRepository.setTemplatesDir(templateDir);
+ templateRepository.setDTDLocation(dtdPath);
+ templateRepository.initialize();
+ MODEL_TYPE_MAP = new ModelTypeMapImpl();
+ }
+}
diff --git a/src/com/sun/apoc/manager/MastheadViewBean.java b/src/com/sun/apoc/manager/MastheadViewBean.java
new file mode 100644
index 0000000..a63c100
--- /dev/null
+++ b/src/com/sun/apoc/manager/MastheadViewBean.java
@@ -0,0 +1,134 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.model.CCBreadCrumbsModel;
+import com.sun.web.ui.model.CCBreadCrumbsModelInterface;
+import com.sun.web.ui.model.CCMastheadModel;
+import com.sun.web.ui.model.CCTabsModelInterface;
+import com.sun.web.ui.view.breadcrumb.CCBreadCrumbs;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.masthead.CCPrimaryMasthead;
+import com.sun.web.ui.view.tabs.CCTabs;
+import java.util.ResourceBundle;
+public class MastheadViewBean extends ViewBeanBase {
+
+ public static final String PAGE_NAME = "Masthead";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/Masthead.jsp";
+ public static final String CHILD_DEFAULT_HREF = "DefaultHref";
+ public static final String CHILD_SELECTION_HREF = "SelectionHref";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_CONTEXT_PATH = "ContextPath";
+ public static final String CHILD_TABS = "ThreepaneTabs";
+
+ //
+ private MainWindowTabsModel m_tabsModel = null;
+
+ public MastheadViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_DEFAULT_HREF, CCHref.class);
+ registerChild(CHILD_SELECTION_HREF, CCHref.class);
+ registerChild(CHILD_MASTHEAD, CCPrimaryMasthead.class);
+ registerChild(CHILD_CONTEXT_PATH, CCBreadCrumbs.class);
+ registerChild(CHILD_TABS, CCTabs.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_DEFAULT_HREF) || name.equals(CHILD_SELECTION_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_MASTHEAD)) {
+ CCMastheadModel model = new CCMastheadModel();
+ CCPrimaryMasthead child = new CCPrimaryMasthead(this, model, name);
+ return child;
+ }
+ else if (name.equals(CHILD_CONTEXT_PATH)) {
+ CCBreadCrumbsModel model = (CCBreadCrumbsModel) getModel(CCBreadCrumbsModel.class);
+ model.appendRow();
+ model.setValue(CCBreadCrumbsModel.LABEL, Toolbox2.getI18n("APOC.masthead.path.link"));
+ model.setValue(CCBreadCrumbsModel.MOUSEOVER, Toolbox2.getI18n("APOC.masthead.path.help"));
+ model.setValue(CCBreadCrumbsModel.COMMANDFIELD, CHILD_SELECTION_HREF);
+ model.setValue(CCBreadCrumbsModel.HREF_VALUE, "a");
+ model.setValue(CCBreadCrumbsModelInterface.ONCLICK, "javascript:top.location.href='/apoc/manager/Welcome?ClosePopups=true'; return false;");
+ model.setCurrentPageLabel((String) getSession().getAttribute(Constants.POLICY_MANAGER_NAME));
+
+ CCBreadCrumbs child = new CCBreadCrumbs(this, model, name);
+ return child;
+ }
+ else if (name.equals(CHILD_TABS)) {
+ CCTabs child = new CCTabs(this, getTabsModel(), name);
+ return child;
+ }
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+
+ public void handleDefaultHrefRequest(RequestInvocationEvent event) {
+ forwardTo(getRequestContext());
+ }
+
+ public boolean beginMastheadDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ CCPrimaryMasthead child = (CCPrimaryMasthead) getChild(CHILD_MASTHEAD);
+ CCMastheadModel model = (CCMastheadModel) child.getCCMastheadModel();
+
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ ResourceBundle bundle = i18n.getResourceBundle();
+ String productNameAlt = i18n.getMessage("APOC.masthead.altTextVer");
+ model.setAlt(productNameAlt);
+
+ return true;
+ }
+
+ protected CCTabsModelInterface getTabsModel() {
+ if (m_tabsModel == null) {
+ m_tabsModel = (MainWindowTabsModel) getModel(MainWindowTabsModel.class);
+ m_tabsModel.setSelectedNode(MainWindowTabsModel.ASSIGNED_TAB_ID);
+ }
+ return m_tabsModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/ModelTypeMapImpl.java b/src/com/sun/apoc/manager/ModelTypeMapImpl.java
new file mode 100644
index 0000000..c1bb60e
--- /dev/null
+++ b/src/com/sun/apoc/manager/ModelTypeMapImpl.java
@@ -0,0 +1,56 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.ModelTypeMap;
+import com.iplanet.jato.ModelTypeMapBase;
+
+/**
+ *
+ * @author lb118646
+ */
+public class ModelTypeMapImpl extends ModelTypeMapBase implements ModelTypeMap {
+
+ /** Creates a new instance of ModelTypeMapImpl */
+ public ModelTypeMapImpl() {
+ super();
+ }
+
+ static {
+ addModelInterfaceMapping(PaletteModel.class, PaletteModelImpl.class);
+ }
+
+}
diff --git a/src/com/sun/apoc/manager/OnepanePageletView.java b/src/com/sun/apoc/manager/OnepanePageletView.java
new file mode 100755
index 0000000..63e8b9d
--- /dev/null
+++ b/src/com/sun/apoc/manager/OnepanePageletView.java
@@ -0,0 +1,116 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.JspChildDisplayEvent;
+import com.sun.apoc.manager.profiles.AvailableView;
+import com.sun.web.ui.model.CCTabsModelInterface;
+import com.sun.web.ui.view.tabs.CCTabs;
+import java.io.IOException;
+import javax.servlet.ServletException;
+
+public class OnepanePageletView extends RequestHandlingViewBase {
+
+ public static final String CHILD_TABS = "OnepaneTabs";
+ public static final String CHILD_AVAILABLE_VIEW = "Available";
+// public static final String CHILD_TASK_VIEW = "Task";
+ private MainWindowTabsModel m_tabsModel = null;
+ private String m_viewedEntityString = null;
+
+ public OnepanePageletView(View parent, String name) {
+ super(parent, name);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_TABS, CCTabs.class);
+
+ if(((OnepaneViewBean)getRootView()).getSelectedTab().equals(Integer.toString(MainWindowTabsModel.AVAILABLE_TAB_ID))) {
+ registerChild(CHILD_AVAILABLE_VIEW, AvailableView.class);
+ }
+// else {
+// registerChild(CHILD_TASK_VIEW, TaskView.class);
+// }
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_TABS)) {
+ CCTabs child = new CCTabs(this, getTabsModel(), name);
+ return child;
+ } else if (name.equals(CHILD_AVAILABLE_VIEW)) {
+ AvailableView child = new AvailableView(this, name);
+ return child;
+// } else if (name.equals(CHILD_TASK_VIEW)) {
+// TaskView child = new TaskView(this, name);
+// return child;
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) {
+ m_viewedEntityString = Toolbox2.getSelectedEntityId();
+ }
+
+ public boolean beginOnepaneTabsDisplay(ChildDisplayEvent event){
+ getTabsModel().setSelectedNode(Integer.parseInt(((OnepaneViewBean)getRootView()).getSelectedTab()));
+ return true;
+ }
+
+ public boolean beginTabSelectionDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ if(((OnepaneViewBean)getRootView()).getSelectedTab().equals(Integer.toString(MainWindowTabsModel.AVAILABLE_TAB_ID))) {
+ ((JspChildDisplayEvent) event).getPageContext().include("/jsp/profiles/Available.jsp");
+ }
+// else {
+// ((JspChildDisplayEvent) event).getPageContext().include("/jsp/Task.jsp");
+// }
+ return true;
+ }
+
+ protected CCTabsModelInterface getTabsModel() {
+ if (m_tabsModel == null) {
+ m_tabsModel = (MainWindowTabsModel) getModel(MainWindowTabsModel.class);
+ }
+ return m_tabsModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/OnepaneViewBean.java b/src/com/sun/apoc/manager/OnepaneViewBean.java
new file mode 100755
index 0000000..a24f250
--- /dev/null
+++ b/src/com/sun/apoc/manager/OnepaneViewBean.java
@@ -0,0 +1,177 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.iplanet.jato.view.html.OptionList;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.model.CCBreadCrumbsModel;
+import com.sun.web.ui.model.CCBreadCrumbsModelInterface;
+import com.sun.web.ui.model.CCMastheadModel;
+import com.sun.web.ui.view.breadcrumb.CCBreadCrumbs;
+import com.sun.web.ui.view.html.CCDropDownMenu;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCOption;
+import com.sun.web.ui.view.html.CCOptionSeparator;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.masthead.CCPrimaryMasthead;
+import com.sun.web.ui.view.tabs.CCNodeEventHandlerInterface;
+import java.util.Iterator;
+import java.util.ResourceBundle;
+
+public class OnepaneViewBean extends ViewBeanBase implements CCNodeEventHandlerInterface {
+
+ public static final String PAGE_NAME = "Onepane";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/Onepane.jsp";
+ public static final String CHILD_FORM = "OnepaneForm";
+ public static final String CHILD_DEFAULT_HREF = "DefaultHref";
+ public static final String CHILD_SELECTION_HREF = "SelectionHref";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_CONTEXT_PATH = "ContextPath";
+ public static final String CHILD_PAGELET_VIEW = "OnepanePageletView";
+ public static final String CHILD_ANCHOR_HIDDEN = "Anchor";
+ public static final String CHILD_HELPLOCALE_HIDDEN = "HelpLocale";
+
+// private String m_sSelectedView = Integer.toString(MainWindowTabsModel.TASKS_TAB_ID);
+ private String m_sSelectedView = Integer.toString(MainWindowTabsModel.ASSIGNED_TAB_ID);
+
+ public OnepaneViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+
+ // Determine the selected tab. Doing this that early will allow us to
+ // selectively register children in the according *PageletView class by
+ // calling the getSelectedTab() method defined below.
+ // Selectively registering the pagelet children can result in a
+ // significant speedup, if e.g. the init routines of the children
+ // involve heavy traffic with the LDAP backend
+
+ String sViewMenu = RequestManager.getRequest().getQueryString();
+ int nPosition = -1;
+
+ if (sViewMenu!=null) {
+ nPosition = sViewMenu.indexOf("TabHref=");
+ if (nPosition!=-1) {
+ nPosition += "TabHref=".length();
+ sViewMenu = sViewMenu.substring(nPosition, nPosition+1);
+ m_sSelectedView = sViewMenu;
+ RequestManager.getRequest().getSession(true).setAttribute(Constants.SELECTED_MAINWINDOW_TAB, m_sSelectedView);
+ }
+ }
+
+ if (nPosition==-1) {
+ m_sSelectedView = (String) RequestManager.getRequest().getSession(true).getAttribute(Constants.SELECTED_MAINWINDOW_TAB);
+ }
+
+ if ( (m_sSelectedView==null) || (m_sSelectedView.length()==0)) {
+// m_sSelectedView = Integer.toString(MainWindowTabsModel.TASKS_TAB_ID);
+ m_sSelectedView = Integer.toString(MainWindowTabsModel.ASSIGNED_TAB_ID);
+ }
+ }
+
+ public String getSelectedTab() {
+ return m_sSelectedView;
+ }
+
+ public void nodeClicked(RequestInvocationEvent event, int id) {
+ forwardTo(getRequestContext());
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_DEFAULT_HREF, CCHref.class);
+ registerChild(CHILD_SELECTION_HREF, CCHref.class);
+ registerChild(CHILD_MASTHEAD, CCPrimaryMasthead.class);
+ registerChild(CHILD_PAGELET_VIEW, OnepanePageletView.class);
+ registerChild(CHILD_CONTEXT_PATH, CCBreadCrumbs.class);
+ registerChild(CHILD_ANCHOR_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_HELPLOCALE_HIDDEN, CCHiddenField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_DEFAULT_HREF) || name.equals(CHILD_SELECTION_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_MASTHEAD)) {
+ CCMastheadModel model = new CCMastheadModel();
+ CCPrimaryMasthead child = new CCPrimaryMasthead(this, model, name);
+ return child;
+ }
+ else if (name.equals(CHILD_CONTEXT_PATH)) {
+ CCBreadCrumbsModel model = (CCBreadCrumbsModel) getModel(CCBreadCrumbsModel.class);
+ model.appendRow();
+ model.setValue(CCBreadCrumbsModel.LABEL, Toolbox2.getI18n("APOC.masthead.path.link"));
+ model.setValue(CCBreadCrumbsModel.MOUSEOVER, Toolbox2.getI18n("APOC.masthead.path.help"));
+ model.setValue(CCBreadCrumbsModel.COMMANDFIELD, CHILD_SELECTION_HREF);
+ model.setValue(CCBreadCrumbsModel.HREF_VALUE, "a");
+ model.setValue(CCBreadCrumbsModelInterface.ONCLICK, "javascript:top.location.href='/apoc/manager/Welcome?ClosePopups=true'; return false;");
+ model.setCurrentPageLabel((String) getSession().getAttribute(Constants.POLICY_MANAGER_NAME));
+
+ CCBreadCrumbs child = new CCBreadCrumbs(this, model, name);
+ return child;
+ }
+ if (name.equals(CHILD_PAGELET_VIEW)) {
+ OnepanePageletView child = new OnepanePageletView(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_ANCHOR_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, CHILD_ANCHOR_HIDDEN, null);
+ return child;
+ }
+ else if (name.equals(CHILD_HELPLOCALE_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, CHILD_HELPLOCALE_HIDDEN, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleDefaultHrefRequest(RequestInvocationEvent event) {
+ forwardTo(getRequestContext());
+ }
+}
diff --git a/src/com/sun/apoc/manager/PaletteModel.java b/src/com/sun/apoc/manager/PaletteModel.java
new file mode 100644
index 0000000..ab35851
--- /dev/null
+++ b/src/com/sun/apoc/manager/PaletteModel.java
@@ -0,0 +1,58 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+
+package com.sun.apoc.manager;
+
+import java.util.Vector;
+import com.iplanet.jato.model.DatasetModel;
+
+/**
+ *
+ * @author lb118646
+ */
+public interface PaletteModel extends DatasetModel {
+
+ public static String PRESET_COLOR = "PresetColor";
+ public static String PRESET_COLOR_NOHASH = "PresetColorNoHash";
+ public static String PRESET_COLOR_NUMBER = "PresetColorNo";
+ public static String IMAGE = "Image";
+ public static String PRESET_COLOR_NAME = "PresetColorName";
+
+ public void setRow(int rowNumber);
+ public void updateColors(String names, String values);
+ public void storeColorsInBackend();
+}
diff --git a/src/com/sun/apoc/manager/PaletteModelImpl.java b/src/com/sun/apoc/manager/PaletteModelImpl.java
new file mode 100644
index 0000000..46b7709
--- /dev/null
+++ b/src/com/sun/apoc/manager/PaletteModelImpl.java
@@ -0,0 +1,270 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import java.util.Vector;
+import java.lang.Integer;
+
+import com.iplanet.jato.RequestParticipant;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.DefaultModel;
+import com.iplanet.jato.model.ModelControlException;
+
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.common.CCI18N;
+
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.cfgtree.policynode.PolicyNode;
+import com.sun.apoc.spi.cfgtree.property.Property;
+import com.sun.apoc.spi.cfgtree.PolicyTree;
+
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.manager.settings.ColorChooserView;
+import com.sun.apoc.manager.ProfileWindowFramesetViewBean;
+import com.sun.apoc.manager.settings.ColorChooserTag;
+import com.sun.apoc.manager.settings.PolicyMgrHelper;
+
+/**
+ *
+ * @author lb118646
+ */
+public class PaletteModelImpl extends DefaultModel
+ implements PaletteModel, RequestParticipant {
+
+ public Vector m_ColorsHex = new Vector();
+ public Vector m_ColorsName = new Vector();
+ public int currentRowNumber;
+ private CCI18N m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+
+
+ private final int NO_TILES_PER_ROW = 8;
+ /** Creates a new instance of PaletteModelImpl */
+ public PaletteModelImpl() {
+ try {
+ // Check to see if the custom color names and hex values have been
+ // stored in the the backend
+ PolicyManager pmgr = Toolbox2.getPolicyManager();
+ PolicyMgrHelper pmgrHelper = ProfileWindowFramesetViewBean.getProfileHelper();
+
+ Property nameProp = pmgrHelper.getProperty("com.sun.apoc.manager" +
+ PolicyTree.PATH_SEPARATOR +
+ "colorlistName");
+ Property hexProp = pmgrHelper.getProperty("com.sun.apoc.manager" +
+ PolicyTree.PATH_SEPARATOR +
+ "colorlistHex");
+ String hexColorList = null;
+ if (hexProp!=null)
+ hexColorList = hexProp.getValue();
+
+ if (hexColorList == null) {
+ setupHexColors();
+ } else {
+ String[] hexColorArray = hexColorList.split(";");
+ for (int j = 0; j<hexColorArray.length; j++) {
+ m_ColorsHex.add(hexColorArray[j]);
+ }
+ }
+ String nameColorList = null;
+ if (nameProp!=null)
+ nameColorList = nameProp.getValue();
+ if (nameColorList == null) {
+ setupNameColors();
+ } else {
+ String[] nameColorArray = nameColorList.split(";");
+ for (int j = 0; j<nameColorArray.length; j++) {
+ m_ColorsName.add(nameColorArray[j]);
+ }
+ }
+ } catch (SPIException re) {
+ CCDebug.trace1("RegistryException caught: "+re);
+ }
+ }
+
+ public void setRequestContext(RequestContext requestContext) {
+ try {
+ this.setSize(NO_TILES_PER_ROW);
+ } catch (ModelControlException mce) {
+ CCDebug.trace3("ModelControlException caught: "+mce);
+ }
+ }
+
+ public void setRow(int rowNumber) {
+ currentRowNumber = rowNumber;
+ }
+
+ public Object getValue(String str){
+ int loc = 0;
+ try {
+ loc = getLocation();
+ } catch (ModelControlException mce) {
+ CCDebug.trace3("Model Control Exception caught: "+mce);
+ }
+ // convert the row number and location in the table to a location in the
+ // vectors that can be used
+ int stringListLoc = 0;
+ if (currentRowNumber > 0){
+ stringListLoc = (currentRowNumber*8)+loc;
+ } else {
+ stringListLoc = loc;
+ }
+
+ if (str.equals(PRESET_COLOR)) {
+ String colorHex = null;
+ if (stringListLoc < m_ColorsHex.size()) {
+ colorHex = (String) m_ColorsHex.get(stringListLoc);
+ }
+ if (colorHex == null)
+ colorHex = "#ffffff";
+ else {
+ if (colorHex.equals(""))
+ colorHex = "#ffffff";
+ }
+ return colorHex;
+
+ } else if (str.equals(PRESET_COLOR_NOHASH)) {
+ String colorHex = null;
+ if (stringListLoc < m_ColorsHex.size()){
+ colorHex = (String) m_ColorsHex.get(stringListLoc);
+ }
+ if (colorHex == null)
+ colorHex = "#ffffff";
+ else {
+ if (colorHex.equals(""))
+ colorHex = "#ffffff";
+ }
+ String color = colorHex.substring(1);
+ return color;
+
+ } else if (str.equals(PRESET_COLOR_NUMBER)) {
+ return (new Integer(stringListLoc).toString());
+
+ } else if (str.equals(IMAGE)) {
+ String imageName = null;
+ String hasValue = null;
+ if (stringListLoc < m_ColorsName.size()) {
+ hasValue = (String) m_ColorsName.get(stringListLoc);
+ imageName = "/com_sun_web_ui/images/other/dot.gif";
+ }
+ if ((hasValue == null) || (hasValue.equals("undefined")))
+ imageName = "/apoc/images/x.png";
+ else {
+ if (hasValue.equals(""))
+ imageName = "/apoc/images/x.png";
+ }
+ return imageName;
+
+ } else if (str.equals(PRESET_COLOR_NAME)) {
+ String colorName = null;
+ if (stringListLoc < m_ColorsName.size())
+ colorName = (String) m_ColorsName.get(stringListLoc);
+ if ((colorName == null) || (colorName.equals("undefined")))
+ colorName = "";
+ return colorName;
+
+ } else {
+ return super.getValue(str);
+
+ }
+ }
+
+ public void updateColors(String names, String values) {
+ m_ColorsHex.clear();
+ m_ColorsName.clear();
+ String[] namesArray = names.split(",");
+ String[] valuesArray = values.split(",");
+ for (int i=0;i<namesArray.length;i++){
+ m_ColorsName.add(i, namesArray[i]);
+ m_ColorsHex.add(i, valuesArray[i]);
+ }
+ }
+
+ public void storeColorsInBackend() {
+ PolicyMgrHelper pmgrHelper = ProfileWindowFramesetViewBean.getProfileHelper();
+ try {
+ Property nameProp = pmgrHelper.getProperty("com.sun.apoc.manager" +
+ PolicyTree.PATH_SEPARATOR +
+ "colorlistName");
+ Property hexProp = pmgrHelper.getProperty("com.sun.apoc.manager" +
+ PolicyTree.PATH_SEPARATOR +
+ "colorlistHex");
+ if (nameProp == null) {
+ nameProp = pmgrHelper.createProperty("com.sun.apoc.manager" +
+ PolicyTree.PATH_SEPARATOR +
+ "colorlistName");
+ hexProp = pmgrHelper.createProperty("com.sun.apoc.manager" +
+ PolicyTree.PATH_SEPARATOR +
+ "colorlistHex");
+ }
+
+ nameProp.putString(convertVectorToString(m_ColorsName));
+ hexProp.putString(convertVectorToString(m_ColorsHex));
+
+ pmgrHelper.flushAllChanges();
+ } catch (SPIException e) {
+ CCDebug.trace1("Error saving changes for chooser!", e);
+ }
+ }
+
+ public void setupHexColors(){
+ String[] hexColorsArray = ColorChooserTag.hexColors;
+ for (int j = 0; j<hexColorsArray.length; j++) {
+ m_ColorsHex.add(hexColorsArray[j]);
+ }
+ }
+
+ //Added in corresponding order to how the hex values were added
+ //thus indexing not used
+ public void setupNameColors(){
+ String[] nameColorsArray = ColorChooserTag.colorNames ;
+ for (int j = 0; j<nameColorsArray.length; j++) {
+ m_ColorsName.add(nameColorsArray[j]);
+ }
+ }
+
+ private String convertVectorToString(Vector vector) {
+ String vectorString = "" ;
+ for(int j = 0; j < vector.size() ;j++) {
+ vectorString = vectorString.concat((String)vector.elementAt(j) + ";") ;
+ }
+
+ return vectorString ;
+ }
+
+}
+
diff --git a/src/com/sun/apoc/manager/PaletteRowTiledView.java b/src/com/sun/apoc/manager/PaletteRowTiledView.java
new file mode 100644
index 0000000..efacb62
--- /dev/null
+++ b/src/com/sun/apoc/manager/PaletteRowTiledView.java
@@ -0,0 +1,107 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.RequestHandlingTiledViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.model.DefaultModel;
+
+import com.sun.web.ui.common.CCDebug;
+
+/**
+ *
+ * @author lb118646
+ */
+public class PaletteRowTiledView extends RequestHandlingTiledViewBase {
+
+ public static final String CHILD_TD_TILEDVIEW =
+ "PaletteTDTiledView";
+
+ private static final int NO_ROWS_PALETTE = 12;
+
+ private DefaultModel m_PaletteRowModel = null;
+
+ /** Creates a new instance of PaletteRowTiledView */
+ public PaletteRowTiledView(View parent, String name) {
+ super(parent, name);
+ setPrimaryModel(getPaletteRowModel());
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_TD_TILEDVIEW, PaletteTDTiledView.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_TD_TILEDVIEW)) {
+ PaletteTDTiledView child = new PaletteTDTiledView(this,
+ CHILD_TD_TILEDVIEW);
+ return child;
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ resetTileIndex();
+ }
+
+ public boolean beginPaletteTDTiledViewDisplay (ChildDisplayEvent event) {
+ PaletteTDTiledView child = (PaletteTDTiledView) getChild(CHILD_TD_TILEDVIEW);
+ PaletteModel model = (PaletteModel) child.getPrimaryModel();
+ model.setRow(getDisplayIndex());
+ return true;
+ }
+
+ private DefaultModel getPaletteRowModel() {
+ if (m_PaletteRowModel == null) {
+ m_PaletteRowModel = new DefaultModel("PaletteRowModel");
+ try {
+ m_PaletteRowModel.setSize(NO_ROWS_PALETTE);
+ } catch (ModelControlException mce) {
+ CCDebug.trace2("ModelControlException caught");
+ }
+ }
+ return m_PaletteRowModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/PaletteTDTiledView.java b/src/com/sun/apoc/manager/PaletteTDTiledView.java
new file mode 100644
index 0000000..c4ef65c
--- /dev/null
+++ b/src/com/sun/apoc/manager/PaletteTDTiledView.java
@@ -0,0 +1,141 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.RequestHandlingTiledViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+
+import com.sun.web.ui.view.html.CCStaticTextField;
+
+/**
+ *
+ * @author lb118646
+ */
+public class PaletteTDTiledView extends RequestHandlingTiledViewBase {
+
+ public static final String CHILD_PRESET_COLOR =
+ "PresetColor";
+ public static final String CHILD_PRESET_COLOR_NOHASH =
+ "PresetColorNoHash";
+ public static final String CHILD_PRESET_COLOR_NO =
+ "PresetColorNo";
+ public static final String CHILD_IMAGE =
+ "Image";
+ public static final String CHILD_PRESET_COLOR_NAME =
+ "PresetColorName";
+
+ private PaletteModel m_PaletteModel = null;
+
+ /** Creates a new instance of PaletteTDTiledView */
+ public PaletteTDTiledView(View parent, String name) {
+ super(parent, name);
+ setPrimaryModel(getPaletteModel());
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_PRESET_COLOR, CCStaticTextField.class);
+ registerChild(CHILD_PRESET_COLOR_NOHASH, CCStaticTextField.class);
+ registerChild(CHILD_PRESET_COLOR_NO, CCStaticTextField.class);
+ registerChild(CHILD_IMAGE, CCStaticTextField.class);
+ registerChild(CHILD_PRESET_COLOR_NAME, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_PRESET_COLOR)) {
+ CCStaticTextField child = new CCStaticTextField(this,
+ getPrimaryModel(),
+ CHILD_PRESET_COLOR,
+ PaletteModel.PRESET_COLOR,
+ "");
+ return child;
+
+ } else if (name.equals(CHILD_PRESET_COLOR_NOHASH)) {
+ CCStaticTextField child = new CCStaticTextField(this,
+ getPrimaryModel(),
+ CHILD_PRESET_COLOR_NOHASH,
+ PaletteModel.PRESET_COLOR_NOHASH,
+ "");
+ return child;
+
+ } else if (name.equals(CHILD_PRESET_COLOR_NO)) {
+ CCStaticTextField child = new CCStaticTextField(this,
+ getPrimaryModel(),
+ CHILD_PRESET_COLOR_NO,
+ PaletteModel.PRESET_COLOR_NUMBER,
+ "");
+ return child;
+
+ } else if (name.equals(CHILD_IMAGE)) {
+ CCStaticTextField child = new CCStaticTextField(this,
+ getPrimaryModel(),
+ CHILD_IMAGE,
+ PaletteModel.IMAGE,
+ "");
+ return child;
+
+ } else if (name.equals(CHILD_PRESET_COLOR_NAME)) {
+ CCStaticTextField child = new CCStaticTextField(this,
+ getPrimaryModel(),
+ CHILD_PRESET_COLOR_NAME,
+ PaletteModel.PRESET_COLOR_NAME,
+ "");
+ return child;
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ if (getPrimaryModel() == null){
+ throw new ModelControlException("Primary Model is null");
+ }
+ super.beginDisplay(event);
+ resetTileIndex();
+ }
+
+ protected PaletteModel getPaletteModel(){
+ if (m_PaletteModel == null) {
+ m_PaletteModel = (PaletteModel) getModel(PaletteModel.class);
+ }
+ return m_PaletteModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/PoliciesFramesetViewBean.java b/src/com/sun/apoc/manager/PoliciesFramesetViewBean.java
new file mode 100644
index 0000000..b4f70f5
--- /dev/null
+++ b/src/com/sun/apoc/manager/PoliciesFramesetViewBean.java
@@ -0,0 +1,62 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+
+
+public class PoliciesFramesetViewBean extends ViewBeanBase {
+
+ public static final String PAGE_NAME = "PoliciesFrameset";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/profiles/PoliciesFrameset.jsp";
+
+ public PoliciesFramesetViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ // TO DO
+ }
+
+ protected View createChild(String name) {
+ // TO DO
+ return null;
+ }
+} \ No newline at end of file
diff --git a/src/com/sun/apoc/manager/PolicySettingsButtonsViewBean.java b/src/com/sun/apoc/manager/PolicySettingsButtonsViewBean.java
new file mode 100644
index 0000000..b1edbc3
--- /dev/null
+++ b/src/com/sun/apoc/manager/PolicySettingsButtonsViewBean.java
@@ -0,0 +1,170 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.profiles.AdvancedOptionsViewBean;
+import com.sun.apoc.manager.profiles.GeneralSettingsViewBean;
+import com.sun.apoc.manager.profiles.ProfileWindowModel;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import java.io.IOException;
+import javax.servlet.ServletException;
+public class PolicySettingsButtonsViewBean extends ViewBeanBase {
+
+ public static final String PAGE_NAME = "PolicySettingsButtons";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/settings/Buttons.jsp";
+ public static final String CHILD_SAVE_BUTTON = "SaveButton";
+ public static final String CHILD_CLOSE_BUTTON = "CloseButton";
+ public static final String CHILD_FORM = "Form";
+ public static final String CHILD_JS_ALERT1 = "Alert1";
+ public static final String CHILD_JS_ALERT2 = "Alert2";
+ public static final String CHILD_JS_ALERT3 = "Alert3";
+ public static final String CHILD_JS_ALERT4 = "Alert4";
+ public static final String CHILD_JS_ALERT5 = "Alert5";
+
+ private ProfileWindowModel mEditorModel = null;
+ private CCI18N m_I18n = null;
+ public PolicySettingsButtonsViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_SAVE_BUTTON, CCButton.class);
+ registerChild(CHILD_CLOSE_BUTTON, CCButton.class);
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_JS_ALERT1, CCStaticTextField.class);
+ registerChild(CHILD_JS_ALERT2, CCStaticTextField.class);
+ registerChild(CHILD_JS_ALERT3, CCStaticTextField.class);
+ registerChild(CHILD_JS_ALERT4, CCStaticTextField.class);
+ registerChild(CHILD_JS_ALERT5, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_SAVE_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_CLOSE_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_FORM)) {
+ CCForm child = new CCForm(this, name);
+ return child;
+
+ } else if (name.equals(CHILD_JS_ALERT1)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, m_I18n.getMessage("APOC.profilewnd.js.alert1"));
+ return child;
+
+ } else if (name.equals(CHILD_JS_ALERT2)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, m_I18n.getMessage("APOC.profilewnd.js.alert2"));
+ return child;
+
+ } else if (name.equals(CHILD_JS_ALERT3)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, m_I18n.getMessage("APOC.profilewnd.js.alert3"));
+ return child;
+
+ } else if (name.equals(CHILD_JS_ALERT4)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, m_I18n.getMessage("APOC.profilewnd.js.alert4"));
+ return child;
+
+ } else if (name.equals(CHILD_JS_ALERT5)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, m_I18n.getMessage("APOC.profilewnd.js.alert5"));
+ return child;
+
+ } else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public boolean beginSaveButtonDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ if (getEditorModel().getProfile() == null) {
+ return false;
+ } else {
+ // do not show the save button for read-only profiles
+ if (getEditorModel().isReadOnlyProfile()) {
+ return false;
+ } else {
+ String selectedTab = getEditorModel().getSelectedTab();
+ return ( (selectedTab.equals(ProfileWindowModel.GENERAL_TAB)) ||
+ (selectedTab.equals(ProfileWindowModel.SETTINGS_TAB)) ||
+ (selectedTab.equals(ProfileWindowModel.ADVANCED_TAB)));
+ }
+ }
+ }
+
+/* public void handleCloseButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+
+ CCStaticTextField child = (CCStaticTextField)((ProfileWindowViewBean)getViewBean(ProfileWindowViewBean.class)).getChild(ProfileWindowViewBean.CHILD_TAB_CHANGE_SCRIPT);
+ child.setValue("closeEditorAndRefresh()");
+
+ String selectedTab = getEditorModel().getSelectedTab();
+ try {
+ mapRequestParameters(getRequestContext().getRequest());
+ if (selectedTab.equals(ProfileWindowModel.GENERAL_TAB)) {
+ ((GeneralSettingsViewBean)getViewBean(GeneralSettingsViewBean.class)).handleSaveButtonRequest(event);
+ } else if (selectedTab.equals(ProfileWindowModel.SETTINGS_TAB)) {
+ ((PolicySettingsContentViewBean)getViewBean(PolicySettingsContentViewBean.class)).handleSaveButtonRequest(event);
+ } else if (selectedTab.equals(ProfileWindowModel.ADVANCED_TAB)) {
+ ((AdvancedOptionsViewBean)getViewBean(AdvancedOptionsViewBean.class)).handleDefaultCommandRequest(event);
+ }
+ } catch (ModelControlException ex) {
+ CCDebug.trace3(ex.toString());
+ }
+ } */
+
+ private ProfileWindowModel getEditorModel() {
+ if (mEditorModel == null) {
+ mEditorModel = (ProfileWindowModel) getModel(ProfileWindowModel.class);
+ }
+ return mEditorModel;
+ }
+} \ No newline at end of file
diff --git a/src/com/sun/apoc/manager/PolicySettingsContentViewBean.java b/src/com/sun/apoc/manager/PolicySettingsContentViewBean.java
new file mode 100644
index 0000000..52bad39
--- /dev/null
+++ b/src/com/sun/apoc/manager/PolicySettingsContentViewBean.java
@@ -0,0 +1,621 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+
+import java.util.ArrayList;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.profiles.ProfileWindowModel;
+import com.sun.apoc.manager.profiles.ProfileWindowSettingsCategoriesTableModel;
+import com.sun.apoc.templates.parsing.TemplatePage;
+import com.sun.apoc.manager.resource.ResourceRepository;
+import com.sun.apoc.manager.settings.JumpLinks;
+import com.sun.apoc.manager.settings.SectionModel;
+import com.sun.apoc.manager.settings.Sheet;
+import com.sun.apoc.manager.settings.SheetModel;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.table.CCActionTable;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.templates.parsing.TemplateRepository;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.taglib.header.CCHtmlHeaderTag;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.alert.CCAlert;
+import java.io.File;
+import java.util.Collections;
+import java.util.Locale;
+
+
+public class PolicySettingsContentViewBean extends ViewBeanBase {
+
+ public static final String PAGE_NAME = "PolicySettingsContent";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/settings/Content.jsp";
+
+ public static final String CHILD_PAGETITLE = "PageTitle";
+ public static final String CHILD_HEADER = "Header";
+ public static final String CHILD_FORM = "Form";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_ALERT_JS = "AlertJavascript";
+ public static final String CHILD_NAVIGATION_TABLE = "PoliciesNavigationTable";
+ public static final String CHILD_TEMPLATE_CONTENT = "PolicyTemplateContent";
+ public static final String CHILD_JUMP_LINKS = "JumpLinksSection";
+ public static final String CHILD_SECTIONS_TILED = "SectionsTiledView";
+ public static final String CHILD_SAVE_BUTTON = "SaveButton";
+ public static final String CHILD_FOOTNOTE = "Footnote";
+ public static final String CHILD_PROTECTED_CHOOSERS = "ProtectedChoosers";
+ public static final String CHILD_PROTECTED_CHOOSERS_TYPE = "ProtectedChoosersType";
+ public static final String CHILD_HANDLER_TEXT = "XmlHandlerText";
+ public static final String CHILD_DISABLED_FIELDS_VALUES = "DisabledFieldsValues";
+ public static final String CHILD_INVALID_HEX = "InvalidHex";
+ public static final String CHILD_LOCALIZED_NOTSET = "LocalizedNotSet";
+ public static final String CHILD_REFRESH_SCRIPT = "RefreshNavigationTreeScript";
+ public static final String CHILD_ORIGINAL_VALUES = "OriginalValues";
+ public static final String CHILD_JUMPTO_SCRIPT = "JumpToScript";
+ public static final String CHILD_CLOSE_WINDOW_SCRIPT = "CloseWindowScript";
+ public static final String CHILD_HELP_PAGE = "HelpPage";
+
+ private String mFirstDisplay = null;
+ public static final String FIRST_DISPLAY = "firstDisplay";
+
+ private CCPageTitleModel mTitleModel = null;
+ private ProfileWindowSettingsCategoriesTableModel mCategoriesModel = null;
+ private ProfileWindowModel mEditorModel = null;
+ private SheetModel mTemplateModel = null;
+ private CCI18N m_i18n = null;
+
+ public PolicySettingsContentViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_i18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_PAGETITLE, CCPageTitle.class);
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_ALERT_JS, CCStaticTextField.class);
+ registerChild(CHILD_NAVIGATION_TABLE, CCActionTable.class);
+ registerChild(CHILD_TEMPLATE_CONTENT, Sheet.class);
+ registerChild(CHILD_JUMP_LINKS, JumpLinks.class);
+ registerChild(CHILD_INVALID_HEX, CCStaticTextField.class);
+ registerChild(CHILD_LOCALIZED_NOTSET, CCStaticTextField.class);
+ registerChild(CHILD_SAVE_BUTTON, CCButton.class);
+ registerChild(CHILD_FOOTNOTE, CCStaticTextField.class);
+ registerChild(CHILD_PROTECTED_CHOOSERS, CCHiddenField.class);
+ registerChild(CHILD_PROTECTED_CHOOSERS_TYPE, CCHiddenField.class);
+ registerChild(CHILD_HANDLER_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_DISABLED_FIELDS_VALUES, CCHiddenField.class);
+ registerChild(CHILD_REFRESH_SCRIPT, CCStaticTextField.class);
+ registerChild(CHILD_ORIGINAL_VALUES, CCHiddenField.class);
+ registerChild(CHILD_JUMPTO_SCRIPT, CCStaticTextField.class);
+ registerChild(CHILD_CLOSE_WINDOW_SCRIPT, CCStaticTextField.class);
+ registerChild(CHILD_HELP_PAGE, CCHiddenField.class);
+ getPageTitleModel().registerChildren(this);
+ getCategoriesModel().registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_PAGETITLE)) {
+ CCPageTitle child = new CCPageTitle(this, getPageTitleModel(), name);
+ Toolbox2.setPageTitleHelp(getPageTitleModel(), "APOC.profilewnd.settings.title",
+ "APOC.profilewnd.settings.title.help", "gbgeb.html");
+ return child;
+
+ } else if (name.equals(CHILD_FORM)) {
+ CCForm child = new CCForm(this, name);
+ return child;
+
+ } else if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_ALERT_JS)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_SAVE_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_REFRESH_SCRIPT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_FOOTNOTE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ child.setValue(m_i18n.getMessage("APOC.policies.footnote"));
+ return child;
+
+ } else if (name.equals(CHILD_JUMPTO_SCRIPT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_CLOSE_WINDOW_SCRIPT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_INVALID_HEX)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ child.setValue(m_i18n.getMessage("APOC.setcolor.invalid.hex"));
+ return child;
+
+ } else if (name.equals(CHILD_LOCALIZED_NOTSET)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ child.setValue(SectionModel.getUndefinedValue());
+ return child;
+
+ } else if (name.equals(CHILD_TEMPLATE_CONTENT)) {
+ Sheet child = new Sheet(this, getTemplateModel(), name, false);
+ return child;
+
+ } else if (name.equals(CHILD_JUMP_LINKS)) {
+ JumpLinks child = new JumpLinks(this, getTemplateModel(), name, false);
+ return child;
+
+ } else if (name.equals(CHILD_PROTECTED_CHOOSERS)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_PROTECTED_CHOOSERS_TYPE)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_HANDLER_TEXT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_ORIGINAL_VALUES)) {
+ CCHiddenField child =
+ new CCHiddenField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_DISABLED_FIELDS_VALUES)) {
+ CCHiddenField child =
+ new CCHiddenField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_HELP_PAGE)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+
+ } else if (getPageTitleModel().isChildSupported(name)) {
+ return getPageTitleModel().createChild(this, name);
+
+ } else if (name.equals(CHILD_NAVIGATION_TABLE)) {
+ CCActionTable child = new CCActionTable(this,
+ getCategoriesModel(), name);
+ return child;
+
+ } else if (getCategoriesModel().isChildSupported(name)) {
+ return getCategoriesModel().createChild(this, name);
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+
+ public boolean beginFootnoteDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ return !getCategoriesModel().hasSubCategories();
+ }
+
+
+ public boolean beginPoliciesNavigationAreaDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ CCPageTitle child = (CCPageTitle) getChild(CHILD_PAGETITLE);
+ Profile profile = getEditorModel().getProfile();
+ TemplatePage page = getCategoriesModel().getSelectedTemplatePage();
+ ResourceRepository resources = ResourceRepository.getDefaultRepository();
+ String categoryName = resources.getMessage(
+ page.getResourceId(),
+ page.getResourceBundle(),
+ RequestManager.getRequest());
+ Object[] args = {profile.getDisplayName()};
+ String settingsTitle = m_i18n.getMessage("APOC.policies.settings_title", args);
+ if (categoryName.equals("APOC.policies.root")) {
+ child.getModel().setPageTitleText(settingsTitle);
+ } else {
+ child.getModel().setPageTitleText(categoryName + " - " + settingsTitle);
+ }
+ if (page.getDescriptionId() != null) {
+ String help = resources.getMessage(
+ page.getDescriptionId(),
+ page.getResourceBundle(),
+ RequestManager.getRequest());
+
+
+ String helpFile = page.getHelpFile();
+ // If there is no helpFile specified we are either on a navigation page
+ // or there simply wasn't one specified and we want the normal online
+ // help to appear.
+ if (helpFile==null)
+ helpFile="policies";
+
+ // set the current package name
+ String pkgName = page.getTemplatePackageName();
+
+ // set the country and language
+ boolean fileExists = false;
+ StringBuffer name = new StringBuffer();
+ StringBuffer checkFileName = new StringBuffer();
+ StringBuffer helpLocale = new StringBuffer();
+ File associatedHelpFile;
+ String fileName;
+ if (!helpFile.equals("policies")){
+
+ checkFileName.append("packages").append(File.separator)
+ .append(pkgName).append(File.separator)
+ .append("web")
+ .append(helpFile);
+ ArrayList locales = (ArrayList) Collections.list(
+ getRequestContext().getRequest().getLocales());
+ for (int i=0; i<locales.size(); i++){
+ name = new StringBuffer();
+ Locale locale = (Locale) locales.get(i);
+ String lang = locale.getLanguage();
+ if (lang != null && lang.length() > 0) {
+ helpLocale.append("_").append(lang);
+ String country = locale.getCountry();
+ if (country != null && country.length() > 0) {
+ helpLocale.append("_").append(country);
+ String variant = locale.getVariant();
+ if (variant != null && variant.length() > 0) {
+ helpLocale.append("_").append(variant);
+ }
+ }
+ }
+ // The english help files are all en_US suffixed so need to
+ // handle them specially
+ if (helpLocale.toString().equals("_en")) {
+ helpLocale.append("_US");
+ }
+ name.append(checkFileName.toString())
+ .append(helpLocale.toString())
+ .append(".html");
+
+ fileName = getRequestContext().
+ getServletContext().getRealPath(name.toString());
+ associatedHelpFile = new File(fileName);
+ if (associatedHelpFile.exists()) {
+ fileExists = true;
+ } else {
+ // If the fully specified locale file doesn't exist try
+ // step back from the variant, to the country, to the language,
+ // to the plain file name
+ int loc = helpLocale.toString().lastIndexOf("_");
+ while (loc != -1) {
+ name.delete(0, name.length());
+ helpLocale.delete(loc, helpLocale.length());
+ // The english help files are all en_US suffixed so need to
+ // handle them specially
+ if (helpLocale.toString().equals("_en")) {
+ helpLocale.append("_US");
+ }
+ name.append(checkFileName.toString())
+ .append(helpLocale.toString())
+ .append(".html");
+ fileName = getRequestContext().
+ getServletContext().getRealPath(name.toString());
+ associatedHelpFile = new File(fileName);
+ if (associatedHelpFile.exists()) {
+ fileExists = true;
+ break;
+ }
+ if (helpLocale.toString().equals("_en_US")) {
+ loc = -1;
+ } else {
+ loc = helpLocale.toString().lastIndexOf("_");
+ }
+ }
+ }
+ if (fileExists == true) {
+ break;
+ }
+
+ helpLocale.delete(0, helpLocale.length());
+ }
+
+ // A localized file was found so set hidden field
+ if (fileExists == false) {
+ // Try for the default of en_US
+ name = name.delete(0, name.length());
+ name.append(checkFileName.toString())
+ .append("_en_US.html");
+ fileName = getRequestContext().
+ getServletContext().getRealPath(name.toString());
+ associatedHelpFile = new File(fileName);
+
+ if (associatedHelpFile.exists()) {
+ fileExists=true;
+ }
+ }
+ }
+
+
+
+ CCHiddenField pagePath = (CCHiddenField)getChild(CHILD_HELP_PAGE);
+ pagePath.setValue(File.separator + "apoc" + File.separator + name);
+
+ if (fileExists == true) {
+ StringBuffer linkBuffer = new StringBuffer();
+ String tooltip = m_i18n.getMessage("APOC.help.helpTooltip");
+ linkBuffer.append("<a href=\"\" title=\"")
+ .append(tooltip)
+ .append("\" onClick=\"javascript: openTemplateHelp(); return false;\">")
+ .append(m_i18n.getMessage("APOC.help.more"))
+ .append("</a>");
+ help = help + " " + linkBuffer.toString();
+ }
+ child.getModel().setPageTitleHelpMessage(help);
+
+ }
+
+ return getCategoriesModel().hasSubCategories();
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+
+ getCategoriesModel().setRequestContext(getRequestContext());
+
+ // show an info message if the user has read-only access
+ if (getEditorModel().isReadOnlyProfile()) {
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ getEditorModel().setInfoMessage(i18n.getMessage("APOC.policies.info.readonly.access"), "");
+ }
+ if (getEditorModel().getAnchor() != null && getEditorModel().getAnchor().length() != 0) {
+ CCStaticTextField anchorText = (CCStaticTextField) getChild(CHILD_JUMPTO_SCRIPT);
+ anchorText.setEscape(false);
+ anchorText.setValue("jumpTo('"+ getEditorModel().getAnchor() + "');");
+ }
+ String query = getRequestContext().getRequest().getQueryString();
+ if (query != null) {
+ String selectedSet = Toolbox2.decode(query.substring(query.indexOf("=") + 1));
+ if (query.indexOf(TemplateRepository.SET_PREFIX) != -1) {
+ getEditorModel().setSelectedCategory(selectedSet);
+ CCStaticTextField text = (CCStaticTextField) getChild(CHILD_REFRESH_SCRIPT);
+ text.setEscape(false);
+ text.setValue("setCurrentCategory('" + getEditorModel().getSelectedCategory() + "');refreshNavigationTree();");
+ }
+ }
+ }
+
+ public boolean beginHeaderDisplay(ChildDisplayEvent event) {
+ super.endDisplay(event);
+
+ // Reset state when displaying this page for the first time;
+ // otherwise, state will persist until cookies expire.
+ if (mFirstDisplay == null) {
+ mFirstDisplay = (String) getRequestContext().getRequest().getSession().getAttribute(FIRST_DISPLAY) ;
+ }
+ if (mFirstDisplay == null) {
+ mFirstDisplay = "true";
+ }
+ if (mFirstDisplay.equals("true")) {
+ CCHtmlHeaderTag tag = (CCHtmlHeaderTag) event.getSource();
+ tag.resetFocus(true);
+ tag.resetScroll(true);
+ }
+ mFirstDisplay = "false";
+ getRequestContext().getRequest().getSession().setAttribute(FIRST_DISPLAY, "false");
+ return true;
+ }
+
+ public boolean beginXmlHandlerTextDisplay(ChildDisplayEvent event) {
+ updateChooserList();
+ updateXmlHandlers();
+ return true;
+ }
+
+ public void handleSaveButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+
+ try {
+ String disabledValues = getDisplayFieldStringValue(CHILD_DISABLED_FIELDS_VALUES);
+ getTemplateModel().setValue(SectionModel.DISABLED_FIELDS_VALUES, disabledValues) ;
+ getTemplateModel().storeChanges();
+ String selectedCat = (String)getRequestContext().getRequest().getSession().getAttribute(ProfileWindowSettingsTreeViewBean.AFTER_SAVE_CATEGORY);
+ if (selectedCat != null) {
+ getEditorModel().setSelectedCategory(selectedCat);
+ getTemplateModel().setRequestContext(getRequestContext());
+ getRequestContext().getRequest().getSession().removeAttribute(ProfileWindowSettingsTreeViewBean.AFTER_SAVE_CATEGORY);
+ // mFirstDisplay = "true";
+ // setPageSessionAttribute(FIRST_DISPLAY, "true");
+ }
+ } catch (SPIException ex) {
+ getEditorModel().setErrorMessage(Toolbox2.getI18n("APOC.profile.error.storing"), ex);
+ }
+ forwardTo();
+ }
+
+ public void handleCloseButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ CCStaticTextField child = (CCStaticTextField)getChild(CHILD_CLOSE_WINDOW_SCRIPT);
+ child.setValue("closeEditorAndRefresh();");
+
+ try {
+ mapRequestParameters(getRequestContext().getRequest());
+ handleSaveButtonRequest(event);
+ } catch (ModelControlException ex) {
+ CCDebug.trace3(ex.toString());
+ }
+ }
+
+ public boolean beginSaveButtonDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ // do not show the save button for read-only profiles
+ return !getEditorModel().isReadOnlyProfile();
+ }
+
+ public boolean beginAlertAreaDisplay(ChildDisplayEvent event) {
+ if (getEditorModel().hasAlert()) {
+ if (!getEditorModel().getAlertType().equals(CCAlert.TYPE_ERROR)) {
+ CCAlertInline child = (CCAlertInline) getChild(CHILD_ALERT);
+ child.setType(getEditorModel().getAlertType());
+ child.setSummary(getEditorModel().getAlertMessage());
+ child.setDetail(getEditorModel().getAlertDetails());
+ getEditorModel().setErrorMessage(null, "");
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public boolean beginAlertJavascriptDisplay(ChildDisplayEvent event) {
+ if (getEditorModel().hasAlert()) {
+ if (getEditorModel().getAlertType().equals(CCAlert.TYPE_ERROR)) {
+ CCStaticTextField child = (CCStaticTextField) getChild(CHILD_ALERT_JS);
+ StringBuffer buffer = new StringBuffer("alert('");
+ buffer.append(getEditorModel().getAlertMessage());
+ buffer.append("\\n");
+ buffer.append(getEditorModel().getAlertDetails());
+ buffer.append("');");
+ child.setValue(buffer.toString());
+ getEditorModel().setErrorMessage(null, "");
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void handleCategoryHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ // the user selected a different category within the table - thus
+ // trigger a refresh of the navigation tree and the navigation table
+ CCStaticTextField text = (CCStaticTextField) getChild(CHILD_REFRESH_SCRIPT);
+ text.setEscape(false);
+ text.setValue("setCurrentCategory('" + getEditorModel().getSelectedCategory() + "');refreshNavigationTree();");
+ getEditorModel().setAnchor("");
+ getRequestContext().getRequest().getSession().setAttribute(FIRST_DISPLAY, "true");
+ forwardTo();
+ }
+
+ protected CCPageTitleModel getPageTitleModel() {
+ if (mTitleModel == null) {
+ mTitleModel = new CCPageTitleModel(
+ RequestManager.getRequestContext().getServletContext(),
+ "/jsp/settings/ContentPageTitle.xml");
+ }
+ return mTitleModel;
+ }
+
+ protected ProfileWindowSettingsCategoriesTableModel getCategoriesModel() {
+ if (mCategoriesModel == null) {
+ mCategoriesModel = new ProfileWindowSettingsCategoriesTableModel();
+ }
+ return mCategoriesModel;
+ }
+
+ protected ProfileWindowModel getEditorModel() {
+ if (mEditorModel == null) {
+ mEditorModel = (ProfileWindowModel) getModel(ProfileWindowModel.class);
+ }
+ return mEditorModel;
+ }
+
+ protected SheetModel getTemplateModel() {
+ return (SheetModel) getModel(SheetModel.class);
+ }
+
+ private void updateChooserList() {
+ ArrayList ids = getTemplateModel().getChooserIds() ;
+
+ if(ids == null || ids.size() == 0) {
+ return;
+ }
+
+ String protectedChooserValues = "";
+ String protectedChooserTypes = "";
+ for(int i = 0; i < ids.size(); i++) {
+ String id = (String)ids.get(i);
+ ArrayList values = getTemplateModel().getChooserValues(id);
+ String codedId = new Integer(id.hashCode()).toString();
+ for(int j = 0; j < values.size(); j++) {
+ String value = (String)values.get(j);
+ protectedChooserValues = protectedChooserValues + value + ";";
+ protectedChooserTypes = protectedChooserTypes + codedId + ";";
+ }
+ ChooserHelper chooserHelper = new ChooserHelper(id);
+ chooserHelper.setSystemElements(values);
+ }
+ CCHiddenField hiddenTypes = (CCHiddenField) getChild(CHILD_PROTECTED_CHOOSERS_TYPE) ;
+ hiddenTypes.setValue(protectedChooserTypes);
+
+ CCHiddenField hiddenValues = (CCHiddenField) getChild(CHILD_PROTECTED_CHOOSERS) ;
+ hiddenValues.setValue(protectedChooserValues);
+
+ getTemplateModel().resetChoosers() ;
+
+ }
+
+ private void updateXmlHandlers() {
+ ArrayList handlers = getTemplateModel().getXmlHandlers() ;
+
+ if(handlers == null || handlers.size() == 0) {
+ return;
+ }
+
+
+ StringBuffer buffer = new StringBuffer() ;
+ for(int i = 0; i < handlers.size(); i++) {
+ buffer.append((String)handlers.get(i)) ;
+ }
+ CCStaticTextField handlerText = (CCStaticTextField) getChild(CHILD_HANDLER_TEXT) ;
+ handlerText.setEscape(false) ;
+ handlerText.setValue((String)buffer.toString()) ;
+ getTemplateModel().resetXmlHandlers() ;
+ }
+} \ No newline at end of file
diff --git a/src/com/sun/apoc/manager/PolicySettingsFramesetViewBean.java b/src/com/sun/apoc/manager/PolicySettingsFramesetViewBean.java
new file mode 100644
index 0000000..245e861
--- /dev/null
+++ b/src/com/sun/apoc/manager/PolicySettingsFramesetViewBean.java
@@ -0,0 +1,62 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+
+
+public class PolicySettingsFramesetViewBean extends ViewBeanBase {
+
+ public static final String PAGE_NAME = "SettingsFrameset";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/settings/Frameset.jsp";
+
+ public PolicySettingsFramesetViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ // TO DO
+ }
+
+ protected View createChild(String name) {
+ // TO DO
+ return null;
+ }
+} \ No newline at end of file
diff --git a/src/com/sun/apoc/manager/ProfileWindowFramesetViewBean.java b/src/com/sun/apoc/manager/ProfileWindowFramesetViewBean.java
new file mode 100644
index 0000000..12ef1b0
--- /dev/null
+++ b/src/com/sun/apoc/manager/ProfileWindowFramesetViewBean.java
@@ -0,0 +1,130 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.sun.apoc.manager.profiles.ProfileWindowModel;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.view.html.CCStaticTextField;
+
+
+public class ProfileWindowFramesetViewBean extends ViewBeanBase {
+
+ public static final String CHILD_TITLE = "Title";
+ public static final String PAGE_NAME = "ProfileWindowFrameset";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/profiles/ProfileWindowFrameset.jsp";
+
+ private ProfileWindowModel mModel = null;
+
+
+ public ProfileWindowFramesetViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_TITLE, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_TITLE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, "");
+ return child;
+
+ } else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+
+ public boolean beginTitleDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ // set window title
+ CCStaticTextField child = (CCStaticTextField) getChild(CHILD_TITLE);
+ Profile pg = getModel().getProfile();
+ if (pg != null) {
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ child.setValue(i18n.getMessage("APOC.profiles.profile") + " " + pg.getDisplayName());
+ }
+ return true;
+ }
+
+ public boolean beginTabsOnlyDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ if (getModel().getProfile() == null) {
+ return false;
+ } else {
+ return getModel().getSelectedTab().equals(ProfileWindowModel.SETTINGS_TAB);
+ }
+ }
+
+ public boolean beginTabsAndButtonsDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ if (getModel().getProfile() == null) {
+ return true;
+ } else {
+ return !getModel().getSelectedTab().equals(ProfileWindowModel.SETTINGS_TAB);
+ }
+ }
+
+ private ProfileWindowModel getModel() {
+ if (mModel == null) {
+ mModel = (ProfileWindowModel) getModel(ProfileWindowModel.class);
+ }
+ return mModel;
+ }
+
+ // TODO: Remove this - method has been migrated to new ProfileWindowModel
+ public static com.sun.apoc.manager.settings.PolicyMgrHelper getProfileHelper() {
+ ProfileWindowModel mModel = (ProfileWindowModel) com.iplanet.jato.RequestManager.getRequestContext().getModelManager().getModel(ProfileWindowModel.class);
+ return mModel.getProfileHelper();
+ }
+
+ // TODO: Remove this - method has been migrated to new ProfileWindowModel
+ public static com.sun.apoc.spi.profiles.Profile getSelectedProfile() {
+ ProfileWindowModel mModel = (ProfileWindowModel) com.iplanet.jato.RequestManager.getRequestContext().getModelManager().getModel(ProfileWindowModel.class);
+ return mModel.getProfile();
+ }
+
+ // TODO: Remove this - method has been migrated to new ProfileWindowModel
+ public static String SELECTED_PROFILE_ID = ProfileWindowModel.SELECTED_PROFILE;
+} \ No newline at end of file
diff --git a/src/com/sun/apoc/manager/ProfileWindowSettingsTreeViewBean.java b/src/com/sun/apoc/manager/ProfileWindowSettingsTreeViewBean.java
new file mode 100644
index 0000000..115a37b
--- /dev/null
+++ b/src/com/sun/apoc/manager/ProfileWindowSettingsTreeViewBean.java
@@ -0,0 +1,422 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.SortedMap;
+import java.util.TreeMap;
+
+import javax.servlet.ServletException;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.templates.parsing.TemplateCategory;
+import com.sun.apoc.templates.parsing.TemplateRepository;
+import com.sun.apoc.manager.profiles.ProfileWindowModel;
+import com.sun.apoc.manager.resource.ResourceRepository;
+import com.sun.apoc.manager.settings.SectionModel;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.cfgtree.XMLStreamable;
+import com.sun.apoc.spi.cfgtree.policynode.PolicyNode;
+import com.sun.apoc.spi.cfgtree.policynode.PolicyNodeImpl;
+import com.sun.apoc.templates.parsing.TemplatePage;
+import com.sun.apoc.templates.parsing.TemplateSection;
+import com.sun.apoc.templates.parsing.TemplateSet;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.model.CCNavNode;
+import com.sun.web.ui.model.CCNavNodeInterface;
+import com.sun.web.ui.model.CCTreeModel;
+import com.sun.web.ui.model.CCTreeModelInterface;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.tree.CCDynamicTree;
+import com.sun.web.ui.view.tree.CCTreeEventHandlerInterface;
+public class ProfileWindowSettingsTreeViewBean extends ViewBeanBase
+ implements CCTreeEventHandlerInterface{
+
+ public static final String PAGE_NAME = "ProfileWindowSettingsTree";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/categories/PolicyCategories.jsp";
+ public static final String TREE_MODEL = "TreeModel";
+ public static final String CHILD_FORM = "TreeForm";
+ public static final String CHILD_TREE = "Tree";
+ public static final String CHILD_REFRESH_SCRIPT = "RefreshContentScript";
+ public static final String CHILD_REFRESH_BUTTON = "RefreshButton";
+ public static final String CHILD_JUMPTO_SCRIPT = "JumpToScript";
+ public static final String CHILD_HIDDEN_CURRENT_CATEGORY = "CurrentCategory";
+ public static final String CHILD_HIDDEN_TURNER_CLICKED = "TurnerClicked";
+ public static final String AFTER_SAVE_CATEGORY = "AfterSaveSelectedCategory";
+ private CCTreeModel m_treeModel = null;
+ private ProfileWindowModel mEditorModel = null;
+ private boolean m_isFirstLoad = false;
+
+ public ProfileWindowSettingsTreeViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_TREE, CCDynamicTree.class);
+ registerChild(CHILD_REFRESH_SCRIPT, CCStaticTextField.class);
+ registerChild(CHILD_REFRESH_BUTTON, CCButton.class);
+ registerChild(CHILD_JUMPTO_SCRIPT, CCStaticTextField.class);
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_HIDDEN_CURRENT_CATEGORY, CCHiddenField.class);
+ registerChild(CHILD_HIDDEN_TURNER_CLICKED, CCHiddenField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_TREE)) {
+ CCDynamicTree child = new CCDynamicTree(this, name, getTreeModel());
+ return child;
+
+ } else if (name.equals(CHILD_FORM)) {
+ CCForm child = new CCForm(this, name);
+ return child;
+
+ } else if (name.equals(CHILD_REFRESH_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_JUMPTO_SCRIPT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_REFRESH_SCRIPT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_HIDDEN_CURRENT_CATEGORY)) {
+ CCHiddenField child = new CCHiddenField(this, name, "");
+ return child;
+
+ } else if (name.equals(CHILD_HIDDEN_TURNER_CLICKED)) {
+ CCHiddenField child = new CCHiddenField(this, name, "false");
+ return child;
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ CCHiddenField turnerClickedField = (CCHiddenField) getChild(CHILD_HIDDEN_TURNER_CLICKED);
+ String turnerClicked = (String)turnerClickedField.getValue();
+ turnerClickedField.setValue("false");
+ if (turnerClicked != null && turnerClicked.equals("false")) {
+ CCHiddenField currentCategory = (CCHiddenField) getChild(CHILD_HIDDEN_CURRENT_CATEGORY);
+ String templatePath = (String)currentCategory.getValue();
+ if (m_isFirstLoad == true) {
+ templatePath = getEditorModel().determineSelectedCategory();
+ // if (templatePath != null && templatePath.indexOf(TemplateRepository.SET_PREFIX) != -1) {
+ // templatePath = templatePath.substring(0, templatePath.indexOf(TemplateRepository.SET_PREFIX));
+ // }
+ }
+ if (templatePath != null && templatePath.length() != 0) {
+ if (templatePath.indexOf("#") != -1) {
+ templatePath = templatePath.replaceAll("#", "/#");
+ }
+ // Need to add the anchor node value (i.e. #$SET_NAME )back in at this point for getNode to work
+ if (templatePath.indexOf(TemplateRepository.SET_PREFIX) != -1) {
+ int start = templatePath.indexOf(TemplateRepository.SET_PREFIX) + TemplateRepository.SET_PREFIX.length();
+ int end = templatePath.indexOf(TemplateRepository.SET_INDEX_SEPARATOR);
+ String setName = "#" + templatePath.substring(start, end);
+ templatePath = templatePath.replaceAll(TemplateRepository.SET_PREFIX, setName + "/" + TemplateRepository.SET_PREFIX );
+ }
+ String[] categories = templatePath.split("/");
+ CCNavNodeInterface selectedNode = null;
+ for(int i = 0; i < categories.length; i++) {
+ selectedNode = getNode(selectedNode, categories[i]);
+ }
+ if (selectedNode != null) {
+ CCDynamicTree child = (CCDynamicTree) getChild(CHILD_TREE);
+ child.yokeTo(selectedNode);
+ selectedNode.setExpanded(true);
+ }
+ }
+ }
+ }
+
+ public void nodeClicked(RequestInvocationEvent event, int nodeID,
+ String treeName) {
+
+ CCNavNodeInterface node = getTreeModel().getNodeById(nodeID);
+ node.setExpanded(true);
+ StringBuffer buffer = new StringBuffer();
+ String anchor = "";
+ getEditorModel().setAnchor(anchor);
+ while (node != null) {
+ if (node.getValue().indexOf("#") == -1) {
+ buffer.insert(0, node.getValue());
+ buffer.insert(0, '/');
+ } else {
+ anchor = node.getValue();
+ getEditorModel().setAnchor(anchor);
+ }
+ node = node.getParent();
+ }
+ String isSaveRequired = Toolbox2.getParameter("isSaveRequired");
+ if (getEditorModel().getSelectedCategory().equals(buffer.toString())) {
+ CCStaticTextField anchorText = (CCStaticTextField) getChild(CHILD_JUMPTO_SCRIPT);
+ anchorText.setEscape(false);
+ anchorText.setValue("jumpTo('"+ anchor + "');");
+ } else {
+ CCStaticTextField text = (CCStaticTextField) getChild(CHILD_REFRESH_SCRIPT);
+ text.setEscape(false);
+ if (isSaveRequired != null && !isSaveRequired.equals("true")) {
+ text.setValue("refreshSettingsArea();");
+ }
+ }
+ if (isSaveRequired != null && !isSaveRequired.equals("true")) {
+ getEditorModel().setSelectedCategory(buffer.toString());
+ getRequestContext().getRequest().getSession().removeAttribute(ProfileWindowSettingsTreeViewBean.AFTER_SAVE_CATEGORY);
+ } else {
+ getRequestContext().getRequest().getSession().setAttribute(ProfileWindowSettingsTreeViewBean.AFTER_SAVE_CATEGORY, buffer.toString());
+ }
+ CCHiddenField currentCategory = (CCHiddenField) getChild(CHILD_HIDDEN_CURRENT_CATEGORY);
+ String selectedCat = buffer.toString();
+ if (selectedCat.indexOf(TemplateRepository.SET_PREFIX) != -1) {
+ currentCategory.setValue(selectedCat);
+ } else {
+ currentCategory.setValue(selectedCat + anchor);
+ }
+ getRequestContext().getRequest().getSession().setAttribute(PolicySettingsContentViewBean.FIRST_DISPLAY, "true");
+ forwardTo(getRequestContext());
+ }
+
+ public void handleRefreshButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+
+/* CCHiddenField currentCategory = (CCHiddenField) getChild(CHILD_HIDDEN_CURRENT_CATEGORY);
+ String templatePath = (String)currentCategory.getValue();
+ // String templatePath = getEditorModel().getSelectedCategory();
+ if (templatePath != null) {
+ // Need to add the anchor node value (i.e. #$SET_NAME )back in at this point for getNode to work
+ if (templatePath.indexOf(TemplateRepository.SET_PREFIX) != -1) {
+ int start = templatePath.indexOf(TemplateRepository.SET_PREFIX) + TemplateRepository.SET_PREFIX.length();
+ int end = templatePath.indexOf(TemplateRepository.SET_INDEX_SEPARATOR);
+ String setName = "#" + templatePath.substring(start, end);
+ templatePath = templatePath.replaceAll(TemplateRepository.SET_PREFIX, setName + "/" + TemplateRepository.SET_PREFIX );
+ }
+ String[] categories = templatePath.split("/");
+ CCNavNodeInterface selectedNode = null;
+ for(int i = 0; i < categories.length; i++) {
+ selectedNode = getNode(selectedNode, categories[i]);
+ }
+ if (selectedNode != null) {
+ CCDynamicTree child = (CCDynamicTree) getChild(CHILD_TREE);
+ child.yokeTo(selectedNode);
+ selectedNode.setExpanded(true);
+ }
+ } */
+
+ forwardTo();
+ }
+
+ public CCNavNodeInterface getNode(CCNavNodeInterface parent, String value) {
+ List children = null;
+ if (parent != null) {
+ children = parent.getChildren();
+ } else {
+ children = getTreeModel().getNodes();
+ }
+ Iterator it = children.iterator();
+ while(it.hasNext()) {
+ CCNavNodeInterface node = (CCNavNodeInterface) it.next();
+ if (value.equals(node.getValue())) {
+ com.sun.web.ui.common.CCDebug.trace1(node.getValue());
+ return node;
+ }
+ }
+ return null;
+ }
+
+
+ public void turnerClicked(RequestInvocationEvent event, int nodeID,
+ String treeName) {
+ CCHiddenField turnerClicked = (CCHiddenField) getChild(CHILD_HIDDEN_TURNER_CLICKED);
+ turnerClicked.setValue("true");
+ forwardTo(getRequestContext());
+ }
+
+ public static void resetTreeModel() {
+ RequestManager.getRequest().getSession().setAttribute(TREE_MODEL, null);
+ }
+
+ protected CCTreeModel getTreeModel() {
+ if (m_treeModel == null) {
+ m_treeModel = (CCTreeModel) RequestManager.getRequest().getSession().getAttribute(TREE_MODEL);
+ if (m_treeModel == null) {
+ m_isFirstLoad = true;
+ m_treeModel = new CCTreeModel();
+ m_treeModel.setType(CCTreeModelInterface.TITLE_TYPE);
+ RequestManager.getRequest().getSession().setAttribute(TREE_MODEL, m_treeModel);
+ TemplateRepository rep = TemplateRepository.getDefaultRepository();
+ ResourceRepository resources = ResourceRepository.getDefaultRepository();
+ int id = 0;
+
+ HashMap subCategories = rep.getTopLevelCategories();
+ Iterator it = subCategories.values().iterator();
+ SortedMap children = new TreeMap();
+ while(it.hasNext()) {
+ TemplateCategory tiledCategory = (TemplateCategory) it.next();
+ if (tiledCategory.isInScope(getEditorModel().getSettingsScope())) {
+ String catName = resources.getMessage(
+ tiledCategory.getResourceId(),
+ tiledCategory.getResourceBundle(),
+ RequestManager.getRequest());
+ children.put(catName, tiledCategory);
+ }
+ }
+ it = children.keySet().iterator();
+ while(it.hasNext()) {
+ String catName = (String) it.next();
+ TemplateCategory tiledCategory = (TemplateCategory) children.get(catName);
+ CCNavNode node = new CCNavNode(id, catName, null, null);
+ node.setOnClick("return displayCategory(this,'" + getCategoryPath(tiledCategory) + "');");
+ node.setValue(tiledCategory.getDefaultName());
+ m_treeModel.addNode(node);
+ id = addChildren(id, node, tiledCategory, resources) + 1;
+ }
+ }
+ }
+ return m_treeModel;
+ }
+
+ public int addChildren(int id, CCNavNode node, TemplateCategory parent,
+ ResourceRepository resources) {
+ if (parent.hasSubCategories()) {
+ HashMap subCategories = parent.getSubCategories();
+ Iterator it = subCategories.values().iterator();
+ SortedMap children = new TreeMap();
+ while(it.hasNext()) {
+ TemplateCategory tiledCategory = (TemplateCategory) it.next();
+ if (tiledCategory.isInScope(getEditorModel().getSettingsScope())) {
+ id ++;
+ String catName = resources.getMessage(
+ tiledCategory.getResourceId(),
+ tiledCategory.getResourceBundle(),
+ RequestManager.getRequest());
+ children.put(catName, tiledCategory);
+ }
+ }
+ it = children.keySet().iterator();
+ while(it.hasNext()) {
+ String catName = (String) it.next();
+ TemplateCategory tiledCategory = (TemplateCategory) children.get(catName);
+ CCNavNode subnode = new CCNavNode(id, catName, null, null);
+ subnode.setOnClick("return displayCategory(this,'" + getCategoryPath(tiledCategory) + "');");
+ subnode.setValue(tiledCategory.getDefaultName());
+ if (!tiledCategory.hasSubCategories()) {
+ subnode.setAcceptsChildren(false);
+ List sections = ((TemplatePage)tiledCategory).getSections();
+ for (int i = 0; i < sections.size(); i++) {
+ TemplateSection section = (TemplateSection)sections.get(i);
+ byte scope = getEditorModel().getSettingsScope();
+ if (section instanceof TemplateSet) {
+ if (((TemplateSet)section).getPage().hasVisibleContent(scope)) {
+ String datapath = ((TemplateSet)section).getDataPath();
+ String setname = ((TemplateSet)section).getDefaultName();
+ String setLabel = resources.getMessage(
+ ((TemplateSet)section).getResourceId(),
+ ((TemplateSet)section).getResourceBundle(),
+ RequestManager.getRequest());
+ subnode.setAcceptsChildren(true);
+ id++;
+ CCNavNode setNameNode = new CCNavNode(id, setLabel, null, null);
+ subnode.addChild(setNameNode);
+ setNameNode.setAcceptsChildren(false);
+ setNameNode.setOnClick("return displayCategory(this,'" + getCategoryPath(tiledCategory)+ "#" + setname + "');");
+ setNameNode.setValue("#" + setname);
+ try {
+ PolicyNode policynode = mEditorModel.getProfileHelper().getNode(datapath);
+ if ((policynode != null)) {
+ String[] childrenNames = policynode.getChildrenNames();
+ for(int j = 0; j < childrenNames.length; j++) {
+ PolicyNode childNode = mEditorModel.getProfileHelper().getNode(datapath + TemplateRepository.TEMPLATE_PATH_SEPARATOR
+ + mEditorModel.getProfileHelper().encodePath(childrenNames[j]));
+ String attributes = ((PolicyNodeImpl)childNode).getAttributes(XMLStreamable.POLICY_SCHEMA);
+ if(attributes.indexOf("oor:op=\"replace\"") != -1) {
+ setNameNode.setAcceptsChildren(true);
+ id++;
+ CCNavNode setEntryNode = new CCNavNode(id, childrenNames[j], null, null);
+ setNameNode.addChild(setEntryNode);
+ setEntryNode.setAcceptsChildren(false);
+ setEntryNode.setOnClick("return displayCategory(this, '" + TemplateRepository.SET_PREFIX + setname + TemplateRepository.SET_INDEX_SEPARATOR + childrenNames[j] + "');");
+ setEntryNode.setValue(TemplateRepository.SET_PREFIX + setname + TemplateRepository.SET_INDEX_SEPARATOR + childrenNames[j]);
+ }
+ }
+ }
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ }
+ }
+ }
+ }
+ }
+ node.addChild(subnode);
+ id = addChildren(id, subnode, tiledCategory, resources) + 1;
+ }
+ }
+ return id;
+ }
+
+ private String getCategoryPath(TemplateCategory category) {
+ String path = TemplateRepository.TEMPLATE_PATH_SEPARATOR + category.getDefaultName();
+ while (category.getParent() != null && category.getParent().getDefaultName() != TemplateRepository.ROOT_CATEGORY_NAME ) {
+ path = TemplateRepository.TEMPLATE_PATH_SEPARATOR + category.getParent().getDefaultName() + path;
+ category = category.getParent();
+ }
+ return path;
+ }
+
+ private ProfileWindowModel getEditorModel() {
+ if (mEditorModel == null) {
+ mEditorModel = (ProfileWindowModel) getModel(ProfileWindowModel.class);
+ }
+ return mEditorModel;
+ }
+} \ No newline at end of file
diff --git a/src/com/sun/apoc/manager/ProfileWindowViewBean.java b/src/com/sun/apoc/manager/ProfileWindowViewBean.java
new file mode 100644
index 0000000..1e02318
--- /dev/null
+++ b/src/com/sun/apoc/manager/ProfileWindowViewBean.java
@@ -0,0 +1,259 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.profiles.ProfileWindowModel;
+import com.sun.apoc.manager.profiles.ProfileWindowPageletView;
+import com.sun.apoc.spi.profiles.Profile;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBean;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.model.CCNavNode;
+import com.sun.web.ui.model.CCTabsModel;
+import com.sun.web.ui.model.CCTabsModelInterface;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.view.tabs.CCNodeEventHandlerInterface;
+import com.sun.web.ui.view.tabs.CCTabs;
+import com.sun.apoc.manager.profiles.GeneralSettingsViewBean;
+import com.sun.apoc.spi.SPIException;
+import com.sun.web.ui.common.CCI18N;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+
+
+public class ProfileWindowViewBean extends ViewBeanBase
+ implements CCNodeEventHandlerInterface {
+
+ public static final String PAGE_NAME = "ProfileWindow";
+ public static final String CHILD_MASTHEAD = "SecondaryMH";
+ public static final String CHILD_TABS = "ProfileWindowTabs";
+ public static final String CHILD_FORM = "ProfileForm";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_PAGELET_VIEW = "TabContent";
+ public static final String CHILD_DEFAULT_CMD = "DefaultCommand";
+ public static final String CHILD_TITLE = "Title";
+ public static final String CHILD_TAB_CHANGE_SCRIPT = "TabChangeScript";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/profiles/ProfileWindow.jsp";
+
+ private CCTabsModelInterface m_tabsModel = null;
+ private ProfileWindowModel mModel = null;
+ private CCI18N m_I18n = null;
+
+ public ProfileWindowViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ registerChild(CHILD_TABS, CCTabs.class);
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_TITLE, CCStaticTextField.class);
+ registerChild(CHILD_TAB_CHANGE_SCRIPT, CCStaticTextField.class);
+ registerChild(CHILD_PAGELET_VIEW, ProfileWindowPageletView.class);
+ registerChild(CHILD_DEFAULT_CMD, CCHref.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, CHILD_MASTHEAD);
+ child.setHeight("21");
+ child.setWidth("355");
+ child.setSrc("/apoc/images/popuptitle.gif");
+ return child;
+
+ } else if (name.equals(CHILD_TABS)) {
+ CCTabs child = new CCTabs(this, getTabsModel(), name);
+ return child;
+
+ } else if (name.equals(CHILD_TITLE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, "");
+ return child;
+
+ } else if (name.equals(CHILD_TAB_CHANGE_SCRIPT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, "");
+ return child;
+
+ } else if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_DEFAULT_CMD)) {
+ CCHref child = new CCHref(this, name, "");
+ return child;
+
+ } else if (name.equals(CHILD_FORM)) {
+ CCForm child = new CCForm(this, name);
+ return child;
+
+ } else if (name.equals(CHILD_PAGELET_VIEW)) {
+ ProfileWindowPageletView child = new ProfileWindowPageletView(this, name);
+ return child;
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ protected CCTabsModelInterface getTabsModel() {
+ if (m_tabsModel == null) {
+ m_tabsModel = new CCTabsModel();
+ CCNavNode settingsTab = new CCNavNode(1, "APOC.profilewnd.settings.tab", "", "");
+ CCNavNode assigneesTab = new CCNavNode(2, "APOC.profilewnd.assignees.tab", "", "");
+ CCNavNode generalTab = new CCNavNode(3, "APOC.profilewnd.general.tab", "", "");
+ CCNavNode summaryTab = new CCNavNode(4, "APOC.report.settings.summary.title", "", "");
+ CCNavNode advancedTab = new CCNavNode(5, "APOC.profilewnd.advanced.tab", "", "");
+ m_tabsModel.addNode(generalTab);
+ m_tabsModel.addNode(settingsTab);
+ m_tabsModel.addNode(assigneesTab);
+ m_tabsModel.addNode(summaryTab);
+ m_tabsModel.addNode(advancedTab);
+ }
+ return m_tabsModel;
+ }
+
+ public void nodeClicked(RequestInvocationEvent event, int id) {
+ getModel().setSelectedTab(new Integer(id).toString());
+ CCStaticTextField child = (CCStaticTextField) getChild(CHILD_TAB_CHANGE_SCRIPT);
+ child.setValue("parent.location.href='../manager/ProfileWindowFrameset?SelectedEditorTab="+id+"&com_sun_web_ui_popup=true&';");
+ forwardTo(getRequestContext());
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ // set the currently selected tab
+ try {
+ int id = Integer.parseInt(getModel().getSelectedTab());
+ getTabsModel().setSelectedNode(id);
+ } catch (Exception e) {
+ CCDebug.trace1("Could not set selected tab: " + e.getMessage());
+ }
+
+ // set the onClick() event handler
+ for (int i = 1; i <= getTabsModel().getNodeCount(); i++) {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append("return switchToTab(");
+ buffer.append(i);
+ buffer.append(");");
+ getTabsModel().getNodeById(i).setOnClick(buffer.toString());
+ }
+ }
+
+
+ public void endDisplay(DisplayEvent event) {
+ // reset any error/info messages
+ getModel().setErrorMessage(null, "");
+ }
+
+ public void handleDefaultCommandRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ ProfileWindowPageletView pagelet = (ProfileWindowPageletView) getChild(CHILD_PAGELET_VIEW);
+ GeneralSettingsViewBean general = (GeneralSettingsViewBean) pagelet.getChild(ProfileWindowPageletView.CHILD_GENERAL);
+ general.handleSaveButtonRequest(event);
+ forwardTo();
+ }
+
+ public boolean beginTitleDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ // set window title
+ CCStaticTextField child = (CCStaticTextField) getChild(CHILD_TITLE);
+ Profile pg = getModel().getProfile();
+ if (pg != null) {
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ child.setValue(i18n.getMessage("APOC.profiles.profile") + " " + pg.getDisplayName());
+ }
+ return true;
+ }
+
+ public boolean beginAlertAreaDisplay(ChildDisplayEvent event) {
+ if (getModel().hasAlert()) {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ alert.setType(getModel().getAlertType());
+ alert.setSummary(getModel().getAlertMessage());
+ alert.setDetail(getModel().getAlertDetails());
+ return true;
+ }
+
+ boolean bIsReadOnly = false;
+
+ try {
+ bIsReadOnly = Toolbox2.getSelectedEntity().getProfileRepository().isReadOnly();
+ } catch (SPIException se) {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ alert.setType(CCAlertInline.TYPE_ERROR);
+ alert.setSummary(se.getLocalizedMessage(Toolbox2.getLocale()));
+ return true;
+ }
+
+ if (bIsReadOnly) {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ alert.setType(CCAlertInline.TYPE_INFO);
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ alert.setSummary(i18n.getMessage("APOC.policies.info.readonly.access"));
+ }
+
+ return bIsReadOnly;
+ }
+
+ public boolean beginProfileWindowTabsDisplay(ChildDisplayEvent event) {
+ return getModel().getProfile() != null;
+ }
+
+ public boolean beginTabContentDisplay(ChildDisplayEvent event) {
+ return getModel().getProfile() != null;
+ }
+
+ private ProfileWindowModel getModel() {
+ if (mModel == null) {
+ mModel = (ProfileWindowModel) getModel(ProfileWindowModel.class);
+ }
+ return mModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/ProfilesApplicabilityViewBean.java b/src/com/sun/apoc/manager/ProfilesApplicabilityViewBean.java
new file mode 100755
index 0000000..1f78fe1
--- /dev/null
+++ b/src/com/sun/apoc/manager/ProfilesApplicabilityViewBean.java
@@ -0,0 +1,133 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.DisplayField;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.entities.SearchTableModel;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.model.CCPropertySheetModel;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.propertysheet.CCPropertySheet;
+import java.io.IOException;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+
+public class ProfilesApplicabilityViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "ProfilesApplicability";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/profiles/Applicability.jsp";
+ public static final String CHILD_FORM = "ApplicabilityForm";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_APPLICABILITY_TITLE= "ApplicabilityTitle";
+ public static final String CHILD_APPLICABILITY_SHEET= "ApplicabilitySheet";
+
+ //
+ private CCPropertySheetModel m_sheetModel = null;
+ private CCPageTitleModel m_titleModel = null;
+
+ public ProfilesApplicabilityViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+
+ ServletContext context = RequestManager.getRequestContext().getServletContext();
+ m_sheetModel = new CCPropertySheetModel(context, "/jsp/profiles/ApplicabilitySheet.xml");
+ m_titleModel = new CCPageTitleModel(context ,"/jsp/profiles/ApplicabilityTitle.xml");
+
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ registerChild(CHILD_APPLICABILITY_TITLE, CCPageTitle.class);
+ registerChild(CHILD_APPLICABILITY_SHEET, CCPropertySheet.class);
+ m_titleModel.registerChildren(this);
+ m_sheetModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ return child;
+ }
+ if (name.equals(CHILD_APPLICABILITY_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_APPLICABILITY_SHEET)) {
+ CCPropertySheet child = new CCPropertySheet(this, m_sheetModel, name);
+ return child;
+ }
+ else if ((m_titleModel != null) && m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else if ((m_sheetModel != null) && m_sheetModel.isChildSupported(name)) {
+ View child = m_sheetModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleNameHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ forwardTo(event.getRequestContext());
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ m_sheetModel.setValue("ApplicabilityRadio", "NewProfileDomain");
+ }
+}
diff --git a/src/com/sun/apoc/manager/ProfilesAssignViewBean.java b/src/com/sun/apoc/manager/ProfilesAssignViewBean.java
new file mode 100755
index 0000000..43f3562
--- /dev/null
+++ b/src/com/sun/apoc/manager/ProfilesAssignViewBean.java
@@ -0,0 +1,162 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.profiles.AssignTableView;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import java.io.IOException;
+import javax.servlet.ServletException;
+
+
+public class ProfilesAssignViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "ProfilesAssign";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/profiles/Assign.jsp";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_FORM = "AssignForm";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_SUBMITCLOSE = "SubmitAndClose";
+ public static final String CHILD_TITLE = "AssignTitle";
+ public static final String CHILD_TABLE_VIEW = "AssignTableView";
+ public static final String CHILD_DEFAULT_HREF = "DefaultHref";
+
+ //
+ private CCPageTitleModel m_titleModel = null;
+
+ public ProfilesAssignViewBean(RequestContext rc) {
+ super(PAGE_NAME);
+ setRequestContext(rc);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_titleModel = new CCPageTitleModel(rc.getServletContext(), "/jsp/profiles/AssignTitle.xml");
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_SUBMITCLOSE, CCStaticTextField.class);
+ registerChild(CHILD_TITLE, CCPageTitle.class);
+ registerChild(CHILD_TABLE_VIEW, AssignTableView.class);
+ registerChild(CHILD_DEFAULT_HREF, CCHref.class);
+ m_titleModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_SUBMITCLOSE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ Toolbox2.setPageTitleHelp(m_titleModel, "APOC.profileavail.assigning",
+ "APOC.profileavail.help", "gbgpn.html");
+ return child;
+ }
+ else if (m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_TABLE_VIEW)) {
+ AssignTableView child = new AssignTableView(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_DEFAULT_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleDefaultHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ forwardTo(getRequestContext());
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ if (Toolbox2.getParameter("OkActionHref").length()==0) {
+ ((CCStaticTextField) getChild(CHILD_SUBMITCLOSE)).setValue("return true;");
+ }
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ return ((alert.getSummary() != null) && (alert.getSummary().length() > 0));
+ }
+
+ public boolean beginAssignTitleDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCPageTitle title = (CCPageTitle) getChild(event.getChildName());
+ title.getModel().setPageTitleText(Toolbox2.buildEntityTitle("APOC.pool.add_assignment"));
+ return true;
+ }
+}
diff --git a/src/com/sun/apoc/manager/ProfilesImportViewBean.java b/src/com/sun/apoc/manager/ProfilesImportViewBean.java
new file mode 100755
index 0000000..ebf355a
--- /dev/null
+++ b/src/com/sun/apoc/manager/ProfilesImportViewBean.java
@@ -0,0 +1,378 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.profiles.AssignedTableModel;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.profiles.Applicability;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.profiles.ProfileRepository;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.util.Iterator;
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+public class ProfilesImportViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "ProfilesImport";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/profiles/Import.jsp";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_PAGETITLE = "ImportTitle";
+ public static final String CHILD_CHOOSETEXT = "ChooseText";
+ public static final String CHILD_DEFAULT_VAL = "DefaultValue";
+ public static final String CHILD_IMPORTGROUP = "ImportGroup";
+ public static final String CHILD_TABHREF = "TabHref";
+ public static final String CHILD_TABSELECTION = "TabSelection";
+ public static final String CHILD_CONDITIONAL_JS= "ConditionalJS";
+ public static final String CHILD_EXISTING_NAMES= "ExistingNames";
+ public static final String CHILD_OVERWRITE_ALERT= "OverwriteAlert";
+
+ public static final String PROFILE_SOURCE = "ProfileSource";
+
+ private CCPageTitleModel m_pagetitleModel = null;
+ private boolean m_bImport = false;
+ private boolean m_bShowAlert = false;
+ private Iterator m_existingProfiles = null;
+ private Iterator m_existingProfileAssignments = null;
+ private String sQuery = null;
+
+ public ProfilesImportViewBean(RequestContext rc) {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_pagetitleModel = new CCPageTitleModel(rc.getServletContext(),
+ "/jsp/profiles/ImportTitle.xml");
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_PAGETITLE, CCPageTitle.class);
+ registerChild(CHILD_CHOOSETEXT, CCStaticTextField.class);
+ registerChild(CHILD_DEFAULT_VAL, CCStaticTextField.class);
+ registerChild(CHILD_TABSELECTION, CCStaticTextField.class);
+ registerChild(CHILD_CONDITIONAL_JS, CCStaticTextField.class);
+ registerChild(CHILD_EXISTING_NAMES, CCStaticTextField.class);
+ registerChild(CHILD_OVERWRITE_ALERT, CCStaticTextField.class);
+ registerChild(CHILD_TABHREF, CCHref.class);
+ registerChild(CHILD_IMPORTGROUP, CCHref.class);
+ m_pagetitleModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ child.setSrc("/apoc/images/popuptitle.gif");
+ return child;
+ }
+ else if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_PAGETITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_pagetitleModel, name);
+ Toolbox2.setPageTitleHelp(m_pagetitleModel, "APOC.groupimport.importing",
+ "APOC.groupimport.help", "gbgps.html");
+ return child;
+ }
+ else if (name.equals(CHILD_CHOOSETEXT)) {
+ CCI18N i18N = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ String chooseText = i18N.getMessage("APOC.groupimport.choosetext");
+ CCStaticTextField child = new CCStaticTextField(this, name, chooseText);
+ return child;
+ }
+ else if (name.equals(CHILD_DEFAULT_VAL)) {
+ CCI18N i18N = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ String defaultText = i18N.getMessage("APOC.groupimport.defaulttext");
+ CCStaticTextField child = new CCStaticTextField(this, name, defaultText);
+ return child;
+ }
+ else if (name.equals(CHILD_TABSELECTION) || name.equals(CHILD_CONDITIONAL_JS)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_OVERWRITE_ALERT)) {
+ CCI18N i18N = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ String defaultText = i18N.getMessage("APOC.importwnd.js.overwrite_alert");
+ CCStaticTextField child = new CCStaticTextField(this, name, defaultText);
+ return child;
+ }
+ else if (name.equals(CHILD_EXISTING_NAMES)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, "");
+ return child;
+ }
+ else if (name.equals(CHILD_TABHREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_IMPORTGROUP)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (m_pagetitleModel.isChildSupported(name)) {
+ return m_pagetitleModel.createChild(this, name);
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ Iterator profiles = getProfilesIterator();
+ String existingNames = "";
+ while (profiles.hasNext()) {
+ Profile profile = (Profile)profiles.next();
+ String profileName = profile.getDisplayName();
+ existingNames = existingNames + "|" + profileName;
+ }
+
+ CCStaticTextField namesChild = (CCStaticTextField) getChild(CHILD_EXISTING_NAMES);
+ namesChild.setValue(existingNames) ;
+ String profileSource = Toolbox2.getParameter("ImportGroup");
+ if (profileSource != null && profileSource.length() != 0) {
+ if (profileSource.equals("AvailableDomainTableView")) {
+ RequestManager.getSession().setAttribute(PROFILE_SOURCE, EnvironmentConstants.HOST_SOURCE);
+ } else if (profileSource.equals("AvailableOrgTableView")) {
+ RequestManager.getSession().setAttribute(PROFILE_SOURCE, EnvironmentConstants.USER_SOURCE);
+ } else {
+ RequestManager.getSession().setAttribute(PROFILE_SOURCE, null);
+ }
+ }
+ }
+
+ public boolean beginConditionalJSDisplay(ChildDisplayEvent event) throws ModelControlException {
+ CCStaticTextField conditionalJS = (CCStaticTextField) getChild(event.getChildName());
+ String sText;
+ if (m_bImport) {
+ sText = "self.opener.document.forms[0].submit(); window.close();";
+ } else {
+ sText = "document.importForm.action='../manager/ProfilesImport?ProfilesImport.TabHref="+Toolbox2.getParameter("ImportGroup")+"'";
+ }
+ conditionalJS.setValue(sText);
+ return true;
+ }
+
+ public boolean beginConditionalFormDisplay(ChildDisplayEvent event) throws ModelControlException {
+ return !m_bImport;
+ }
+
+ public boolean beginAlertDisplay(ChildDisplayEvent event) throws ModelControlException {
+ return m_bShowAlert;
+ }
+
+ public void handleImportGroupRequest(RequestInvocationEvent event) {
+ forwardTo(getRequestContext());
+ }
+
+ public void handleTabHrefRequest(RequestInvocationEvent event) throws IOException, ModelControlException {
+
+ try {
+ HttpServletRequest request = getRequestContext().getRequest();
+ ServletInputStream in = request.getInputStream();
+ byte[] line = new byte[128];
+ int i = in.readLine(line, 0, 128);
+
+ if (i > 2) {
+ int boundaryLength = i - 2;
+ String boundary = new String(line, 0, boundaryLength);
+ String sGroupName = "";
+
+ while (i != -1) {
+ String newLine = new String(line, 0, i);
+
+ if (newLine.startsWith("Content-Disposition: form-data")) {
+
+ if (newLine.indexOf("l10nFilename")!=-1) {
+ i = in.readLine(line, 0, 128);
+ i = in.readLine(line, 0, 128);
+ sGroupName = extractFilename(line, i-2);
+ }
+ else if (newLine.indexOf("filename")!=-1) {
+ i = in.readLine(line, 0, 128);
+ i = in.readLine(line, 0, 128);
+
+ AssignedTableModel model = (AssignedTableModel) getModel(AssignedTableModel.class);
+ PolicyManager pmgr = Toolbox2.getPolicyManager();
+ String source = (String)RequestManager.getSession().getAttribute(PROFILE_SOURCE);
+ if (source!=null && source.equals(EnvironmentConstants.HOST_SOURCE)) {
+ model.importGroup(sGroupName, pmgr.getRootEntity(EnvironmentConstants.HOST_SOURCE), Applicability.HOST, false, in);
+ } else if (source!=null && source.equals(EnvironmentConstants.USER_SOURCE)) {
+ model.importGroup(sGroupName, pmgr.getRootEntity(EnvironmentConstants.USER_SOURCE), Applicability.USER, false, in);
+ } else {
+ Entity selectedEntity = Toolbox2.getSelectedEntity();
+ Applicability use = Applicability.HOST;
+ if (selectedEntity.getPolicySourceName().equals(EnvironmentConstants.USER_SOURCE)) {
+ use = Applicability.USER;
+ }
+ model.importGroup(sGroupName, Toolbox2.getSelectedEntity(), use, true, in);
+ }
+
+ m_bImport = true;
+ break;
+ }
+ }
+
+ i = in.readLine(line, 0, 128);
+ }
+ }
+ } catch (ModelControlException se) {
+ Toolbox2.prepareErrorDisplay(se, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ m_bShowAlert =true;
+ } catch (SPIException spie) {
+ Toolbox2.prepareErrorDisplay(spie, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ m_bShowAlert =true;
+ }
+ forwardTo(getRequestContext());
+ }
+
+ private String extractFilename(byte[] name, int length) throws IOException {
+ if (name == null) {
+ return null;
+ }
+
+ String sFilename = "";
+
+ try {
+ ByteArrayInputStream bais = new ByteArrayInputStream(name, 0, length);
+ InputStreamReader isr = new InputStreamReader(bais, "UTF-8");
+ BufferedReader br = new BufferedReader(isr);
+
+ sFilename = br.readLine();
+
+ }
+ catch (UnsupportedEncodingException uee) {
+ throw new RuntimeException(uee);
+ }
+
+ int pos = sFilename.lastIndexOf("\\");
+
+ if (pos == -1) {
+ pos = sFilename.lastIndexOf("/");
+ }
+
+ if (pos != -1) {
+ sFilename = sFilename.substring(pos + 1);
+ }
+
+ int dotLoc = sFilename.lastIndexOf(".");
+
+ if (dotLoc != -1) {
+ sFilename = sFilename.substring(0, dotLoc);
+ }
+
+ return sFilename;
+ }
+
+
+
+ private Iterator getProfilesIterator() {
+ Iterator profiles = null;
+ try {
+ Profile newProfile = null;
+ String sQuery = getRequestContext().getRequest().getQueryString();
+ String sModifier = sQuery.substring(sQuery.indexOf("=")+1);
+ if (sQuery.indexOf("&") != -1) {
+ sModifier = sQuery.substring(sQuery.indexOf("=")+1, sQuery.indexOf("&"));
+ }
+ PolicyManager pmgr = Toolbox2.getPolicyManager();
+ Entity entity = null;
+ if (sModifier!=null && sModifier.equals("AvailableDomainTableView")) {
+ entity = pmgr.getRootEntity(EnvironmentConstants.HOST_SOURCE);
+ } else if (sModifier!=null && sModifier.equals("AvailableOrgTableView")) {
+ entity = pmgr.getRootEntity(EnvironmentConstants.USER_SOURCE);
+ } else {
+ entity = Toolbox2.getSelectedEntity();
+ }
+
+ Entity writableEntity = entity;
+ Applicability use = Applicability.USER;
+
+ while (entity!=null) {
+ ProfileRepository repository = entity.getProfileRepository();
+ if (!repository.isReadOnly()) {
+ writableEntity = entity;
+ }
+ entity = entity.getParent();
+ }
+
+ if (writableEntity.getPolicySourceName().equals(EnvironmentConstants.HOST_SOURCE)) {
+ use = Applicability.HOST;
+ }
+ ProfileRepository repository = writableEntity.getProfileRepository();
+ profiles = repository.getProfiles(use);
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ }
+ return profiles;
+ }
+
+ private void setExistingProfileAssignments(Iterator it) {
+ m_existingProfileAssignments = it;
+ }
+
+ private Iterator getExistingProfilesAssignments() {
+ return m_existingProfileAssignments;
+ }
+}
diff --git a/src/com/sun/apoc/manager/ProfilesNewViewBean.java b/src/com/sun/apoc/manager/ProfilesNewViewBean.java
new file mode 100755
index 0000000..0ed9560
--- /dev/null
+++ b/src/com/sun/apoc/manager/ProfilesNewViewBean.java
@@ -0,0 +1,135 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.model.CCPropertySheetModel;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.propertysheet.CCPropertySheet;
+import java.io.IOException;
+import javax.servlet.ServletException;
+
+
+public class ProfilesNewViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "ProfilesNew";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/profiles/New.jsp";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_FORM = "NewForm";
+ public static final String CHILD_TITLE = "NewTitle";
+ public static final String CHILD_NEW_SHEET = "NewSheet";
+ private CCPropertySheetModel m_sheetModel = null;
+ //
+ private CCPageTitleModel m_titleModel = null;
+
+ public ProfilesNewViewBean(RequestContext rc) {
+ super(PAGE_NAME);
+ setRequestContext(rc);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_titleModel = new CCPageTitleModel(rc.getServletContext(), "/jsp/profiles/NewTitle.xml");
+ m_sheetModel = new CCPropertySheetModel(rc.getServletContext(), "/jsp/profiles/NewSheet.xml");
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_TITLE, CCPageTitle.class);
+ m_titleModel.registerChildren(this);
+ registerChild(CHILD_NEW_SHEET, CCPropertySheet.class);
+ m_sheetModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ return child;
+ }
+ else if (m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_NEW_SHEET)) {
+ CCPropertySheet child = new CCPropertySheet(this, m_sheetModel, name);
+ return child;
+ }
+ else if ((m_sheetModel != null) && m_sheetModel.isChildSupported(name)) {
+ View child = m_sheetModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleOkButtonRequest(RequestInvocationEvent event) throws ServletException, IOException {
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ return ((alert.getSummary() != null) && (alert.getSummary().length() > 0));
+ }
+}
diff --git a/src/com/sun/apoc/manager/ProfilesSearchButtonsViewBean.java b/src/com/sun/apoc/manager/ProfilesSearchButtonsViewBean.java
new file mode 100755
index 0000000..b72aad8
--- /dev/null
+++ b/src/com/sun/apoc/manager/ProfilesSearchButtonsViewBean.java
@@ -0,0 +1,67 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+
+public class ProfilesSearchButtonsViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "EntitiesSearchButtons";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/profiles/SearchButtons.jsp";
+ public static final String CHILD_CLOSE_BUTTON = "CloseButton";
+
+ public ProfilesSearchButtonsViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_CLOSE_BUTTON, CCButton.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_CLOSE_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/ProfilesSearchIndexViewBean.java b/src/com/sun/apoc/manager/ProfilesSearchIndexViewBean.java
new file mode 100755
index 0000000..17cf00d
--- /dev/null
+++ b/src/com/sun/apoc/manager/ProfilesSearchIndexViewBean.java
@@ -0,0 +1,83 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.html.StaticTextField;
+import com.sun.web.ui.view.html.CCStaticTextField;
+
+public class ProfilesSearchIndexViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "EntitiesSearchIndex";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/profiles/SearchIndex.jsp";
+ public static final String CHILD_ENTITYID_TEXT = "EntityIdText";
+ public static final String CHILD_TITLE_TEXT = "SearchTitle";
+ public static final String CHILD_WINDOW_TITLE = "SearchProfileTitle";
+
+
+ public ProfilesSearchIndexViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ RequestManager.getRequestContext().getRequest()
+ .getSession(true).setAttribute(Constants.PROFILE_SEARCH_PROFILE, Toolbox2.decode(Toolbox2.getParameter("SelectedProfileId")));
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ENTITYID_TEXT, StaticTextField.class);
+ registerChild(CHILD_WINDOW_TITLE, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_ENTITYID_TEXT)) {
+ String sUrlParam = Toolbox2.encode(Toolbox2.getParameter(Constants.ENTITY_ID));
+ StaticTextField child = new StaticTextField(this, name, (Object) sUrlParam);
+ return child;
+ }
+ else if (name.equals(CHILD_TITLE_TEXT)) {
+ StaticTextField child = new StaticTextField(this, name, Toolbox2.getI18n("APOC.search.title.text"));
+ return child;
+ }
+ else if (name.equals(CHILD_WINDOW_TITLE)) {
+ StaticTextField child = new StaticTextField(this, name, Toolbox2.getI18n("APOC.navigation.search"));
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/ProfilesSearchParameterViewBean.java b/src/com/sun/apoc/manager/ProfilesSearchParameterViewBean.java
new file mode 100755
index 0000000..0e6c505
--- /dev/null
+++ b/src/com/sun/apoc/manager/ProfilesSearchParameterViewBean.java
@@ -0,0 +1,121 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.model.CCPropertySheetModel;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.propertysheet.CCPropertySheet;
+import java.io.IOException;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+
+public class ProfilesSearchParameterViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "ProfilesSearchParameter";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/profiles/SearchParameter.jsp";
+ public static final String CHILD_FORM = "ParameterForm";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_SEARCH_TITLE = "SearchTitle";
+ public static final String CHILD_SEARCHPARAMS_PROPS = "SearchParams";
+ public static final String CHILD_DEFAULT_HREF = "DefaultHref";
+ private CCPageTitleModel m_titleModel = null;
+ private CCPropertySheetModel m_sheetModel = null;
+
+ public ProfilesSearchParameterViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ ServletContext context = RequestManager.getRequestContext().getServletContext();
+ m_titleModel = new CCPageTitleModel();
+ m_sheetModel = new CCPropertySheetModel(context, "/jsp/profiles/SearchParameter.xml");
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ registerChild(CHILD_SEARCH_TITLE, CCPageTitle.class);
+ registerChild(CHILD_SEARCHPARAMS_PROPS, CCPropertySheet.class);
+ registerChild(CHILD_DEFAULT_HREF, CCHref.class);
+ m_titleModel.registerChildren(this);
+ m_sheetModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_SEARCH_TITLE)) {
+ View child = new CCPageTitle(this, m_titleModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_SEARCHPARAMS_PROPS)) {
+ View child = new CCPropertySheet(this, m_sheetModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_DEFAULT_HREF)) {
+ View child = new CCHref(this, name, null);
+ return child;
+ }
+ else if ((m_titleModel != null) && m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else if ((m_sheetModel != null) && m_sheetModel.isChildSupported(name)) {
+ View child = m_sheetModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/ProfilesSearchResultViewBean.java b/src/com/sun/apoc/manager/ProfilesSearchResultViewBean.java
new file mode 100755
index 0000000..3909684
--- /dev/null
+++ b/src/com/sun/apoc/manager/ProfilesSearchResultViewBean.java
@@ -0,0 +1,150 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.profiles.SearchTiledModel;
+import com.sun.apoc.manager.profiles.SearchTiledView;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import java.io.IOException;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+
+public class ProfilesSearchResultViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "ProfilesSearchResult";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/profiles/SearchResult.jsp";
+ public static final String CHILD_TILED_VIEW = "ProfilesSearchTiledView";
+ public static final String CHILD_FORM = "ResultForm";
+ public static final String CHILD_SEARCH_HREF = "SearchHref";
+ public static final String CHILD_SEARCH_BUTTON = "SearchButton";
+ public static final String CHILD_SEARCHSTRING_HIDDEN= "SearchString";
+ public static final String CHILD_HELP1_TEXT = "HelpText1";
+ public static final String CHILD_HELP2_TEXT = "HelpText2";
+ private boolean m_bSearchHref = false;
+ private boolean m_bFoundProfiles = false;
+
+ public ProfilesSearchResultViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ ServletContext context = RequestManager.getRequestContext().getServletContext();
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_TILED_VIEW, SearchTiledView.class);
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_SEARCH_HREF, CCHref.class);
+ registerChild(CHILD_SEARCH_BUTTON, CCButton.class);
+ registerChild(CHILD_HELP1_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_HELP2_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_SEARCHSTRING_HIDDEN, CCHiddenField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_TILED_VIEW)) {
+ View child = new SearchTiledView(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_SEARCH_HREF)) {
+ View child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_SEARCH_BUTTON)) {
+ View child = new CCButton(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_HELP1_TEXT) || name.equals(CHILD_HELP2_TEXT)) {
+ View child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_SEARCHSTRING_HIDDEN)) {
+ View child = new CCHiddenField(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleSearchHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ m_bSearchHref = true;
+ forwardTo(getRequestContext());
+ }
+
+ public void handleSearchButtonRequest(RequestInvocationEvent event)
+ throws ModelControlException, ServletException, IOException {
+ CCHiddenField textField = (CCHiddenField) getChild(CHILD_SEARCHSTRING_HIDDEN);
+ SearchTiledModel model = (SearchTiledModel)getModel(SearchTiledModel.class);
+ model.retrieve((String) textField.getValue() );
+ setEntitiesFound(model.getSize()>0);
+ forwardTo(getRequestContext());
+ }
+
+ public boolean beginHelpDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ return m_bSearchHref;
+ }
+
+ public boolean beginEntitiesFoundDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ super.beginDisplay(event);
+ return (!m_bSearchHref && m_bFoundProfiles);
+ }
+
+ public boolean beginNoEntitiesFoundDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ return (!m_bSearchHref && !m_bFoundProfiles);
+ }
+
+ public void setEntitiesFound(boolean bFound) {
+ m_bFoundProfiles = bFound;
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/RemoteDesktopButtonsViewBean.java b/src/com/sun/apoc/manager/RemoteDesktopButtonsViewBean.java
new file mode 100644
index 0000000..9737a50
--- /dev/null
+++ b/src/com/sun/apoc/manager/RemoteDesktopButtonsViewBean.java
@@ -0,0 +1,95 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.iplanet.jato.view.html.OptionList;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.view.html.*;
+import com.iplanet.jato.model.ModelControlException;
+
+
+import javax.servlet.ServletException;
+
+
+
+public class RemoteDesktopButtonsViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "BrowseTreeBase";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/remote/RemoteDesktopButtons.jsp";
+ public static final String CHILD_FORM = "BrowseTreeFormBase";
+ public static final String CHILD_OK_BUTTON = "OkButton";
+ public static final String CHILD_CANCEL_BUTTON = "CancelButton";
+
+ public RemoteDesktopButtonsViewBean(RequestContext rc) throws ModelControlException {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_OK_BUTTON, CCButton.class);
+ registerChild(CHILD_CANCEL_BUTTON, CCButton.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ if (name.equals(CHILD_OK_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ if (name.equals(CHILD_CANCEL_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/RemoteDesktopFramesetViewBean.java b/src/com/sun/apoc/manager/RemoteDesktopFramesetViewBean.java
new file mode 100644
index 0000000..0114dc6
--- /dev/null
+++ b/src/com/sun/apoc/manager/RemoteDesktopFramesetViewBean.java
@@ -0,0 +1,67 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.html.StaticTextField;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.iplanet.jato.RequestManager;
+
+import java.net.URLEncoder;
+
+
+public class RemoteDesktopFramesetViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "BrowseTreeIndex";
+ public static final String DEFAULT_DISPLAY_URL= "/jsp/remote/RemoteDesktopFrameset.jsp";
+
+ public RemoteDesktopFramesetViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ String sEntityType = Toolbox2.getParameter("EntityType");
+ RequestManager.getRequestContext().getRequest()
+ .getSession(true).setAttribute(Constants.BROWSE_TREE_ENTITY_TYPE, sEntityType);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ }
+
+ protected View createChild(String name) {
+ return null;
+ }
+}
diff --git a/src/com/sun/apoc/manager/RemoteDesktopMastheadViewBean.java b/src/com/sun/apoc/manager/RemoteDesktopMastheadViewBean.java
new file mode 100644
index 0000000..1458f5c
--- /dev/null
+++ b/src/com/sun/apoc/manager/RemoteDesktopMastheadViewBean.java
@@ -0,0 +1,89 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.model.CCPageTitleModel;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.RequestManager;
+
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+
+import java.io.IOException;
+
+
+public class RemoteDesktopMastheadViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "BrowseTreeMasthead";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/remote/RemoteDesktopMasthead.jsp";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_TITLE = "BrowseTreeTitle";
+ private CCPageTitleModel m_titleModel = null;
+
+ public RemoteDesktopMastheadViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_titleModel = new CCPageTitleModel();
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ m_titleModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ return child;
+ }
+ else if (m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/RemoteDesktopNavigationTreeViewBean.java b/src/com/sun/apoc/manager/RemoteDesktopNavigationTreeViewBean.java
new file mode 100644
index 0000000..86a8e65
--- /dev/null
+++ b/src/com/sun/apoc/manager/RemoteDesktopNavigationTreeViewBean.java
@@ -0,0 +1,211 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.apoc.spi.SPIException;
+import com.sun.web.ui.view.html.*;
+import com.sun.web.ui.view.tree.CCDynamicTree;
+import com.sun.web.ui.view.tree.CCTreeEventHandlerInterface;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.spi.ldap.entities.LdapEntityType;
+
+
+public class RemoteDesktopNavigationTreeViewBean extends ViewBeanBase implements CCTreeEventHandlerInterface {
+ public static final String PAGE_NAME = "RemoteDesktopNavigationTree";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/remote/RemoteDesktopNavigationTree.jsp";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_FORM = "BrowseTreeForm";
+ public static final String CHILD_SEARCH_BUTTON = "SearchButton";
+ public static final String CHILD_TREE = "Tree";
+ public static final String CHILD_SELECTED_ENTITY = "SelectedEntity";
+ public static final String CHILD_SELECTED_ENTITY_TYPE = "SelectedEntityType";
+ public static final String CHILD_DEFAULT_HREF = "DefaultHref";
+ public static final String CHILD_ENTITY_HREF = "EntityHref";
+
+ private String m_root = null;
+ private boolean m_bReload = false;
+ private boolean m_isFirstLoad = false;
+
+ public RemoteDesktopNavigationTreeViewBean(RequestContext rc) throws ModelControlException {
+ super(PAGE_NAME);
+ setRequestContext(rc);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ String sEntityId = null;
+ try {
+ sEntityId = Toolbox2.getPolicyManager().getRootEntity(LdapEntityType.STR_DOMAIN).getId();
+ } catch (SPIException ex) {
+ CCDebug.trace1("Could not retrieve root domain", ex);
+ }
+
+ String sEntityType = (String)RequestManager.getRequest().getSession(false).getAttribute(Constants.BROWSE_TREE_ENTITY_TYPE);
+ if(sEntityType.length() != 0) {
+ getModel().filterLeaves(false);
+ getModel().initTree("", sEntityType, sEntityId);
+ m_isFirstLoad = true;
+ }
+ RequestManager.getRequest().getSession(false).setAttribute(Constants.BROWSE_TREE_ENTITY, "");
+ RequestManager.getRequest().getSession(false).setAttribute(Constants.BROWSE_TREE_ENTITY_TYPE, "");
+ RequestManager.getRequest().getSession(false).setAttribute(Constants.BROWSE_TREE_CONTEXT, "");
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_SEARCH_BUTTON, CCButton.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_SELECTED_ENTITY,CCStaticTextField.class);
+ registerChild(CHILD_SELECTED_ENTITY_TYPE,CCStaticTextField.class);
+ registerChild(CHILD_TREE, CCDynamicTree.class);
+ registerChild(CHILD_DEFAULT_HREF, CCHref.class);
+ registerChild(CHILD_ENTITY_HREF, CCHref.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_SEARCH_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_SELECTED_ENTITY)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_SELECTED_ENTITY_TYPE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_TREE)) {
+ CCDynamicTree child = new CCDynamicTree(this, name, getModel());
+ return child;
+ }
+ else if (name.equals(CHILD_DEFAULT_HREF) || name.equals(CHILD_ENTITY_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void nodeClicked(RequestInvocationEvent event, int id, String treeName) {
+ m_bReload = true;
+ getSession().setAttribute("BrowserSelectedEntity", getModel().getStoredValue(id));
+ forwardTo(getRequestContext());
+ }
+
+ public void turnerClicked(RequestInvocationEvent event, int id, String treeName) {
+ try {
+ getModel().retrieve(id);
+ }
+ catch (ModelControlException mce) {
+ }
+ forwardTo(getRequestContext());
+ }
+
+ public void handleEntityHrefRequest(RequestInvocationEvent event) {
+ CCHref href = (CCHref) getChild(CHILD_DEFAULT_HREF);
+ String sHref = (String) href.getValue();
+ int nSelected = 1;
+
+ try {
+ CCDynamicTree tree = (CCDynamicTree) getChild(CHILD_TREE);
+ nSelected = getModel().retrieve(Toolbox2.decode(sHref));
+ tree.yokeTo(nSelected);
+ forwardTo(getRequestContext());
+ }
+ catch (ModelControlException mce) {
+ CCDebug.trace1("", mce);
+ }
+ }
+
+ public void handleDefaultHrefRequest(RequestInvocationEvent event) {
+ CCHref href = (CCHref) getChild(CHILD_DEFAULT_HREF);
+ String sHref = Toolbox2.decode((String) href.getValue());
+ int nOldSelected = getModel().getSelectedNode().getId();
+ int nSelected = 1;
+
+ try {
+ nSelected = getModel().retrieve(false);
+
+ if (!sHref.equals("a")) {
+ nSelected = getModel().retrieve(sHref);
+ }
+
+ if (nSelected!=nOldSelected) {
+ m_bReload = true;
+ getSession().setAttribute(Constants.SELECTED_ENTITY, getModel().getStoredValue(nSelected));
+ CCDynamicTree tree = (CCDynamicTree) getChild(CHILD_TREE);
+ tree.yokeTo(nSelected);
+ }
+ }
+ catch (ModelControlException mce) {
+ CCDebug.trace1("", mce);
+ }
+
+ forwardTo(getRequestContext());
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ if (m_isFirstLoad) {
+ getModel().retrieve(getModel().getSelectedNode().getId());
+ getModel().getSelectedNode().setExpanded(true);
+ }
+ ((CCStaticTextField)getChild(CHILD_SELECTED_ENTITY)).setValue(getModel().getSelectedNode().getValue());
+ ((CCStaticTextField)getChild(CHILD_SELECTED_ENTITY_TYPE)).setValue(getModel().getNodeType(getModel().getSelectedNode()));
+ }
+
+
+ protected NavigationModel getModel() {
+ return (NavigationModel) getRequestContext().getModelManager().getModel(NavigationModel.class,
+ "RemoteDesktop", true, true);
+ }
+
+}
diff --git a/src/com/sun/apoc/manager/RemoteDesktopViewerFramesetViewBean.java b/src/com/sun/apoc/manager/RemoteDesktopViewerFramesetViewBean.java
new file mode 100644
index 0000000..bc4a841
--- /dev/null
+++ b/src/com/sun/apoc/manager/RemoteDesktopViewerFramesetViewBean.java
@@ -0,0 +1,75 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.html.StaticTextField;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.iplanet.jato.RequestManager;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import java.net.URLEncoder;
+import java.net.Socket;
+import java.net.InetSocketAddress;
+import com.sun.web.ui.common.CCDebug;
+
+
+public class RemoteDesktopViewerFramesetViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "RemoteDesktopViewerFrameset";
+ public static final String DEFAULT_DISPLAY_URL= "/jsp/remote/RemoteDesktopViewerFrameset.jsp";
+
+ public RemoteDesktopViewerFramesetViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ }
+
+ protected View createChild(String name) {
+ return null;
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ String sEntityId = Toolbox2.getParameter("EntityId");
+ RequestManager.getRequestContext().getRequest()
+ .getSession().setAttribute(Constants.BROWSE_TREE_ENTITY, sEntityId);
+ }
+}
diff --git a/src/com/sun/apoc/manager/RemoteDesktopViewerViewBean.java b/src/com/sun/apoc/manager/RemoteDesktopViewerViewBean.java
new file mode 100644
index 0000000..c89007f
--- /dev/null
+++ b/src/com/sun/apoc/manager/RemoteDesktopViewerViewBean.java
@@ -0,0 +1,160 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.model.CCPageTitleModel;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.RequestManager;
+
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.view.alert.CCAlert;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.iplanet.jato.RequestContext;
+import com.sun.web.ui.view.html.*;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.SPIException;
+import com.sun.web.ui.common.CCDebug;
+
+import java.net.Socket;
+import java.net.InetSocketAddress;
+import java.util.Iterator;
+
+
+import java.io.IOException;
+
+
+public class RemoteDesktopViewerViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "RemoteDesktopViewer";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/remote/RemoteDesktopViewer.jsp";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_TITLE = "BrowseTreeTitle";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_JAVASCRIPT = "Javascript";
+ private CCPageTitleModel m_titleModel = null;
+
+ public RemoteDesktopViewerViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ getPageTitleModel().registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_JAVASCRIPT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ child.setValue("");
+ return child;
+
+ }
+ else if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ }
+ else if (m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ protected CCPageTitleModel getPageTitleModel() {
+ if (m_titleModel == null) {
+ m_titleModel = new CCPageTitleModel(
+ RequestManager.getRequestContext().getServletContext(),
+ "/jsp/remote/RemoteDesktopViewerPageTitle.xml");
+ }
+ return m_titleModel;
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ String sEntityId = (String)RequestManager.getRequest().getSession(false).getAttribute(Constants.BROWSE_TREE_ENTITY);
+ String sHostName = null;
+ try {
+ Entity host = Toolbox2.getPolicyManager().getEntity(sEntityId);
+ if (host != null) {
+ sHostName = host.getDisplayName(Toolbox2.getLocale());
+ }
+ } catch (SPIException ex) {
+ CCDebug.trace1("Could not retrieve host name", ex);
+ }
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ if (isConnectionAllowed(sHostName)) {
+ alert.setSummary("Connecting to " + sHostName);
+ alert.setDetail("Established a connection to http://" +sHostName+ ":5800. The full initialization may take a few seconds.");
+
+ CCStaticTextField child = (CCStaticTextField) getChild(CHILD_JAVASCRIPT);
+ child.setValue("window.parent.frames['viewer'].location = 'http://"+sHostName+":5800';");
+
+ } else {
+ alert.setType(CCAlertInline.TYPE_ERROR);
+ alert.setSummary("Can not connect to " +sHostName);
+ alert.setDetail("Connection to http://"+sHostName+":5800 has been refused.");
+ }
+ }
+
+ protected boolean isConnectionAllowed(String hostname) {
+ try {
+ Socket socket = new Socket();
+ socket.connect(new InetSocketAddress(hostname, 5800));
+ socket.close();
+ return true;
+ } catch (Exception ex) {
+ return false;
+ }
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/SearchWindowBrowseTreeBaseViewBean.java b/src/com/sun/apoc/manager/SearchWindowBrowseTreeBaseViewBean.java
new file mode 100644
index 0000000..eaf2bf6
--- /dev/null
+++ b/src/com/sun/apoc/manager/SearchWindowBrowseTreeBaseViewBean.java
@@ -0,0 +1,106 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.iplanet.jato.view.html.OptionList;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.view.html.*;
+import com.iplanet.jato.model.ModelControlException;
+
+
+import javax.servlet.ServletException;
+
+
+
+public class SearchWindowBrowseTreeBaseViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "SearchWindowBrowseTreeBase";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/SearchWindowBrowseTreeBase.jsp";
+ public static final String CHILD_FORM = "SearchWindowBrowseTreeFormBase";
+ public static final String CHILD_OK_BUTTON = "OkButton";
+ public static final String CHILD_CANCEL_BUTTON = "CancelButton";
+
+ public SearchWindowBrowseTreeBaseViewBean(RequestContext rc) throws ModelControlException {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_OK_BUTTON, CCButton.class);
+ registerChild(CHILD_CANCEL_BUTTON, CCButton.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ if (name.equals(CHILD_OK_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ if (name.equals(CHILD_CANCEL_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ CCButton okBtn = (CCButton)getChild(CHILD_OK_BUTTON);
+ String returnPath = (String)getSession().getAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_RETURN_PATH);
+ if (returnPath != null && returnPath.equals("true")) {
+ okBtn.setExtraHtml("onClick=\"javascript:top.opener.focus(); top.opener.submitBrowse(top.browsetree.getEntityId(), top.browsetree.getEntityType(), top.browsetree.getEntityPath()); top.window.close(); return false;\"");
+ } else {
+ okBtn.setExtraHtml("onClick=\"javascript:top.opener.focus(); top.opener.submitBrowse(top.browsetree.getEntityId(), top.browsetree.getEntityType()); top.window.close(); return false;\"");
+
+ }
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/SearchWindowBrowseTreeIndexViewBean.java b/src/com/sun/apoc/manager/SearchWindowBrowseTreeIndexViewBean.java
new file mode 100644
index 0000000..390a962
--- /dev/null
+++ b/src/com/sun/apoc/manager/SearchWindowBrowseTreeIndexViewBean.java
@@ -0,0 +1,98 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+
+
+public class SearchWindowBrowseTreeIndexViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "SearchWindowBrowseTreeIndex";
+ public static final String DEFAULT_DISPLAY_URL= "/jsp/entities/SearchWindowBrowseTreeIndex.jsp";
+ public static final String CHILD_TITLE = "BrowseTreeTitle";
+
+ private String m_EntityType = null;
+ private String m_EntityId = null;
+ private String m_Context = null;
+ private String m_ReturnPath = null;
+
+ public SearchWindowBrowseTreeIndexViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_EntityType = Toolbox2.getParameter("EntityType");
+ m_EntityId = Toolbox2.decode(Toolbox2.getParameter("EntityId"));
+ m_Context = Toolbox2.decode(Toolbox2.getParameter("ContextId"));
+ m_ReturnPath = Toolbox2.decode(Toolbox2.getParameter("ReturnPath"));
+ RequestManager.getRequestContext().getRequest()
+ .getSession(true).setAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_ENTITY, m_EntityId);
+ RequestManager.getRequestContext().getRequest()
+ .getSession(true).setAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_ENTITY_TYPE, m_EntityType);
+ RequestManager.getRequestContext().getRequest()
+ .getSession(true).setAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_CONTEXT, m_Context);
+ RequestManager.getRequestContext().getRequest()
+ .getSession(true).setAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_RETURN_PATH, m_ReturnPath);
+ RequestManager.getRequestContext().getRequest()
+ .getSession(true).setAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_MODEL, null);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_TITLE, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_TITLE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ if(m_EntityType.equals(EnvironmentConstants.USER_SOURCE)) {
+ child.setValue("APOC.browse.title.org");
+ } else if (m_EntityType.equals(EnvironmentConstants.HOST_SOURCE)) {
+ child.setValue("APOC.browse.title.dom");
+ } else {
+ child.setValue("APOC.browse.title");
+ }
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+}
diff --git a/src/com/sun/apoc/manager/SearchWindowBrowseTreeMastheadViewBean.java b/src/com/sun/apoc/manager/SearchWindowBrowseTreeMastheadViewBean.java
new file mode 100644
index 0000000..1f1a21f
--- /dev/null
+++ b/src/com/sun/apoc/manager/SearchWindowBrowseTreeMastheadViewBean.java
@@ -0,0 +1,100 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+
+
+public class SearchWindowBrowseTreeMastheadViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "SearchWindowBrowseTreeMasthead";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/SearchWindowBrowseTreeMasthead.jsp";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_TITLE = "BrowseTreeTitle";
+ private CCPageTitleModel m_titleModel = null;
+ private String m_pageTitleText = "";
+
+ public SearchWindowBrowseTreeMastheadViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_titleModel = new CCPageTitleModel();
+ String sEntityType = (String)RequestManager.getRequest().getSession(false).getAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_ENTITY_TYPE);
+ if(sEntityType.equals(EnvironmentConstants.USER_SOURCE)) {
+ m_titleModel.setPageTitleText("APOC.browse.title.org");
+ m_pageTitleText = "APOC.browse.title.org";
+ } else if (sEntityType.equals(EnvironmentConstants.HOST_SOURCE)) {
+ m_titleModel.setPageTitleText("APOC.browse.title.dom");
+ m_pageTitleText = "APOC.browse.title.dom";
+ } else {
+ m_titleModel.setPageTitleText("APOC.browse.title");
+ m_pageTitleText = "APOC.browse.title";
+ }
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ m_titleModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ Toolbox2.setPageTitleHelp(m_titleModel, "APOC.browse.tree.nav",
+ "APOC.browse.title.text", "gbgcm.html");
+ return child;
+ }
+ else if (m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/SearchWindowBrowseTreeViewBean.java b/src/com/sun/apoc/manager/SearchWindowBrowseTreeViewBean.java
new file mode 100644
index 0000000..d529546
--- /dev/null
+++ b/src/com/sun/apoc/manager/SearchWindowBrowseTreeViewBean.java
@@ -0,0 +1,269 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.taglib.header.CCHtmlHeaderTag;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCDropDownMenu;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.tree.CCDynamicTree;
+import com.sun.web.ui.view.tree.CCTreeEventHandlerInterface;
+import java.io.IOException;
+import javax.servlet.ServletException;
+
+public class SearchWindowBrowseTreeViewBean extends ViewBeanBase implements CCTreeEventHandlerInterface {
+
+ public static final String CHILD_HEADER = "HtmlHeader";
+ public static final String PAGE_NAME = "SearchWindowBrowseTree";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/entities/SearchWindowBrowseTree.jsp";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_FORM = "SearchWindowBrowseTreeForm";
+ public static final String CHILD_TREE = "Tree";
+ public static final String CHILD_ROOT_ENTITY = "RootEntity";
+ public static final String CHILD_SELECTED_ENTITY = "SelectedEntity";
+ public static final String CHILD_SELECTED_ENTITY_TYPE = "SelectedEntityType";
+ public static final String CHILD_SELECTED_ENTITY_PATH = "SelectedEntityPath";
+ public static final String CHILD_DEFAULT_HREF = "DefaultHref";
+ public static final String CHILD_ENTITY_HREF = "EntityHref";
+ public static final String CHILD_ROOT_ENTITY_HIDDEN = "HiddenRootEntity";
+ public static final String CHILD_ROOT_ENTITY_TYPE_HIDDEN= "HiddenRootEntityType";
+
+ private String m_root = null;
+ private String m_sContext = "";
+ private String m_sEntityId = "";
+ private boolean m_bReload = false;
+ private boolean m_isFirstLoad = false;
+
+ public SearchWindowBrowseTreeViewBean(RequestContext rc) throws ModelControlException {
+ super(PAGE_NAME);
+ setRequestContext(rc);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ String sEntityId = (String)RequestManager.getRequest().getSession(false).getAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_ENTITY);
+ String sEntityType = (String)RequestManager.getRequest().getSession(false).getAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_ENTITY_TYPE);
+ String sContext = (String)RequestManager.getRequest().getSession(false).getAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_CONTEXT);
+ if( (sEntityId.length() != 0) ){
+ getModel().initTree(sContext, sEntityType, sEntityId);
+ m_sContext = sContext;
+ m_sEntityId = sEntityId;
+ m_isFirstLoad = true;
+ }
+ RequestManager.getRequest().getSession(false).setAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_ENTITY, "");
+ RequestManager.getRequest().getSession(false).setAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_CONTEXT, "");
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_SELECTED_ENTITY,CCStaticTextField.class);
+ registerChild(CHILD_SELECTED_ENTITY_TYPE,CCStaticTextField.class);
+ registerChild(CHILD_SELECTED_ENTITY_PATH,CCStaticTextField.class);
+ registerChild(CHILD_ROOT_ENTITY,CCStaticTextField.class);
+ registerChild(CHILD_TREE, CCDynamicTree.class);
+ registerChild(CHILD_DEFAULT_HREF, CCHref.class);
+ registerChild(CHILD_ENTITY_HREF, CCHref.class);
+ registerChild(CHILD_ROOT_ENTITY_HIDDEN,CCHiddenField.class);
+ registerChild(CHILD_ROOT_ENTITY_TYPE_HIDDEN,CCHiddenField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_SELECTED_ENTITY)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_ROOT_ENTITY)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_SELECTED_ENTITY_TYPE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_SELECTED_ENTITY_PATH)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_TREE)) {
+ CCDynamicTree child = new CCDynamicTree(this, name, getModel());
+ return child;
+ }
+ else if (name.equals(CHILD_DEFAULT_HREF) || name.equals(CHILD_ENTITY_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_ROOT_ENTITY_HIDDEN) || name.equals(CHILD_ROOT_ENTITY_TYPE_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void nodeClicked(RequestInvocationEvent event, int id, String treeName) {
+ m_bReload = true;
+ getSession().setAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_SELECTED_ENTITY, getModel().getStoredValue(id));
+ forwardTo(getRequestContext());
+ }
+
+ public void turnerClicked(RequestInvocationEvent event, int id, String treeName) {
+ try {
+ getModel().retrieve(id);
+ }
+ catch (ModelControlException mce) {
+ }
+ forwardTo(getRequestContext());
+ }
+
+ public void handleEntityHrefRequest(RequestInvocationEvent event) {
+ CCHref href = (CCHref) getChild(CHILD_DEFAULT_HREF);
+ String sHref = (String) href.getValue();
+ int nSelected = 1;
+
+ try {
+ CCDynamicTree tree = (CCDynamicTree) getChild(CHILD_TREE);
+ nSelected = getModel().retrieve(Toolbox2.decode(sHref));
+ tree.yokeTo(nSelected);
+ forwardTo(getRequestContext());
+ }
+ catch (ModelControlException mce) {
+ CCDebug.trace1("", mce);
+ }
+ }
+
+ public void handleDefaultHrefRequest(RequestInvocationEvent event) {
+ CCHref href = (CCHref) getChild(CHILD_DEFAULT_HREF);
+ String sHref = Toolbox2.decode((String) href.getValue());
+ int nOldSelected = getModel().getSelectedNode().getId();
+ int nSelected = 1;
+
+ try {
+ nSelected = getModel().retrieve(false);
+
+ if (!sHref.equals("a")) {
+ nSelected = getModel().retrieve(sHref);
+ }
+
+ if (nSelected!=nOldSelected) {
+ m_bReload = true;
+ CCDynamicTree tree = (CCDynamicTree) getChild(CHILD_TREE);
+ tree.yokeTo(nSelected);
+ }
+ }
+ catch (ModelControlException mce) {
+ CCDebug.trace1("", mce);
+ }
+ forwardTo(getRequestContext());
+ }
+
+ public boolean beginViewMenuDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCDropDownMenu dropdown = (CCDropDownMenu) getChild(event.getChildName());
+ dropdown.setValue(getModel().isLeavesFiltered()?"0":"1");
+ return true;
+ }
+
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ if (m_isFirstLoad) {
+ getModel().retrieve(getModel().getSelectedNode().getId());
+ getModel().getSelectedNode().setExpanded(true);
+ }
+ Entity rootEntity = getModel().getRootEntity();
+ if (rootEntity != null) {
+ ((CCHiddenField)getChild(CHILD_ROOT_ENTITY_HIDDEN)).setValue(rootEntity.getId());
+ ((CCHiddenField)getChild(CHILD_ROOT_ENTITY_TYPE_HIDDEN)).setValue(rootEntity.getPolicySourceName());
+ }
+ String entityId = getModel().getSelectedNode().getValue();
+ String entityType = getModel().getNodeType(getModel().getSelectedNode());
+ ((CCStaticTextField)getChild(CHILD_SELECTED_ENTITY)).setValue(entityId);
+ ((CCStaticTextField)getChild(CHILD_SELECTED_ENTITY_TYPE)).setValue(entityType);
+ ((CCStaticTextField)getChild(CHILD_SELECTED_ENTITY_PATH)).setValue(Toolbox2.getParentagePath(entityId, entityType, false, true, ">"));
+ }
+
+ public boolean beginHtmlHeaderDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ super.endDisplay(event);
+ // Reset state when displaying this page for the first time;
+ // otherwise, state will persist until cookies expire.
+ if (event.getChildName().indexOf(CHILD_HEADER) != -1) {
+ CCHtmlHeaderTag tag = (CCHtmlHeaderTag) event.getSource();
+ tag.resetFocus(m_isFirstLoad);
+ tag.resetScroll(m_isFirstLoad);
+ }
+ return true;
+ }
+
+ protected NavigationModel getModel() {
+ NavigationModel model = (NavigationModel)getRequestContext().getRequest().getSession().getAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_MODEL);
+ if (model == null) {
+ try {
+ model = new NavigationModel(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_SELECTED_ENTITY);
+ model.expandRoot();
+ } catch (ModelControlException mce) {
+ CCDebug.trace3(mce.toString());
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ }
+ model.setName(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_MODEL);
+ getRequestContext().getRequest().getSession().setAttribute(Constants.SEARCH_WINDOW_PREFIX + Constants.BROWSE_TREE_MODEL, model);
+ }
+ return model;
+ }
+}
diff --git a/src/com/sun/apoc/manager/SelectContextViewBean.java b/src/com/sun/apoc/manager/SelectContextViewBean.java
new file mode 100644
index 0000000..7c07bbb
--- /dev/null
+++ b/src/com/sun/apoc/manager/SelectContextViewBean.java
@@ -0,0 +1,230 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.iplanet.jato.view.html.OptionList;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.model.CCPropertySheetModel;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCDropDownMenu;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCOption;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.masthead.CCPrimaryMasthead;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.propertysheet.CCPropertySheet;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.Iterator;
+import javax.servlet.ServletException;
+
+
+public class SelectContextViewBean extends ViewBeanBase {
+
+ public static final String PAGE_NAME = "SelectContext";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/profiles/Login.jsp";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_CONTEXTLOGIN_TITLE = "ContextLoginTitle";
+ public static final String CHILD_CONTEXTLOGIN_SHEET = "ContextLoginSheet";
+ public static final String CHILD_CONTEXT_HIDDEN = "SelectedContext";
+
+ private String SESSION_CONSTANT = "SelectContextSessionConstant";
+
+ private CCPageTitleModel m_titleModel = null;
+ private CCPropertySheetModel m_sheetModel = null;
+
+ public SelectContextViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+
+ m_titleModel = new CCPageTitleModel();
+
+ m_sheetModel = new CCPropertySheetModel(
+ RequestManager.getRequestContext().getServletContext(), "/jsp/profiles/LoginSheet.xml");
+ String sessionConstant = Toolbox2.getParameter("SessionConstant");
+ if (sessionConstant != null && sessionConstant.length() != 0) {
+ RequestManager.getRequestContext().getRequest().getSession(true).setAttribute(SESSION_CONSTANT, sessionConstant);
+ }
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_MASTHEAD, CCPrimaryMasthead.class);
+ registerChild(CHILD_CONTEXTLOGIN_TITLE, CCPageTitle.class);
+ registerChild(CHILD_CONTEXTLOGIN_SHEET, CCPropertySheet.class);
+ registerChild(CHILD_CONTEXT_HIDDEN, CCHiddenField.class);
+ m_titleModel.registerChildren(this);
+ m_sheetModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_CONTEXTLOGIN_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_CONTEXTLOGIN_SHEET)) {
+ CCPropertySheet child = new CCPropertySheet(this, m_sheetModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_CONTEXT_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+ }
+ else if ((m_titleModel != null) && m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else if ((m_sheetModel != null) && m_sheetModel.isChildSupported(name)) {
+ View child = m_sheetModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleLoginButtonRequest(RequestInvocationEvent event) {
+ String contextMenuChange = Toolbox2.getParameter("ContextChange");
+ CCDropDownMenu context = (CCDropDownMenu) getChild("ContextMenu");
+ CCTextField username = (CCTextField) getChild("UsernameText");
+ CCTextField password = (CCTextField) getChild("PasswordText");
+ String sContext = (String) context.getValue();
+ String sUsername = (String) username.getValue();
+ String sPassword = (String) password.getValue();
+
+ try {
+ if (!(contextMenuChange.equals("true"))) {
+ PolicyManager mgr = Toolbox2.createPolicyManager(sContext, sUsername, sPassword, true);
+ String sessionConstant = (String)RequestManager.getRequest().getSession(false).getAttribute(SESSION_CONSTANT);
+ RequestManager.getRequestContext().getRequest().getSession(true).setAttribute(sessionConstant, mgr);
+ PrintWriter pw = getRequestContext().getResponse().getWriter() ;
+ StringBuffer buffer = new StringBuffer();
+ buffer.append("<html><header>") ;
+ buffer.append("<script type=\"text/javascript\">") ;
+ buffer.append("window.opener.selectContextCallback('");
+ buffer.append(sContext);
+ buffer.append("');top.window.close();</script>") ;
+ buffer.append("</header><body></body></html>") ;
+ pw.write(buffer.toString()) ;
+ pw.flush() ;
+ } else {
+ forwardTo();
+ }
+ } catch (Exception e) {
+ Toolbox2.prepareErrorDisplay(e, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ forwardTo();
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+
+ CCDropDownMenu menu = (CCDropDownMenu) getChild("ContextMenu");
+ int nOption = 0;
+ Iterator backendNames = Toolbox2.getBackendNames();
+ OptionList options = new OptionList();
+
+ while (backendNames.hasNext()) {
+ String backendName = (String)backendNames.next();
+ options.add(nOption++, new CCOption(backendName, backendName, false));
+ }
+
+ ((CCDropDownMenu)menu).setOptions(options);
+ String sContext = (String)menu.getValue();
+ if ( (sContext==null) || (sContext.length()==0) ) {
+ String sHrefContext = Toolbox2.getParameter("ContextName");
+ menu.setValue(sHrefContext);
+ }
+
+ sContext = (String) menu.getValue();
+ CCTextField username = (CCTextField) getChild("UsernameText");
+ CCTextField password = (CCTextField) getChild("PasswordText");
+ String backendType = Toolbox2.getBackendType(sContext);
+ if (backendType != null && backendType.equals("file")) {
+ username.setDisabled(true);
+ password.setDisabled(true);
+ }
+
+ try {
+ HashMap authorizedContexts = (HashMap) RequestManager.getRequestContext().getRequest().getSession(true).getAttribute(Constants.AUTH_CONTEXTS);
+ String sUsername = "";
+ String sPassword = "";
+ username.setValue(sUsername);
+ password.setValue(sPassword);
+ if (authorizedContexts!=null) {
+ if (authorizedContexts.containsKey(sContext)) {
+ sUsername = ((String[]) authorizedContexts.get(sContext))[0];
+ sPassword = ((String[]) authorizedContexts.get(sContext))[1];
+ }
+ }
+ username.setValue(sUsername);
+ password.setValue(sPassword);
+ } catch (Exception e) {}
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ return ((alert.getSummary() != null) && (alert.getSummary().length() > 0));
+ }
+}
diff --git a/src/com/sun/apoc/manager/SettingsSummaryViewBean.java b/src/com/sun/apoc/manager/SettingsSummaryViewBean.java
new file mode 100644
index 0000000..3dde6a2
--- /dev/null
+++ b/src/com/sun/apoc/manager/SettingsSummaryViewBean.java
@@ -0,0 +1,481 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.sun.apoc.manager.report.CategoryTiledModel;
+import com.sun.apoc.manager.report.CategoryTiledView;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.HashMap;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.report.PolicyMgrReportHelper;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.model.CCPageTitleModel;
+
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.cfgtree.property.Property;
+
+import com.sun.apoc.templates.parsing.TemplatePage;
+import com.sun.apoc.templates.parsing.TemplateSet;
+import com.sun.apoc.templates.parsing.TemplateSection;
+import com.sun.apoc.templates.parsing.TemplateCategory;
+import com.sun.apoc.templates.parsing.TemplateProperty;
+import com.sun.apoc.templates.parsing.TemplateRepository;
+import com.sun.apoc.manager.resource.ResourceRepository;
+import com.sun.apoc.manager.report.ResultsData;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import java.io.IOException;
+import javax.servlet.ServletException;
+
+
+public class SettingsSummaryViewBean extends ViewBeanBase {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME =
+ "SettingsSummary";
+
+ // The URL that points to the JSP which uses this ViewBean
+ public static final String DEFAULT_DISPLAY_URL =
+ "/jsp/SettingsSummary.jsp";
+ public static final String CHILD_PAGETITLE =
+ "PageTitle";
+ public static final String CHILD_ALERT =
+ "Alert";
+ public static final String CHILD_STACKTRACE =
+ "StackTrace";
+ public static final String CHILD_CONTENTS_TITLE =
+ "ContentsTitle";
+ public static final String CHILD_SETTINGS_TITLE =
+ "SettingsSummaryTitle";
+ public static final String CHILD_NAME_HEADING =
+ "NameHeading";
+ public static final String CHILD_VALUE_HEADING =
+ "ValueHeading";
+ public static final String CHILD_STATUS_HEADING =
+ "StatusHeading";
+ public static final String CHILD_CATEGORY_TILEDVIEW =
+ "CategoryTiledView";
+ public static final String CHILD_NOSECTIONS =
+ "NoSections";
+
+ private CCI18N m_I18n = null;
+ private Profile m_PolicyGroup = null;
+ private PolicyMgrReportHelper m_PolicyMgrHelper = null;
+ private CCPageTitleModel m_pagetitleModel = null;
+ private HashMap m_sectionPathsMap = null;
+ private HashMap m_definedPropsMap = null;
+ private ArrayList m_resultsData = null;
+ private ArrayList m_allResultsData = null;
+
+ /** Creates a new instance of ReportViewBean */
+ public SettingsSummaryViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ initMemberVariables();
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_PAGETITLE, CCPageTitle.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_CONTENTS_TITLE, CCStaticTextField.class);
+ registerChild(CHILD_SETTINGS_TITLE, CCStaticTextField.class);
+ registerChild(CHILD_NAME_HEADING, CCStaticTextField.class);
+ registerChild(CHILD_VALUE_HEADING, CCStaticTextField.class);
+ registerChild(CHILD_STATUS_HEADING, CCStaticTextField.class);
+ registerChild(CHILD_CATEGORY_TILEDVIEW, CategoryTiledView.class);
+ registerChild(CHILD_NOSECTIONS, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_PAGETITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_pagetitleModel, name);
+ return child;
+
+ } else if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, "");
+ return child;
+
+ } else if (name.equals(CHILD_CONTENTS_TITLE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, m_I18n.getMessage("APOC.report.contitle"));
+ return child;
+
+ } else if (name.equals(CHILD_CATEGORY_TILEDVIEW)) {
+ CategoryTiledView child = new CategoryTiledView(this, name);
+ return child;
+
+ } else if (name.equals(CHILD_SETTINGS_TITLE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name,
+ m_I18n.getMessage("APOC.report.settings.summary.title"));
+ return child;
+
+ } else if (name.equals(CHILD_NAME_HEADING)) {
+ CCStaticTextField child = new CCStaticTextField(this, name,
+ m_I18n.getMessage("APOC.report.table.nameheading"));
+ return child;
+
+ } else if (name.equals(CHILD_VALUE_HEADING)) {
+ CCStaticTextField child = new CCStaticTextField(this, name,
+ m_I18n.getMessage("APOC.report.table.valueheading"));
+ return child;
+
+ } else if (name.equals(CHILD_STATUS_HEADING)) {
+ CCStaticTextField child = new CCStaticTextField(this, name,
+ m_I18n.getMessage("APOC.report.table.statusheading"));
+ return child;
+
+ } else if (name.equals(CHILD_NOSECTIONS)) {
+ String sArgs = m_PolicyGroup.getDisplayName();
+ Object[] args = {sArgs};
+ String sNoSections = m_I18n.getMessage("APOC.report.table.empty", args);
+ CCStaticTextField child = new CCStaticTextField(this, name, sNoSections);
+ return child;
+
+ } else if (m_pagetitleModel.isChildSupported(name)) {
+ return m_pagetitleModel.createChild(this, name);
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) {
+ StringBuffer buffer = new StringBuffer(250);
+ buffer.append(Toolbox2.buildProfileTitle("APOC.report.settings.summary.title"));
+ m_pagetitleModel.setPageTitleText(buffer.toString());
+ Toolbox2.setPageTitleHelp(m_pagetitleModel, "APOC.report.settings.summary.title",
+ "APOC.profilewnd.summary.help", "gbgda.html");
+ setData();
+ CategoryTiledView categoryChild = ((CategoryTiledView)getChild(CHILD_CATEGORY_TILEDVIEW));
+ CategoryTiledModel categoryModel = (CategoryTiledModel)categoryChild.getPrimaryModel();
+ categoryModel.setData(m_resultsData);
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+
+ if ((alert.getSummary() != null) && (alert.getSummary().length() > 0)) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /* public boolean beginNoSectionsDisplay(ChildDisplayEvent event) {
+ return !sectionsAvailable();
+ }*/
+
+ public boolean beginContentsTitleDisplay(ChildDisplayEvent event){
+ return sectionsAvailable();
+ }
+
+ public boolean beginCategoryTiledViewDisplay(ChildDisplayEvent event){
+ return sectionsAvailable();
+ }
+
+ public boolean beginDisplayTablesDisplay(ChildDisplayEvent event){
+ return sectionsAvailable();
+ }
+
+ public boolean beginNoSectionsDisplay(ChildDisplayEvent event) {
+ // String sNoSections = m_I18n.getMessage("APOC.report.novalues");
+ // ((CCStaticTextField)getChild(this.CHILD_NOSECTIONS)).setValue(sNoSections);
+ return !showAlert() && !sectionsAvailable();
+ }
+
+ public void handleCloseButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+
+ CCStaticTextField child = (CCStaticTextField)((ProfileWindowViewBean)getViewBean(ProfileWindowViewBean.class)).getChild(ProfileWindowViewBean.CHILD_TAB_CHANGE_SCRIPT);
+ child.setValue("closeEditorAndRefresh();");
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ private CCPageTitleModel createPageTitleModel() {
+ CCPageTitleModel model = new CCPageTitleModel(
+ RequestManager.getRequestContext().getServletContext(),
+ "/jsp/profiles/SettingsSummaryPageTitle.xml");
+ model.setValue("CloseButton", "APOC.profilewnd.buttons.close");
+ return model;
+ }
+
+ private void initMemberVariables() {
+ m_pagetitleModel = createPageTitleModel();
+ // The resources
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ // The results data arrays
+ m_resultsData = new ArrayList();
+ m_allResultsData = new ArrayList();
+
+ m_PolicyGroup = ProfileWindowFramesetViewBean.getSelectedProfile();
+ m_PolicyMgrHelper = new PolicyMgrReportHelper(m_PolicyGroup);
+ RequestManager.getRequestContext().getRequest().getSession(true).setAttribute(Constants.REPORT_TYPE, Constants.POLICY_GROUP_REPORT_TYPE);
+ RequestManager.getRequestContext().getRequest().getSession(true).setAttribute(Constants.POLICY_MANAGER_HELPER, m_PolicyMgrHelper);
+ }
+
+ private void setData() {
+ try {
+ m_definedPropsMap = m_PolicyMgrHelper.getAllDefinedProperties();
+ } catch (SPIException spie) {
+ m_definedPropsMap = new HashMap();
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ Toolbox2.prepareErrorDisplay(spie, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ alert.setValue(CCAlertInline.TYPE_INFO);
+ alert.setType(CCAlertInline.TYPE_INFO);
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ alert.setSummary(i18n.getMessage("APOC.report.xml.parsing.error"));
+ }
+ setSectionsList();
+ Iterator it = m_allResultsData.iterator();
+ while (it.hasNext()) {
+ ResultsData data = (ResultsData)it.next();
+ if (data.isASet()) {
+ setSetData(data);
+ } else {
+ setSectionData(data);
+ }
+ }
+ }
+
+ private void setSetData(ResultsData data) {
+ TemplateSet set = (TemplateSet)data.getSection();
+ String setDataPath = set.getDataPath();
+ String separator = TemplateRepository.TEMPLATE_PATH_SEPARATOR;
+ if (!setDataPath.endsWith(separator)) {
+ setDataPath = setDataPath + separator;
+ }
+
+ ArrayList setProps = new ArrayList();
+ ArrayList dymanicSetNames = new ArrayList();
+ Iterator keys = m_definedPropsMap.keySet().iterator();
+ while (keys.hasNext()) {
+ String fullDataPath = (String)keys.next();
+ if (fullDataPath.startsWith(setDataPath)) {
+ int start = setDataPath.length();
+ int end = fullDataPath.indexOf("/", start);
+ String setNode = fullDataPath.substring(0, end + 1);
+ try {
+ if (m_PolicyMgrHelper.isASetNode(setNode)) {
+ String setName = fullDataPath.substring(start, end);
+ if (!dymanicSetNames.contains(setName)) {
+ dymanicSetNames.add(setName);
+ }
+ }
+ } catch (SPIException spie) {
+ CCDebug.trace3("SPI Exception caught: " + spie);
+ }
+ }
+ }
+ Property property = null;
+ Iterator it = dymanicSetNames.iterator();
+ while (it.hasNext()) {
+ String setName = (String)it.next();
+ ArrayList propsWithValues = new ArrayList();
+ ArrayList templatePropsWithValues = new ArrayList();
+ TemplatePage page = set.getPage();
+ List sectionList = page.getSections();
+ if (sectionList != null) {
+ Iterator sectionIt = sectionList.iterator();
+ while (sectionIt.hasNext()) {
+ TemplateSection section = (TemplateSection)sectionIt.next();
+ List sectionProps = section.getProperties();
+ if (sectionProps != null) {
+ Iterator propsIt = sectionProps.iterator();
+ while (propsIt.hasNext()) {
+ TemplateProperty prop = (TemplateProperty)propsIt.next();
+ String propDataPath = prop.getDataPath();
+ property = null;
+ String dataPath = propDataPath.replaceFirst("./", setDataPath);
+ dataPath = dataPath.replaceFirst(ShowResultsViewBean.SET_PLACEHOLDER, setName);
+ property = (Property)m_definedPropsMap.get(dataPath);
+ if (property != null) {
+ propsWithValues.add(property);
+ templatePropsWithValues.add(prop);
+ }
+ }
+ }
+ }
+ }
+
+ String path = data.getPath();
+ path = path + ";" + set.getDefaultName() + ";" + Toolbox2.decode(setName);
+ String linkPath = data.getLinkPath();
+ linkPath = linkPath + ";" + TemplateRepository.SET_PREFIX + set.getDefaultName() + TemplateRepository.SET_INDEX_SEPARATOR + Toolbox2.decode(setName);
+ ResultsData resultsData = new ResultsData(set, templatePropsWithValues, propsWithValues, path, linkPath, true);
+ m_resultsData.add(resultsData);
+ }
+ }
+
+ private void setSectionData(ResultsData data) {
+ TemplateSection section = data.getSection();
+ List sectionProps = section.getProperties();
+ if (sectionProps != null) {
+ int sectionPropsSize = sectionProps.size();
+ boolean sectionHasValue = false;
+ Property property = null;
+ ArrayList propsWithValues = new ArrayList();
+ ArrayList templatePropsWithValues = new ArrayList();
+
+ Iterator listIt = sectionProps.iterator();
+ while (listIt.hasNext()) {
+ TemplateProperty prop = (TemplateProperty)listIt.next();
+ String dataPath = prop.getDataPath();
+ property = (Property)m_definedPropsMap.get(dataPath);
+ if (property != null) {
+ propsWithValues.add(property);
+ templatePropsWithValues.add(prop);
+ sectionHasValue = true;
+ }
+
+ }
+
+ if (sectionHasValue == true) {
+ String path = data.getPath();
+ String linkPath = data.getLinkPath();
+ ResultsData resultsData = new ResultsData(section, templatePropsWithValues, propsWithValues, path, linkPath, false);
+ m_resultsData.add(resultsData);
+ }
+ }
+ }
+
+ private void setSectionsList() {
+ TemplateRepository tmpRep = TemplateRepository.getDefaultRepository();
+ ResourceRepository resourceRepository = ResourceRepository.getDefaultRepository();
+ HashMap topLevelCatMap = tmpRep.getTopLevelCategories();
+ m_sectionPathsMap = new HashMap();
+ Iterator it = topLevelCatMap.values().iterator();
+ while (it.hasNext()) {
+ TemplateCategory cat = (TemplateCategory)it.next();
+ String catname = resourceRepository.getMessage(
+ cat.getResourceId(),
+ cat.getResourceBundle(),
+ RequestManager.getRequest());
+ recursiveSetSectionsList(cat, catname, cat.getDefaultName());
+ }
+ }
+
+ private void recursiveSetSectionsList(TemplateCategory cat, String path, String linkPath) {
+ if (cat.hasSubCategories()) {
+ HashMap subCats = cat.getSubCategories();
+ Iterator it = subCats.values().iterator();
+ ResourceRepository resourceRepository = ResourceRepository.getDefaultRepository();
+
+ // There are subcategories so go recursively through them
+ while (it.hasNext()) {
+ TemplateCategory subCategory = (TemplateCategory) it.next();
+ String catname = resourceRepository.getMessage(
+ subCategory.getResourceId(),
+ subCategory.getResourceBundle(),
+ RequestManager.getRequest());
+
+ StringBuffer pathCopy = new StringBuffer();
+ pathCopy.append(path).append(";");
+ pathCopy.append(catname);
+
+ StringBuffer linkPathCopy = new StringBuffer();
+ linkPathCopy.append(linkPath).append(";");
+ linkPathCopy.append(subCategory.getDefaultName());
+
+
+ recursiveSetSectionsList(subCategory, pathCopy.toString(), linkPathCopy.toString());
+ }
+ } else {
+ TemplatePage subPage = (TemplatePage) cat;
+ if ((subPage != null) && (subPage.getSections() != null)) {
+ List sections = subPage.getSections();
+ for (int i = 0; i < sections.size(); i++) {
+ TemplateSection section = subPage.getSection(i);
+ ResultsData resultsData = null;
+ if (isASet(section)) {
+ resultsData = new ResultsData(section, null, null, path, linkPath, true);
+ } else {
+ resultsData = new ResultsData(section, null, null, path, linkPath, false);
+ }
+ m_allResultsData.add(resultsData);
+ }
+ }
+ }
+ }
+
+ private boolean showAlert() {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ if ((alert.getSummary() != null) && (alert.getSummary().length() > 0)) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean isASet(TemplateSection section) {
+ boolean isASet = true;
+ try {
+ TemplateSet set = (TemplateSet)section;
+ } catch (ClassCastException cce) {
+ isASet= false;
+ }
+ return isASet;
+ }
+
+ private boolean sectionsAvailable(){
+ if (m_resultsData.size() > 0)
+ return true;
+ else
+ return false;
+ }
+
+ private String getParentsString(Entity entity) {
+ return Toolbox2.getParentagePath(entity, false, false, ">");
+ }
+
+}
diff --git a/src/com/sun/apoc/manager/ShowResultsButtonsViewBean.java b/src/com/sun/apoc/manager/ShowResultsButtonsViewBean.java
new file mode 100644
index 0000000..9867ac9
--- /dev/null
+++ b/src/com/sun/apoc/manager/ShowResultsButtonsViewBean.java
@@ -0,0 +1,93 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.sun.apoc.manager.profiles.ProfileWindowModel;
+import com.sun.apoc.manager.settings.Section;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCForm;
+import com.iplanet.jato.RequestManager;
+import java.util.Date;
+import java.text.DateFormat;
+import java.util.Locale;
+
+public class ShowResultsButtonsViewBean extends ViewBeanBase {
+
+ public static final String PAGE_NAME = "ReportButtons";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/report/ShowResultsButtons.jsp";
+ public static final String CHILD_PRINT_BUTTON = "PrintButton";
+ public static final String CHILD_CLOSE_BUTTON = "CloseButton";
+ public static final String CHILD_FORM = "Form";
+
+ private ProfileWindowModel mEditorModel = null;
+
+ public ShowResultsButtonsViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_PRINT_BUTTON, CCButton.class);
+ registerChild(CHILD_CLOSE_BUTTON, CCButton.class);
+ registerChild(CHILD_FORM, CCForm.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_PRINT_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_CLOSE_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_FORM)) {
+ CCForm child = new CCForm(this, name);
+ return child;
+
+ } else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+} \ No newline at end of file
diff --git a/src/com/sun/apoc/manager/ShowResultsFramesetViewBean.java b/src/com/sun/apoc/manager/ShowResultsFramesetViewBean.java
new file mode 100644
index 0000000..08e3933
--- /dev/null
+++ b/src/com/sun/apoc/manager/ShowResultsFramesetViewBean.java
@@ -0,0 +1,70 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+
+import com.sun.web.ui.view.html.CCStaticTextField;
+
+
+public class ShowResultsFramesetViewBean extends ViewBeanBase {
+
+ public static final String PAGE_NAME = "ShowResultsFrameset";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/report/ShowResultsFrameset.jsp";
+ public static final String CHILD_TITLE = "Title";
+
+ public ShowResultsFramesetViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_TITLE, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_TITLE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+
+ } else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+} \ No newline at end of file
diff --git a/src/com/sun/apoc/manager/ShowResultsViewBean.java b/src/com/sun/apoc/manager/ShowResultsViewBean.java
new file mode 100644
index 0000000..9ddf862
--- /dev/null
+++ b/src/com/sun/apoc/manager/ShowResultsViewBean.java
@@ -0,0 +1,796 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+import java.util.ArrayList;
+import java.util.Locale;
+import java.text.DateFormat;
+import java.util.Iterator;
+import java.util.List;
+import java.util.LinkedList;
+import java.util.HashMap;
+import java.util.Date;
+import javax.servlet.http.HttpServletRequest;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.report.CategoryTiledModel;
+import com.sun.apoc.manager.report.CategoryTiledView;
+import com.sun.apoc.manager.report.ElementsInvolvedTableModel;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.common.CCI18N;
+
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.cfgtree.property.Property;
+import com.sun.apoc.spi.entities.Role;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.templates.parsing.TemplatePage;
+import com.sun.apoc.templates.parsing.TemplateSet;
+import com.sun.apoc.templates.parsing.TemplateSection;
+import com.sun.apoc.templates.parsing.TemplateCategory;
+import com.sun.apoc.templates.parsing.TemplateProperty;
+import com.sun.apoc.templates.parsing.TemplateRepository;
+import com.sun.apoc.manager.resource.ResourceRepository;
+
+import javax.servlet.ServletException;
+import java.io.IOException;
+import com.sun.apoc.manager.report.PolicyMgrReportHelper;
+import com.sun.apoc.manager.report.ResultsData;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.entities.Leaf;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCSelectableList;
+import com.sun.web.ui.view.table.CCActionTable;
+import java.util.Arrays;public class ShowResultsViewBean extends ViewBeanBase {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "ShowResults";
+ // The URL that points to the JSP which uses this ViewBean
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/report/ShowResults.jsp";
+ public static final String CHILD_MASTHEAD = "SecondaryMH";
+ public static final String CHILD_PAGETITLE = "PageTitle";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_ELEMENTS_INVOLVED_LIST = "ElementsInvolvedList";
+ public static final String CHILD_ELEMENTS_INVOLVED_LABEL = "ElementsInvolvedListLabel";
+ public static final String CHILD_ELEMENTS_INVOLVED_TABLE = "ElementsInvolvedTable";
+ public static final String CHILD_ADDBUTTON = "AddButton";
+ public static final String CHILD_REMOVEBUTTON = "RemoveButton";
+ public static final String CHILD_UPBUTTON = "UpButton";
+ public static final String CHILD_DOWNBUTTON = "DownButton";
+ public static final String CHILD_HIDDEN_ORGENTITY = "OrgEntity";
+ public static final String CHILD_HIDDEN_DOMENTITY = "DomEntity";
+ public static final String CHILD_HIDDEN_MERGE_ORDER = "MergeOrder";
+ public static final String CHILD_REPORT_INFO = "ReportInfo";
+ public static final String CHILD_WINDOW_TITLE = "WindowTitle";
+ public static final String CHILD_CREATION_INFO = "CreationInfo";
+ public static final String CHILD_PROFILES_INVOLVED_TITLE = "ProfilesInvolvedTitle";
+ public static final String CHILD_ENTITY_INVOLVED_TITLE = "EntityInvolvedTitle";
+ public static final String CHILD_PROFILES_INVOLVED = "ProfilesInvolved";
+ public static final String CHILD_SETTINGS_TITLE = "SettingsSummaryTitle";
+ public static final String CHILD_NAME_HEADING = "NameHeading";
+ public static final String CHILD_VALUE_HEADING = "ValueHeading";
+ public static final String CHILD_STATUS_HEADING = "StatusHeading";
+ public static final String CHILD_CATEGORY_TILEDVIEW = "CategoryTiledView";
+ public static final String CHILD_NOSECTIONS = "NoSections";
+
+ public static final String SET_PLACEHOLDER = "\\$queriedId";
+
+ private CCPageTitleModel m_pagetitleModel = null;
+
+ private Entity m_Entity = null;
+ private Entity m_OrgEntity = null;
+ private Entity m_DomEntity = null;
+ private ArrayList m_InvolvedSources = null;
+ private ArrayList m_InvolvedElements = null;
+ private ArrayList m_AllSources = null;
+ private String m_EntityType = null;
+
+ private String m_OrgEntityName = null;
+ private String m_DomEntityName = null;
+
+ private PolicyManager m_PolicyManager = null;
+ private PolicyMgrReportHelper m_PolicyMgrHelper = null;
+
+ private CCI18N m_I18n = null;
+
+ private boolean m_isFirstLoad = false;
+ private boolean m_hideReport = false;
+
+ private HashMap m_sectionPathsMap = null;
+ private HashMap m_definedPropsMap = null;
+ private ArrayList m_resultsData = null;
+ private ArrayList m_allResultsData = null;
+
+ private ElementsInvolvedTableModel m_elementsInvolvedModel = null;
+
+ public ShowResultsViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ initMemberVariables();
+ registerChildren();
+ }
+
+ public ElementsInvolvedTableModel getElementsInvolvedModel() {
+ if (m_elementsInvolvedModel == null) {
+ m_elementsInvolvedModel = new ElementsInvolvedTableModel();
+ m_elementsInvolvedModel.setDocument(RequestManager.getRequestContext().getServletContext(), "/jsp/report/ElementsInvolvedTable.xml");
+ }
+ return m_elementsInvolvedModel;
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ registerChild(CHILD_PAGETITLE, CCPageTitle.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_ELEMENTS_INVOLVED_LIST, CCSelectableList.class);
+ registerChild(CHILD_ELEMENTS_INVOLVED_LABEL, CCLabel.class);
+ registerChild(CHILD_ELEMENTS_INVOLVED_TABLE, CCActionTable.class);
+ registerChild(CHILD_ADDBUTTON, CCButton.class);
+ registerChild(CHILD_REMOVEBUTTON, CCButton.class);
+ registerChild(CHILD_UPBUTTON, CCButton.class);
+ registerChild(CHILD_DOWNBUTTON, CCButton.class);
+ registerChild(CHILD_HIDDEN_ORGENTITY, CCHiddenField.class);
+ registerChild(CHILD_HIDDEN_DOMENTITY, CCHiddenField.class);
+ registerChild(CHILD_HIDDEN_MERGE_ORDER, CCHiddenField.class);
+ registerChild(CHILD_WINDOW_TITLE, CCStaticTextField.class);
+ if (!m_hideReport) {
+ registerChild(CHILD_REPORT_INFO, CCStaticTextField.class);
+ registerChild(CHILD_CREATION_INFO, CCStaticTextField.class);
+ registerChild(CHILD_PROFILES_INVOLVED_TITLE, CCStaticTextField.class);
+ registerChild(CHILD_ENTITY_INVOLVED_TITLE, CCStaticTextField.class);
+ registerChild(CHILD_PROFILES_INVOLVED, CCStaticTextField.class);
+ registerChild(CHILD_NOSECTIONS, CCStaticTextField.class);
+ registerChild(CHILD_SETTINGS_TITLE, CCStaticTextField.class);
+ registerChild(CHILD_NAME_HEADING, CCStaticTextField.class);
+ registerChild(CHILD_VALUE_HEADING, CCStaticTextField.class);
+ registerChild(CHILD_STATUS_HEADING, CCStaticTextField.class);
+ registerChild(CHILD_CATEGORY_TILEDVIEW, CategoryTiledView.class);
+ }
+ m_elementsInvolvedModel.registerChildren(this);
+ m_pagetitleModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ String sSubProductName = m_I18n.getMessage("APOC.masthead.altText");
+
+ child.setAlt(sSubProductName);
+ child.setHeight("21");
+ child.setWidth("355");
+ child.setSrc("/apoc/images/popuptitle.gif");
+ return child;
+
+ } else if (name.equals(CHILD_PAGETITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_pagetitleModel, name);
+ Toolbox2.setPageTitleHelp(m_pagetitleModel, "APOC.configrep.effective.settings",
+ "APOC.configrep.help", "gbgoz.html");
+ return child;
+
+ } else if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_ELEMENTS_INVOLVED_LIST)) {
+ CCSelectableList child = new CCSelectableList(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_ELEMENTS_INVOLVED_TABLE)) {
+ CCActionTable child = new CCActionTable(this, m_elementsInvolvedModel, name);
+ return child;
+
+ } else if (name.equals(CHILD_ELEMENTS_INVOLVED_LABEL)) {
+ CCLabel child = new CCLabel(this,
+ name, m_I18n.getMessage("APOC.report.addremove.elements"));
+ return child;
+
+ } else if (name.equals(CHILD_ADDBUTTON) || name.equals(CHILD_REMOVEBUTTON)
+ || name.equals(CHILD_UPBUTTON) || name.equals(CHILD_DOWNBUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_HIDDEN_ORGENTITY) || name.equals(CHILD_HIDDEN_DOMENTITY)
+ || name.equals(CHILD_HIDDEN_MERGE_ORDER) ) {
+ CCHiddenField child = new CCHiddenField(this, name, "");
+ return child;
+
+ } else if (m_pagetitleModel.isChildSupported(name)) {
+ return m_pagetitleModel.createChild(this, name);
+
+ } else if (m_elementsInvolvedModel.isChildSupported(name)) {
+ return m_elementsInvolvedModel.createChild(this, name);
+
+ } else if (name.equals(CHILD_REPORT_INFO)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, "");
+ return child;
+
+ } else if (name.equals(CHILD_WINDOW_TITLE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_CREATION_INFO)) {
+ // #b4990175 make the date locale specific
+ HttpServletRequest request = RequestManager.getRequestContext().getRequest();
+ Locale locale = request.getLocale();
+ DateFormat dateFormatter = DateFormat.getDateTimeInstance(
+ DateFormat.FULL, DateFormat.FULL, locale);
+ Date rightNow = new Date();
+ String sDateNow = dateFormatter.format(rightNow);
+ Object[] args = {sDateNow};
+ String sCreationDate = m_I18n.getMessage("APOC.report.createdate", args);
+ CCStaticTextField child = new CCStaticTextField(this, name, sCreationDate);
+ return child;
+
+ } else if (name.equals(CHILD_PROFILES_INVOLVED_TITLE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, "");
+ return child;
+
+ } else if (name.equals(CHILD_ENTITY_INVOLVED_TITLE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, "");
+ return child;
+
+ } else if (name.equals(CHILD_PROFILES_INVOLVED)) {
+ CCStaticTextField child = new CCStaticTextField (this, name, "");
+ return child;
+
+ } else if (name.equals(CHILD_CATEGORY_TILEDVIEW)) {
+ CategoryTiledView child = new CategoryTiledView(this, name);
+ return child;
+
+ } else if (name.equals(CHILD_NOSECTIONS)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, "");
+ return child;
+
+ } else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, "");
+ return child;
+
+ } else if (name.equals(CHILD_SETTINGS_TITLE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name,
+ m_I18n.getMessage("APOC.report.settings.summary.title"));
+ return child;
+
+ } else if (name.equals(CHILD_NAME_HEADING)) {
+ CCStaticTextField child = new CCStaticTextField(this, name,
+ m_I18n.getMessage("APOC.report.table.nameheading"));
+ return child;
+
+ } else if (name.equals(CHILD_VALUE_HEADING)) {
+ CCStaticTextField child = new CCStaticTextField(this, name,
+ m_I18n.getMessage("APOC.report.table.valueheading"));
+ return child;
+
+ } else if (name.equals(CHILD_STATUS_HEADING)) {
+ CCStaticTextField child = new CCStaticTextField(this, name,
+ m_I18n.getMessage("APOC.report.table.statusheading"));
+ return child;
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event)
+ throws ModelControlException {
+
+ CCHiddenField hiddenOrgId = (CCHiddenField) getChild(CHILD_HIDDEN_ORGENTITY);
+ CCHiddenField hiddenDomId = (CCHiddenField) getChild(CHILD_HIDDEN_DOMENTITY);
+ CCHiddenField hiddenMergeOrder = (CCHiddenField) getChild(CHILD_HIDDEN_MERGE_ORDER);
+
+ Entity selectedEntity = Toolbox2.getSelectedEntity();
+ String selectedSource = selectedEntity.getPolicySourceName();
+ if (m_AllSources.contains(EnvironmentConstants.USER_SOURCE)) {
+ String hiddenOrgIdValue = Toolbox2.decode((String)hiddenOrgId.getValue());
+ if (hiddenOrgIdValue.length() == 0) {
+ if (selectedSource.equals(EnvironmentConstants.USER_SOURCE)) {
+ hiddenOrgId.setValue(Toolbox2.encode(selectedEntity.getId()));
+ }
+ }
+ }
+ if (m_AllSources.contains(EnvironmentConstants.HOST_SOURCE)) {
+ String hiddenDomIdValue = Toolbox2.decode((String)hiddenDomId.getValue());
+ if (hiddenDomIdValue.length() == 0) {
+ if (selectedSource.equals(EnvironmentConstants.HOST_SOURCE)) {
+ hiddenDomId.setValue(Toolbox2.encode(selectedEntity.getId()));
+ }
+ }
+ }
+
+ String hiddenMergeOrderValue = (String) hiddenMergeOrder.getValue();
+
+ if (hiddenMergeOrderValue == null || hiddenMergeOrderValue.length() == 0 ) {
+ String path = Toolbox2.getParentagePath(Toolbox2.getSelectedEntity(), false, true, ">");
+ String topEntity = "";
+ String baseEntity = "";
+ if (path.indexOf(">") != -1) {
+ String[] entities = path.split(" > ");
+ topEntity = entities[0];
+ baseEntity = entities[entities.length-1];
+ } else {
+ topEntity = path;
+ baseEntity = path;
+ }
+ String defaultMergeOrder = baseEntity + " (" + topEntity + ")|" + Toolbox2.getSelectedEntity().getPolicySourceName();
+ hiddenMergeOrder.setValue(defaultMergeOrder);
+ hiddenMergeOrderValue = defaultMergeOrder;
+ }
+
+ String[] involvedSources = hiddenMergeOrderValue.split("\\|");
+ for (int i = 1; i < involvedSources.length; i += 2) {
+ m_InvolvedSources.add(involvedSources[i]);
+ }
+ ArrayList elementTypes = new ArrayList();
+ if (m_InvolvedSources.contains(EnvironmentConstants.USER_SOURCE)
+ && m_InvolvedSources.contains(EnvironmentConstants.HOST_SOURCE)) {
+ m_InvolvedElements.add(hiddenDomId.getValue());
+ m_InvolvedElements.add(hiddenOrgId.getValue());
+ elementTypes.add(EnvironmentConstants.HOST_SOURCE);
+ elementTypes.add(EnvironmentConstants.USER_SOURCE);
+ } else if (m_InvolvedSources.contains(EnvironmentConstants.USER_SOURCE)) {
+ m_InvolvedElements.add(hiddenOrgId.getValue());
+ elementTypes.add(EnvironmentConstants.USER_SOURCE);
+ } else if (m_InvolvedSources.contains(EnvironmentConstants.HOST_SOURCE)) {
+ m_InvolvedElements.add(hiddenDomId.getValue());
+ elementTypes.add(EnvironmentConstants.HOST_SOURCE);
+ }
+ CCActionTable elementsInvolvedTable = (CCActionTable)getChild(CHILD_ELEMENTS_INVOLVED_TABLE);
+ ElementsInvolvedTableModel elementsInvolvedModel = (ElementsInvolvedTableModel)elementsInvolvedTable.getModel();
+ elementsInvolvedModel.retrieve(m_InvolvedElements, elementTypes);
+ setMemberVariables();
+ CategoryTiledView categoryChild = ((CategoryTiledView)getChild(CHILD_CATEGORY_TILEDVIEW));
+ CategoryTiledModel categoryModel = (CategoryTiledModel)categoryChild.getPrimaryModel();
+ categoryModel.setData(m_resultsData);
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+
+ if ((alert.getSummary() != null) && (alert.getSummary().length() > 0)) {
+ return true;
+ }
+
+ return false;
+ }
+
+ public boolean beginNoSectionsDisplay(ChildDisplayEvent event) {
+ String sNoSections = m_I18n.getMessage("APOC.report.novalues");
+ ((CCStaticTextField)getChild(this.CHILD_NOSECTIONS)).setValue(sNoSections);
+ return !showAlert() && !sectionsAvailable();
+ }
+
+ public boolean beginPageTitleDisplay(ChildDisplayEvent event) {
+ if (m_hideReport) {
+ ((CCButton)getChild("PrintButton")).setExtraHtml("disabled='disabled'");
+ }
+ return true;
+ }
+
+ public boolean beginReportInfoDisplay(ChildDisplayEvent event) {
+ ((CCStaticTextField)getChild(CHILD_REPORT_INFO)).setValue("APOC.configrep.effective.settings");
+ ((CCStaticTextField)getChild(CHILD_WINDOW_TITLE)).setValue("APOC.configrep.effective.settings");
+ ((CCStaticTextField)getChild(CHILD_WINDOW_TITLE)).setEscape(false);
+ return true;
+ }
+
+ public boolean beginCategoryTiledViewDisplay(ChildDisplayEvent event){
+ return sectionsAvailable();
+ }
+
+ public boolean beginDisplayTablesDisplay(ChildDisplayEvent event){
+ return sectionsAvailable();
+ }
+
+ public boolean beginDisplayProfilesTableDisplay(ChildDisplayEvent event){
+ return showAlert() || sectionsAvailable();
+ }
+
+ public boolean beginDisplayReportDisplay(ChildDisplayEvent event){
+ if (m_isFirstLoad) {
+ return true;
+ }
+ return !m_hideReport;
+ }
+
+ public boolean beginProfilesInvolvedTitleDisplay(ChildDisplayEvent event){
+
+ LinkedList profileList = m_PolicyMgrHelper.getPolicyGroupList();
+ String tableTitle = m_I18n.getMessage("APOC.report.assigned.profiles.title");
+ tableTitle += " (" + Integer.toString(profileList.size()) + ")";
+ ((CCStaticTextField)getChild(CHILD_PROFILES_INVOLVED_TITLE)).setValue(tableTitle);
+
+ return showAlert() || sectionsAvailable();
+ }
+
+ public boolean beginProfilesInvolvedDisplay(ChildDisplayEvent event){
+
+ LinkedList profileList = m_PolicyMgrHelper.getPolicyGroupList();
+ StringBuffer buffer = new StringBuffer();
+ Iterator iter = profileList.iterator();
+ int counter = 0;
+ int lastProfile = profileList.size();
+ while (iter.hasNext()) {
+ counter++;
+ Profile profile = (Profile)iter.next();
+ buffer.append("<a href=\"\" onclick=\"" )
+ .append("javascript:var selectedProfile='")
+ .append(profile.getId())
+ .append("'; openWindow(window, null, '/apoc/manager/ProfileWindowFrameset?ProfileWindowFrameset.SelectedProfile='+escape(selectedProfile)")
+ .append(", 'ProfileEditorWindow', 600, 1200, true); return false;\">")
+ .append(profile.getDisplayName())
+ .append("</a>");
+ if (counter != lastProfile) {
+ buffer.append(", ");
+ }
+ }
+ ((CCStaticTextField)getChild(CHILD_PROFILES_INVOLVED)).setValue(buffer.toString());
+ ((CCStaticTextField)getChild(CHILD_PROFILES_INVOLVED)).setEscape(false);
+ return showAlert() || sectionsAvailable();
+ }
+
+
+ public void handleReportButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+
+ forwardTo(getRequestContext());
+ }
+
+ private CCPageTitleModel createPageTitleModel() {
+ CCPageTitleModel model = new CCPageTitleModel(
+ RequestManager.getRequestContext().getServletContext(),
+ "/jsp/report/ShowResultsPageTitle.xml");
+ model.setValue("ReportButton", "APOC.configrep.button.report");
+ model.setValue("PrintButton", "APOC.report.buttons.print");
+ model.setValue("CloseButton", "APOC.profilewnd.buttons.close");
+ return model;
+ }
+
+ private void initMemberVariables() {
+ try {
+ m_isFirstLoad = Boolean.valueOf(Toolbox2.getParameter("isFirstLoad")).booleanValue();
+ m_hideReport = Boolean.valueOf(Toolbox2.getParameter("isReportHidden")).booleanValue();
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ m_resultsData = new ArrayList();
+ m_allResultsData = new ArrayList();
+ m_InvolvedSources = new ArrayList();
+ m_InvolvedElements = new ArrayList();
+ m_PolicyManager = Toolbox2.getPolicyManager();
+ m_AllSources = new ArrayList(Arrays.asList(m_PolicyManager.getSources()));
+ m_pagetitleModel = createPageTitleModel();
+ m_elementsInvolvedModel = getElementsInvolvedModel();
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ }
+ }
+
+ private void setMemberVariables() {
+ try {
+ ArrayList involvedEntities = new ArrayList();
+ for (int i = 0; i < m_InvolvedSources.size(); i++) {
+ if (m_InvolvedSources.get(i).equals(EnvironmentConstants.USER_SOURCE)) {
+ String orgId = Toolbox2.decode(getDisplayFieldStringValue(CHILD_HIDDEN_ORGENTITY));
+ if (m_PolicyManager.getRootEntity(EnvironmentConstants.USER_SOURCE).getId().equals(orgId)) {
+ m_OrgEntity = m_PolicyManager.getRootEntity(EnvironmentConstants.USER_SOURCE);
+ } else {
+ m_OrgEntity = m_PolicyManager.getEntity(EnvironmentConstants.USER_SOURCE, orgId);
+ }
+ m_OrgEntityName = getDisplayName(m_OrgEntity);
+ involvedEntities.add(m_OrgEntity);
+ } else if (m_InvolvedSources.get(i).equals(EnvironmentConstants.HOST_SOURCE)) {
+ String domId = Toolbox2.decode(getDisplayFieldStringValue(CHILD_HIDDEN_DOMENTITY));
+ if (m_PolicyManager.getRootEntity(EnvironmentConstants.HOST_SOURCE).getId().equals(domId)) {
+ m_DomEntity = m_PolicyManager.getRootEntity(EnvironmentConstants.HOST_SOURCE);
+ } else {
+ m_DomEntity = m_PolicyManager.getEntity(EnvironmentConstants.HOST_SOURCE, domId);
+ }
+ m_DomEntityName = getDisplayName(m_DomEntity);
+ involvedEntities.add(m_DomEntity);
+ }
+ }
+ m_PolicyMgrHelper = new PolicyMgrReportHelper(involvedEntities);
+ } catch (SPIException e) {
+ CCDebug.trace3("SPI Exception caught: " + e);
+ }
+ RequestManager.getRequestContext().getRequest().getSession(true).setAttribute(Constants.POLICY_MANAGER_HELPER, m_PolicyMgrHelper);
+ RequestManager.getRequestContext().getRequest().getSession(true).setAttribute(Constants.REPORT_TYPE, Constants.ENTITY_REPORT_TYPE);
+
+ if (!m_hideReport) {
+ setData();
+ }
+ }
+
+ private void setData() {
+ try {
+ m_definedPropsMap = m_PolicyMgrHelper.getAllDefinedProperties();
+ } catch (SPIException spie) {
+ m_definedPropsMap = new HashMap();
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ Toolbox2.prepareErrorDisplay(spie, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ alert.setValue(CCAlertInline.TYPE_INFO);
+ alert.setType(CCAlertInline.TYPE_INFO);
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ alert.setSummary(i18n.getMessage("APOC.report.xml.parsing.error"));
+ }
+
+ setSectionsList();
+ Iterator it = m_allResultsData.iterator();
+ while (it.hasNext()) {
+ ResultsData data = (ResultsData)it.next();
+ if (data.isASet()) {
+ setSetData(data);
+ } else {
+ setSectionData(data);
+ }
+ }
+ }
+
+ private void setSetData(ResultsData data) {
+ TemplateSet set = (TemplateSet)data.getSection();
+ String setDataPath = set.getDataPath();
+ String separator = TemplateRepository.TEMPLATE_PATH_SEPARATOR;
+ if (!setDataPath.endsWith(separator)) {
+ setDataPath = setDataPath + separator;
+ }
+
+ ArrayList setProps = new ArrayList();
+ ArrayList dymanicSetNames = new ArrayList();
+ Iterator keys = m_definedPropsMap.keySet().iterator();
+ while (keys.hasNext()) {
+ String fullDataPath = (String)keys.next();
+ if (fullDataPath.startsWith(setDataPath)) {
+ int start = setDataPath.length();
+ int end = fullDataPath.indexOf("/", start);
+ String setNode = fullDataPath.substring(0, end + 1);
+ try {
+ if (m_PolicyMgrHelper.isASetNode(setNode)) {
+ String setName = fullDataPath.substring(start, end);
+ if (!dymanicSetNames.contains(setName)) {
+ dymanicSetNames.add(setName);
+ }
+ }
+ } catch (SPIException spie) {
+ CCDebug.trace3("SPI Exception caught: " + spie);
+ }
+ }
+ }
+ Property property = null;
+ Iterator it = dymanicSetNames.iterator();
+ while (it.hasNext()) {
+ String setName = (String)it.next();
+ ArrayList propsWithValues = new ArrayList();
+ ArrayList templatePropsWithValues = new ArrayList();
+ TemplatePage page = set.getPage();
+ List sectionList = page.getSections();
+ if (sectionList != null) {
+ Iterator sectionIt = sectionList.iterator();
+ while (sectionIt.hasNext()) {
+ TemplateSection section = (TemplateSection)sectionIt.next();
+ List sectionProps = section.getProperties();
+ if (sectionProps != null) {
+ Iterator propsIt = sectionProps.iterator();
+ while (propsIt.hasNext()) {
+ TemplateProperty prop = (TemplateProperty)propsIt.next();
+ String propDataPath = prop.getDataPath();
+ property = null;
+ String dataPath = propDataPath.replaceFirst("./", setDataPath);
+ dataPath = dataPath.replaceFirst(SET_PLACEHOLDER, setName);
+ property = (Property)m_definedPropsMap.get(dataPath);
+ if (property != null) {
+ propsWithValues.add(property);
+ templatePropsWithValues.add(prop);
+ }
+ }
+ }
+ }
+ }
+
+ String path = data.getPath();
+ String linkPath = data.getLinkPath();
+ path = path + ";" + set.getDefaultName() + ";" + Toolbox2.decode(setName);
+ linkPath = linkPath + ";" + TemplateRepository.SET_PREFIX + set.getDefaultName() + TemplateRepository.SET_INDEX_SEPARATOR + Toolbox2.decode(setName);
+ ResultsData resultsData = new ResultsData(set, templatePropsWithValues, propsWithValues, path, linkPath, true);
+ m_resultsData.add(resultsData);
+ }
+ }
+
+ private void setSectionData(ResultsData data) {
+ TemplateSection section = data.getSection();
+ List sectionProps = section.getProperties();
+ if (sectionProps != null) {
+ int sectionPropsSize = sectionProps.size();
+ boolean sectionHasValue = false;
+ Property property = null;
+ ArrayList propsWithValues = new ArrayList();
+ ArrayList templatePropsWithValues = new ArrayList();
+
+ Iterator listIt = sectionProps.iterator();
+ while (listIt.hasNext()) {
+ TemplateProperty prop = (TemplateProperty)listIt.next();
+ String dataPath = prop.getDataPath();
+ property = (Property)m_definedPropsMap.get(dataPath);
+ if (property != null) {
+ propsWithValues.add(property);
+ templatePropsWithValues.add(prop);
+ sectionHasValue = true;
+ }
+
+ }
+
+ if (sectionHasValue == true) {
+ String path = data.getPath();
+ String linkPath = data.getLinkPath();
+ ResultsData resultsData = new ResultsData(section, templatePropsWithValues, propsWithValues, path, linkPath, false);
+ m_resultsData.add(resultsData);
+ }
+ }
+ }
+
+ private void setSectionsList() {
+ TemplateRepository tmpRep = TemplateRepository.getDefaultRepository();
+ ResourceRepository resourceRepository = ResourceRepository.getDefaultRepository();
+ HashMap topLevelCatMap = tmpRep.getTopLevelCategories();
+ m_sectionPathsMap = new HashMap();
+ Iterator it = topLevelCatMap.values().iterator();
+ while (it.hasNext()) {
+ TemplateCategory cat = (TemplateCategory)it.next();
+ String catname = resourceRepository.getMessage(
+ cat.getResourceId(),
+ cat.getResourceBundle(),
+ RequestManager.getRequest());
+ recursiveSetSectionsList(cat, catname, cat.getDefaultName());
+ }
+ }
+
+ private void recursiveSetSectionsList(TemplateCategory cat, String path, String linkPath) {
+ if (cat.hasSubCategories()) {
+ HashMap subCats = cat.getSubCategories();
+ Iterator it = subCats.values().iterator();
+ ResourceRepository resourceRepository = ResourceRepository.getDefaultRepository();
+
+ // There are subcategories so go recursively through them
+ while (it.hasNext()) {
+ TemplateCategory subCategory = (TemplateCategory) it.next();
+ String catname = resourceRepository.getMessage(
+ subCategory.getResourceId(),
+ subCategory.getResourceBundle(),
+ RequestManager.getRequest());
+
+ StringBuffer pathCopy = new StringBuffer();
+ pathCopy.append(path).append(";");
+ pathCopy.append(catname);
+
+ StringBuffer linkPathCopy = new StringBuffer();
+ linkPathCopy.append(linkPath).append(";");
+ linkPathCopy.append(subCategory.getDefaultName());
+
+
+ recursiveSetSectionsList(subCategory, pathCopy.toString(), linkPathCopy.toString());
+ }
+ } else {
+ TemplatePage subPage = (TemplatePage) cat;
+ if ((subPage != null) && (subPage.getSections() != null)) {
+ List sections = subPage.getSections();
+ for (int i = 0; i < sections.size(); i++) {
+ TemplateSection section = subPage.getSection(i);
+ ResultsData resultsData = null;
+ if (isASet(section)) {
+ resultsData = new ResultsData(section, null, null, path, linkPath, true);
+ } else {
+ resultsData = new ResultsData(section, null, null, path, linkPath, false);
+ }
+ m_allResultsData.add(resultsData);
+ }
+ }
+ }
+ }
+
+ private boolean isASet(TemplateSection section) {
+ boolean isASet = true;
+ try {
+ TemplateSet set = (TemplateSet)section;
+ } catch (ClassCastException cce) {
+ isASet= false;
+ }
+ return isASet;
+ }
+
+ private boolean sectionsAvailable(){
+ if (m_resultsData.size() > 0)
+ return true;
+ else
+ return false;
+ }
+
+ private boolean showAlert() {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ if ((alert.getSummary() != null) && (alert.getSummary().length() > 0)) {
+ return true;
+ }
+ return false;
+ }
+
+ private String getParentsString(Entity entity) {
+ return Toolbox2.getParentagePath(entity, false, false, ">");
+ }
+
+ private String getDisplayName(Entity entity) throws SPIException {
+ String sName = entity.getDisplayName(Toolbox2.getLocale());
+ if (entity.equals(m_PolicyManager.getRootEntity(EnvironmentConstants.HOST_SOURCE))) {
+ sName = m_I18n.getMessage("APOC.navigation.domains");
+ } else if (entity.equals(m_PolicyManager.getRootEntity(EnvironmentConstants.USER_SOURCE))) {
+ sName = m_I18n.getMessage("APOC.navigation.organizations");
+ }
+ return sName;
+ }
+
+ private String getEntityTypeResource(String sSource, Entity entity) {
+ String sResource = "";
+
+ if (sSource.equals(EnvironmentConstants.USER_SOURCE)) {
+ if (entity instanceof Leaf) {
+ sResource = m_I18n.getMessage("APOC.navigation.user");
+ } else {
+ sResource = m_I18n.getMessage("APOC.navigation.organization");
+ }
+ } else if (sSource.equals(EnvironmentConstants.HOST_SOURCE)) {
+ if (entity instanceof Leaf) {
+ sResource = m_I18n.getMessage("APOC.navigation.host");
+ } else {
+ sResource = m_I18n.getMessage("APOC.navigation.domain");
+ }
+ }
+ if (entity instanceof Role) {
+ sResource = m_I18n.getMessage("APOC.navigation.role");
+ }
+
+ return sResource;
+ }
+}
diff --git a/src/com/sun/apoc/manager/SyncButtonsViewBean.java b/src/com/sun/apoc/manager/SyncButtonsViewBean.java
new file mode 100755
index 0000000..f57ae2c
--- /dev/null
+++ b/src/com/sun/apoc/manager/SyncButtonsViewBean.java
@@ -0,0 +1,94 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCForm;
+
+public class SyncButtonsViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "SyncButtons";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/sync/Buttons.jsp";
+ public static final String CHILD_FORM = "ButtonForm";
+ public static final String CHILD_SYNC_BUTTON = "Sync";
+ public static final String CHILD_SYNCSET_BUTTON = "SyncSettings";
+ public static final String CHILD_RESET_BUTTON = "Reset";
+ public static final String CHILD_CANCEL_BUTTON = "Cancel";
+
+ public SyncButtonsViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_SYNC_BUTTON, CCButton.class);
+ registerChild(CHILD_SYNCSET_BUTTON, CCButton.class);
+ registerChild(CHILD_RESET_BUTTON, CCButton.class);
+ registerChild(CHILD_CANCEL_BUTTON, CCButton.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_FORM)) {
+ CCForm child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_SYNC_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ } else if (name.equals(CHILD_SYNCSET_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ } else if (name.equals(CHILD_RESET_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ } else if (name.equals(CHILD_CANCEL_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ }
+
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ }
+}
diff --git a/src/com/sun/apoc/manager/SyncIndexViewBean.java b/src/com/sun/apoc/manager/SyncIndexViewBean.java
new file mode 100755
index 0000000..f658766
--- /dev/null
+++ b/src/com/sun/apoc/manager/SyncIndexViewBean.java
@@ -0,0 +1,64 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.DisplayEvent;
+
+
+public class SyncIndexViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "SyncIndex";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/sync/Index.jsp";
+
+ public SyncIndexViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ }
+
+ protected View createChild(String name) {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ }
+}
diff --git a/src/com/sun/apoc/manager/SyncLoginViewBean.java b/src/com/sun/apoc/manager/SyncLoginViewBean.java
new file mode 100755
index 0000000..f625a87
--- /dev/null
+++ b/src/com/sun/apoc/manager/SyncLoginViewBean.java
@@ -0,0 +1,288 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.model.CCPropertySheetModel;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.propertysheet.CCPropertySheet;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Hashtable;
+import javax.servlet.ServletException;
+
+public class SyncLoginViewBean extends ViewBeanBase {
+
+ public static final String PAGE_NAME = "SyncLogin";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/sync/Login.jsp";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_FORM = "ContextLoginForm";
+ public static final String CHILD_CONTEXTLOGIN_TITLE = "ContextLoginTitle";
+ public static final String CHILD_CONTEXTLOGIN_SHEET = "ContextLoginSheet";
+ public static final String CHILD_LEFTCONTEXT_HREF = "LeftContext";
+ public static final String CHILD_RIGHTCONTEXT_HREF = "RightContext";
+
+ public static final String ENV_LEFT_CONTEXT = "LeftContext";
+ public static final String ENV_LEFT_CONTEXTNAME = "LeftContextName";
+ public static final String ENV_LEFT_ENTITYID = "LeftEntityId";
+ public static final String ENV_LEFT_ENTITY_TYPE = "LeftEntityType";
+ public static final String ENV_RIGHT_CONTEXT = "RightContext";
+ public static final String ENV_RIGHT_CONTEXTNAME = "RightContextName";
+ public static final String ENV_RIGHT_ENTITYID = "RightEntityId";
+ public static final String ENV_RIGHT_ENTITY_TYPE = "RightEntityType";
+
+ //
+ private CCPageTitleModel m_titleModel = null;
+ private CCPropertySheetModel m_sheetModel = null;
+
+ public SyncLoginViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+
+ m_titleModel = new CCPageTitleModel();
+ m_sheetModel = new CCPropertySheetModel(
+ RequestManager.getRequestContext().getServletContext(), "/jsp/sync/LoginSheet.xml");
+
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_CONTEXTLOGIN_TITLE, CCPageTitle.class);
+ registerChild(CHILD_CONTEXTLOGIN_SHEET, CCPropertySheet.class);
+ registerChild(CHILD_LEFTCONTEXT_HREF, CCHref.class);
+ registerChild(CHILD_RIGHTCONTEXT_HREF, CCHref.class);
+ m_titleModel.registerChildren(this);
+ m_sheetModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this,name);
+ return child;
+ }
+ else if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_CONTEXTLOGIN_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_CONTEXTLOGIN_SHEET)) {
+ CCPropertySheet child = new CCPropertySheet(this, m_sheetModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_LEFTCONTEXT_HREF) || name.equals(CHILD_RIGHTCONTEXT_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if ((m_titleModel != null) && m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else if ((m_sheetModel != null) && m_sheetModel.isChildSupported(name)) {
+ View child = m_sheetModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleLeftContextRequest(RequestInvocationEvent event) {
+ handleLeftRightContextRequest();
+ }
+
+ public void handleRightContextRequest(RequestInvocationEvent event) {
+ handleLeftRightContextRequest();
+ }
+
+ public void handleLeftRightContextRequest() {
+ String sLeftContext = Toolbox2.getParameter("LeftContext");
+ String sRightContext = Toolbox2.getParameter("RightContext");
+ HashMap authorizedContexts = (HashMap) getSession().getAttribute(Constants.AUTH_CONTEXTS);
+ HashMap syncEnv = (HashMap) getSession().getAttribute(Constants.SYNC_ENVIRONMENT);
+
+ //TPF_TODO: redesign synvEnv as model instead of being a HashMap
+ if (syncEnv==null) {
+ syncEnv = new HashMap();
+ getSession().setAttribute(Constants.SYNC_ENVIRONMENT, syncEnv);
+ }
+
+ if (sLeftContext.length()>0) {
+ syncEnv.put(ENV_LEFT_CONTEXTNAME, sLeftContext);
+ syncEnv.remove(ENV_LEFT_CONTEXT);
+ syncEnv.remove(ENV_LEFT_ENTITYID);
+ syncEnv.remove(ENV_LEFT_ENTITY_TYPE);
+ if (authorizedContexts!=null && authorizedContexts.containsKey(sLeftContext)) {
+ String sUsername = ((String[]) authorizedContexts.get(sLeftContext))[0];
+ String sPassword = ((String[]) authorizedContexts.get(sLeftContext))[1];
+ PolicyManager manager = null;
+ try {
+ manager = Toolbox2.createPolicyManager(sLeftContext, sUsername, sPassword, true);
+ } catch (Exception e) {}
+ if (manager!=null) {
+ syncEnv.put(ENV_LEFT_CONTEXT, manager);
+ }
+ }
+ }
+ if (sRightContext.length()>0) {
+ syncEnv.put(ENV_RIGHT_CONTEXTNAME, sRightContext);
+ syncEnv.remove(ENV_RIGHT_CONTEXT);
+ syncEnv.remove(ENV_RIGHT_ENTITYID);
+ syncEnv.remove(ENV_RIGHT_ENTITY_TYPE);
+ if (authorizedContexts!=null && authorizedContexts.containsKey(sRightContext)) {
+ String sUsername = ((String[]) authorizedContexts.get(sRightContext))[0];
+ String sPassword = ((String[]) authorizedContexts.get(sRightContext))[1];
+ PolicyManager manager = null;
+ try {
+ manager = Toolbox2.createPolicyManager(sRightContext, sUsername, sPassword, true);
+ } catch (Exception e) {}
+ if (manager!=null) {
+ syncEnv.put(ENV_RIGHT_CONTEXT, manager);
+ }
+ }
+ }
+
+ if ((syncEnv.get(ENV_LEFT_CONTEXT)==null) || (syncEnv.get(ENV_RIGHT_CONTEXT)==null)) {
+ forwardTo();
+ } else {
+ getViewBean(SyncIndexViewBean.class).forwardTo(getRequestContext());
+ }
+ }
+
+ public void handleLoginButtonRequest(RequestInvocationEvent event) {
+ HashMap syncEnv = (HashMap) getSession().getAttribute(Constants.SYNC_ENVIRONMENT);
+ String sLeftContext = (String) syncEnv.get(ENV_LEFT_CONTEXTNAME);
+ String sRightContext = (String) syncEnv.get(ENV_RIGHT_CONTEXTNAME);
+ String sLoginContext = (syncEnv.get(ENV_LEFT_CONTEXT)==null)?sLeftContext:sRightContext;
+ CCTextField username = (CCTextField) getChild("UsernameText");
+ CCTextField password = (CCTextField) getChild("PasswordText");
+ String sUsername = (String) username.getValue();
+ String sPassword = (String) password.getValue();
+
+ try {
+ PolicyManager manager = Toolbox2.createPolicyManager(sLoginContext, sUsername, sPassword, true);
+ if (syncEnv.get(ENV_LEFT_CONTEXT)==null) {
+ syncEnv.put(ENV_LEFT_CONTEXT, manager);
+ } else {
+ syncEnv.put(ENV_RIGHT_CONTEXT, manager);
+ }
+ if ( sLeftContext!=null && sLeftContext.equals(sRightContext) ) {
+ if (syncEnv.get(ENV_LEFT_CONTEXT)==null) {
+ manager = Toolbox2.createPolicyManager(sLoginContext, sUsername, sPassword, true);
+ syncEnv.put(ENV_LEFT_CONTEXT, manager);
+ }
+ else if (syncEnv.get(ENV_RIGHT_CONTEXT)==null) {
+ manager = Toolbox2.createPolicyManager(sLoginContext, sUsername, sPassword, true);
+ syncEnv.put(ENV_RIGHT_CONTEXT, manager);
+ }
+ }
+ if ((syncEnv.get(ENV_LEFT_CONTEXT)==null) || (syncEnv.get(ENV_RIGHT_CONTEXT)==null)) {
+ forwardTo();
+ } else {
+ getViewBean(SyncIndexViewBean.class).forwardTo(getRequestContext());
+ }
+ } catch (Exception e) {
+ Toolbox2.prepareErrorDisplay(e, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ forwardTo();
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ HashMap syncEnv = (HashMap) getSession().getAttribute(Constants.SYNC_ENVIRONMENT);
+ String sLeftContext = (String) syncEnv.get(ENV_LEFT_CONTEXTNAME);
+ String sRightContext = (String) syncEnv.get(ENV_RIGHT_CONTEXTNAME);
+ String sLoginContext = (syncEnv.get(ENV_LEFT_CONTEXT)==null)?sLeftContext:sRightContext;
+ CCStaticTextField contextText = (CCStaticTextField) getChild("ContextText");
+ contextText.setValue(sLoginContext);
+
+ if (syncEnv.get(ENV_LEFT_CONTEXT)!=null) {
+ CCStaticTextField context = (CCStaticTextField) getChild("ContextLabel");
+ context.setValue("APOC.sync.targetrep.label");
+ CCPageTitle title = (CCPageTitle) getChild(CHILD_CONTEXTLOGIN_TITLE);
+ title.getModel().setPageTitleText("APOC.sync.login.pagetitle2");
+ }
+
+ try {
+ PolicyManager manager = Toolbox2.createPolicyManager(sLoginContext, null, null, false);
+ Hashtable mgrEnv = manager.getEnvironment();
+ String sUsername = (String) mgrEnv.get(EnvironmentConstants.USER_KEY);
+ String sPassword = (String) mgrEnv.get(EnvironmentConstants.CREDENTIALS_KEY);
+ CCTextField username = (CCTextField) getChild("UsernameText");
+ CCTextField password = (CCTextField) getChild("PasswordText");
+ username.setValue(sUsername);
+ password.setValue(sPassword);
+ } catch (Exception e) {}
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ return ((alert.getSummary() != null) && (alert.getSummary().length() > 0));
+ }
+}
diff --git a/src/com/sun/apoc/manager/SyncResultViewBean.java b/src/com/sun/apoc/manager/SyncResultViewBean.java
new file mode 100755
index 0000000..a892216
--- /dev/null
+++ b/src/com/sun/apoc/manager/SyncResultViewBean.java
@@ -0,0 +1,439 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.iplanet.jato.view.html.OptionList;
+import com.sun.apoc.manager.sync.ContextTiledModel;
+import com.sun.apoc.manager.sync.ContextTiledView;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.model.CCPropertySheetModel;
+import com.sun.web.ui.view.alert.CCAlert;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCDropDownMenu;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCOption;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.propertysheet.CCPropertySheet;
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
+public class SyncResultViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "SyncResult";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/sync/Result.jsp";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_FORM = "ResultsForm";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_SYNC_TITLE = "SyncResultTitle";
+ public static final String CHILD_CONTEXT_VIEW = "ContextTiledView";
+ public static final String CHILD_CONTEXTS_PROPS = "Contexts";
+ public static final String CHILD_DEFAULT_HREF = "DefaultHref";
+ public static final String CHILD_SELECTION_HREF = "SelectionHref";
+ public static final String CHILD_LEFTBROWSE_HREF = "LeftBrowseHref";
+ public static final String CHILD_RIGHTBROWSE_HREF = "RightBrowseHref";
+ public static final String CHILD_COMPARE_BUTTON = "CompareButton";
+ public static final String CHILD_SYNC_BUTTON = "SyncButton";
+ public static final String CHILD_LEFTCONTEXT_TEXT = "LeftContextJS";
+ public static final String CHILD_CURRENTACTION_TEXT = "CurrentAction";
+ public static final String CHILD_ELAPSEDTIME_TEXT = "ElapsedTime";
+ public static final String CHILD_RIGHTCONTEXT_TEXT = "RightContextJS";
+ public static final String CHILD_HELP0_TEXT = "HelpText0";
+ public static final String CHILD_HELP1_TEXT = "HelpText1";
+ public static final String CHILD_HELP2_TEXT = "HelpText2";
+ public static final String CHILD_HELP3_TEXT = "HelpText3";
+ public static final String CHILD_HELP4_TEXT = "HelpText4";
+ public static final String CHILD_HELP5_TEXT = "HelpText5";
+ public static final String CHILD_BUSY1_TEXT = "BusyText1";
+ public static final String CHILD_CYCLE_HIDDEN = "CycleHidden";
+
+ private CCPropertySheetModel m_sheetModel = null;
+ private boolean m_bComp = false;
+ private boolean m_bSync = false;
+ private boolean m_bCycle = false;
+ private boolean m_bIsIdle = true;
+ private static Thread m_thread = null;
+
+ public SyncResultViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_sheetModel = new CCPropertySheetModel(RequestManager.getRequestContext().getServletContext(), "/jsp/sync/Contexts.xml");
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_SYNC_TITLE, CCPageTitle.class);
+ registerChild(CHILD_CONTEXT_VIEW, ContextTiledView.class);
+ registerChild(CHILD_CONTEXTS_PROPS, CCPropertySheet.class);
+ registerChild(CHILD_DEFAULT_HREF, CCHref.class);
+ registerChild(CHILD_SELECTION_HREF, CCHref.class);
+ registerChild(CHILD_LEFTBROWSE_HREF, CCHref.class);
+ registerChild(CHILD_RIGHTBROWSE_HREF, CCHref.class);
+ registerChild(CHILD_COMPARE_BUTTON, CCButton.class);
+ registerChild(CHILD_SYNC_BUTTON, CCButton.class);
+ registerChild(CHILD_CURRENTACTION_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_ELAPSEDTIME_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_LEFTCONTEXT_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_RIGHTCONTEXT_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_HELP0_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_HELP1_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_HELP2_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_HELP3_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_HELP4_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_HELP5_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_BUSY1_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_CYCLE_HIDDEN, CCHiddenField.class);
+ m_sheetModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ } else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ } else if (name.equals(CHILD_SYNC_TITLE)) {
+ CCPageTitleModel pageTitleModel = new CCPageTitleModel();
+ Toolbox2.setPageTitleHelp(pageTitleModel, "APOC.sync.title",
+ "APOC.sync.help", "gbgqm.html");
+ CCPageTitle child = new CCPageTitle(this, pageTitleModel , name);
+ return child;
+ } else if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ return child;
+ }
+ if (name.equals(CHILD_FORM)) {
+ CCForm child = new CCForm(this, name);
+ return child;
+ } else if (name.equals(CHILD_CONTEXT_VIEW)) {
+ ContextTiledView child = new ContextTiledView(this, name);
+ return child;
+ } else if (name.equals(CHILD_CONTEXTS_PROPS)) {
+ CCPropertySheet child = new CCPropertySheet(this, m_sheetModel, name);
+ return child;
+ } else if (name.equals(CHILD_DEFAULT_HREF) ||
+ name.equals(CHILD_SELECTION_HREF) ||
+ name.equals(CHILD_LEFTBROWSE_HREF) ||
+ name.equals(CHILD_RIGHTBROWSE_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ } else if (name.equals(CHILD_COMPARE_BUTTON)||name.equals(CHILD_SYNC_BUTTON)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+ } else if (name.equals(CHILD_CURRENTACTION_TEXT) || name.equals(CHILD_ELAPSEDTIME_TEXT) ||
+ name.equals(CHILD_LEFTCONTEXT_TEXT) || name.equals(CHILD_RIGHTCONTEXT_TEXT) ||
+ name.equals(CHILD_HELP0_TEXT) || name.equals(CHILD_HELP1_TEXT) ||
+ name.equals(CHILD_HELP2_TEXT) || name.equals(CHILD_HELP3_TEXT) ||
+ name.equals(CHILD_HELP4_TEXT) || name.equals(CHILD_HELP5_TEXT) ||
+ name.equals(CHILD_BUSY1_TEXT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ } else if (name.equals(CHILD_CYCLE_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+ } else if ((m_sheetModel != null) && m_sheetModel.isChildSupported(name)) {
+ return m_sheetModel.createChild(this, name);
+ } else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleDefaultHrefRequest(RequestInvocationEvent event) {
+ forwardTo(getRequestContext());
+ }
+
+ public void handleCompareButtonRequest(RequestInvocationEvent event) {
+ if (Toolbox2.getParameter(CHILD_CYCLE_HIDDEN).length()==0) {
+ m_bComp=true;
+ } else {
+ m_bCycle=true;
+ }
+ forwardTo(getRequestContext());
+ }
+
+ public void handleSyncButtonRequest(RequestInvocationEvent event) {
+ m_bSync = true;
+ forwardTo(getRequestContext());
+ }
+
+ public void handleLeftBrowseHrefRequest(RequestInvocationEvent event) {
+ CCHref href = (CCHref) getChild("LeftBrowseHref");
+ HashMap syncEnv = (HashMap) getSession().getAttribute(Constants.SYNC_ENVIRONMENT);
+ String sValue = (String) href.getValue();
+ String entityType = sValue.substring(0, sValue.indexOf("|"));
+ String entityId = sValue.substring(sValue.indexOf("|") + 1);
+ syncEnv.put(SyncLoginViewBean.ENV_LEFT_ENTITYID, entityId);
+ syncEnv.put(SyncLoginViewBean.ENV_LEFT_ENTITY_TYPE, entityType);
+ forwardTo(getRequestContext());
+ }
+
+ public void handleRightBrowseHrefRequest(RequestInvocationEvent event) {
+ CCHref href = (CCHref) getChild("RightBrowseHref");
+ HashMap syncEnv = (HashMap) getSession().getAttribute(Constants.SYNC_ENVIRONMENT);
+ String sValue = (String) href.getValue();
+ String entityType = sValue.substring(0, sValue.indexOf("|"));
+ String entityId = sValue.substring(sValue.indexOf("|") + 1);
+ syncEnv.put(SyncLoginViewBean.ENV_RIGHT_ENTITYID, entityId);
+ syncEnv.put(SyncLoginViewBean.ENV_RIGHT_ENTITY_TYPE, entityType);
+ forwardTo(getRequestContext());
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ HttpServletRequest request = getRequestContext().getRequest();
+ mapRequestParameters(request);
+ setParameterValues("Left", SyncLoginViewBean.ENV_LEFT_CONTEXTNAME, SyncLoginViewBean.ENV_LEFT_CONTEXT, SyncLoginViewBean.ENV_LEFT_ENTITY_TYPE, SyncLoginViewBean.ENV_LEFT_ENTITYID);
+ setParameterValues("Right", SyncLoginViewBean.ENV_RIGHT_CONTEXTNAME, SyncLoginViewBean.ENV_RIGHT_CONTEXT, SyncLoginViewBean.ENV_RIGHT_ENTITY_TYPE, SyncLoginViewBean.ENV_RIGHT_ENTITYID);
+
+ if (!m_bCycle) {
+ getModel().resetModel();
+ }
+ if (m_bCycle) {
+ m_bIsIdle = (m_thread==null) || !m_thread.isAlive();
+ }
+ if (m_bComp||m_bSync) {
+ LinkedList syncList = new LinkedList();
+ if (m_bSync) {
+ Enumeration aParamNamesEnum = request.getParameterNames();
+ while (aParamNamesEnum.hasMoreElements()) {
+ String sParamName = (String) aParamNamesEnum.nextElement();
+ if (sParamName.endsWith("LeftIdHidden")) {
+ String[] leftIds = request.getParameterValues(sParamName);
+ String[] rightIds = request.getParameterValues(sParamName.substring(0, sParamName.lastIndexOf(".")+1)+"RightIdHidden");
+ for (int nValueRunner=0; nValueRunner<leftIds.length; nValueRunner++) {
+ if (leftIds[nValueRunner].startsWith("+")) {
+ syncList.add(leftIds[nValueRunner].substring(1));
+ syncList.add(rightIds[nValueRunner].substring(1));
+ }
+ }
+ }
+ }
+ }
+ m_thread = new SyncCompThread(getSession(), syncList);
+ m_thread.start();
+ try {
+ Thread.currentThread().sleep(2000);
+ } catch (InterruptedException ie) {}
+ m_bIsIdle = (m_thread==null) || !m_thread.isAlive();
+ }
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+
+ ContextTiledModel model = (ContextTiledModel) getSession().getAttribute("ThreadSyncModel");
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ boolean bIsAlert = (alert.getSummary()!=null) && (alert.getSummary().length() > 0);
+
+ if (!bIsAlert) {
+ if ((model!=null) && (model.getException()!=null)) {
+ Toolbox2.prepareErrorDisplay(model.getException(), alert, getChild(CHILD_STACKTRACE));
+ bIsAlert = true;
+ } else if (beginActionCompletedDisplay(event)) {
+ if (m_bComp||m_bSync||m_bCycle) {
+ if (!getModel().areTreesCompareable()) {
+ alert.setValue(CCAlert.TYPE_WARNING);
+ alert.setSummary("APOC.sync.msg.orgdomcomapre");
+ alert.setDetail("");
+ bIsAlert = true;
+ } else if (getModel().getFoundProfiles()==0) {
+ alert.setValue(CCAlert.TYPE_INFO);
+ alert.setSummary("APOC.sync.msg.noprofiles");
+ alert.setDetail("");
+ bIsAlert = true;
+ } else if (getModel().getComparedProfiles()>0 && getModel().getNumRows()<1) {
+ alert.setValue(CCAlert.TYPE_INFO);
+ alert.setSummary("APOC.sync.msg.allequal");
+ alert.setDetail("");
+ bIsAlert = true;
+ }
+ if (getModel().getFoundProfiles()!=getModel().getComparedProfiles()) {
+ if (getModel().getComparedProfiles()==0) {
+ alert.setSummary("APOC.sync.msg.nocompare");
+ } else {
+ alert.setSummary("APOC.sync.msg.partialcompare");
+ }
+ alert.setDetail("APOC.sync.msg.compare.detail");
+ alert.setValue(CCAlert.TYPE_WARNING);
+ bIsAlert = true;
+ }
+ }
+ }
+ }
+ return bIsAlert;
+ }
+
+ public boolean beginActionCompletedDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ return m_bIsIdle;
+ }
+
+ public boolean beginActionCyclingDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ return !beginActionCompletedDisplay(event);
+ }
+
+ public boolean beginCurrentActionDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCStaticTextField child = (CCStaticTextField) getChild(event.getChildName());
+ child.setValue(Toolbox2.getI18n(getModel().getCurrentAction(), getModel().getCurrentNumbers()));
+ return true;
+ }
+
+ public boolean beginElapsedTimeDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCStaticTextField child = (CCStaticTextField) getChild(event.getChildName());
+ child.setValue(Toolbox2.getI18n("APOC.sync.waitmsg.time", getModel().getElapsedTime()));
+ return true;
+ }
+
+ public boolean beginContextTiledViewDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ return (beginActionCompletedDisplay(event) && getModel().getNumRows()>0);
+ }
+
+ public boolean beginHelpDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ return (beginActionCompletedDisplay(event) && !beginContextTiledViewDisplay(event));
+ }
+
+ public boolean beginSyncListDisplay(ChildDisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ CCHiddenField syncList = (CCHiddenField) getChild("SyncList");
+ syncList.setValue("");
+ return true;
+ }
+
+ private ContextTiledModel getModel() {
+ //changed because this model is executed in a seperate thread now and has thus no access to the request context
+ ContextTiledModel model = (ContextTiledModel) RequestManager.getSession().getAttribute("ThreadSyncModel");
+ if (model==null) {
+ model = new ContextTiledModel();
+ getSession().setAttribute("ThreadSyncModel", model);
+ }
+ return model;
+ }
+
+ private void setParameterValues(String sPrefix, String sContextNameKey, String sContextKey, String sEntityTypeKey, String sEntityIdKey)
+ throws ModelControlException {
+ try {
+ CCStaticTextField contextName = (CCStaticTextField) getChild(sPrefix+"ContextJS");
+ CCDropDownMenu contextMenu = (CCDropDownMenu) getChild(sPrefix+"Context");
+ CCStaticTextField contextPath = (CCStaticTextField) getChild(sPrefix+"Path");
+ CCButton contextButton = (CCButton) getChild(sPrefix+"BrowseButton");
+ HashMap syncEnv = (HashMap) getSession().getAttribute(Constants.SYNC_ENVIRONMENT);
+ PolicyManager manager = (PolicyManager) syncEnv.get(sContextKey);
+
+ int nOption = 0;
+ Iterator backendNames = Toolbox2.getBackendNames();
+ OptionList options = new OptionList();
+
+ while (backendNames.hasNext()) {
+ String backendName = (String)backendNames.next();
+ options.add(nOption++, new CCOption(backendName, backendName, false));
+ }
+
+ contextMenu.setOptions(options);
+
+ contextName.setValue(Toolbox2.encode((String)syncEnv.get(sContextNameKey)));
+ contextMenu.setValue(syncEnv.get(sContextNameKey));
+ String sEntityType = (String) syncEnv.get(sEntityTypeKey);
+ String sEntityId = (String) syncEnv.get(sEntityIdKey);
+ if (sEntityId==null) {
+ contextPath.setValue("/");
+ } else {
+ String sEntityPath = Toolbox2.getParentagePath(manager.getEntity(sEntityType, sEntityId), false, true, "/", manager);
+ contextPath.setValue(sEntityPath);
+ }
+
+ } catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ class SyncCompThread extends Thread {
+ private HttpSession m_session = null;
+ private LinkedList m_syncList = null;
+ SyncCompThread(HttpSession session, LinkedList syncList) {
+ m_session = session;
+ m_syncList = syncList;
+ }
+
+ public void run() {
+ ContextTiledModel model = (ContextTiledModel) m_session.getAttribute("ThreadSyncModel");
+ try {
+ HashMap syncEnv = (HashMap) m_session.getAttribute(Constants.SYNC_ENVIRONMENT);
+ PolicyManager leftManager = (PolicyManager) syncEnv.get(SyncLoginViewBean.ENV_LEFT_CONTEXT);
+ String sLeftEntityId = (String) syncEnv.get(SyncLoginViewBean.ENV_LEFT_ENTITYID);
+ String sLeftEntityType = (String) syncEnv.get(SyncLoginViewBean.ENV_LEFT_ENTITY_TYPE);
+ PolicyManager rightManager = (PolicyManager) syncEnv.get(SyncLoginViewBean.ENV_RIGHT_CONTEXT);
+ String sRightEntityId = (String) syncEnv.get(SyncLoginViewBean.ENV_RIGHT_ENTITYID);
+ String sRightEntityType = (String) syncEnv.get(SyncLoginViewBean.ENV_RIGHT_ENTITY_TYPE);
+ if (m_syncList.size()>0) {
+ model.sync(leftManager, sLeftEntityId, sLeftEntityType, rightManager, sRightEntityId, sRightEntityType, m_syncList, m_session, true, true);
+ }
+ model.retrieve(leftManager, sLeftEntityId, sLeftEntityType, rightManager, sRightEntityId, sRightEntityType);
+ } catch (Exception ex) {
+ model.setException(ex);
+ }
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/TaskView.java b/src/com/sun/apoc/manager/TaskView.java
new file mode 100755
index 0000000..43782e3
--- /dev/null
+++ b/src/com/sun/apoc/manager/TaskView.java
@@ -0,0 +1,377 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.ModelManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.util.HtmlUtil;
+import com.iplanet.jato.view.BasicCommandField;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.contexts.AddContextWizardPageModel;
+import com.sun.apoc.spi.SPIException;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.model.CCWizardWindowModel;
+import com.sun.web.ui.model.CCWizardWindowModelInterface;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.wizard.CCWizardWindow;
+import java.io.IOException;
+import javax.servlet.ServletException;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.apoc.manager.profiles.CopyMoveWizardPageModel;
+import com.sun.apoc.manager.profiles.CopyMoveWizardImpl;
+
+
+public class TaskView extends RequestHandlingViewBase {
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_PROFILE_TITLE = "TaskTitle";
+ public static final String CHILD_ADD_BUTTON = "AddContextButton";
+ public static final String CHILD_ADD_HREF = "AddContext";
+ public static final String CHILD_ADD_TEXT = "AddContextText";
+ public static final String CHILD_CREATE_HREF = "CreateProfile";
+ public static final String CHILD_CREATE_TEXT = "CreateProfileText";
+ public static final String CHILD_SYNC_HREF = "SyncContext";
+ public static final String CHILD_SYNC_TEXT = "SyncContextText";
+ public static final String CHILD_EDIT_HREF = "EditProfile";
+ public static final String CHILD_EDIT_TEXT = "EditProfileText";
+ public static final String CHILD_ASSIGN_HREF = "AssignProfile";
+ public static final String CHILD_ASSIGN_TEXT = "AssignProfileText";
+ public static final String CHILD_COPY_HREF = "CopyProfile";
+ public static final String CHILD_COPY_TEXT = "CopyProfileText";
+ public static final String CHILD_REPORT_HREF = "ReportProfile";
+ public static final String CHILD_REPORT_TEXT = "ReportProfileText";
+ public static final String CHILD_REPORT2_HREF = "ReportEntity";
+ public static final String CHILD_REPORT2_TEXT = "ReportEntityText";
+ public static final String CHILD_REMOTE_HREF = "RemoteDesktop";
+ public static final String CHILD_REMOTE_TEXT = "RemoteDesktopText";
+ public static final String CHILD_CONTEXT_TEXT = "CurrentContext";
+ public static final String WIZARDPAGEMODELNAME = "pageModelName";
+ public static final String WIZARDPAGEMODELNAME_PREFIX = "WizardPageModel";
+ public static final String WIZARDIMPLNAME = "wizardImplName";
+ public static final String WIZARDIMPLNAME_PREFIX = "WizardImpl";
+ public static final String CHILD_FRWD_TO_CMDCHILD = "forwardToVb";
+ public static final String COPYMOVEWIZARDPAGEMODELNAME = "copyMovePageModelName";
+ public static final String COPYMOVEWIZARDPAGEMODELNAME_PREFIX = "CopyMoveWizardPageModel";
+ public static final String COPYMOVEWIZARDIMPLNAME = "copyMoveWizardImplName";
+ public static final String COPYMOVEWIZARDIMPLNAME_PREFIX = "CopyMoveWizardImpl";
+ public static final String CHILD_COPYMOVE_WIZ = "copyMoveWizardWindow";
+ public static final String CHILD_FRWD_TO_CMDCHILD_COPYMOVE = "copyMoveForwardToVb";
+
+ public static AddContextWizardPageModel m_wizardPageModel;
+ public static CopyMoveWizardPageModel m_cmWizardPageModel;
+
+ private String m_pageModelName;
+ private String m_wizardImplName;
+ private boolean m_wizardLaunched = false;
+
+ private String m_cmPageModelName;
+ private String m_cmWizardImplName;
+ private boolean m_cmWizardLaunched = false;
+
+ public TaskView(View parent, String name) {
+ super(parent, name);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_PROFILE_TITLE, CCPageTitle.class);
+ registerChild(CHILD_ADD_BUTTON, CCWizardWindow.class);
+ registerChild(CHILD_COPYMOVE_WIZ, CCWizardWindow.class);
+ registerChild(CHILD_ADD_HREF, CCHref.class);
+ registerChild(CHILD_ADD_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_SYNC_HREF, CCHref.class);
+ registerChild(CHILD_SYNC_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_CREATE_HREF, CCHref.class);
+ registerChild(CHILD_CREATE_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_EDIT_HREF, CCHref.class);
+ registerChild(CHILD_EDIT_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_ASSIGN_HREF, CCHref.class);
+ registerChild(CHILD_ASSIGN_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_COPY_HREF, CCHref.class);
+ registerChild(CHILD_COPY_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_REPORT_HREF, CCHref.class);
+ registerChild(CHILD_REPORT_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_REPORT2_HREF, CCHref.class);
+ registerChild(CHILD_REPORT2_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_REMOTE_HREF, CCHref.class);
+ registerChild(CHILD_REMOTE_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_CONTEXT_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_FRWD_TO_CMDCHILD, BasicCommandField.class);
+ registerChild(CHILD_FRWD_TO_CMDCHILD_COPYMOVE, BasicCommandField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_ADD_HREF) ||
+ name.equals(CHILD_CREATE_HREF) ||
+ name.equals(CHILD_SYNC_HREF) ||
+ name.equals(CHILD_EDIT_HREF) ||
+ name.equals(CHILD_ASSIGN_HREF) ||
+ name.equals(CHILD_COPY_HREF) ||
+ name.equals(CHILD_REPORT_HREF) ||
+ name.equals(CHILD_REPORT2_HREF) ||
+ name.equals(CHILD_REMOTE_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_ADD_TEXT) ||
+ name.equals(CHILD_CREATE_TEXT) ||
+ name.equals(CHILD_SYNC_TEXT) ||
+ name.equals(CHILD_EDIT_TEXT) ||
+ name.equals(CHILD_ASSIGN_TEXT) ||
+ name.equals(CHILD_COPY_TEXT) ||
+ name.equals(CHILD_REPORT_TEXT) ||
+ name.equals(CHILD_REPORT2_TEXT) ||
+ name.equals(CHILD_REMOTE_TEXT) ||
+ name.equals(CHILD_CONTEXT_TEXT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_PROFILE_TITLE)) {
+ CCPageTitleModel pageTitleModel = new CCPageTitleModel();
+ CCPageTitle child = new CCPageTitle(this, pageTitleModel, name);
+ return child;
+ }
+ else if (name.equals(CHILD_ADD_BUTTON)) {
+ Boolean launched = (Boolean) getRootView().getPageSessionAttribute("WIZARDLAUNCHED");
+ boolean init = (launched == null) || (launched.booleanValue() == false);
+ CCWizardWindowModel wizWinModel = createModel(init);
+ CCWizardWindow child = new CCWizardWindow(this, wizWinModel, name, (Object)"APOC.contexts.create.button");
+ child.setDisabled(!init);
+ return child;
+ } else if (name.equals(CHILD_FRWD_TO_CMDCHILD)) {
+ BasicCommandField bcf = new BasicCommandField(this, name);
+ return bcf;
+ } else if (name.equals(CHILD_COPYMOVE_WIZ)) {
+ Boolean launched = (Boolean) getRootView().getPageSessionAttribute("COPYMOVEWIZARDLAUNCHED");
+ boolean init = launched == null || launched.booleanValue() == false;
+ CCWizardWindowModel wizWinModel = createCopyMoveModel(init);
+ CCWizardWindow child = new CCWizardWindow(this, wizWinModel, name, null);
+ child.setDisabled(!init);
+ return child;
+ } else if (name.equals(CHILD_FRWD_TO_CMDCHILD_COPYMOVE)) {
+ BasicCommandField bcf = new BasicCommandField(this, name);
+ return bcf;
+ } else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleAddContextButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ m_wizardLaunched = true;
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleForwardToVbRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ m_wizardLaunched = false;
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleCopyMoveWizardWindowRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ m_cmWizardLaunched = true;
+ getRootView().forwardTo(getRequestContext());
+ }
+
+
+ public void handleCopyMoveForwardToVbRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ m_cmWizardLaunched = false;
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ getRootView().setPageSessionAttribute(WIZARDPAGEMODELNAME, getWizardPageModelName(WIZARDPAGEMODELNAME_PREFIX));
+ getRootView().setPageSessionAttribute(WIZARDIMPLNAME, getWizardImplName(WIZARDIMPLNAME_PREFIX));
+ getRootView().setPageSessionAttribute("WIZARDLAUNCHED", new Boolean(m_wizardLaunched));
+ ((CCWizardWindow)getChild(CHILD_ADD_BUTTON)).setDisabled(m_wizardLaunched);
+
+ getRootView().setPageSessionAttribute(COPYMOVEWIZARDPAGEMODELNAME, getCopyMoveWizardPageModelName(COPYMOVEWIZARDPAGEMODELNAME_PREFIX));
+ getRootView().setPageSessionAttribute(COPYMOVEWIZARDIMPLNAME, getCopyMoveWizardImplName(COPYMOVEWIZARDIMPLNAME_PREFIX));
+ getRootView().setPageSessionAttribute("COPYMOVEWIZARDLAUNCHED", new Boolean(m_cmWizardLaunched));
+ ((CCWizardWindow)getChild(CHILD_COPYMOVE_WIZ)).setDisabled(m_cmWizardLaunched);
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ return ((alert.getSummary() != null) && (alert.getSummary().length() > 0));
+ }
+
+ public boolean beginCurrentContextDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException, ModelControlException {
+ try {
+ CCStaticTextField context = (CCStaticTextField) getChild(event.getChildName());
+ String sContext = (String) Toolbox2.getPolicyManager().getEnvironment().get(Constants.POLICY_MANAGER_NAME);
+ context.setValue(Toolbox2.encode(sContext));
+ } catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ return true;
+ }
+
+ private String getWizardPageModelName(String prefix) {
+
+ if (m_pageModelName == null) {
+ m_pageModelName = (String)
+ getRootView().getPageSessionAttribute(WIZARDPAGEMODELNAME);
+ if (m_pageModelName == null) {
+ m_pageModelName = prefix + "_" + HtmlUtil.getUniqueValue();
+ getRootView().setPageSessionAttribute(WIZARDPAGEMODELNAME, m_pageModelName);
+ }
+ }
+
+ return m_pageModelName;
+ }
+
+ private String getWizardImplName(String prefix) {
+
+ if (m_wizardImplName == null) {
+ m_wizardImplName = (String)getRootView().getPageSessionAttribute(WIZARDIMPLNAME);
+ if (m_wizardImplName == null) {
+ m_wizardImplName = prefix + "_" + HtmlUtil.getUniqueValue();
+ getRootView().setPageSessionAttribute(WIZARDIMPLNAME, m_wizardImplName);
+ }
+ }
+
+ return m_wizardImplName;
+ }
+
+
+ private CCWizardWindowModel createModel(boolean init) {
+ CCWizardWindowModel wizWinModel = new CCWizardWindowModel();
+ if (init) {
+ wizWinModel.setValue(CCWizardWindowModelInterface.MASTHEAD_ALT, "APOC.masthead.altText");
+ wizWinModel.setValue(CCWizardWindowModelInterface.BASENAME, Constants.RES_BASE_NAME);
+ wizWinModel.setValue(CCWizardWindowModelInterface.BUNDLEID, "apocBundle");
+ wizWinModel.setValue(CCWizardWindowModelInterface.TITLE, "APOC.wiz.title");
+ wizWinModel.setValue(CCWizardWindowModelInterface.WINDOW_HEIGHT, new Integer(594));
+ wizWinModel.setValue(CCWizardWindowModelInterface.WINDOW_WIDTH, new Integer(825));
+ wizWinModel.setValue(CCWizardWindowModelInterface.WIZARD_REFRESH_CMDCHILD, getQualifiedName() + "." + CHILD_FRWD_TO_CMDCHILD);
+ wizWinModel.setValue(CCWizardWindowModelInterface.WIZARD_CLASS_NAME, "com.sun.apoc.manager.contexts.AddContextWizardImpl");
+ wizWinModel.setValue(CCWizardWindowModelInterface.WIZARD_NAME, getWizardImplName(WIZARDIMPLNAME_PREFIX));
+ wizWinModel.setValue(WIZARDPAGEMODELNAME, getWizardPageModelName(WIZARDPAGEMODELNAME_PREFIX));
+ }
+
+ return wizWinModel;
+ }
+
+ private String getCopyMoveWizardPageModelName(String prefix) {
+
+ if (m_cmPageModelName == null) {
+ m_cmPageModelName = (String)
+ getRootView().getPageSessionAttribute(COPYMOVEWIZARDPAGEMODELNAME);
+ if (m_cmPageModelName == null) {
+ m_cmPageModelName = prefix + "_" + HtmlUtil.getUniqueValue();
+ getRootView().setPageSessionAttribute(COPYMOVEWIZARDPAGEMODELNAME, m_cmPageModelName);
+ }
+ }
+
+ return m_cmPageModelName;
+ }
+
+ private String getCopyMoveWizardImplName(String prefix) {
+
+ if (m_cmWizardImplName == null) {
+ m_cmWizardImplName =
+ (String)getRootView().getPageSessionAttribute(COPYMOVEWIZARDIMPLNAME);
+ if (m_cmWizardImplName == null) {
+ m_cmWizardImplName = prefix + "_" + HtmlUtil.getUniqueValue();
+ getRootView().setPageSessionAttribute(COPYMOVEWIZARDIMPLNAME, m_cmWizardImplName);
+ }
+ }
+
+ return m_cmWizardImplName;
+ }
+
+
+ private CCWizardWindowModel createCopyMoveModel(boolean init) {
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+
+ CCWizardWindowModel wizWinModel = new CCWizardWindowModel();
+ wizWinModel.clear();
+ if (init) {
+ wizWinModel.setValue(CCWizardWindowModelInterface.MASTHEAD_ALT,
+ "APOC.masthead.altText");
+ wizWinModel.setValue(CCWizardWindowModelInterface.BASENAME,
+ Constants.RES_BASE_NAME);
+ wizWinModel.setValue(CCWizardWindowModelInterface.BUNDLEID,
+ "apocBundle");
+ wizWinModel.setValue(CCWizardWindowModelInterface.TITLE,
+ "APOC.wiz.copy.title");
+ wizWinModel.setValue(CCWizardWindowModelInterface.WINDOW_HEIGHT,
+ new Integer(594));
+ wizWinModel.setValue(CCWizardWindowModelInterface.WINDOW_WIDTH,
+ new Integer(825));
+
+ wizWinModel.setValue(
+ CCWizardWindowModelInterface.WIZARD_REFRESH_CMDCHILD,
+ getQualifiedName() + "." + CHILD_FRWD_TO_CMDCHILD_COPYMOVE);
+
+ wizWinModel.setValue(
+ CCWizardWindowModelInterface.WIZARD_CLASS_NAME,
+ "com.sun.apoc.manager.profiles.CopyMoveWizardImpl");
+
+ wizWinModel.setValue(CCWizardWindowModelInterface.WIZARD_NAME,
+ getCopyMoveWizardImplName(COPYMOVEWIZARDIMPLNAME_PREFIX));
+
+ wizWinModel.setValue(COPYMOVEWIZARDPAGEMODELNAME,
+ getCopyMoveWizardPageModelName(COPYMOVEWIZARDPAGEMODELNAME_PREFIX));
+
+ }
+ return wizWinModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/TemplateHelpMastheadViewBean.java b/src/com/sun/apoc/manager/TemplateHelpMastheadViewBean.java
new file mode 100644
index 0000000..2b9db06
--- /dev/null
+++ b/src/com/sun/apoc/manager/TemplateHelpMastheadViewBean.java
@@ -0,0 +1,95 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.model.CCPageTitleModel;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.RequestManager;
+
+import com.sun.web.ui.view.masthead.CCSecondaryMasthead;
+
+import java.io.IOException;
+
+
+public class TemplateHelpMastheadViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "TemplateHelpMasthead";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/TemplateHelpMasthead.jsp";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_TITLE = "TemplateHelpMastheadTitle";
+ private CCPageTitleModel m_titleModel = null;
+
+ public TemplateHelpMastheadViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_titleModel = createPageTitleModel();
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_MASTHEAD, CCSecondaryMasthead.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_MASTHEAD)) {
+ CCSecondaryMasthead child = new CCSecondaryMasthead(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ return child;
+ }
+ else if (m_titleModel.isChildSupported(name)) {
+ View child = m_titleModel.createChild(this, name);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ private CCPageTitleModel createPageTitleModel() {
+ CCPageTitleModel model = new CCPageTitleModel(
+ RequestManager.getRequestContext().getServletContext(),
+ "/jsp/TemplateHelpTitle.xml");
+ return model;
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/TemplateHelpWindowViewBean.java b/src/com/sun/apoc/manager/TemplateHelpWindowViewBean.java
new file mode 100644
index 0000000..c76c384
--- /dev/null
+++ b/src/com/sun/apoc/manager/TemplateHelpWindowViewBean.java
@@ -0,0 +1,70 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.sun.web.ui.view.html.CCStaticTextField;
+
+
+public class TemplateHelpWindowViewBean extends ViewBeanBase {
+ public static final String PAGE_NAME = "TemplateHelpWindow";
+ public static final String CHILD_WINDOW_TITLE = "WindowTitle";
+ public static final String DEFAULT_DISPLAY_URL= "/jsp/TemplateHelp.jsp";
+
+
+ public TemplateHelpWindowViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_WINDOW_TITLE, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_WINDOW_TITLE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, Toolbox2.getI18n("APOC.help.windowTitle"));
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+}
diff --git a/src/com/sun/apoc/manager/ThreepaneViewBean.java b/src/com/sun/apoc/manager/ThreepaneViewBean.java
new file mode 100755
index 0000000..aa16ad8
--- /dev/null
+++ b/src/com/sun/apoc/manager/ThreepaneViewBean.java
@@ -0,0 +1,106 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.html.StaticTextField;
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.web.ui.common.CCI18N;
+
+public class ThreepaneViewBean extends ViewBeanBase {
+
+ public static final String PAGE_NAME = "Threepane";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/Threepane.jsp";
+ public static final String CHILD_PRODNAME = "ProdName";
+ public static final String CHILD_DESC = "Desc";
+ public static final String CHILD_NOFRAMES = "NoFrames";
+
+ public ThreepaneViewBean() {
+ super(PAGE_NAME);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_PRODNAME, StaticTextField.class);
+ registerChild(CHILD_DESC, StaticTextField.class);
+ registerChild(CHILD_NOFRAMES, StaticTextField.class);
+ }
+
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_PRODNAME)) {
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ String prodName = i18n.getMessage("APOC.masthead.altText");
+ StaticTextField child = new StaticTextField(this, CHILD_PRODNAME, prodName);
+ return child;
+
+ } else if (name.equals(CHILD_DESC)) {
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ String prodName = i18n.getMessage("APOC.framelongdesc");
+ StaticTextField child = new StaticTextField(this, CHILD_DESC, prodName);
+ return child;
+
+ } else if (name.equals(CHILD_NOFRAMES)) {
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ String noFrames = i18n.getMessage("APOC.noframes");
+ StaticTextField child = new StaticTextField(this, CHILD_NOFRAMES, noFrames);
+ return child;
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ // Adds the NavTree to the session if not already there.
+ // Eliminates a race between the nav area and the content area view beans.
+ // Both need the "NavTree" model and both schedule the model for
+ // addition to the session which is done by the ModelManager -
+ // unfortunately _after_ the request is done.
+ // As the two requestst for the areas are issued quite simultaneously
+ // the model is created twice because the second request queries
+ // the model before the first request has finished.
+ getRequestContext().getModelManager().getModel(NavigationModel.class, "NavTree", true, true);
+ super.beginDisplay(event);
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/Toolbox2.java b/src/com/sun/apoc/manager/Toolbox2.java
new file mode 100644
index 0000000..6aac6b2
--- /dev/null
+++ b/src/com/sun/apoc/manager/Toolbox2.java
@@ -0,0 +1,1054 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.ModelManager;
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.util.RootCauseException;
+import com.iplanet.jato.view.View;
+import com.iplanet.sso.SSOException;
+import com.iplanet.sso.SSOToken;
+import com.iplanet.sso.SSOTokenManager;
+import com.sun.apoc.manager.contexts.ManagerTableModel;
+import com.sun.management.services.authentication.UserPrincipal;
+import com.sun.management.services.authentication.PasswordCredential;
+
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.apoc.templates.parsing.TemplatePage;
+import com.sun.apoc.templates.parsing.TemplateProperty;
+import com.sun.apoc.templates.parsing.TemplateRepository;
+import com.sun.apoc.templates.parsing.TemplateSection;
+import com.sun.apoc.manager.profiles.ProfileWindowModel;
+import com.sun.apoc.manager.report.PolicyMgrReportHelper;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.entities.Leaf;
+import com.sun.apoc.spi.entities.Node;
+import com.sun.apoc.spi.entities.Role;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.management.services.common.ConsoleInfo;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.common.CCSystem;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.view.alert.CCAlert;
+import com.sun.web.ui.view.alert.CCAlertFullPage;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCStaticTextField;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.ListIterator;
+import java.util.Locale;
+import java.util.Properties;
+import java.util.ResourceBundle;
+import java.util.Set;
+import java.util.StringTokenizer;
+import java.util.TreeSet;
+
+import javax.security.auth.Subject;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import javax.servlet.jsp.PageContext;
+public abstract class Toolbox2 {
+
+ // ---
+ // --- Debug Helpers
+ // ---
+
+ public static void stamp(String sMessage) {
+ long nNow = System.currentTimeMillis();
+ HttpServletRequest request = RequestManager.getRequest();
+ Long nStamp = (Long) request.getAttribute("myTimeStamp");
+ if (nStamp==null) {
+ nStamp = new Long(nNow);
+ }
+
+ SimpleDateFormat dateFormat= new SimpleDateFormat("HH:mm:ss.SSS");
+ DecimalFormat decimalFormat= new DecimalFormat("0000.#");
+
+ CCDebug.trace3("---+++--- "+
+ dateFormat.format(new Date(nNow))+
+ "+"+
+ decimalFormat.format(nNow-nStamp.longValue())+
+ " "+
+ sMessage);
+
+ nStamp = new Long(nNow);
+ request.setAttribute("myTimeStamp", nStamp);
+ }
+
+ public static void prepareErrorDisplay(Throwable throwable, View aAlert, View aTrace) {
+ CCAlert alert = (CCAlert) aAlert;
+ CCStaticTextField trace = (CCStaticTextField) aTrace;
+ String sSummary = getSummary(throwable);
+ String sTrace = getChainedStackTrace(throwable);
+
+ alert.setValue(CCAlert.TYPE_ERROR);
+
+ if (alert instanceof CCAlertInline) {
+ ((CCAlertInline) alert).setSummary(sSummary);
+ ((CCAlertInline) alert).setDetail("");
+ }
+
+ if (alert instanceof CCAlertFullPage) {
+ ((CCAlertFullPage)alert).setSummary(sSummary);
+ ((CCAlertFullPage)alert).setDetail("");
+ }
+
+ trace.setValue(sTrace);
+
+ CCDebug.trace1(sSummary);
+ CCDebug.trace1(sTrace);
+
+ }
+
+ public static String getChainedStackTrace(Throwable throwable) {
+
+ StringBuffer sChainedTrace = new StringBuffer();
+ Throwable scout = throwable;
+ LinkedList chain = new LinkedList();
+
+ while (scout != null) {
+
+ throwable = scout;
+ chain.add(scout);
+
+ if (throwable instanceof ServletException) {
+ scout = ((ServletException) throwable).getRootCause();
+ }
+ else if (throwable instanceof RootCauseException) {
+ scout = ((RootCauseException) throwable).getRootCause();
+ }
+ else {
+ scout = throwable.getCause();
+ }
+ }
+
+ int nLevel = chain.size()-1;
+
+ while (nLevel>=0) {
+
+ throwable = (Throwable) chain.get(nLevel);
+
+ sChainedTrace.append("\n");
+ sChainedTrace.append(throwable.toString());
+ sChainedTrace.append("\n");
+
+ StackTraceElement[] stack = throwable.getStackTrace();
+ int nStackPos = stack.length-1;
+ int nScoutStackPos = 0;
+
+ if (nLevel>0) {
+ scout = (Throwable) chain.get(nLevel-1);
+ StackTraceElement[] scoutStack = scout.getStackTrace();
+ nScoutStackPos = scoutStack.length-1;
+
+ while ((nScoutStackPos>=0) && ((nStackPos>=0))) {
+ if (!scoutStack[nScoutStackPos].equals(stack[nStackPos])) {
+ break;
+ }
+ nScoutStackPos--;
+ nStackPos--;
+ }
+ }
+
+ for (int stackRunner=0; stackRunner<=nStackPos; stackRunner++) {
+ sChainedTrace.append(" ");
+ if (stackRunner<10) {
+ sChainedTrace.append(" ");
+ } else if (stackRunner<100) {
+ sChainedTrace.append(" ");
+ }
+ sChainedTrace.append(stackRunner);
+ sChainedTrace.append(" ");
+ sChainedTrace.append(stack[stackRunner].toString());
+ sChainedTrace.append("\n");
+ }
+
+ if ((nLevel>0) && (nStackPos!=stack.length-1)) {
+ sChainedTrace.append(" ... continued in the following exception's stack at element # ");
+ sChainedTrace.append(nScoutStackPos+1);
+ sChainedTrace.append("\n");
+ }
+ nLevel--;
+ }
+ return sChainedTrace.toString();
+ }
+
+ public static String getSummary(Throwable throwable) {
+ String sSummary;
+ Throwable scout = throwable;
+
+ while ((scout != null) && !(throwable instanceof SPIException)) {
+ throwable = scout;
+
+ if (throwable instanceof ServletException) {
+ scout = ((ServletException) throwable).getRootCause();
+ }
+ else if (throwable instanceof RootCauseException) {
+ scout = ((RootCauseException) throwable).getRootCause();
+ }
+ else {
+ scout = throwable.getCause();
+ }
+ }
+
+ if (throwable instanceof SPIException) {
+ sSummary = ((SPIException) throwable).getLocalizedMessage(getLocale());
+ } else {
+ sSummary = getI18n("APOC.policies.error.general");
+ }
+
+ return sSummary;
+ }
+
+ // ---
+ // --- String Helpers
+ // ---
+
+ public static boolean isMatch(String sData, String sFilter) {
+ int nCurrentDataPosition = 0;
+ int nMatchPosition = 0;
+ StringTokenizer aTokenizer = new StringTokenizer(sFilter, "*");
+ String sSubMatcher = "";
+
+ while (aTokenizer.hasMoreTokens()) {
+ sSubMatcher = (String) aTokenizer.nextElement();
+ nMatchPosition = sData.indexOf(sSubMatcher, nCurrentDataPosition);
+
+ if ((nCurrentDataPosition == 0) && (!sFilter.startsWith("*")) && (nMatchPosition != 0)) {
+ return false;
+ }
+
+ if (nMatchPosition == -1) {
+ return false;
+ }
+
+ nCurrentDataPosition = nMatchPosition + sSubMatcher.length();
+ }
+
+ if (sFilter.endsWith("*") || (nCurrentDataPosition == sData.length())) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+
+ public static String getI18n(String sBundleKey) {
+ CCI18N i18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ return i18n.getMessage(sBundleKey);
+ }
+
+ public static String getI18n(String sBundleKey, Object[] args) {
+ CCI18N i18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ return i18n.getMessage(sBundleKey, args);
+ }
+
+ public static Locale getLocale() {
+ CCI18N i18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ ResourceBundle bundle = i18n.getResourceBundle();
+ return bundle.getLocale();
+ }
+
+ // ---
+ // --- Servlet Helpers
+ // ---
+
+ public static String getParameter(String sPartialKey) {
+ String sParamValue;
+ HttpServletRequest request = RequestManager.getRequest();
+ Enumeration aParamNamesEnum = request.getParameterNames();
+
+ sParamValue = request.getParameter(sPartialKey);
+
+ if (sParamValue == null) {
+ sParamValue = "";
+
+ while (aParamNamesEnum.hasMoreElements()) {
+ String sParamName = (String) aParamNamesEnum.nextElement();
+
+ if (sParamName.endsWith("." + sPartialKey)) {
+ sParamValue = request.getParameter(sParamName);
+
+ // break out only if some content was found, go ahead searching if not
+ if ((sParamValue != null) && (sParamValue.length() > 0)) {
+ break;
+ }
+ }
+ }
+ }
+
+ return sParamValue;
+ }
+
+ public static String getQuery(String sPartialKey) {
+ String sQuery = RequestManager.getRequest().getQueryString();
+ sQuery = decode(sQuery);
+ if (sPartialKey==null || sPartialKey.length()==0) {
+ return sQuery;
+ }
+
+ int nKeyPos = sQuery.indexOf(sPartialKey);
+ if (nKeyPos<0) {return "";}
+
+ int nValueBeginPos = sQuery.indexOf("=", nKeyPos)+1;
+ if (nValueBeginPos==0) {return "";}
+
+ int nValueEndPos = sQuery.indexOf("&", nValueBeginPos);
+ if (nValueEndPos<0) {
+ nValueEndPos = sQuery.length();
+ }
+
+ return sQuery.substring(nValueBeginPos, nValueEndPos);
+ }
+
+ static String getCharacterEncoding() {
+ CCI18N.initContentType(RequestManager.getRequest(), RequestManager.getResponse());
+ String enc = RequestManager.getResponse().getCharacterEncoding();
+ if (enc == null) {
+ enc = "UTF-8";
+ }
+ return enc;
+ }
+
+ public static String decode(String string) {
+ if (string == null) {
+ return null;
+ }
+
+ try {
+ string = URLDecoder.decode(string, getCharacterEncoding());
+ }
+ catch (UnsupportedEncodingException uee) {
+ CCDebug.trace1("", uee);
+ }
+
+ return string;
+ }
+
+ public static String encode(String string) {
+ if (string == null) {
+ return null;
+ }
+
+ try {
+ string = URLEncoder.encode(string, getCharacterEncoding());
+ }
+ catch (UnsupportedEncodingException uee) {
+ CCDebug.trace1("", uee);
+ }
+
+ return string;
+ }
+
+ // ---
+ // --- Policy Manager Helpers
+ // ---
+
+ public static PolicyManager getPolicyManager() {
+ HttpServletRequest request = RequestManager.getRequest();
+
+ // if ((request.getSession(false) == null) ||
+ // (request.getSession(false).getAttribute(Constants.POLICY_MANAGER) == null)) {
+ // initPolicyManager(RequestManager.getRequestContext());
+ // }
+
+ // PolicyMgr policyManager = (PolicyMgr) request.getSession(false).getAttribute(Constants.POLICY_MANAGER);
+ PolicyManager policyManager = (PolicyManager) request.getSession(false).getAttribute(Constants.POLICY_MANAGER);
+ return policyManager;
+ }
+
+ public static PolicyMgrReportHelper getPolicyMgrHelper() {
+ HttpServletRequest request = RequestManager.getRequest();
+ return (PolicyMgrReportHelper) request.getSession(false).getAttribute(Constants.POLICY_MANAGER_HELPER);
+ }
+
+ public static void setPolicyManager(String sBackendname, String sUsername, String sPassword)
+ throws SPIException, FileNotFoundException, IOException, SSOException {
+
+ RequestContext requestContext = RequestManager.getRequestContext();
+ PolicyManager oldPolicyManager= (PolicyManager) requestContext.getRequest().getSession(true).getAttribute(Constants.POLICY_MANAGER);
+ PolicyManager policyManager = createPolicyManager(sBackendname, sUsername, sPassword, true);
+
+ if (oldPolicyManager!=null) {
+ oldPolicyManager.close();
+ Model navModel = requestContext.getModelManager().getModel(NavigationModel.class, "NavTree", true, false);
+ requestContext.getModelManager().removeFromSession(navModel);
+ requestContext.getRequest().getSession(true).removeAttribute(Constants.SELECTED_ENTITY);
+ }
+
+ requestContext.getRequest().getSession(true).setAttribute(Constants.POLICY_MANAGER_NAME, sBackendname);
+ requestContext.getRequest().getSession(true).setAttribute(Constants.POLICY_MANAGER, policyManager);
+ }
+
+ public static void unsetPolicyManager() throws SPIException {
+ RequestContext requestContext = RequestManager.getRequestContext();
+ PolicyManager oldPolicyManager= (PolicyManager) requestContext.getRequest().getSession(true).getAttribute(Constants.POLICY_MANAGER);
+
+ if (oldPolicyManager!=null) {
+ oldPolicyManager.close();
+ Model navModel = requestContext.getModelManager().getModel(NavigationModel.class, "NavTree", true, false);
+ requestContext.getModelManager().removeFromSession(navModel);
+ requestContext.getRequest().getSession(true).removeAttribute(Constants.SELECTED_ENTITY);
+ requestContext.getRequest().getSession(true).removeAttribute(Constants.POLICY_MANAGER_NAME);
+ requestContext.getRequest().getSession(true).removeAttribute(Constants.POLICY_MANAGER);
+ }
+ }
+
+ public static PolicyManager createPolicyManager(String sBackendname, String sUsername, String sPassword, boolean bStoreAuthenticated)
+ throws SPIException, FileNotFoundException, IOException, SSOException {
+
+ Properties backendProperties = new Properties();
+ Properties selectedBackendProperties = new Properties();
+ RequestContext requestContext = RequestManager.getRequestContext();
+ File dir = new File(ManagerTableModel.CONFIG_FILE_LOCATION);
+ if (dir.exists()) {
+ FilenameFilter filter = new FilenameFilter() {
+ public boolean accept(File dir, String name) {
+ return name.endsWith(".properties");
+ }
+ };
+ File[] files = dir.listFiles(filter);
+ int i = 0;
+ while (i < files.length) {
+ File properties = files[i];
+ if (properties.canRead()) {
+ FileInputStream input = new FileInputStream(properties) ;
+ backendProperties = new Properties();
+ backendProperties.load(input);
+ input.close();
+ if (backendProperties.getProperty("Backend") != null) {
+ String sName = backendProperties.getProperty("Backend");
+ if (sName.equals(sBackendname)) {
+ Enumeration allKeys = backendProperties.keys();
+ while (allKeys.hasMoreElements()) {
+ String sKey = (String) allKeys.nextElement();
+ if (!(sKey.equals("Backend"))){
+ selectedBackendProperties.put(sKey, backendProperties.get(sKey));
+ }
+ }
+ break;
+ }
+ }
+ }
+ i++;
+ }
+ }
+ PolicyManager policyManager = null;
+
+ HashMap authorizedContexts = (HashMap) requestContext.getRequest().getSession(true).getAttribute(Constants.AUTH_CONTEXTS);
+ if (authorizedContexts==null) {
+ authorizedContexts = new HashMap();
+ requestContext.getRequest().getSession(true).setAttribute(Constants.AUTH_CONTEXTS, authorizedContexts);
+ }
+
+ if (sUsername==null || sUsername.length()==0) {
+
+ if (authorizedContexts.containsKey(sBackendname)) {
+ sUsername = ((String[]) authorizedContexts.get(sBackendname))[0];
+ sPassword = ((String[]) authorizedContexts.get(sBackendname))[1];
+ } else {
+ SSOTokenManager tokenmanger = SSOTokenManager.getInstance();
+ SSOToken token = tokenmanger.createSSOToken(requestContext.getRequest());
+ Subject subject = token.getSubject();
+
+ if (subject != null) {
+ Set principals = subject.getPrincipals(UserPrincipal.class);
+ Set credentials = subject.getPrivateCredentials(PasswordCredential.class);
+ Iterator principalIter = principals.iterator();
+ Iterator credentialIter = credentials.iterator();
+
+ while ((principalIter.hasNext()) && (sUsername == null)) {
+ sUsername = ((UserPrincipal) principalIter.next()).getUserName();
+ }
+
+ while ((credentialIter.hasNext()) && (sPassword == null)) {
+ sPassword = new String(((PasswordCredential) credentialIter.next()).getUserPassword());
+ }
+ }
+ }
+ }
+
+ selectedBackendProperties.setProperty(EnvironmentConstants.USER_KEY, sUsername);
+ selectedBackendProperties.setProperty(EnvironmentConstants.CREDENTIALS_KEY, sPassword);
+ selectedBackendProperties.setProperty(Constants.POLICY_MANAGER_NAME, sBackendname);
+
+ policyManager = new PolicyManager(selectedBackendProperties);
+ // Test for read permissions - need to at least be able to read from the LDAP server
+ policyManager.getRootEntity(policyManager.getSources()[0]).getParent();
+
+ //authorization successful
+
+ if (bStoreAuthenticated) {
+ String[] authentification = new String[]{sUsername, sPassword};
+ authorizedContexts.put(sBackendname, authentification);
+ }
+
+ return policyManager;
+
+ }
+
+
+
+ public static Iterator getBackendNames() {
+
+ TreeSet backendNames = new TreeSet();
+ Properties backendProperties = new Properties();
+ RequestContext requestContext = RequestManager.getRequestContext();
+ File dir = new File(ManagerTableModel.CONFIG_FILE_LOCATION);
+ try {
+ if (dir.exists()) {
+ FilenameFilter filter = new FilenameFilter() {
+ public boolean accept(File dir, String name) {
+ return name.endsWith(".properties");
+ }
+ };
+ File[] files = dir.listFiles(filter);
+ int i = 0;
+ while (i < files.length) {
+ File properties = files[i];
+ if (properties.canRead()) {
+ FileInputStream input = new FileInputStream(properties) ;
+ backendProperties = new Properties();
+ backendProperties.load(input);
+ input.close();
+ if (backendProperties.getProperty("Backend") != null) {
+ String sName = backendProperties.getProperty("Backend");
+ backendNames.add(sName);
+ }
+ }
+ i++;
+ }
+ }
+ }
+ catch (Exception e) {
+ CCDebug.trace1("", e);
+ }
+
+ Iterator it = backendNames.iterator();
+ return it;
+ }
+
+ public static String getBackendType(String backendName) {
+ HashMap backendTypes = (HashMap) RequestManager.getRequestContext().getRequest().getSession(true).getAttribute(Constants.BACKEND_TYPES);
+ return backendTypes != null ? (String)backendTypes.get(backendName) : null;
+ }
+
+ public static Entity getSelectedEntity() {
+ HttpSession httpSession = RequestManager.getRequest().getSession(true);
+ Entity entity = (Entity) httpSession.getAttribute(Constants.SELECTED_ENTITY);
+
+ //this is clearly a side effect, but all other solutions are even worse
+ if (entity==null) {
+ ModelManager modelManager = RequestManager.getRequestContext().getModelManager();
+ NavigationModel navModel = (NavigationModel) modelManager.getModel(NavigationModel.class,"NavTree", true, true);
+ httpSession.setAttribute(Constants.SELECTED_ENTITY, navModel.getStoredValue(navModel.NODE_ROOT_DOMAIN));
+ }
+
+ return entity;
+ }
+
+ public static String getSelectedEntityId() {
+ String sEntity = "";
+
+ Entity entity = getSelectedEntity();
+
+ if (entity!=null) {
+ sEntity = entity.getId();
+ }
+
+ return sEntity;
+ }
+
+ public static String getOrganizationRoot() {
+ String sUserRoot = "";
+
+ try {
+ sUserRoot = getPolicyManager().getRootEntity(EnvironmentConstants.USER_SOURCE).getId();
+ }
+ catch (SPIException se) {
+ CCDebug.trace1("", se);
+ }
+
+ return sUserRoot;
+ }
+
+ public static String getDomainRoot() {
+ String sHostRoot = "";
+
+ try {
+ sHostRoot = getPolicyManager().getRootEntity(EnvironmentConstants.HOST_SOURCE).getId();
+ }
+ catch (SPIException se) {
+ CCDebug.trace1("", se);
+ }
+
+ return sHostRoot;
+ }
+
+ public static String getDisplayName(Entity entity) {
+
+ String sDisplayName = "";
+
+ try {
+ if (entity!=null) {
+ if (entity.equals(getPolicyManager().getRootEntity(EnvironmentConstants.USER_SOURCE))) {
+ sDisplayName = getI18n("APOC.navigation.organizations");
+ }
+ else if (entity.equals(getPolicyManager().getRootEntity(EnvironmentConstants.HOST_SOURCE))) {
+ sDisplayName = getI18n("APOC.navigation.domains");
+ } else {
+ sDisplayName = entity.getDisplayName(getLocale());
+ }
+ }
+ }
+ catch (SPIException se) {
+ CCDebug.trace1("", se);
+ }
+
+ return sDisplayName;
+ }
+
+ public static String getDisplayName(String source, String sId) {
+
+ String sDisplayName = "";
+
+ try {
+ Entity entity = getPolicyManager().getEntity(source, sId);
+
+ if (entity!=null) {
+ sDisplayName = getDisplayName(entity);
+ } else {
+ Profile profile = getPolicyManager().getProfile(sId);
+ if (profile!=null) {
+ sDisplayName = profile.getDisplayName();
+ } else {
+ sDisplayName = (String) RequestManager.getRequest().getSession(true).getAttribute(Constants.POLICY_MANAGER_NAME);
+ }
+ }
+ }
+ catch (SPIException se) {
+ CCDebug.trace1("", se);
+ }
+
+ return sDisplayName;
+ }
+
+ public static String buildEntityTitle(String sStaticPart) {
+ String sEntityTitle;
+ StringBuffer entityTitle = new StringBuffer();
+ String sResourceValue = sStaticPart;
+
+ try {
+ Entity entity = getSelectedEntity();
+
+ if (entity==null) {
+ entityTitle.append(getPolicyManager().getRootEntity(EnvironmentConstants.USER_SOURCE).getDisplayName(getLocale()));
+ }
+ else if (entity.equals(getPolicyManager().getRootEntity(EnvironmentConstants.USER_SOURCE))) {
+ entityTitle.append(getI18n("APOC.navigation.organizations"));
+ }
+ else if (entity.equals(getPolicyManager().getRootEntity(EnvironmentConstants.HOST_SOURCE))) {
+ entityTitle.append(getI18n("APOC.navigation.domains"));
+ } else {
+ entityTitle.append(entity.getDisplayName(getLocale()));
+ }
+
+ if ((sStaticPart!=null) && (sStaticPart.length()>0)) {
+ entityTitle.append(" - ");
+ try {
+ sResourceValue = getI18n(sStaticPart);
+ if (sResourceValue != null) {
+ entityTitle.append(sResourceValue);
+ }
+ }
+ catch (java.lang.Exception e) {
+ entityTitle.append(sStaticPart);
+ }
+ }
+ }
+ catch (java.lang.Exception e) {
+ CCDebug.trace1("", e);
+ }
+
+ return entityTitle.toString();
+ }
+
+ public static String buildProfileTitle(String sStaticPart) {
+ String sEntityTitle;
+ CCI18N i18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ ResourceBundle bundle = i18n.getResourceBundle();
+ StringBuffer entityTitle = new StringBuffer();
+ String sResourceValue = sStaticPart;
+ Profile profile = ProfileWindowFramesetViewBean.getSelectedProfile();
+
+ try {
+ sResourceValue = bundle.getString(sStaticPart);
+ if (sResourceValue != null) {
+ entityTitle.append(sResourceValue);
+ }
+ }
+ catch (java.lang.Exception e) {
+ entityTitle.append(sStaticPart);
+ }
+
+ if (profile != null) {
+ entityTitle.append(getI18n("APOC.profile.name.text",new Object[]{profile.getDisplayName()}));
+ }
+
+ return entityTitle.toString();
+ }
+
+
+ public static String getEntityTypeResource(Entity entity) {
+ String sResource = "";
+ String source = entity.getPolicySourceName() ;
+
+ if (entity instanceof Node) {
+ if (source.equals(EnvironmentConstants.USER_SOURCE)) {
+ sResource = "APOC.navigation.organization";
+ }
+ else if (source.equals(EnvironmentConstants.HOST_SOURCE)) {
+ sResource = "APOC.navigation.domain";
+ }
+ }
+ else if (entity instanceof Leaf) {
+ if (source.equals(EnvironmentConstants.USER_SOURCE)) {
+ sResource = "APOC.navigation.user";
+ }
+ else if (source.equals(EnvironmentConstants.HOST_SOURCE)) {
+ sResource = "APOC.navigation.host";
+ }
+ }
+ else if (entity instanceof Role) {
+ sResource = "APOC.navigation.role";
+ }
+ return sResource;
+ }
+
+ public static String getEntityTypeString(Entity entity) {
+ String entityType = EnvironmentConstants.USER_SOURCE;
+ if (isDomainSubtype(entity)) {
+ entityType = EnvironmentConstants.HOST_SOURCE;
+ }
+ return entityType;
+ }
+
+ public static ListIterator getParentPath(String sEntityType, String sEntityId) {
+ return getParentPath(sEntityType, sEntityId, getPolicyManager());
+ }
+
+ public static ListIterator getParentPath(String sEntityType, String sEntityId, PolicyManager policyManager) {
+ LinkedList list = new LinkedList();
+ Entity entity = null;
+
+ try {
+ entity = policyManager.getEntity(sEntityType, sEntityId);
+ }
+ catch (SPIException se) {
+ CCDebug.trace1("", se);
+ }
+
+ return getParentPath(entity, policyManager);
+ }
+
+ public static ListIterator getParentPath(Entity entity, PolicyManager policyManager) {
+ LinkedList list = new LinkedList();
+
+ try {
+ while ( (entity = entity.getParent()) !=null) {
+ list.add(0,entity);
+ }
+ }
+ catch (Exception e) {
+ CCDebug.trace1("", e);
+ }
+
+ return list.listIterator();
+ }
+
+ public static String getParentagePath(String sEntity, String sEntityType, boolean showServer, boolean showSelf, String sSeparator) {
+ return getParentagePath(sEntity, sEntityType, showServer, showSelf, sSeparator, true);
+ }
+
+ public static String getParentagePath(String sEntity, String sEntityType, boolean showServer, boolean showSelf, String sSeparator, boolean bLocalise) {
+ Entity entity = null;
+ try {
+ if (getPolicyManager() != null) {
+ entity = getPolicyManager().getEntity(sEntityType, sEntity);
+ } else {
+ return "";
+ }
+ }
+ catch (SPIException se) {
+ CCDebug.trace1("", se);
+ }
+ return getParentagePath(entity, showServer, showSelf, sSeparator, getPolicyManager(), bLocalise);
+ }
+
+ public static String getParentagePath(Entity entity, boolean showServer, boolean showSelf, String sSeparator) {
+ return getParentagePath(entity, showServer, showSelf, sSeparator, getPolicyManager());
+ }
+
+ public static String getParentagePath(Entity entity, boolean showServer, boolean showSelf, String sSeparator, PolicyManager policyManager) {
+ return getParentagePath(entity, showServer, showSelf, sSeparator, policyManager, true);
+ }
+
+ public static String getParentagePath(Entity entity, boolean showServer, boolean showSelf, String sSeparator, PolicyManager policyManager, boolean bLocalise) {
+ StringBuffer sPath = new StringBuffer();
+
+ if (sSeparator==null) {
+ sSeparator=">";
+ }
+
+ if (showServer) {
+ try {
+ String sBackendname = (String) policyManager.getEnvironment().get(Constants.POLICY_MANAGER_NAME);
+ sPath.append(sBackendname);
+ }
+ catch (Exception e) {
+ CCDebug.trace1("", e);
+ }
+ }
+
+ try {
+ if (entity!=null) {
+ //possible because the display name for org and dom roots are the same
+ Iterator iterator = entity.getAncestorNames(getLocale());
+ boolean bFirstParticle = true;
+ String source = entity.getPolicySourceName() ;
+
+ while (iterator.hasNext()) {
+ String sDisplayName = (String) iterator.next();
+ if (bFirstParticle) {
+ bFirstParticle=false;
+ if (source.equals(EnvironmentConstants.HOST_SOURCE)) {
+ //getI18n requires request context, sync thread doesn't have any
+ sDisplayName = bLocalise?getI18n("APOC.navigation.domains"):"Domain";
+ } else if (source.equals(EnvironmentConstants.USER_SOURCE)){
+ sDisplayName = bLocalise?getI18n("APOC.navigation.organizations"):"Organization";
+ }
+ }
+ if (sPath.length()>0) {
+ sPath.append(" ");
+ sPath.append(sSeparator);
+ sPath.append(" ");
+ }
+ sPath.append(sDisplayName);
+ }
+
+ if (showSelf) {
+ String sDisplayName = "";
+ if (entity.equals(policyManager.getRootEntity(EnvironmentConstants.USER_SOURCE))) {
+ //getI18n requires request context, sync thread doesn't have any
+ sDisplayName = bLocalise?getI18n("APOC.navigation.organizations"):"Organization";
+ } else if (entity.equals(policyManager.getRootEntity(EnvironmentConstants.HOST_SOURCE))){
+ sDisplayName = bLocalise?getI18n("APOC.navigation.domains"):"Domain";
+ } else {
+ sDisplayName = entity.getDisplayName(getLocale());
+ }
+ if (sPath.length()>0) {
+ sPath.append(" ");
+ sPath.append(sSeparator);
+ sPath.append(" ");
+ }
+ sPath.append(sDisplayName);
+ }
+ }
+ }
+ catch (SPIException se) {
+ CCDebug.trace1("", se);
+ }
+
+ return sPath.toString();
+ }
+
+ public static boolean isSubType(String aEntityType, String sEntityId) {
+ Entity entity = null;
+ PolicyManager policyManager = getPolicyManager();
+
+ try {
+ entity = policyManager.getEntity(aEntityType, sEntityId);
+ }
+ catch (Exception e) {
+ CCDebug.trace1("", e);
+ return false;
+ }
+ if (entity == null) {
+ return false;
+ }
+ return isSubType(aEntityType, entity);
+ }
+
+ public static boolean isSubType(String aEntityType, Entity entity) {
+ if (aEntityType.equals(EnvironmentConstants.HOST_SOURCE)) {
+ return isDomainSubtype(entity);
+ } else if (aEntityType.equals(EnvironmentConstants.USER_SOURCE)) {
+ return isOrganizationSubtype(entity);
+ }
+ return false;
+ }
+
+ public static boolean isDomainSubtype(Entity entity) {
+ return entity.getPolicySourceName().equals(EnvironmentConstants.HOST_SOURCE);
+ }
+
+ public static boolean isOrganizationSubtype(Entity entity) {
+ return entity.getPolicySourceName().equals(EnvironmentConstants.USER_SOURCE);
+ }
+
+ public static LinkedList getEntityList(Entity entity) {
+ LinkedList list = new LinkedList();
+ list.add(entity);
+
+ try {
+ while ( (entity = entity.getParent()) !=null) {
+ list.add(0,entity);
+ }
+ }
+ catch (Exception e) {
+ CCDebug.trace1("", e);
+ }
+ return list;
+ }
+
+ public static LinkedList getPolicyGroupList(Iterator entityIterator) {
+ Entity entity = null;
+ LinkedList list = new LinkedList();
+
+ try {
+ while ( (entity = (Entity)entityIterator.next()) != null) {
+ Iterator it = entity.getAssignedProfiles();
+ while (it.hasNext()){
+ list.add(0,it.next());
+ }
+ }
+ }
+ catch (Exception e) {
+ CCDebug.trace1("", e);
+ }
+ return list;
+ }
+
+ public static void setPageTitleHelp(CCPageTitleModel model, String title, String help, String helpfile) {
+ CCI18N i18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ StringBuffer buffer = new StringBuffer();
+ Object[] args = {i18n.getMessage(title)};
+ // Due to a bug in Lockhart 3.x, the helpwindow tag no longer works properly with JATO components.
+ // Therefore need to generate our own context sensitive help links using ContextHelpHelper class.
+ /*buffer.append("<helpwindow appName=\"apoc\" bundleID=\"apocBundle\" helpType=\"help2\" helpTooltip=\"APOC.help.helpTooltip\" helpFileName=\"")
+ .append(helpfile)
+ .append("\"> ")
+ .append(i18n.getMessage("APOC.help.more.on", args))
+ .append("</helpwindow>");
+ String helpLink = buffer.toString();*/
+ ContextHelpHelper helper = new ContextHelpHelper("apoc", "apocBundle", helpfile, "APOC.help.helpTooltip", i18n.getMessage("APOC.help.more.on", args));
+ String helpLink = helper.getHelpLink();
+ String helpText = i18n.getMessage(help);
+ model.setPageTitleHelpMessage(helpText + " " + helpLink);
+ }
+
+ public static String getPropertyPath(TemplateProperty prop) {
+ // Returns the absolute path (in apt:name attributes) of this property using '/' as separator.
+ String propPath = null ;
+ RequestContext cxt = RequestManager.getRequestContext();
+ TemplateRepository tempRep = TemplateRepository.getDefaultRepository() ;
+ ProfileWindowModel editorModel = (ProfileWindowModel) cxt.getModelManager().getModel(ProfileWindowModel.class);
+ String pagePath = editorModel.getSelectedCategory();
+ TemplatePage page = tempRep.getPage(pagePath) ;
+ TemplateSection section = null ;
+ boolean sectionFound = false ;
+ for(int i = 0; (i < page.getSections().size()) && (!sectionFound); i++) {
+ for(int j = 0; (page.getSection(i).getProperties() != null) && (j < page.getSection(i).getProperties().size()); j++) {
+ if(page.getSection(i).getProperty(j).getDefaultName().equals(prop.getDefaultName())) {
+ section = page.getSection(i) ;
+ sectionFound = true ;
+ break ;
+ }
+ }
+ }
+ propPath = pagePath + "/" + section.getDefaultName() + "/" + prop.getDefaultName() ;
+ return propPath ;
+ }
+
+
+ public static TemplateProperty getProperty(String propPath) {
+ // Given an absolute path (in apt:name attributes) to a property, returns the
+ // TemplateProperty object pointed to by the path
+ TemplateRepository tempRep = TemplateRepository.getDefaultRepository() ;
+
+ int index = propPath.lastIndexOf('/');
+ String pagePath = propPath.substring(0, index);
+ index = pagePath.lastIndexOf('/');
+ pagePath = pagePath.substring(0, index);
+ TemplatePage tempPage = tempRep.getPage(pagePath) ;
+
+ String[] splitString = propPath.split("/") ;
+ String sectionName = splitString[splitString.length-2];
+ String propertyName= splitString[splitString.length-1];
+
+ TemplateSection tempSection = tempPage.getSection(sectionName) ;
+ TemplateProperty tempProp = null ;
+ for(int i = 0; i < tempSection.getProperties().size(); i++) {
+ if(tempSection.getProperty(i).getDefaultName().equals(propertyName)) {
+ tempProp = tempSection.getProperty(i) ;
+ break ;
+ }
+ }
+ return tempProp ;
+ }
+
+}
diff --git a/src/com/sun/apoc/manager/UploadFileBean.java b/src/com/sun/apoc/manager/UploadFileBean.java
new file mode 100644
index 0000000..bfbee6c
--- /dev/null
+++ b/src/com/sun/apoc/manager/UploadFileBean.java
@@ -0,0 +1,181 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.sun.web.ui.common.CCDebug;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+
+
+public class UploadFileBean {
+
+ public static final String PAGE_NAME = "UploadFile";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/UploadFile.jsp";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_UPLOADED = "Uploaded";
+ private static final String PACKAGES_DIR = "apoc/packages/";
+ private String filename, filepath, dirname;
+
+ public boolean doUpload(HttpServletRequest request) throws IOException {
+
+ // Create the input stream to read the request
+ ServletInputStream in = request.getInputStream();
+ byte[] line = new byte[128];
+ int i = in.readLine(line, 0, 128);
+ if (i < 3)
+ return false;
+ int boundaryLength = i - 2;
+ String boundary = new String(line, 0, boundaryLength);
+
+ while( i != -1) {
+ String newLine = new String(line, 0, i);
+ if (newLine.startsWith("Content-Disposition: form-data; name=\"")) {
+ if (newLine.indexOf("filename=\"") != -1) {
+ setFilename(new String(line, 0, i-2));
+ if (filename == null){
+ CCDebug.trace3("The filename is null");
+ return false;
+ }
+ // next is the file content
+ i = in.readLine(line, 0, 128);
+ // blank line
+ i = in.readLine(line, 0, 128);
+
+ ZipEntry entry = null;
+ ZipInputStream zipIn = new ZipInputStream((InputStream) in);
+
+ while ((entry = zipIn.getNextEntry()) != null){
+ // The entry is a directory - make a directory
+ if (entry.isDirectory()){
+ // test is there multiple directories listed in the
+ // entry
+ makeMultipleDirs(entry);
+ File dir = new File(PACKAGES_DIR
+ + File.separator
+ + dirname
+ + File.separator
+ + entry.getName());
+ boolean created = dir.mkdir();
+ continue;
+ } else {
+ // The entry is a file
+ int count;
+ FileOutputStream fileOut = null;
+ BufferedOutputStream buffOut = null;
+ int BUFFER = 2048;
+ byte[] data = new byte[BUFFER];
+
+ makeMultipleDirs(entry);
+ File newFile = new File(PACKAGES_DIR
+ + File.separator
+ + dirname
+ + File.separator
+ + entry.getName());
+ try {
+ fileOut = new FileOutputStream(newFile);
+ } catch (FileNotFoundException fnfe) {
+ CCDebug.trace3("FileNotFoundException: "+fnfe);
+ }
+ buffOut = new BufferedOutputStream(fileOut, BUFFER);
+ while ((count = zipIn.read(data, 0, BUFFER)) != -1) {
+ buffOut.write(data, 0, count);
+ }
+ buffOut.flush();
+ buffOut.close();
+ }//close else
+ }// close while
+ }// close if
+ }//close if
+ i = in.readLine(line, 0, 128);
+ }//close while
+ return true;
+ }
+
+ private void setFilename(String s) {
+ if (s == null)
+ return;
+ int pos = s.indexOf("filename=\"");
+ if (pos != -1) {
+ filepath = s.substring(pos+10, s.length()-1);
+ pos = filepath.lastIndexOf("\\");
+ if (pos != -1)
+ filename = filepath.substring(pos+1);
+ else
+ filename = filepath;
+ int dotLoc = filename.lastIndexOf(".");
+ String extension = filename.substring(dotLoc+1, filename.length());
+ int equal = extension.compareToIgnoreCase("zip");
+
+ if (equal != 0){
+ // The extension is not .zip case insensitive
+ CCDebug.trace3("The file extension: "+extension
+ + "is not a valid extension");
+ return;
+ }
+ dirname = filename.substring(0, dotLoc);
+ File dirFile = new File(PACKAGES_DIR
+ + File.separator
+ + dirname);
+ if (dirFile.exists() == false){
+ dirFile.mkdir();
+ }
+ }
+ }
+
+ private void makeMultipleDirs(ZipEntry entry){
+ int checkDirs = entry.getName().indexOf(File.separator);
+ while (checkDirs != -1){
+ String directoryString = entry.getName().substring(0, checkDirs);
+ File directory = new File(PACKAGES_DIR
+ + File.separator
+ + dirname
+ + File.separator
+ + directoryString);
+ if (directory.exists() == false){
+ directory.mkdir();
+ }
+ checkDirs = directoryString.indexOf(File.separator);
+ }
+ }
+} \ No newline at end of file
diff --git a/src/com/sun/apoc/manager/WelcomeViewBean.java b/src/com/sun/apoc/manager/WelcomeViewBean.java
new file mode 100755
index 0000000..c97d3e3
--- /dev/null
+++ b/src/com/sun/apoc/manager/WelcomeViewBean.java
@@ -0,0 +1,179 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.ViewBeanBase;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.sun.apoc.manager.contexts.ManagerTableModel;
+import com.sun.apoc.manager.contexts.ManagerTableView;
+import com.sun.apoc.spi.SPIException;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.model.CCMastheadModel;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCForm;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.masthead.CCPrimaryMasthead;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.table.CCActionTable;
+import java.io.IOException;
+import java.util.ResourceBundle;
+import javax.servlet.ServletException;
+public class WelcomeViewBean extends ViewBeanBase {
+
+ public static final String PAGE_NAME = "Welcome";
+ public static final String DEFAULT_DISPLAY_URL = "/jsp/Welcome.jsp";
+ public static final String CHILD_FORM = "WelcomeForm";
+ public static final String CHILD_DEFAULT_HREF = "DefaultHref";
+ public static final String CHILD_MASTHEAD = "Masthead";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_TITLE = "ManagerTitle";
+ public static final String CHILD_TABLE_VIEW = "ManagerTableView";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_REMOVE_TEXT = "RemoveMessage";
+ public static final String CHILD_RENAME_TEXT = "RenameMessage";
+ public static final String CHILD_ANCHOR_HIDDEN = "Anchor";
+ public static final String CHILD_HELPLOCALE_HIDDEN = "HelpLocale";
+ public static final String CHILD_CONTEXT_HIDDEN = "SelectedContext";
+
+ //
+ private CCPageTitleModel m_titleModel = null;
+// private int m_nSelectedTab = MainWindowTabsModel.TASKS_TAB_ID;
+ private int m_nSelectedTab = MainWindowTabsModel.ASSIGNED_TAB_ID;
+
+ public WelcomeViewBean(RequestContext rc) {
+ super(PAGE_NAME);
+ setRequestContext(rc);
+ setDefaultDisplayURL(DEFAULT_DISPLAY_URL);
+ m_titleModel = new CCPageTitleModel();
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_FORM, CCForm.class);
+ registerChild(CHILD_DEFAULT_HREF, CCHref.class);
+ registerChild(CHILD_MASTHEAD, CCPrimaryMasthead.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_TITLE, CCPageTitle.class);
+ registerChild(CHILD_TABLE_VIEW, ManagerTableView.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_REMOVE_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_RENAME_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_ANCHOR_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_HELPLOCALE_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_CONTEXT_HIDDEN, CCHiddenField.class);
+ }
+
+ public int getSelectedTab() {
+ return m_nSelectedTab;
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_FORM)) {
+ View child = new CCForm(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_DEFAULT_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_MASTHEAD)) {
+ CCMastheadModel model = new CCMastheadModel();
+ CCPrimaryMasthead child = new CCPrimaryMasthead(this, model, name);
+ return child;
+ }
+ else if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_TITLE)) {
+ CCPageTitle child = new CCPageTitle(this, m_titleModel, name);
+ Toolbox2.setPageTitleHelp(m_titleModel, "APOC.contexts.title",
+ "APOC.contexts.help", "gbgqa.html");
+ return child;
+ }
+ else if (name.equals(CHILD_TABLE_VIEW)) {
+ ManagerTableView child = new ManagerTableView(this, name);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE) || name.equals(CHILD_REMOVE_TEXT) || name.equals(CHILD_RENAME_TEXT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_ANCHOR_HIDDEN) || name.equals(CHILD_HELPLOCALE_HIDDEN) || name.equals(CHILD_CONTEXT_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ try {
+ Toolbox2.unsetPolicyManager();
+ } catch (SPIException se) {
+ Toolbox2.prepareErrorDisplay(se, getChild(AlertViewBean.CHILD_ALERT), getChild(AlertViewBean.CHILD_STACKTRACE));
+ }
+ }
+
+ public boolean beginMastheadDisplay(ChildDisplayEvent event) throws ModelControlException {
+ CCPrimaryMasthead child = (CCPrimaryMasthead) getChild(CHILD_MASTHEAD);
+ CCMastheadModel model = (CCMastheadModel) child.getCCMastheadModel();
+
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ ResourceBundle bundle = i18n.getResourceBundle();
+ String productNameAlt = i18n.getMessage("APOC.masthead.altTextVer");
+ model.setAlt(productNameAlt);
+
+ return true;
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ return ((alert.getSummary() != null) && (alert.getSummary().length() > 0));
+ }
+
+}
diff --git a/src/com/sun/apoc/manager/build.xml.in b/src/com/sun/apoc/manager/build.xml.in
new file mode 100644
index 0000000..7a1758f
--- /dev/null
+++ b/src/com/sun/apoc/manager/build.xml.in
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project name="apoc_desktop_manager" default="main" basedir="../../../../../">
+
+ <property name="jarname" value="apoc_manager.jar"/>
+ <property name="package" value="com/sun/apoc/manager"/>
+
+ <property name="inpath" value="build"/>
+ <property name="build.dir" value="${inpath}"/>
+ <property name="build.class" value="${build.dir}/class"/>
+
+ <path id="classpath">
+ <pathelement location="@JATOJDK@"/>
+ <pathelement location="@LDAPJDK@"/>
+ <fileset dir="@WC_LIBPATH@" includes="*.jar"/>
+ <fileset dir="@WC_PRIVLIBS@" includes="*.jar"/>
+ <pathelement location="@SPIJDK@"/>
+ </path>
+
+ <target name="prepare">
+ <mkdir dir="${build.dir}"/>
+ <mkdir dir="${build.class}"/>
+ </target>
+
+ <target name="compile" depends="prepare">
+ <javac srcdir="src"
+ destdir="${build.class}"
+ classpathref="classpath"
+ debug="${debug}">
+ <include name="${package}/**/*.java"/>
+ </javac>
+ </target>
+
+ <target name="jar" depends="compile">
+ <jar jarfile="${build.class}/${jarname}"
+ basedir="${build.class}"
+ includes="${package}/**">
+ <manifest>
+ <attribute name="Class-Path" value="@SPIJDK@"/>
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="main" depends="jar"/>
+
+ <target name="clean">
+ <delete file="${build.class}/${jarname}"/>
+ <delete dir="${build.class}/${package}"/>
+ </target>
+</project>
diff --git a/src/com/sun/apoc/manager/contexts/AddContextWizardImpl.java b/src/com/sun/apoc/manager/contexts/AddContextWizardImpl.java
new file mode 100644
index 0000000..192c6a1
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/AddContextWizardImpl.java
@@ -0,0 +1,697 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import java.util.Map;
+import java.util.ArrayList;
+
+import com.iplanet.jato.ModelManager;
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.RequestManager;
+
+import com.sun.web.ui.model.wizard.WizardInterface;
+import com.sun.web.ui.model.wizard.WizardInterfaceExt;
+import com.sun.web.ui.model.wizard.WizardEvent;
+import com.sun.web.ui.common.CCI18N;
+
+import com.sun.apoc.manager.Constants;
+import com.sun.web.ui.common.CCDebug;
+
+import java.io.File;
+
+interface WizardImplDataUtil {
+
+ public String getErrorMsg();
+}
+
+interface WizardImplData {
+
+
+ final String name = "AddContextWizardImpl";
+ final String cancelMsg = "";
+
+ final String finishPageId = "10";
+ final String firstPageId = "2";
+ final String lastPageId = "11";
+ final String resultsPageId = "11";
+
+ final int[] pageIds = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
+ final String[][] defaultFuturePages = { {null}, {null}, {"9", "4", null}, {null},
+ {"9", "4", null}, {null}, {null}, {"4", null},
+ {"4", null}, {"11"}, {null}, {"10", "11"}, {"10", "11"}, {null}, {"10", "11"} };
+
+ final String[][] futurePages = { {null}, {null}, {null}, {null},
+ {null}, {null}, {null}, {"4", null},
+ {"4", null}, {"11"}, {null}, {"10", "11"}, {"10", "11"}, {null}, {"10", "11"} };
+
+ final String[][] futurePagesHybrid = { {null}, {null}, {null}, {null},
+ {"8", "4", null}, {null}, {"12", null}, {"4", null},
+ {"4", null}, {"11"}, {null}, {null}, {"10"}, {null}, {null} };
+
+ final Class[] pageClass = {
+ Wizard1View.class,
+ Wizard2View.class,
+ Wizard3View.class,
+ Wizard4View.class,
+ Wizard5View.class,
+ Wizard6View.class,
+ Wizard7View.class,
+ Wizard8View.class,
+ Wizard9View.class,
+ Wizard10View.class,
+ Wizard11View.class,
+ Wizard12View.class,
+ Wizard13View.class,
+ Wizard14View.class,
+ Wizard15View.class
+ };
+
+ final String[] stepText = {
+ null,
+ "APOC.wiz.steptext.2",
+ "APOC.wiz.steptext.3",
+ "APOC.wiz.steptext.4",
+ "APOC.wiz.steptext.5",
+ "APOC.wiz.steptext.6",
+ "APOC.wiz.steptext.7",
+ "APOC.wiz.steptext.8",
+ "APOC.wiz.steptext.9",
+ "APOC.wiz.steptext.10",
+ "APOC.wiz.steptext.11",
+ "APOC.wiz.steptext.12",
+ "APOC.wiz.steptext.13",
+ "APOC.wiz.steptext.14",
+ "APOC.wiz.steptext.15"
+ };
+
+ final String[] pageTitle = {
+ null,
+ "APOC.add.context.wizard.page2.title.text",
+ "APOC.add.context.wizard.page3.title.text",
+ "APOC.add.context.wizard.page4.title.text",
+ "APOC.add.context.wizard.page5.title.text",
+ "APOC.add.context.wizard.page6.title.text",
+ "APOC.add.context.wizard.page7.title.text",
+ "APOC.add.context.wizard.page8.title.text",
+ "APOC.add.context.wizard.page9.title.text",
+ "APOC.add.context.wizard.page10.title.text",
+ "APOC.add.context.wizard.page11.title.text",
+ "APOC.add.context.wizard.page12.title.text",
+ "APOC.add.context.wizard.page13.title.text",
+ "APOC.add.context.wizard.page14.title.text",
+ "APOC.add.context.wizard.page15.title.text"
+ };
+
+ final String[][] stepHelp = {
+ {null},
+ {"APOC.wiz.help.2"},
+ {"APOC.wiz.help.3"},
+ {"APOC.wiz.help.4"},
+ {"APOC.wiz.help.5"},
+ {"APOC.wiz.help.6"},
+ {"APOC.wiz.help.7"},
+ {"APOC.wiz.help.8"},
+ {"APOC.wiz.help.9"},
+ {"APOC.wiz.help.10"},
+ {"APOC.wiz.help.11"},
+ {"APOC.wiz.help.12"},
+ {"APOC.wiz.help.13"},
+ {"APOC.wiz.help.14"},
+ {"APOC.wiz.help.15"}
+ };
+
+ final String[] stepInstruction = {
+ null,
+ "APOC.wiz.instruction.2",
+ "APOC.wiz.instruction.3",
+ "APOC.wiz.instruction.4",
+ "APOC.wiz.instruction.5",
+ "APOC.wiz.instruction.6",
+ "APOC.wiz.instruction.7",
+ "APOC.wiz.instruction.8",
+ "APOC.wiz.instruction.9",
+ "APOC.wiz.instruction.10",
+ "APOC.wiz.instruction.11",
+ "APOC.wiz.instruction.12",
+ "APOC.wiz.instruction.13",
+ "APOC.wiz.instruction.14",
+ "APOC.wiz.instruction.15"
+ };
+
+ final String[] placeHolders = {
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null
+ };
+
+
+}
+
+public class AddContextWizardImpl implements WizardImplData,
+ WizardInterface, WizardInterfaceExt{
+
+ private AddContextWizardPageModel thePageModel;
+
+ private String getParameter(String name,
+ RequestContext requestContext) {
+
+ Map parameterMap = requestContext.getRequest().getParameterMap();
+
+ // Need the qualified name. Not sure how to get it
+ //
+ String[] values = (String[])parameterMap.get(name);
+ return values == null ? null : values[0];
+ }
+
+
+ private void getWizardPageModel(RequestContext requestContext) {
+
+ String modelInstanceName = getParameter(
+ ManagerTableView.WIZARDPAGEMODELNAME,
+ requestContext);
+
+ ModelManager mm = requestContext.getModelManager();
+ thePageModel = (AddContextWizardPageModel)mm.getModel(
+ com.sun.apoc.manager.contexts.AddContextWizardPageModel.class,
+ modelInstanceName, false, false);
+ thePageModel.selectWizardContext();
+
+ }
+
+ private boolean validate(WizardEvent wizardEvent) {
+
+ WizardImplDataUtil view = (WizardImplDataUtil)
+ wizardEvent.getView();
+
+ String emsg = view.getErrorMsg();
+ boolean haveError = (emsg != null);
+ if (haveError) {
+ wizardEvent.setSeverity(WizardEvent.ACKNOWLEDGE);
+ wizardEvent.setErrorMessage(emsg);
+ }
+ return !haveError;
+ }
+
+ public static WizardInterface create(RequestContext requestContext) {
+ AddContextWizardImpl wiz = new AddContextWizardImpl(requestContext);
+ return wiz;
+ }
+
+ public AddContextWizardImpl(RequestContext requestContext) {
+ getWizardPageModel(requestContext);
+ }
+
+ public String getPageName(String pageId) {
+ return null;
+ }
+
+ public Model getPageModel(String pageId) {
+ Model m = null;
+ try {
+ m = thePageModel;
+ } catch (Exception e) {
+ dumpexception(e);
+ }
+ return m;
+ }
+
+ public Class getPageClass(String pageId) {
+ Class c = null;
+ try {
+ c = pageClass[pageIdToStep(pageId)];
+ } catch (Exception e) {
+ dumpexception(e);
+ }
+ return c;
+ }
+
+ // This can't be called unless firstPage is set.
+ public String getFirstPageId() {
+ return firstPageId;
+ }
+
+ public String getNextPageId(String pageId) {
+ int nextPageId = Integer.parseInt(pageId);
+ String backendType = null;
+ switch (nextPageId) {
+ // case 1:
+ // nextPageId = 2;
+ // break;
+
+ case 2:
+ resetFuturePages();
+ backendType = (String)thePageModel.getValue(
+ Wizard2View.CHILD_BACKEND_TYPE);
+ if (backendType.equals("1")) {
+ nextPageId = 12;
+ } else {
+ nextPageId = 3;
+ }
+ if (backendType.equals("0")) {
+ String[] nextpages6 = {"15", "10", "11" };
+ futurePages[5] = nextpages6;
+ futurePages[6] = nextpages6;
+ } else if (backendType.equals("2")) {
+ String[] nextpages4 = {"6", "12", "10", "11" };
+ futurePages[3] = nextpages4;
+ String[] nextpages6 = {"12", "10", "11" };
+ futurePages[5] = nextpages6;
+ futurePages[6] = nextpages6;
+ }
+ // if its an edit wizard set helps accordingly
+ if (thePageModel.getValue(thePageModel.WIZARD_CONFIG_FILE) != null) {
+ stepHelp[9][0] = "APOC.wiz.help.edit.10";
+ stepInstruction[9] = "APOC.wiz.instruction.edit.10";
+ } else {
+ stepHelp[9][0] = "APOC.wiz.help.10";
+ stepInstruction[9] = "APOC.wiz.instruction.10";
+ }
+ break;
+
+ case 3:
+ if (isLDAPServerTypeKnown()) {
+ if (isBaseDNKnown()) {
+ stepInstruction[8] = "APOC.wiz.instruction.8";
+ } else {
+ stepInstruction[8] = "APOC.wiz.instruction.9";
+ }
+ nextPageId = 9;
+ } else {
+ nextPageId = 5;
+ }
+ break;
+
+ case 4:
+ backendType = (String)thePageModel.getValue(
+ Wizard2View.CHILD_BACKEND_TYPE);
+ nextPageId = 6;
+ if (backendType.equals("0") && isExistingInstallation()) {
+ if(isApoc1Installation()) {
+ nextPageId = 14;
+ } else {
+ nextPageId = 10;
+ }
+ }
+ break;
+
+ case 5:
+ if (isBaseDNKnown()) {
+ stepInstruction[nextPageId-1] = "APOC.wiz.instruction.8";
+ } else {
+ stepInstruction[nextPageId-1] = "APOC.wiz.instruction.9";
+ }
+ nextPageId = 9;
+ break;
+
+ case 6:
+ String isAdaptMetaConfig = (String)thePageModel.getValue(
+ Wizard6View.CHILD_ADAPT_METACONFIG);
+ if (isAdaptMetaConfig.equals("1")) {
+ nextPageId = 7;
+ } else {
+ backendType = (String)thePageModel.getValue(
+ Wizard2View.CHILD_BACKEND_TYPE);
+ if (backendType.equals("2")) {
+ nextPageId = 12;
+ } else {
+ nextPageId = 15;
+ stepHelp[nextPageId-1][0] = "APOC.wiz.help.15";
+ stepInstruction[nextPageId-1] = "APOC.wiz.instruction.15";
+ }
+ }
+ break;
+
+ case 7:
+ backendType = (String)thePageModel.getValue(
+ Wizard2View.CHILD_BACKEND_TYPE);
+ if (backendType.equals("2")) {
+ nextPageId = 12;
+ } else {
+ nextPageId = 15;
+ stepHelp[nextPageId-1][0] = "APOC.wiz.help.15";
+ stepInstruction[nextPageId-1] = "APOC.wiz.instruction.15";
+ }
+ break;
+
+ case 8:
+ nextPageId = 4;
+ break;
+
+ case 9:
+ nextPageId = 4;
+ break;
+
+ case 10:
+ nextPageId = 11;
+ break;
+
+ case 11:
+ break;
+
+ case 12:
+ nextPageId = 10;
+ String root = (String)thePageModel.getValue(thePageModel.FILEPATH);
+ if (root != null) {
+ File dir = new File(root);
+ String[] children = dir.list();
+ if (children != null) {
+ for (int i=0; i<children.length; i++) {
+ // Get filename of file or directory
+ String filename = children[i];
+ if ((filename.equals("profiles"))
+ || (filename.equals("assignments"))
+ || (filename.equals("entities.txt"))
+ || (filename.equals("OrganizationMapping.properties"))
+ || (filename.equals("UserProfileMapping.properties"))) {
+ nextPageId = 13;
+ }
+ }
+ }
+ }
+ break;
+
+ case 13:
+ nextPageId = 10;
+ break;
+
+ case 14:
+ String migrateProfiles = (String)thePageModel.getValue(Wizard14View.CHILD_MIGRATE);
+ if (migrateProfiles.equals("1")) {
+ nextPageId = 10;
+ } else {
+ nextPageId = 15;
+ stepHelp[nextPageId-1][0] = "APOC.wiz.help.15a";
+ stepInstruction[nextPageId-1] = "APOC.wiz.instruction.15a";
+ }
+ break;
+
+ case 15:
+ nextPageId = 10;
+ break;
+
+ default:
+ break;
+ }
+ return Integer.toString(nextPageId);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ // It should already have a name
+ // The framework needs one to identify it.
+ // Should be immutable.
+ //
+ public void setName(String name) {
+ }
+
+ /**
+ * The wizard framework no longer posts an alert
+ * when the user revisits a previously seen page.
+ * This method should always return false.
+ *
+ */
+ public boolean warnOnRevisitStep() {
+ return false;
+ }
+
+ public String getResourceBundle() {
+ CCI18N m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ return Constants.RES_BASE_NAME;
+ }
+
+ public String getTitle() {
+ String title = (String)thePageModel.getValue(thePageModel.WIZARD_TITLE);
+ if (title == null) {
+ title = "APOC.wiz.title";
+ }
+ return title;
+ }
+
+ // This is just using the stepText
+ // need better source for the example
+ //
+ public String getStepTitle(String pageId) {
+ return stepText[pageIdToStep(pageId)];
+ }
+
+
+ public String[] getFuturePages(String currentPageId) {
+ String[] nextPages = futurePages[pageIdToStep(currentPageId)];
+ return nextPages;
+ }
+
+ public String[] getFutureSteps(String currentPageId) {
+ String[] nextPages = futurePages[pageIdToStep(currentPageId)];
+ String[] futureSteps = null;
+ String backendType = (String)thePageModel.getValue(Wizard2View.CHILD_BACKEND_TYPE);
+ if ((backendType != null) && (backendType.equals("2"))) {
+ // nextPages = futurePagesHybrid[pageIdToStep(currentPageId)];
+ }
+ if (!currentPageId.equals(lastPageId)) {
+ futureSteps = new String[nextPages.length];
+ for(int i = 0; i < nextPages.length; i++) {
+ if (nextPages[i] == null) {
+ futureSteps[i] = "APOC.wiz.placeholder";
+ } else {
+ int futurePage = Integer.parseInt(nextPages[i]);
+ futureSteps[i] = stepText[futurePage - 1];
+ }
+ }
+ }
+ return futureSteps;
+ }
+
+
+ public String getStepInstruction(String pageId) {
+ String s = null;
+ try {
+ s = stepInstruction[pageIdToStep(pageId)];
+ } catch (Exception e) {
+ dumpexception(e);
+ }
+ return s;
+ }
+
+ public String getStepText(String pageId) {
+ return stepText[pageIdToStep(pageId)];
+ }
+
+ public String[] getStepHelp(String pageId) {
+ String[] s = null;
+ try {
+ s = stepHelp[pageIdToStep(pageId)];
+ } catch (Exception e) {
+ dumpexception(e);
+ }
+ return s;
+ }
+
+ public boolean isFinishPageId(String pageId) {
+ return pageId.equals(finishPageId);
+ }
+
+ public boolean hasPreviousPageId(String pageId) {
+ return pageIdToStep(getFirstPageId()) != pageIdToStep(pageId);
+ }
+
+ // Events
+ public boolean done(String wizardName) {
+ thePageModel.selectDefaultContext();
+
+ return true;
+ }
+
+ public boolean nextStep(WizardEvent wizardEvent) {
+ boolean result = validate(wizardEvent);
+ if (result == false) {
+ return result;
+ }
+ return result;
+ }
+
+ public boolean previousStep(WizardEvent wizardEvent) {
+ return !wizardEvent.getPageId().equals(getFirstPageId());
+ }
+
+ public boolean gotoStep(WizardEvent wizardEvent) {
+ return true;
+ }
+
+ public boolean finishStep(WizardEvent wizardEvent) {
+ boolean result = validate(wizardEvent);
+ if (!result) {
+ return result;
+ }
+ return true;
+ }
+
+
+ public boolean cancelStep(WizardEvent wizardEvent) {
+ thePageModel.clearWizardData();
+ return true;
+ }
+
+ public void closeStep(WizardEvent wizardEvent) {
+ }
+
+ public boolean isSubstep(String pageId) {
+ if ((pageId != null) && (pageIdToStep(pageId) == 4
+ || pageIdToStep(pageId) == 6
+ || pageIdToStep(pageId) == 12
+ || pageIdToStep(pageId) == 18)){
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ // Display a confirmation message if one is specified
+ public String getCancelPrompt(String pageId) {
+ return cancelMsg;
+ }
+
+ public String getPlaceholderText(String pageId) {
+ String s = null;
+ try {
+ s = placeHolders[pageIdToStep(pageId)];
+ } catch (Exception e) {
+ dumpexception(e);
+ }
+ return s;
+ }
+
+ public boolean helpTab(WizardEvent wizardEvent) {
+ return true;
+ }
+
+ public boolean stepTab(WizardEvent wizardEvent) {
+ return true;
+ }
+
+ public boolean canBeStepLink(String pageId) {
+ return true;
+ }
+
+ public String getResultsPageId(String pageId) {
+ return resultsPageId;
+ }
+
+ // Helper methods
+ //
+ private String stepToPageId(int step) {
+ return Integer.toString(step + 1);
+ }
+
+ private int pageIdToStep(String pageId) {
+ return Integer.parseInt(pageId) - 1;
+ }
+
+ public String toString() {
+ return name;
+ }
+
+ private void dumpexception(Exception e) {
+ CCDebug.trace3(
+ com.sun.web.ui.common.CCDebug.getClassMethod(1) +
+ " : " + e.getMessage());
+ }
+
+ private boolean isTrue(String tOrf) {
+ return tOrf == null ? false : tOrf.equalsIgnoreCase("true");
+ }
+
+ private boolean isExistingInstallation() {
+ String existingInstall = (String)thePageModel.getWizardValue(thePageModel.EXISTING_INSTALL);
+ if (existingInstall.equals("true")) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ private boolean isApoc1Installation() {
+ String isApoc1 = (String)thePageModel.getWizardValue(thePageModel.APOC1_INSTALL);
+ if (isApoc1.equals("true")) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ private boolean isBaseDNExisting() {
+ return true;
+ }
+
+ private boolean isLDAPServerTypeKnown() {
+ String backendType = (String)thePageModel.getValue(thePageModel.VENDOR_ID);
+ if (backendType != null) {
+ return true;
+ }
+ return false;
+ }
+
+ private boolean isBaseDNKnown() {
+ ArrayList baseDNs = (ArrayList)thePageModel.getValue(thePageModel.BASEDN_LIST);
+ if (baseDNs != null) {
+ return true;
+ }
+ return false;
+ }
+
+ private void resetFuturePages() {
+ for (int i = 0; i < defaultFuturePages.length; i++) {
+ futurePages[i] = defaultFuturePages[i];
+ }
+ }
+}
+
+
+
diff --git a/src/com/sun/apoc/manager/contexts/AddContextWizardPageModel.java b/src/com/sun/apoc/manager/contexts/AddContextWizardPageModel.java
new file mode 100644
index 0000000..a879c77
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/AddContextWizardPageModel.java
@@ -0,0 +1,177 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.DefaultModel;
+import com.iplanet.jato.model.InvalidContextException;
+
+/**
+ * This is an example model implementation designed to
+ * share data collected during a wizard session and the
+ * application that originated the wizard session.
+ *
+ * There are two contexts in this model.
+ * The DEFAULT context which all DefaultModel's have
+ * and a WIZARD_CONTEXT. The WIZARD_CONTEXT is created
+ * to allow the application to discard the data collected
+ * during a wizard session vs. preserving it as the
+ * the actual data used by the application.
+ */
+public class AddContextWizardPageModel extends DefaultModel {
+
+ final String WIZARD_CONTEXT = "WIZARD_CONTEXT";
+ public static final String CONNECTION = "LDAPConnection";
+ public static final String VENDOR_ID = "VendorId";
+ public static final String BASEDN_LIST = "BaseDnList";
+ public static final String BASEDN = "BaseDn";
+ public static final String METACONFIG = "MetaConfiguration";
+ public static final String NO_ACTION = "NoAction";
+ public static final String FILEPATH = "FilePath";
+ public static final String SUCCESS = "Success";
+ public static final String FAIL_MESSAGE = "FailMessage";
+ public static final String EXISTING_INSTALL = "ExistingInstall";
+ public static final String APOC1_INSTALL = "Apoc1Install";
+ public static final String POLICYMGR = "PolicyManager";
+ public static final String ENTITY_TYPE = "EntityType";
+ public static final String WIZARD_CONFIG_FILE = "WizardConfigFile";
+ public static final String PROPERTIES = "WizardProperties";
+ public static final String WIZARD_TITLE = "WizardTitle";
+
+ public AddContextWizardPageModel() {
+ this(null);
+ }
+
+ public AddContextWizardPageModel(String name) {
+ super();
+ setName(name);
+ addContext(WIZARD_CONTEXT);
+ setUseDefaultValues(false);
+ }
+
+ public void selectWizardContext() {
+ try {
+ selectContext(WIZARD_CONTEXT);
+ } catch (InvalidContextException e) {
+ // this means that the wizard has not set any
+ // values in the model
+ //
+ // Should never fail.
+ }
+ }
+
+ public void selectDefaultContext() {
+ try {
+ selectContext(DEFAULT_CONTEXT_NAME);
+ } catch (InvalidContextException e) {
+ // this means that the wizard has not set any
+ // values in the model
+ //
+ // Should never fail.
+ }
+ }
+
+ public void clearWizardData() {
+ try {
+ selectContext(WIZARD_CONTEXT);
+ clear();
+ } catch (InvalidContextException e) {
+ // This should never fail
+ }
+
+ // Restore the default context.
+ try {
+ selectContext(DefaultModel.DEFAULT_CONTEXT_NAME);
+ } catch (InvalidContextException e) {
+ // never fails.
+ }
+ }
+
+ /**
+ * This is an example on how to get data set by the wizard
+ * from the model. More sophisticated models may need more
+ * sophisticated techniques. This method called from the
+ * beginDisplay methods of the container views to set
+ * a field's value. For simplicity we assume only single
+ * valued values.
+ */
+ public Object getWizardValue(String fieldName) {
+
+ // Remember the current context
+ //
+ String cntxt = getCurrentContextName();
+
+ // Set the model to retrieve data from the WIZARD_CONTEXT
+ // in the model
+ //
+ try {
+ selectContext(WIZARD_CONTEXT);
+ } catch (InvalidContextException e) {
+ // this means that the wizard has not set any
+ // This should never fail
+ }
+ Object obj = getValue(fieldName);
+
+ // Restore the default context.
+ try {
+ selectContext(DefaultModel.DEFAULT_CONTEXT_NAME);
+ } catch (InvalidContextException e) {
+ // never fails.
+ }
+ // If there is no wizard value return the default
+ // context value
+ //
+ if (obj == null) {
+ obj = getValue(fieldName);
+ }
+
+ // Restore the original context
+ //
+ try {
+ selectContext(cntxt);
+ } catch (InvalidContextException e) {
+ // this means that the wizard has not set any
+ // values in the model
+ //
+ // Should never fail.
+ }
+
+ return obj;
+ }
+}
+
+
+
diff --git a/src/com/sun/apoc/manager/contexts/AddContextWizardServlet.java b/src/com/sun/apoc/manager/contexts/AddContextWizardServlet.java
new file mode 100644
index 0000000..0759104
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/AddContextWizardServlet.java
@@ -0,0 +1,81 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestContextImpl;
+import com.iplanet.jato.ViewBeanManager;
+
+import com.sun.web.ui.servlet.wizard.WizardWindowServlet;
+
+/**
+ * The application developer must create a Servlet subclass of
+ * com.sun.web.ui.servlet.wizard.WizardWindowServlet.
+ * This is because the wizard requires resource bundles that
+ * that can only be loaded by the application context class
+ * loader. Creating a wizard Servlet subclass ensures that
+ * the application can load its resource bundle.
+ *
+ * @version 1.4 10/01/03
+ * @author Sun Microsystems, Inc.
+ *
+ */
+public class AddContextWizardServlet extends
+ com.sun.web.ui.servlet.wizard.WizardWindowServlet {
+
+ public static final String DEFAULT_MODULE_URL = "../wizard";
+
+ // Constructor
+ public AddContextWizardServlet() {
+ super();
+ }
+
+ public String getModuleURL() {
+ // The superclass can be configured from init params specified at
+ // deployment time. If the superclass has been configured with
+ // a different module URL, it will return a non-null value here.
+ // If it has not been configured with a different URL, we use our
+ // (hopefully) sensible default.
+ String result = (super.getModuleURL() != null)
+ ? super.getModuleURL()
+ : DEFAULT_MODULE_URL;
+
+ return result;
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/contexts/ManagerTableModel.java b/src/com/sun/apoc/manager/contexts/ManagerTableModel.java
new file mode 100755
index 0000000..e29d7f9
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/ManagerTableModel.java
@@ -0,0 +1,276 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.RequestParticipant;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.environment.EnvironmentMgr;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.model.CCActionTableModel;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FilenameFilter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Properties;
+
+public class ManagerTableModel extends CCActionTableModel implements RequestParticipant {
+ // Child view names (i.e. display fields).
+ public static final String CHILD_COLUMN = "Col";
+ public static final String CHILD_STATIC_TEXT = "Text";
+ public static final String CHILD_NAME_COLUMN = "NameColumn";
+ public static final String CHILD_NAME_TEXT = "NameText";
+ public static final String CHILD_NAME_HREF = "NameHref";
+ public static final String CHILD_TYPE_COLUMN = "TypeColumn";
+ public static final String CHILD_TYPE_TEXT = "TypeText";
+ public static final String CHILD_ORGLOC_COLUMN = "OrgLocationColumn";
+ public static final String CHILD_ORGLOC_TEXT = "OrgLocationText";
+ public static final String CHILD_PROLOC_COLUMN = "ProfileLocationColumn";
+ public static final String CHILD_PROLOC_TEXT = "ProfileLocationText";
+
+ public static final String CONFIG_FILE_LOCATION = System.getProperty("file.separator")
+ + "etc"
+ + System.getProperty("file.separator")
+ + "opt"
+ + System.getProperty("file.separator")
+ + "SUNWapmcg"
+ + System.getProperty("file.separator");
+ //
+ private RequestContext m_requestContext;
+ private HashMap m_backendPropertiesMap = new HashMap();
+ private HashMap m_backendFilesMap = new HashMap();
+ private Properties m_backendProperties = new Properties();
+
+ public ManagerTableModel() {
+ super();
+ }
+
+ public void setRequestContext(RequestContext requestContext) {
+ m_requestContext = requestContext;
+
+ setActionValue(CHILD_NAME_COLUMN, "APOC.contexts.column.name");
+ setActionValue(CHILD_TYPE_COLUMN, "APOC.contexts.column.type");
+ setActionValue(CHILD_ORGLOC_COLUMN, "APOC.contexts.column.locorg");
+ setActionValue(CHILD_PROLOC_COLUMN, "APOC.contexts.column.locpro");
+ setMaxRows(10);
+ }
+
+ public void retrieve() throws ModelControlException {
+ clear();
+ try {
+ File dir = new File(CONFIG_FILE_LOCATION);
+ if (dir.exists()) {
+ FilenameFilter filter = new FilenameFilter() {
+ public boolean accept(File dir, String name) {
+ return name.endsWith(".properties");
+ }
+ };
+ HashMap backendTypes = (HashMap)RequestManager.getRequestContext().getRequest().getSession(true).getAttribute(Constants.BACKEND_TYPES);
+ File[] files = dir.listFiles(filter);
+ int i = 0;
+ while (i < files.length) {
+ File properties = files[i];
+ if (properties.canRead()) {
+ FileInputStream input = new FileInputStream(properties) ;
+ Properties backendProperties = new Properties();
+ backendProperties.load(input);
+ input.close();
+ if (backendProperties.getProperty("Backend") != null) {
+ String sName = backendProperties.getProperty("Backend");
+ String sProviderURL = null;
+ String sProviderType = "";
+ String sProfileProviderURL = null;
+ String sProfileProviderType = "";
+
+ sProviderURL = backendProperties.getProperty(EnvironmentConstants.ORGANIZATION_PREFIX
+ + EnvironmentConstants.URL_KEY);
+ sProfileProviderURL = backendProperties.getProperty(EnvironmentConstants.ORGANIZATION_PREFIX
+ + EnvironmentConstants.PROFILE_PREFIX
+ + EnvironmentConstants.URL_KEY);
+ if (sProviderURL == null) {
+ sProviderURL = backendProperties.getProperty(EnvironmentConstants.URL_KEY);
+ }
+ if (sProfileProviderURL == null) {
+ sProfileProviderURL = sProviderURL;
+ }
+ if (sProviderURL != null) {
+ if (sProviderURL.indexOf(":") != -1 ) {
+ sProviderType = sProviderURL.substring(0, sProviderURL.indexOf(":"));
+ }
+ if (sProfileProviderURL.indexOf(":") != -1 ) {
+ sProfileProviderType = sProfileProviderURL.substring(0, sProfileProviderURL.indexOf(":"));
+ }
+
+ if (!sProviderType.equals(sProfileProviderType)) {
+ sProviderType = "APOC.contexts.hybrid.text";
+ }
+
+ if (backendTypes == null) {
+ backendTypes = new HashMap();
+ RequestManager.getRequestContext().getRequest().getSession(true).setAttribute(Constants.BACKEND_TYPES, backendTypes);
+ }
+ backendTypes.put(sName, sProviderType);
+ // If its a file-based backend then no credentials are necessary
+ // so save them to session (empty strings) so they can be used everywhere
+ // i.e. in the sync dialog, copymove etc.
+ if (sProviderType.startsWith("file") ) {
+ backendTypes.put(sName, sProviderType);
+ HashMap authorizedContexts = (HashMap) RequestManager.getSession().getAttribute(Constants.AUTH_CONTEXTS);
+ if (authorizedContexts==null) {
+ authorizedContexts = new HashMap();
+ RequestManager.getRequestContext().getRequest().getSession(true).setAttribute(Constants.AUTH_CONTEXTS, authorizedContexts);
+ }
+ if (!(authorizedContexts.containsKey(sName))) {
+ String[] authentification = new String[]{"", ""};
+ authorizedContexts.put(sName, authentification);
+ }
+ }
+ }
+
+ appendRow();
+ setValue(CHILD_NAME_TEXT, sName);
+ setValue(CHILD_NAME_HREF, sName);
+ setValue(CHILD_TYPE_TEXT, sProviderType);
+ setValue(CHILD_ORGLOC_TEXT, sProviderURL);
+ setValue(CHILD_PROLOC_TEXT, sProfileProviderURL);
+ m_backendPropertiesMap.put(sName, backendProperties);
+ m_backendFilesMap.put(sName, files[i].getAbsolutePath());
+ }
+ }
+ i++;
+ }
+ }
+ } catch (Exception e) {
+ throw new ModelControlException(e);
+ }
+
+ }
+
+ public void delete() throws ModelControlException {
+ try {
+ LinkedList scheduledProfiles = new LinkedList();
+ int currentLocation = getLocation();
+ for (int nModelRunner = 0; nModelRunner < getNumRows(); nModelRunner++) {
+ if (isRowSelected(nModelRunner)) {
+ setLocation(nModelRunner);
+
+ String sContextName = (String) getValue(CHILD_NAME_TEXT);
+ //Try to delete from the default location otherwise try the legacy storage location
+ if (!(m_backendPropertiesMap.isEmpty())) {
+ String filePath = (String) m_backendFilesMap.get(sContextName);
+ if (filePath != null) {
+ File fileToDelete = new File(filePath);
+ if (fileToDelete.exists()) {
+ fileToDelete.delete();
+ }
+ }
+ m_backendPropertiesMap.remove(sContextName);
+ m_backendFilesMap.remove(sContextName);
+ }
+ // Remove any cached credentials from the session
+ HashMap authorizedContexts = (HashMap) RequestManager.getSession().getAttribute(Constants.AUTH_CONTEXTS);
+ if (authorizedContexts!=null) {
+ if (authorizedContexts.containsKey(sContextName)) {
+ authorizedContexts.remove(sContextName);
+ }
+ }
+ setRowSelected(false);
+ }
+ }
+ setLocation(currentLocation);
+
+ } catch (Exception e) {
+ throw new ModelControlException(e);
+ }
+
+ }
+
+ public void rename(String sNewName) throws ModelControlException {
+ try {
+ LinkedList scheduledProfiles = new LinkedList();
+ int currentLocation = getLocation();
+ for (int nModelRunner = 0; nModelRunner < getNumRows(); nModelRunner++) {
+ if (isRowSelected(nModelRunner)) {
+ setLocation(nModelRunner);
+
+ String sContextName = (String) getValue(CHILD_NAME_TEXT);
+ if (!(m_backendPropertiesMap.isEmpty())) {
+ String filePath = (String) m_backendFilesMap.get(sContextName);
+ Properties properties = (Properties) m_backendPropertiesMap.get(sContextName);
+ properties.setProperty("Backend", sNewName);
+ m_backendPropertiesMap.put(sNewName, properties);
+ m_backendPropertiesMap.remove(sContextName);
+ m_backendFilesMap.put(sNewName, filePath);
+ m_backendFilesMap.remove(sContextName);
+ if (filePath != null) {
+ File propertiesFile = new File(filePath);
+ if (propertiesFile.exists()) {
+ propertiesFile.delete();
+ }
+ File newFile = new File(filePath);
+ FileOutputStream output = new FileOutputStream(newFile);
+
+ properties.store(output, "");
+ }
+ }
+ // Remove any cached credentials from the session
+ HashMap authorizedContexts = (HashMap) RequestManager.getSession().getAttribute(Constants.AUTH_CONTEXTS);
+ if (authorizedContexts!=null) {
+ if (authorizedContexts.containsKey(sContextName)) {
+ authorizedContexts.put(sNewName, authorizedContexts.get(sContextName));
+ authorizedContexts.remove(sContextName);
+ }
+ }
+
+ setRowSelected(false);
+ break;
+ }
+ }
+ setLocation(currentLocation);
+
+ } catch (Exception e) {
+ throw new ModelControlException(e);
+ }
+ }
+
+}
diff --git a/src/com/sun/apoc/manager/contexts/ManagerTableView.java b/src/com/sun/apoc/manager/contexts/ManagerTableView.java
new file mode 100755
index 0000000..2278212
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/ManagerTableView.java
@@ -0,0 +1,380 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.util.HtmlUtil;
+import com.iplanet.jato.view.BasicCommandField;
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.AlertViewBean;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.ContextsLoginViewBean;
+import com.sun.apoc.manager.ThreepaneViewBean;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.manager.WelcomeViewBean;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.model.CCWizardWindowModel;
+import com.sun.web.ui.model.CCWizardWindowModelInterface;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.table.CCActionTable;
+import com.sun.web.ui.view.wizard.CCWizardWindow;
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;public class ManagerTableView extends RequestHandlingViewBase {
+
+ public static AddContextWizardPageModel m_wizardPageModel;
+ public static final String WIZARDPAGEMODELNAME = "pageModelName";
+ public static final String WIZARDPAGEMODELNAME_PREFIX = "WizardPageModel";
+ public static final String WIZARDIMPLNAME = "wizardImplName";
+ public static final String WIZARDIMPLNAME_PREFIX = "WizardImpl";
+ public static final String CHILD_CONTEXT_TABLE = "ContextTable";
+ public static final String CHILD_WIZARDWINDOW = "wizardWindow";
+ public static final String CHILD_FRWD_TO_CMDCHILD = "forwardToVb";
+ public static final String CHILD_WIZARDLAUNCHED_HIDDEN = "WizardLaunched";
+
+ protected ManagerTableModel m_Model = null;
+
+ private String m_pageModelName;
+ private String m_wizardImplName;
+ private boolean m_wizardLaunched = false;
+
+ public ManagerTableView(View parent, String name) {
+ super(parent, name);
+ m_Model = getModel();
+ setRequestContext(RequestManager.getRequestContext());
+ registerChildren();
+ }
+
+ public ManagerTableModel getModel() {
+ if (m_Model == null) {
+ m_Model = (ManagerTableModel) getModel(ManagerTableModel.class);
+ m_Model.setDocument(getRequestContext().getServletContext(), "/jsp/contexts/ManagerTable.xml");
+ }
+
+ return m_Model;
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_CONTEXT_TABLE, CCActionTable.class);
+ registerChild(CHILD_WIZARDWINDOW, CCWizardWindow.class);
+ registerChild(CHILD_FRWD_TO_CMDCHILD, BasicCommandField.class);
+ registerChild(CHILD_WIZARDLAUNCHED_HIDDEN, CCHiddenField.class);
+ m_Model.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_CONTEXT_TABLE)) {
+ CCActionTable child = new CCActionTable(this, m_Model, name);
+ return child;
+ }
+ else if (name.equals(CHILD_WIZARDWINDOW)) {
+ Boolean launched = (Boolean) getRootView().getPageSessionAttribute("WIZARDLAUNCHED");
+
+ boolean init = launched == null ||
+ launched.booleanValue() == false;
+
+ CCWizardWindowModel wizWinModel = createModel(init);
+
+ // CCWizardWindow extends CCButton and therefor has
+ // all the behavior of CCButton.
+ //
+ CCWizardWindow child = new CCWizardWindow(this, wizWinModel,
+ name, (Object)"APOC.pool.new");
+ child.setDisabled(!init);
+ return child;
+ } else if (name.equals(CHILD_FRWD_TO_CMDCHILD)) {
+
+ // The command child that receives the request in the
+ // form submit to this ViewBean when the wizard session
+ // ends.
+ //
+ BasicCommandField bcf = new BasicCommandField(this, name);
+ return bcf;
+ } else if (name.equals(CHILD_WIZARDLAUNCHED_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, Boolean.valueOf(m_wizardLaunched));
+ return child;
+ } else if (m_Model.isChildSupported(name)) {
+ return m_Model.createChild(this, name);
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+
+ public void handleNameHrefRequest(RequestInvocationEvent event) {
+ try {
+ getSession().setAttribute(Constants.FIRST_VISIT, "true");
+ HashMap authorizedContexts = (HashMap) getSession().getAttribute(Constants.AUTH_CONTEXTS);
+ String sHrefContext = Toolbox2.getParameter("NameHref");
+ if (authorizedContexts==null) {
+ getViewBean(ContextsLoginViewBean.class).forwardTo(getRequestContext());
+ } else {
+ if (authorizedContexts.containsKey(sHrefContext)) {
+ String sUsername = ((String[]) authorizedContexts.get(sHrefContext))[0];
+ String sPassword = ((String[]) authorizedContexts.get(sHrefContext))[1];
+ Toolbox2.setPolicyManager(sHrefContext, sUsername, sPassword);
+ getViewBean(ThreepaneViewBean.class).forwardTo(getRequestContext());
+ } else {
+ getViewBean(ContextsLoginViewBean.class).forwardTo(getRequestContext());
+ }
+ }
+ }
+ catch (Exception e) {
+ Toolbox2.prepareErrorDisplay(e,
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_ALERT),
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_STACKTRACE));
+ getRootView().forwardTo(getRequestContext());
+ }
+ }
+
+ public void handleRemoveButtonRequest(RequestInvocationEvent event) {
+ try {
+ m_Model.retrieve();
+ ((CCActionTable) getChild(CHILD_CONTEXT_TABLE)).restoreStateData();
+ updateSelections();
+ m_Model.delete();
+ }
+ catch (ModelControlException mce) {
+ Toolbox2.prepareErrorDisplay(mce,
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_ALERT),
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_STACKTRACE));
+ }
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleRenameButtonRequest(RequestInvocationEvent event) {
+ try {
+ CCHiddenField newName = (CCHiddenField) ((WelcomeViewBean)getParent()).getChild(WelcomeViewBean.CHILD_CONTEXT_HIDDEN);
+ String sNewName= (String) newName.getValue();
+
+ m_Model.retrieve();
+ ((CCActionTable) getChild(CHILD_CONTEXT_TABLE)).restoreStateData();
+ updateSelections();
+ m_Model.rename(sNewName);
+ }
+ catch (ModelControlException mce) {
+ Toolbox2.prepareErrorDisplay(mce,
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_ALERT),
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_STACKTRACE));
+ }
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ /**
+ * The request handler for the CCWizardWindow button.
+ * Realize that the wizard will be displaying concurrently
+ * as this ViewBean redisplays.
+ */
+ public void handleWizardWindowRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ m_wizardLaunched = true;
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ /**
+ * Request handler for the form submit when the wizard session ends.
+ */
+ public void handleForwardToVbRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+
+ m_wizardLaunched = false;
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void beginDisplay(DisplayEvent event)
+ throws ModelControlException {
+ super.beginDisplay(event);
+
+ // Ensure that the page session attributes contain the
+ // unique model name and WizardImpl name
+ getRootView().setPageSessionAttribute(WIZARDPAGEMODELNAME, getWizardPageModelName(WIZARDPAGEMODELNAME_PREFIX));
+ getRootView().setPageSessionAttribute(WIZARDIMPLNAME, getWizardImplName(WIZARDIMPLNAME_PREFIX));
+ getRootView().setPageSessionAttribute("WIZARDLAUNCHED", new Boolean(m_wizardLaunched));
+ ((CCWizardWindow)getChild(CHILD_WIZARDWINDOW)).setDisabled(m_wizardLaunched);
+ ((CCHiddenField)getChild(CHILD_WIZARDLAUNCHED_HIDDEN)).setValue(Boolean.valueOf(m_wizardLaunched));
+ m_Model.retrieve();
+ }
+
+ public boolean beginConditionalContextTableDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ Iterator backends = Toolbox2.getBackendNames();
+ return backends.hasNext();
+ }
+
+ /** When the application receives its first request
+ * the page session attributes will not be available.
+ *
+ * Unique names are created to distinguish this instance
+ * of the application from others thereby ensuring that
+ * this wizard session is not corrupted by other wizard
+ * sessions based on this application page.
+ *
+ * On subsequent requests the model name and wizard name
+ * will be available. This is most important when the
+ * wizard session ends. When the wizard session ends, it
+ * forwards a request to this ViewBean thereby effecting
+ * a redisply. During that redisplay the model that was
+ * originally created by this ViewBean can be recovered
+ * and made available to the views that represent this
+ * application page. The result is that the data collected
+ * during the wizard session is displayed in the
+ * application page.
+ */
+ private String getWizardPageModelName(String prefix) {
+
+ if (m_pageModelName == null) {
+ m_pageModelName = (String)
+ getRootView().getPageSessionAttribute(WIZARDPAGEMODELNAME);
+ if (m_pageModelName == null) {
+ m_pageModelName = prefix + "_" + HtmlUtil.getUniqueValue();
+ getRootView().setPageSessionAttribute(WIZARDPAGEMODELNAME, m_pageModelName);
+ }
+ }
+
+ return m_pageModelName;
+ }
+
+ /**
+ * It is important to have a unique Wizard name since the
+ * WizardImpl example wizard is not a stateless wizard.
+ */
+ private String getWizardImplName(String prefix) {
+
+ if (m_wizardImplName == null) {
+ m_wizardImplName =
+ (String)getRootView().getPageSessionAttribute(WIZARDIMPLNAME);
+ if (m_wizardImplName == null) {
+ m_wizardImplName = prefix + "_" + HtmlUtil.getUniqueValue();
+ getRootView().setPageSessionAttribute(WIZARDIMPLNAME, m_wizardImplName);
+ }
+ }
+
+ return m_wizardImplName;
+ }
+
+
+ private CCWizardWindowModel createModel(boolean init) {
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+
+ CCWizardWindowModel wizWinModel = new CCWizardWindowModel();
+ if (init) {
+ wizWinModel.setValue(CCWizardWindowModelInterface.MASTHEAD_ALT,
+ "APOC.masthead.altText");
+ wizWinModel.setValue(CCWizardWindowModelInterface.BASENAME,
+ Constants.RES_BASE_NAME);
+ wizWinModel.setValue(CCWizardWindowModelInterface.BUNDLEID,
+ "apocBundle");
+ wizWinModel.setValue(CCWizardWindowModelInterface.TITLE,
+ "APOC.wiz.title");
+ wizWinModel.setValue(CCWizardWindowModelInterface.WINDOW_HEIGHT,
+ new Integer(594));
+ wizWinModel.setValue(CCWizardWindowModelInterface.WINDOW_WIDTH,
+ new Integer(900));
+
+ wizWinModel.setValue(
+ CCWizardWindowModelInterface.WIZARD_REFRESH_CMDCHILD,
+ getQualifiedName() + "." + CHILD_FRWD_TO_CMDCHILD);
+
+ // Static stateful simple wizard
+ //
+ wizWinModel.setValue(
+ CCWizardWindowModelInterface.WIZARD_CLASS_NAME,
+ "com.sun.apoc.manager.contexts.AddContextWizardImpl");
+
+ // Create a unique name for the wizard since
+ // WizardImpl.java isn't stateless
+ //
+ wizWinModel.setValue(CCWizardWindowModelInterface.WIZARD_NAME,
+ getWizardImplName(WIZARDIMPLNAME_PREFIX));
+
+ // Application dependent value, which is obtained
+ // by the WizardImpl class from the request parameters
+ // during its creation
+ //
+ wizWinModel.setValue(WIZARDPAGEMODELNAME,
+ getWizardPageModelName(WIZARDPAGEMODELNAME_PREFIX));
+
+ }
+
+ /**
+ * Since the page session attribute is not needed by the
+ * the individual wizard pages, don't pass it to
+ * popup wizard window.
+ *
+ * This property was introduced
+ * in 2.1 to prevent the problems when an extremely long
+ * page session attribute is passed as a request parameter.
+ * Some browsers limit the length of URL's.
+ *
+ * If you do not need to access information in a
+ * wizard page from this page session, then set
+ * this property to false.
+ *
+ * wizWinModel.setValue(
+ * CCWizardWindowModelInterface.WIZARD_PASS_PAGESESSION, "false");
+ */
+ return wizWinModel;
+ }
+
+ private void updateSelections() {
+ HttpServletRequest request = getRequestContext().getRequest();
+ Enumeration aParamNamesEnum = request.getParameterNames();
+
+ while (aParamNamesEnum.hasMoreElements()) {
+ String sParamName = (String) aParamNamesEnum.nextElement();
+ int nOptionPos = sParamName.indexOf(CCActionTable.CHILD_SELECTION_CHECKBOX);
+
+ if (nOptionPos != -1) {
+ String sParamValue = request.getParameter(sParamName);
+ String sRowNumber = sParamName.substring(nOptionPos+CCActionTable.CHILD_SELECTION_CHECKBOX.length());
+
+ if (sRowNumber.indexOf(".")==-1) {
+ m_Model.setRowSelected(Integer.parseInt(sRowNumber), Boolean.valueOf(sParamValue).booleanValue());
+ }
+ }
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/contexts/Wizard10View.java b/src/com/sun/apoc/manager/contexts/Wizard10View.java
new file mode 100644
index 0000000..2913d9f
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard10View.java
@@ -0,0 +1,1180 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCTextArea;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+
+import javax.servlet.ServletException;
+
+import netscape.ldap.LDAPConnection;
+import netscape.ldap.LDAPException;
+import netscape.ldap.LDAPEntry;
+import netscape.ldap.LDAPSchema;
+import netscape.ldap.LDAPObjectClassSchema;
+import netscape.ldap.LDAPAttributeSchema;
+import netscape.ldap.LDAPAttribute;
+import netscape.ldap.LDAPAttributeSet;
+import netscape.ldap.LDAPDN;
+import netscape.ldap.LDAPModification;
+
+import com.sun.web.ui.common.CCDebug;
+
+import java.util.Vector;
+import java.util.Enumeration;
+import java.util.StringTokenizer;
+import java.util.Iterator;
+import java.util.TreeSet;
+
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.AssignmentProvider;
+
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.ldap.profiles.LdapProfile;
+import com.sun.apoc.spi.policies.Policy;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.ldap.entities.LdapEntityType;
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard10View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard10View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_NAME_LABEL = "NameLabel";
+ public static final String CHILD_ENTITY_TYPE_LABEL = "EntityTypeLabel";
+ public static final String CHILD_ORGDOM_SECTION_LABEL = "OrgDomSectionLabel";
+ public static final String CHILD_GENERAL_SECTION_LABEL = "GeneralSectionLabel";
+ public static final String CHILD_TYPE_LABEL = "TypeLabel";
+ public static final String CHILD_HOST_LABEL = "HostLabel";
+ public static final String CHILD_PORT_LABEL = "PortLabel";
+ public static final String CHILD_USERDN_LABEL = "UserDnLabel";
+ public static final String CHILD_VENDOR_LABEL = "VendorLabel";
+ public static final String CHILD_METACONFIG_LABEL = "MetaConfigurationLabel";
+ public static final String CHILD_BASEDN_LABEL = "BaseDnLabel";
+ public static final String CHILD_FILEPATH_LABEL = "FilepathLabel";
+ public static final String CHILD_NAME_VALUE = "NameValue";
+ public static final String CHILD_ENTITY_TYPE_VALUE = "EntityTypeValue";
+ public static final String CHILD_TYPE_VALUE = "TypeValue";
+ public static final String CHILD_HOST_VALUE = "HostValue";
+ public static final String CHILD_PORT_VALUE = "PortValue";
+ public static final String CHILD_USERDN_VALUE = "UserDnValue";
+ public static final String CHILD_VENDOR_VALUE = "VendorValue";
+ public static final String CHILD_MIGRATE_PROFS_LABEL = "MigrateProfsLabel";
+ public static final String CHILD_MIGRATE_PROFS_VALUE = "MigrateProfsValue";
+ public static final String CHILD_NO_ACTION_LABEL = "NoActionLabel";
+ public static final String CHILD_METACONFIG_VALUE = "MetaConfigurationValue";
+ public static final String CHILD_BASEDN_VALUE = "BaseDnValue";
+ public static final String CHILD_FILEPATH_VALUE = "FilepathValue";
+
+
+ public static final String[] ATTRIBUTE_TYPES =
+ {" ( 1.3.6.1.4.1.42.2.27.9.1.83 NAME 'sunkeyvalue' DESC 'Attribute to store the encoded key values of the services' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN ( 'Sun ONE Identity Management' 'user defined' ) )",
+ " ( 1.3.6.1.4.1.42.2.27.9.1.84 NAME 'sunxmlkeyvalue' DESC 'Attribute to store the key values in xml format' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 X-ORIGIN ( 'Sun ONE Identity Management' 'user defined' ) )",
+ " ( 1.3.6.1.4.1.42.2.27.9.1.81 NAME 'sunsmspriority' DESC 'To store the priority of the service with respect to its siblings' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN ( 'Sun ONE Identity Management' 'user defined' ) )",
+ " ( 1.3.6.1.4.1.42.2.27.9.1.78 NAME ( 'sunserviceschema' ) DESC 'SMS Attribute to Store xml schema of a particular service' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'Sun ONE Identity Management' )",
+ " ( 1.3.6.1.4.1.42.2.27.9.1.82 NAME ( 'sunpluginschema' ) DESC 'To store the plugin schema information' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'Sun ONE Identity Management' )",
+ " ( 1.3.6.1.4.1.42.2.27.9.1.79 NAME ( 'sunserviceid' ) DESC 'Attribute to store the reference to the inherited object' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'Sun ONE Identity Management' )"};
+ public static final String[] OBJECT_CLASSES =
+ {" ( 1.3.6.1.4.1.42.2.27.9.2.25 NAME 'sunservice' DESC 'object containing service information' SUP top STRUCTURAL MUST ou MAY ( labeledUri $ sunserviceschema $ sunkeyvalue $ sunxmlkeyvalue $ sunpluginschema $ description ) X-ORIGIN ( 'Sun ONE Identity Management' 'user defined' ) )",
+ " ( 1.3.6.1.4.1.42.2.27.9.2.27 NAME 'sunservicecomponent' DESC 'Sub-components of the service' SUP top STRUCTURAL MUST ou MAY ( sunserviceid $ sunsmspriority $ sunkeyvalue $ sunxmlkeyvalue $ description ) X-ORIGIN ( 'Sun ONE Identity Management' 'user defined' ) )"};
+
+
+ public static final String[] ATTRIBUTE_TYPE_NAMES =
+ {"sunkeyvalue", "sunxmlkeyvalue", "sunsmspriority",
+ "sunserviceschema", "sunpluginschema", "sunserviceid"};
+ public static final String[] OBJECT_CLASS_NAMES = {"sunservice", "sunservicecomponent"};
+
+ public static final String BACKEND = "Backend";
+ public static final String ORGDOM_ENTITIES_FILE = "entities.txt";
+ private String m_backendType = null;
+ private String m_entityType = null;
+ private boolean m_noAction = false;
+ AddContextWizardPageModel m_wm = null;
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard10View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ m_wm = (AddContextWizardPageModel)getDefaultModel();
+ }
+
+ public Wizard10View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ m_wm = (AddContextWizardPageModel)getDefaultModel();
+ registerChildren();
+ }
+
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_NAME_LABEL, CCLabel.class);
+ registerChild(CHILD_TYPE_LABEL, CCLabel.class);
+ registerChild(CHILD_HOST_LABEL, CCLabel.class);
+ registerChild(CHILD_PORT_LABEL, CCLabel.class);
+ registerChild(CHILD_USERDN_LABEL, CCLabel.class);
+ registerChild(CHILD_VENDOR_LABEL, CCLabel.class);
+ registerChild(CHILD_METACONFIG_LABEL, CCLabel.class);
+ registerChild(CHILD_BASEDN_LABEL, CCLabel.class);
+ registerChild(CHILD_FILEPATH_LABEL, CCLabel.class);
+ registerChild(CHILD_NAME_VALUE, CCLabel.class);
+ registerChild(CHILD_TYPE_VALUE, CCLabel.class);
+ registerChild(CHILD_HOST_VALUE, CCLabel.class);
+ registerChild(CHILD_PORT_VALUE, CCLabel.class);
+ registerChild(CHILD_USERDN_VALUE, CCLabel.class);
+ registerChild(CHILD_VENDOR_VALUE, CCLabel.class);
+ registerChild(CHILD_MIGRATE_PROFS_LABEL, CCLabel.class);
+ registerChild(CHILD_MIGRATE_PROFS_VALUE, CCLabel.class);
+ registerChild(CHILD_NO_ACTION_LABEL, CCLabel.class);
+ registerChild(CHILD_BASEDN_VALUE, CCLabel.class);
+ registerChild(CHILD_FILEPATH_VALUE, CCLabel.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (m_backendType == null) {
+ m_backendType = (String)m_wm.getValue(Wizard2View.CHILD_BACKEND_TYPE);
+ }
+
+ if (name.equals(CHILD_NAME_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.2.name"));
+ return child;
+ } else if (name.equals(CHILD_TYPE_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.2.type"));
+ return child;
+ } else if (name.equals(CHILD_NAME_VALUE)) {
+ String value = (String)m_wm.getValue(Wizard2View.CHILD_NAME_FIELD);
+ child = (View)new CCLabel(this, name, value);
+ return child;
+ } else if (name.equals(CHILD_TYPE_VALUE)) {
+ String value = "";
+ if (m_backendType.equals("0")) {
+ value = m_I18n.getMessage("APOC.wiz.2.ldap");
+ } else if (m_backendType.equals("1")) {
+ value = m_I18n.getMessage("APOC.wiz.2.file");
+ } else if (m_backendType.equals("2")) {
+ value = m_I18n.getMessage("APOC.wiz.2.hybrid");
+ }
+ child = (View)new CCLabel(this, name, value);
+ return child;
+ } else if (name.equals(CHILD_HOST_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.3.host"));
+ } else if (name.equals(CHILD_HOST_VALUE)) {
+ String value = (String)m_wm.getValue(Wizard3View.CHILD_HOST_FIELD);
+ child = (View)new CCLabel(this, name, value);
+ } else if (name.equals(CHILD_PORT_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.3.port"));
+ } else if (name.equals(CHILD_PORT_VALUE)) {
+ String value = (String)m_wm.getValue(Wizard3View.CHILD_PORT_FIELD);
+ child = (View)new CCLabel(this, name, value);
+ } else if (name.equals(CHILD_USERDN_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.4.user.dn"));
+ } else if (name.equals(CHILD_USERDN_VALUE)) {
+ String useAnon = (String)m_wm.getValue(Wizard4View.CHILD_ANON_ACCESS);
+ String value = (String)m_wm.getValue(Wizard4View.CHILD_NONANON_USERDN_FIELD);
+ if (useAnon.equals("true")) {
+ value = m_I18n.getMessage("APOC.wiz.10.anonymous");
+ }
+ child = (View)new CCLabel(this, name, value);
+ } else if (name.equals(CHILD_VENDOR_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.10.vendor"));
+ } else if (name.equals(CHILD_NO_ACTION_LABEL)) {
+ String noActionString = "APOC.wiz.10.noaction";
+ if (m_wm.getValue(m_wm.WIZARD_CONFIG_FILE) != null) {
+ noActionString = "APOC.wiz.10.edit.noaction";
+ }
+ if (m_backendType.equals("0")) {
+ String baseDN = (String)m_wm.getWizardValue(m_wm.BASEDN);
+ LDAPConnection conn = (LDAPConnection)m_wm.getValue(m_wm.CONNECTION);
+ String hostname = (String)m_wm.getWizardValue(Wizard3View.CHILD_HOST_FIELD);
+ String portString = (String)m_wm.getWizardValue(Wizard3View.CHILD_PORT_FIELD);
+ Object[] args = {hostname + ":" + portString + "/" + baseDN};
+ child = (View)new CCLabel(this, name, m_I18n.getMessage(noActionString, args));
+ } else if (m_backendType.equals("1")) {
+ Object[] args = {(String)m_wm.getValue(m_wm.FILEPATH)};
+ child = (View)new CCLabel(this, name, m_I18n.getMessage(noActionString, args));
+ } else if (m_backendType.equals("2")) {
+ String baseDN = (String)m_wm.getWizardValue(m_wm.BASEDN);
+ LDAPConnection conn = (LDAPConnection)m_wm.getValue(m_wm.CONNECTION);
+ String hostname = (String)m_wm.getWizardValue(Wizard3View.CHILD_HOST_FIELD);
+ String portString = (String)m_wm.getWizardValue(Wizard3View.CHILD_PORT_FIELD);
+ String and = m_I18n.getMessage("APOC.report.bothand");
+ String filepath = (String)m_wm.getValue(m_wm.FILEPATH);
+ Object[] args = {hostname + ":" + portString + "/" + baseDN + " " + and + " " + filepath};
+ child = (View)new CCLabel(this, name, m_I18n.getMessage(noActionString, args));
+ }
+ } else if (name.equals(CHILD_VENDOR_VALUE)) {
+ String value = (String)m_wm.getValue(m_wm.VENDOR_ID);
+ if (value.equals("0")) {
+ value = m_I18n.getMessage("APOC.wiz.5.sun");
+ } else if (value.equals("1")) {
+ value = m_I18n.getMessage("APOC.wiz.5.openldap");
+ } else if (value.equals("2")) {
+ value = m_I18n.getMessage("APOC.wiz.5.ad");
+ } else if (value.equals("3")) {
+ value = m_I18n.getMessage("APOC.wiz.5.other");
+ }
+ child = (View)new CCLabel(this, name, value);
+ } else if (name.equals(CHILD_MIGRATE_PROFS_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.10.migrate"));
+ } else if (name.equals(CHILD_MIGRATE_PROFS_VALUE)) {
+ child = (View)new CCLabel(this, name, null);
+ } else if (name.equals(CHILD_METACONFIG_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.10.metaconfig"));
+ } else if (name.equals(CHILD_METACONFIG_VALUE)) {
+ String value = (String)m_wm.getValue(Wizard7View.CHILD_METACONFIG);
+ child = (View)new CCTextArea(this, name, null);
+ ((CCTextArea)child).setValue(value);
+ ((CCTextArea)child).setReadOnly(true);
+ } else if (name.equals(CHILD_BASEDN_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.10.basedn"));
+ } else if (name.equals(CHILD_BASEDN_VALUE)) {
+ String value = (String)m_wm.getValue(m_wm.BASEDN);
+ child = (View)new CCLabel(this, name, value);
+ } else if (name.equals(CHILD_FILEPATH_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.10.path"));
+ } else if (name.equals(CHILD_FILEPATH_VALUE)) {
+ String value = (String)m_wm.getValue(m_wm.FILEPATH);
+ child = (View)new CCLabel(this, name, value);
+ } else {
+ throw new IllegalArgumentException(
+ "WizardPage10View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+ public boolean beginDisplayLDAPInfoDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ boolean displayLDAPInfo = false;
+ if ((m_backendType.equals("0")) || (m_backendType.equals("2"))) {
+ displayLDAPInfo = true;
+ }
+ return displayLDAPInfo;
+ }
+
+ public boolean beginDisplayFileBasedInfoDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ boolean displayFileBasedInfo = false;
+ if ((m_backendType.equals("1")) || (m_backendType.equals("2"))) {
+ displayFileBasedInfo = true;
+ }
+ return displayFileBasedInfo;
+ }
+
+ public boolean beginDisplayMigrateProfsDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCLabel child = (CCLabel)getChild(CHILD_MIGRATE_PROFS_VALUE);
+ String migrateProfiles = (String)m_wm.getValue(Wizard14View.CHILD_MIGRATE);
+ String value = "";
+ if (migrateProfiles != null && migrateProfiles.equals("0")) {
+ value = m_I18n.getMessage("APOC.wiz.6.yes");
+ } else {
+ value = m_I18n.getMessage("APOC.wiz.6.no");
+ }
+ child.setValue(value);
+ String isApoc1 = (String)m_wm.getWizardValue(m_wm.APOC1_INSTALL);
+ if (isApoc1.equals("true")) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public boolean beginDisplayMetaConfigDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ String value = (String)m_wm.getValue(Wizard6View.CHILD_ADAPT_METACONFIG);
+
+ boolean displayMetaConfig = false;
+ if (value != null && value.equals("1")) {
+ displayMetaConfig = true;
+ }
+ return displayMetaConfig;
+ }
+
+ public boolean beginNoActionLabelDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ String showNoAction = "false";
+ if ((m_backendType.equals("1")) || (m_backendType.equals("2"))) {
+ String overwrite = (String)m_wm.getWizardValue(Wizard13View.CHILD_UPDATE_OVERWRITE);
+ if (overwrite != null && overwrite.equals("1")) {
+ showNoAction = "true";
+ }
+ } else {
+ String isExistingInstall = (String)m_wm.getValue(m_wm.EXISTING_INSTALL);
+ String isApoc1 = (String)m_wm.getValue(m_wm.APOC1_INSTALL);
+ String migrateProfiles = (String)m_wm.getValue(Wizard14View.CHILD_MIGRATE);
+ if (isExistingInstall.equals("true")) {
+ if (isApoc1.equals("true")) {
+ if (migrateProfiles != null && migrateProfiles.equals("0")) {
+ showNoAction = "false";
+ } else {
+ showNoAction = "true";
+ }
+ } else {
+ showNoAction = "true";
+ }
+ }
+ m_wm.setValue(m_wm.NO_ACTION, showNoAction);
+ }
+ return Boolean.valueOf(showNoAction).booleanValue();
+ }
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard10.jsp";
+ }
+
+ public String getErrorMsg() {
+ String err = null;
+ m_wm.setValue(m_wm.SUCCESS, "true");
+ m_backendType = (String)m_wm.getValue(Wizard2View.CHILD_BACKEND_TYPE);
+ boolean noAction = Boolean.valueOf((String)m_wm.getValue(m_wm.NO_ACTION)).booleanValue();
+
+ if (noAction) {
+ updateBackendsFile();
+ disconnect();
+ } else {
+ if (m_backendType != null) {
+ if (m_backendType.equals("0")) {
+ createLDAPBackend();
+ } else if (m_backendType.equals("1")) {
+ String root = (String)m_wm.getValue(m_wm.FILEPATH);
+ String overwrite = (String)m_wm.getWizardValue(Wizard13View.CHILD_UPDATE_OVERWRITE);
+ createFileBasedBackend(root, overwrite, ORGDOM_ENTITIES_FILE);
+ } else if (m_backendType.equals("2")) {
+ createHybridBackend();
+ }
+ }
+ if ( ((String)m_wm.getValue(m_wm.SUCCESS)).equals("true")) {
+ updateBackendsFile();
+ }
+ }
+
+ return err;
+ }
+
+ private String createLDAPBackend() {
+ LDAPSchema dirSchema = new LDAPSchema();
+
+ LDAPConnection conn = (LDAPConnection)m_wm.getValue(m_wm.CONNECTION);
+
+ String backendVendor = (String)m_wm.getValue(m_wm.VENDOR_ID);
+ if (backendVendor.equals("0")) {
+ try {
+ dirSchema.fetchSchema(conn);
+ for (int i = 0; i < ATTRIBUTE_TYPE_NAMES.length; i++) {
+ LDAPAttributeSchema attrType = dirSchema.getAttribute(ATTRIBUTE_TYPE_NAMES[i]);
+ if (attrType == null) {
+ attrType = new LDAPAttributeSchema(ATTRIBUTE_TYPES[i]);
+ attrType.add(conn);
+ }
+ }
+ for (int i = 0; i < OBJECT_CLASS_NAMES.length; i++) {
+ LDAPObjectClassSchema objClass = dirSchema.getObjectClass(OBJECT_CLASS_NAMES[i]);
+ if (objClass == null) {
+ objClass = new LDAPObjectClassSchema(OBJECT_CLASSES[i]);
+ objClass.add(conn);
+ }
+ }
+ } catch ( LDAPException e ) {
+ CCDebug.trace3( e.toString() );
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail1"), e.toString());
+ }
+ }
+
+
+
+ String baseDn = (String)m_wm.getValue(m_wm.BASEDN);
+
+ String services = "ou=services," + baseDn;
+ String service = "ou=ApocService," + services;
+ String version = "ou=1.0," + service;
+ String orgConfig= "ou=OrganizationConfig," + version;
+ String def = "ou=default," + orgConfig;
+ String container= "ou=ApocRegistry," + def;
+
+ String orgUnit = "organizationalUnit";
+ String sunService = "sunService";
+ String sunServiceComponent = "sunServiceComponent";
+
+ try {
+ createEntry(services, orgUnit);
+ createEntry(service, sunService);
+ createEntry(version, sunService);
+ createEntry(orgConfig, orgUnit);
+ createEntry(def, sunServiceComponent);
+ createEntry(container, sunServiceComponent);
+ } catch ( LDAPException e ) {
+ CCDebug.trace3( e.toString() );
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail2"), getLDAPError(e));
+ }
+
+ String storageAttribute = "sunKeyValue";
+ try {
+ fillAttribute(container, storageAttribute, "organizationalmapping", getOrgMapping());
+ fillAttribute(container, storageAttribute, "ldapattributemapping", getUserMapping());
+ } catch ( LDAPException e ) {
+ CCDebug.trace3( e.toString() );
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail3"), getLDAPError(e));
+ }
+
+ String sunServiceIdAttr = "sunserviceid";
+ String sunServiceIdValue = "ApocRegistry";
+
+ try {
+ addAttribute(container, sunServiceIdAttr, sunServiceIdValue);
+ } catch ( LDAPException e ) {
+ CCDebug.trace3( e.toString() );
+ Object[] args = {sunServiceIdAttr, container};
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail4", args), getLDAPError(e));
+ }
+
+ //Migrate profiles if requested
+ String migrateProfiles = (String)m_wm.getValue(Wizard14View.CHILD_MIGRATE);
+ if (migrateProfiles != null && migrateProfiles.equals("0")) {
+ migrateProfiles();
+ }
+
+ disconnect();
+
+ return null;
+ }
+
+ private void disconnect() {
+ LDAPConnection conn = (LDAPConnection)m_wm.getValue(m_wm.CONNECTION);
+ try {
+ conn.disconnect();
+ } catch ( LDAPException e ) {
+ CCDebug.trace3( e.toString() );
+ }
+ }
+
+ private String createFileBasedBackend(String root, String overwrite, String filename) {
+ // if you want to overwrite an existing one then
+ // delete the file and folders and recreate the default entities file
+ if (overwrite == null || overwrite.equals("0")) {
+ // Delete the profiles directory;
+ try {
+ File profiles = new File(root + "/profiles");
+ if (profiles.exists()) {
+ recursiveDelete(profiles);
+ File[] subfiles = profiles.listFiles();
+ profiles.delete();
+ }
+ } catch (Exception e) {
+ CCDebug.trace3("Deleting directory failed!");
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail5"), e.toString());
+ }
+ // Delete the assignments directory;
+ try{
+ File assignments = new File(root + "/assignments");
+ if (assignments.exists()) {
+ recursiveDelete(assignments);
+ assignments.delete();
+ }
+ } catch (Exception e) {
+ CCDebug.trace3("Deleting directory failed!");
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail5"), e.toString());
+ }
+ // Delete the entities file;
+ try{
+ File entities = new File(root + "/" + filename);
+ if (entities.exists() && entities.isFile()) {
+ entities.delete();
+ }
+ } catch (Exception e) {
+ CCDebug.trace3("Deleting entities file failed!");
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail5"), e.toString());
+ }
+
+ // recreate the profiles and assignments dirs
+ File newProfiles = new File(root + "/profiles");
+ File newAssignments = new File(root + "/assignments");
+ try{
+ newProfiles.mkdir();
+ newAssignments.mkdir();
+ } catch (Exception e) {
+ CCDebug.trace3("Creating directory failed!");
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail8"), e.toString());
+ }
+ // recreate the default demo structure file
+ File entities = new File(root + "/" + filename);
+ try {
+ if (entities.createNewFile()) {
+ InputStream istream = null;
+ FileOutputStream ostream = new FileOutputStream(entities);
+ istream=getClass().getResource("sample/" + filename).openStream();
+ int c;
+ while ((c = istream.read()) != -1) {
+ String aChar = new Character((char)c).toString();
+ ostream.write(c);
+ }
+ istream.close() ;
+ ostream.close();
+ }
+ } catch(Exception e) {
+ CCDebug.trace3("Creating default entities file failed!");
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail8"), e.toString());
+ }
+ }
+
+ return null;
+ }
+
+ private String createHybridBackend() {
+ String root = (String)m_wm.getValue(m_wm.FILEPATH);
+ String overwrite = (String)m_wm.getWizardValue(Wizard13View.CHILD_UPDATE_OVERWRITE);
+ createFileBasedBackend(root, overwrite, ORGDOM_ENTITIES_FILE);
+ // if its a new install or you want to overwrite an existing one then
+ // delete the metaconfig files and recreate
+ if (overwrite == null || overwrite.equals("0")) {
+ // Delete the existing metaconfig files;
+ try{
+ File orgMapping = new File(root + "/OrganizationMapping.properties");
+ File userMapping = new File(root + "/UserProfileMapping.properties");
+ if (orgMapping.exists() && orgMapping.isFile()) {
+ orgMapping.delete();
+ }
+ if (userMapping.exists() && userMapping.isFile()) {
+ userMapping.delete();
+ }
+ } catch (Exception e) {
+ CCDebug.trace3("Deleting metaconfig file failed!");
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail5"), e.toString());
+ }
+ // Create the metaconfig files
+ try {
+ File orgMapping = new File(root + "/OrganizationMapping.properties");
+ File userMapping = new File(root + "/UserProfileMapping.properties");
+ FileWriter orgWriter = new FileWriter(orgMapping);
+ FileWriter userWriter = new FileWriter(userMapping);
+ orgWriter.write(this.getOrgMapping());
+ userWriter.write(this.getUserMapping());
+ orgWriter.close();
+ userWriter.close();
+ } catch(Exception e) {
+ CCDebug.trace3("Creating metaconfig file failed!");
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail9"), e.toString());
+ }
+ }
+
+
+ return null;
+ }
+
+ private void updateBackendsFile() {
+ File backendTest = new File(ManagerTableModel.CONFIG_FILE_LOCATION + "backend1.properties");
+ try {
+ File editWizFile = (File)m_wm.getValue(m_wm.WIZARD_CONFIG_FILE);
+ if (editWizFile != null) {
+ backendTest = editWizFile;
+ } else {
+ TreeSet backendNames = new TreeSet();
+ TreeSet backendNumbers = new TreeSet();
+ RequestContext requestContext = RequestManager.getRequestContext();
+
+ String filename = "backend";
+ String filetype = ".properties";
+ int i = 1;
+ while (backendTest.exists()) {
+ i++;
+ backendTest = new File(ManagerTableModel.CONFIG_FILE_LOCATION + filename + Integer.toString(i) + filetype);
+ }
+
+ backendTest.createNewFile();
+ }
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(getBackendProperties());
+
+ FileWriter writer = new FileWriter(backendTest);
+ writer.write(buffer.toString());
+ writer.close();
+ }
+
+ catch (Exception e) {
+ CCDebug.trace3( e.toString());
+ Object[] args = {backendTest.getAbsolutePath()};
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail6", args), e.toString());
+ }
+ }
+
+ private void createEntry(String baseDn, String objectClassList) throws LDAPException {
+ String [] dn = LDAPDN.explodeDN(baseDn, false) ;
+ int equalChar = dn [0].indexOf('=') ;
+ String [] values = new String [1] ;
+ Vector attributes = new Vector() ;
+
+ attributes.add("objectClass") ;
+ attributes.add(splitParameter(objectClassList)) ;
+ attributes.add(dn [0].substring(0, equalChar)) ;
+ values [0] = dn [0].substring(equalChar + 1) ;
+ attributes.add(values) ;
+
+ LDAPConnection conn = (LDAPConnection)m_wm.getValue(m_wm.CONNECTION);
+ try {
+ LDAPEntry tryEntry = conn.read(baseDn);
+ } catch (LDAPException e) {
+ createEntry(baseDn, attributes) ;
+ }
+
+ }
+
+ private void createEntry(String aDn, Vector aAttributes) throws LDAPException {
+ LDAPAttribute [] attributes = new LDAPAttribute [aAttributes.size() / 2] ;
+ Enumeration elements = aAttributes.elements() ;
+
+ for (int i = 0 ; i < attributes.length ; ++ i) {
+ attributes [i] = new LDAPAttribute(
+ (String) elements.nextElement(),
+ (String []) elements.nextElement()) ;
+ }
+ LDAPEntry entry = new LDAPEntry(aDn, new LDAPAttributeSet(attributes)) ;
+ boolean entryCreated = false ;
+
+ LDAPConnection conn = (LDAPConnection)m_wm.getValue(m_wm.CONNECTION);
+ conn.add(entry) ;
+ entryCreated = true ;
+
+ }
+
+
+ private void fillAttribute(String baseDn, String attr, String name, String metaConfig) throws LDAPException {
+
+ boolean attrExists = false;
+ LDAPConnection conn = (LDAPConnection)m_wm.getValue(m_wm.CONNECTION);
+ LDAPEntry tryEntry = conn.read(baseDn);
+ LDAPAttribute tryAttr = tryEntry.getAttribute(attr);
+ if (tryAttr != null) {
+ Enumeration valuesEnum = tryAttr.getStringValues();
+ while (valuesEnum.hasMoreElements()) {
+ String value = (String)valuesEnum.nextElement();
+ String attrName = value.split("=")[0];
+ if (attrName.equals(name)) {
+ attrExists = true;
+ metaConfig = value.substring(value.indexOf("=")+1);
+ metaConfig = "#current product version\nApocVersion=2.0\n\n" + metaConfig;
+ break;
+ }
+ }
+ }
+ Vector attributes = new Vector() ;
+ String [] values = new String [1] ;
+ attributes.add(attr) ;
+ values [0] = name + "=" + metaConfig ;
+ attributes.add(values) ;
+ setAttributes(baseDn, attributes, attrExists) ;
+
+ }
+
+ private void modifyEntry(String aDn, LDAPModification aModification) throws LDAPException {
+
+ LDAPConnection conn = (LDAPConnection)m_wm.getValue(m_wm.CONNECTION);
+ conn.modify(aDn, aModification) ;
+ }
+
+ private void addAttribute(String baseDn, String attr, String valueList) throws LDAPException {
+
+ boolean attrExists = false;
+ LDAPConnection conn = (LDAPConnection)m_wm.getValue(m_wm.CONNECTION);
+ LDAPEntry tryEntry = conn.read(baseDn);
+ LDAPAttribute tryAttr = tryEntry.getAttribute(attr);
+ if (tryAttr != null) {
+ Enumeration valuesEnum = tryAttr.getStringValues();
+ while (valuesEnum.hasMoreElements()) {
+ String value = (String)valuesEnum.nextElement();
+ if (value.equals(valueList)) {
+ attrExists = true;
+ break;
+ }
+ }
+ }
+
+ if (!attrExists) {
+ Vector attributes = new Vector() ;
+
+ attributes.add(attr) ;
+ attributes.add(splitParameter(valueList)) ;
+ setAttributes(baseDn, attributes, false) ;
+ }
+
+ }
+
+ private void setAttributes(String aDn, Vector aAttributes, boolean aReplace) throws LDAPException {
+ LDAPConnection conn = (LDAPConnection)m_wm.getValue(m_wm.CONNECTION);
+ int nbAttributes = aAttributes.size() / 2 ;
+ Enumeration elements = aAttributes.elements() ;
+
+ for (int i = 0 ; i < nbAttributes ; ++ i) {
+ String attribute = (String) elements.nextElement() ;
+ String [] values = (String []) elements.nextElement() ;
+
+ if (aReplace) {
+ modifyEntry(aDn,
+ new LDAPModification(LDAPModification.REPLACE,
+ new LDAPAttribute(attribute,
+ values))) ;
+ }
+ else {
+ for (int j = 0 ; j < values.length ; ++ j) {
+ modifyEntry(aDn,
+ new LDAPModification(LDAPModification.ADD,
+ new LDAPAttribute(attribute,
+ values [j]))) ;
+ }
+ }
+ }
+ }
+
+
+ private String getOrgMapping() {
+ String metaConfig = (String)m_wm.getValue(m_wm.METACONFIG);
+ return metaConfig;
+ }
+
+ private String getUserMapping() {
+ StringBuffer metaConfig = new StringBuffer();
+ InputStream istream = null;
+ try {
+ istream=getClass().getResource("metaconfig/UserProfileMapping").openStream();
+ int c;
+ while ((c = istream.read()) != -1) {
+ String aChar = new Character((char)c).toString();
+ metaConfig.append(aChar);
+ }
+ istream.close() ;
+ }catch(IOException ioe) {
+ CCDebug.trace3("Wizard10View: Unable to find metaconfiguration file." + ioe.getLocalizedMessage()) ;
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail3"), ioe.toString());
+ }
+ return metaConfig.toString();
+ }
+
+ private void migrateProfiles() {
+ PolicyManager policyMgr = (PolicyManager) m_wm.getValue(m_wm.POLICYMGR);
+ String entityName = "";
+ if (policyMgr != null) {
+ try {
+ Iterator it = policyMgr.getProfileProvider(LdapEntityType.STR_ALL).getAllProfiles();
+ while (it.hasNext()) {
+ Profile profile = (Profile)it.next();
+ String profileId = profile.getId();
+ entityName = profile.getProfileRepository().getEntity().getDisplayName(Toolbox2.getLocale());
+ if ((profileId.startsWith("ou=_defaultuserpolicygroup_"))
+ || (profileId.startsWith("ou=_defaulthostpolicygroup_"))) {
+ migrateProfile((LdapProfile)profile);
+ }
+ }
+ } catch (SPIException spie) {
+ CCDebug.trace3("Wizard10View: Unable to migrate profiles from 1.1 to 2.0 format" + spie.getLocalizedMessage()) ;
+ Object[] args = {entityName};
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail10", args), spie.toString());
+ }
+ }
+ }
+
+ public void migrateProfile(LdapProfile profile) throws SPIException {
+ PolicyManager policyManager = (PolicyManager) m_wm.getValue(m_wm.POLICYMGR);
+ // create new profile
+ LdapProfile newProfile = (LdapProfile)profile.getProfileRepository().createProfile(
+ profile.getDisplayName(), profile.getApplicability());
+ // add the profile policies to new profile
+ Iterator policies = profile.getPolicies();
+ while(policies.hasNext()) {
+ Policy policy = (Policy)policies.next();
+ newProfile.storePolicy(policy);
+ }
+ // assign the containing entity to the profile
+ String entityType = Toolbox2.getEntityTypeString(profile.getProfileRepository().getEntity());
+ AssignmentProvider assignmentProvider =
+ policyManager.getAssignmentProvider(entityType);
+ assignmentProvider.assignProfile(profile.getProfileRepository().getEntity(), newProfile);
+
+ // unassign the local profile from this entity or else the destroyProfile method will fail
+ Iterator it = profile.getAssignedEntities();
+ while (it.hasNext()) {
+ Entity entity = (Entity)it.next();
+ entity.unassignProfile(profile);
+ }
+
+ // low-level destruction so that we don't check
+ // if Entities are assigned which would return true all the time
+ profile.getProfileRepository().destroyProfile(profile);
+ // copy the attributes of new profile into profile
+ // to midify the object referenced by the argument profile
+ profile.copy(newProfile);
+ }
+
+ private String getBackendProperties() {
+ StringBuffer buffer = new StringBuffer();
+ String repositoryName = (String)m_wm.getValue(Wizard2View.CHILD_NAME_FIELD);
+ String utf8repositoryName = repositoryName;
+ String buf = "";
+ for(int i=0;i<repositoryName.length();i++) {
+ buf = buf + "\\u" + charToHex(repositoryName.charAt(i));
+ }
+ //NOTE: I could probably use Properties object here and avoid the explicit UTF8 conversion
+ utf8repositoryName = buf;
+ buffer.append("# RepositoryName=" + repositoryName + "\n");
+ buffer.append(BACKEND)
+ .append("=")
+ .append(utf8repositoryName)
+ .append("\n");
+
+ String[] sourceNames = new String[2];
+ sourceNames[0] = EnvironmentConstants.HOST_SOURCE;
+ sourceNames[1] = EnvironmentConstants.USER_SOURCE;
+
+ if (!(m_backendType.equals("1"))) {
+ String[] sources = {EnvironmentConstants.DOMAIN_PREFIX,
+ EnvironmentConstants.ORGANIZATION_PREFIX};
+ String host = (String)m_wm.getValue(Wizard3View.CHILD_HOST_FIELD) ;
+ String port = (String)m_wm.getValue(Wizard3View.CHILD_PORT_FIELD);
+ String baseDn = (String)m_wm.getValue(m_wm.BASEDN);
+ String datastore = "ldap";
+ String useAnon = (String)m_wm.getValue(Wizard4View.CHILD_ANON_ACCESS);
+ String useSSL = (String)m_wm.getValue(Wizard3View.CHILD_USE_SSL);
+ if (useSSL.equals("true")) {
+ datastore = "ldaps";
+ }
+ StringBuffer ldapUrlBuff = new StringBuffer();
+ ldapUrlBuff.append(datastore)
+ .append("://")
+ .append(host)
+ .append(":")
+ .append(port)
+ .append("/")
+ .append(baseDn);
+ String ldapUrl = ldapUrlBuff.toString();
+ buffer.append(EnvironmentConstants.URL_KEY)
+ .append("=")
+ .append(ldapUrl)
+ .append("\n");
+ for (int i=0; i<sources.length; i++) {
+ buffer.append(sources[i])
+ .append(EnvironmentConstants.URL_KEY)
+ .append("=")
+ .append(ldapUrl)
+ .append("\n");
+ if (useAnon.equals("false")) {
+ String authDn = (String)m_wm.getValue(Wizard4View.CHILD_NONANON_USERDN_FIELD);
+ String password = (String)m_wm.getValue(Wizard4View.CHILD_NONANON_PASSWORD_FIELD);
+ buffer.append(sources[i])
+ .append(EnvironmentConstants.LDAP_AUTH_USER_KEY)
+ .append("=")
+ .append(authDn)
+ .append("\n");
+ buffer.append(sources[i])
+ .append(EnvironmentConstants.LDAP_AUTH_PASSWORD_KEY)
+ .append("=")
+ .append(password)
+ .append("\n");
+ buffer.append(sources[i])
+ .append(EnvironmentConstants.LDAP_AUTH_PWD_ENCODING_KEY)
+ .append("=")
+ .append(EnvironmentConstants.SCRAMBLE_ENCODING)
+ .append("\n");
+ }
+ if (m_backendType.equals("2")) {
+ String filepath = (String)m_wm.getValue(m_wm.FILEPATH);
+ datastore = "file";
+
+ buffer.append(sources[i])
+ .append(EnvironmentConstants.PROFILE_PREFIX)
+ .append(EnvironmentConstants.URL_KEY)
+ .append("=")
+ .append(datastore)
+ .append("://")
+ .append(filepath)
+ .append("/profiles")
+ .append("\n");
+ buffer.append(sources[i])
+ .append(EnvironmentConstants.ASSIGNMENT_PREFIX)
+ .append(EnvironmentConstants.URL_KEY)
+ .append("=")
+ .append(datastore)
+ .append("://")
+ .append(filepath)
+ .append("/assignments")
+ .append("\n");
+
+ } else {
+ buffer.append(sources[i])
+ .append(EnvironmentConstants.PROFILE_PREFIX)
+ .append(EnvironmentConstants.URL_KEY)
+ .append("=")
+ .append(ldapUrl)
+ .append("\n");
+ buffer.append(sources[i])
+ .append(EnvironmentConstants.ASSIGNMENT_PREFIX)
+ .append(EnvironmentConstants.URL_KEY)
+ .append("=")
+ .append(ldapUrl)
+ .append("\n");
+ }
+ }
+ if (m_backendType.equals("2")) {
+ String filepath = (String)m_wm.getValue(m_wm.FILEPATH);
+ datastore = "file";
+ buffer.append(EnvironmentConstants.LDAP_META_CONF_PREFIX)
+ .append(EnvironmentConstants.URL_KEY)
+ .append("=")
+ .append(datastore)
+ .append("://")
+ .append(filepath)
+ .append("\n");
+ }
+ } else {
+ String[] sources = {EnvironmentConstants.DOMAIN_PREFIX,
+ EnvironmentConstants.ORGANIZATION_PREFIX};
+ String filepath = (String)m_wm.getValue(m_wm.FILEPATH);
+ String datastore = "file";
+ buffer.append(EnvironmentConstants.URL_KEY)
+ .append("=")
+ .append(datastore)
+ .append("://")
+ .append(filepath)
+ .append("\n");
+ for (int i=0; i<sources.length; i++) {
+ buffer.append(sources[i])
+ .append(EnvironmentConstants.URL_KEY)
+ .append("=")
+ .append(datastore)
+ .append("://")
+ .append(filepath)
+ .append("\n");
+ buffer.append(sources[i])
+ .append(EnvironmentConstants.PROFILE_PREFIX)
+ .append(EnvironmentConstants.URL_KEY)
+ .append("=")
+ .append(datastore)
+ .append("://")
+ .append(filepath)
+ .append("/profiles")
+ .append("\n");
+ buffer.append(sources[i])
+ .append(EnvironmentConstants.ASSIGNMENT_PREFIX)
+ .append(EnvironmentConstants.URL_KEY)
+ .append("=")
+ .append(datastore)
+ .append("://")
+ .append(filepath)
+ .append("/assignments")
+ .append("\n");
+ }
+
+ }
+ buffer.append("Sources=");
+ for (int i = 0; i < sourceNames.length; i++) {
+ if (i == sourceNames.length -1) {
+ buffer.append(sourceNames[i]);
+ } else {
+ buffer.append(sourceNames[i])
+ .append(",");
+ }
+ }
+ buffer.append("\n");
+
+ return buffer.toString();
+ }
+
+ private void setFailureMessage(String error, String cause) {
+ if (((String)m_wm.getValue(m_wm.SUCCESS)).equals("true")) {
+ m_wm.setValue(m_wm.SUCCESS, "false");
+ m_wm.setValue(m_wm.FAIL_MESSAGE, error + "<br>- " + cause);
+ }
+ }
+
+ private String getLDAPError (LDAPException e) {
+ String err = "";
+ switch( e.getLDAPResultCode() ) {
+
+ case LDAPException.NO_SUCH_ATTRIBUTE:
+ err = m_I18n.getMessage("APOC.wiz.ldap.err.nosuchattr");
+ break;
+ case LDAPException.ATTRIBUTE_OR_VALUE_EXISTS:
+ err = m_I18n.getMessage("APOC.wiz.ldap.err.valueexists");
+ break;
+ case LDAPException.INVALID_ATTRIBUTE_SYNTAX:
+ err = m_I18n.getMessage("APOC.wiz.ldap.err.attrsyntax");
+ break;
+ case LDAPException.NO_SUCH_OBJECT:
+ err = m_I18n.getMessage("APOC.wiz.ldap.err.nosuchobj");
+ break;
+ case LDAPException.INVALID_DN_SYNTAX:
+ err = m_I18n.getMessage("APOC.wiz.ldap.err.invaliddn");
+ break;
+ case LDAPException.INVALID_CREDENTIALS:
+ err = m_I18n.getMessage("APOC.wiz.ldap.err.invalidcred");
+ break;
+ case LDAPException.INSUFFICIENT_ACCESS_RIGHTS:
+ err = m_I18n.getMessage("APOC.wiz.ldap.err.noaccessrights");
+ break;
+ case LDAPException.ENTRY_ALREADY_EXISTS:
+ err = m_I18n.getMessage("APOC.wiz.ldap.err.entryexists");
+ break;
+ case LDAPException.SERVER_DOWN:
+ err = m_I18n.getMessage("APOC.wiz.ldap.err.serverdown");
+ break;
+ case LDAPException.LDAP_TIMEOUT:
+ err = m_I18n.getMessage("APOC.wiz.ldap.err.timeout");
+ break;
+ case LDAPException.CONNECT_ERROR:
+ err = m_I18n.getMessage("APOC.wiz.ldap.err.connecterror");
+ break;
+ default:
+ err = e.toString();
+ break;
+
+ }
+ return err;
+ }
+
+ private static String [] splitParameter(String aList) {
+ StringTokenizer tokens = new StringTokenizer(aList, ",") ;
+ String [] retCode = new String [tokens.countTokens()] ;
+ int i = 0 ;
+
+ while (tokens.hasMoreTokens()) { retCode [i ++] = tokens.nextToken() ; }
+ return retCode ;
+ }
+
+ private void recursiveDelete(File file) {
+ try {
+ File[] subfiles = file.listFiles();
+ if (subfiles != null) {
+ for (int i = 0; i < subfiles.length; i++) {
+ if (subfiles[i].isDirectory()) {
+ recursiveDelete(subfiles[i]);
+ }
+ subfiles[i].delete();
+ }
+ }
+ } catch (Exception e) {
+ CCDebug.trace3("Deleting directory failed!");
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.10.fail5"), e.toString());
+ }
+ }
+
+ public static String checkSchema(LDAPConnection conn) {
+ LDAPSchema dirSchema = new LDAPSchema();
+ String[] attributeTypeNames = ATTRIBUTE_TYPE_NAMES;
+ String[] objectClassNames = OBJECT_CLASS_NAMES;
+ try {
+ dirSchema.fetchSchema(conn);
+ for (int i = 0; i < attributeTypeNames.length; i++) {
+ LDAPAttributeSchema attrType = dirSchema.getAttribute(attributeTypeNames[i]);
+ if (attrType == null) {
+ return "APOC.wiz.10.alert";
+ }
+ }
+ for (int i = 0; i < objectClassNames.length; i++) {
+ LDAPObjectClassSchema objClass = dirSchema.getObjectClass(objectClassNames[i]);
+ if (objClass == null) {
+ return "APOC.wiz.10.alert";
+ }
+ }
+ } catch ( Exception e ) {
+ CCDebug.trace3( e.toString() );
+ }
+ return null;
+ }
+
+ private String byteToHex(byte b) {
+ // Returns hex String representation of byte b
+ char hexDigit[] = {
+ '0', '1', '2', '3', '4', '5', '6', '7',
+ '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
+ };
+ char[] array = { hexDigit[(b >> 4) & 0x0f], hexDigit[b & 0x0f] };
+ return new String(array);
+ }
+
+ private String charToHex(char c) {
+ // Returns hex String representation of char c
+ byte hi = (byte) (c >>> 8);
+ byte lo = (byte) (c & 0xff);
+ return byteToHex(hi) + byteToHex(lo);
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/contexts/Wizard11View.java b/src/com/sun/apoc/manager/contexts/Wizard11View.java
new file mode 100644
index 0000000..368a950
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard11View.java
@@ -0,0 +1,219 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.model.DefaultModel;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.JspDisplayEvent;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.DisplayField;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.html.CCCheckBox;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.alert.CCAlert;
+import com.sun.web.ui.view.alert.CCAlertFullPage;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import javax.servlet.ServletException;
+
+import com.sun.web.ui.common.CCDebug;
+
+import java.io.IOException;
+
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard11View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard11View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_SUMMARY_TITLE =
+ "SummaryTitle";
+ public static final String CHILD_SUMMARY_TEXT =
+ "SummaryText";
+ public static final String CHILD_ALERT =
+ "Alert";
+ private CCI18N m_I18n;
+ private boolean isEditWizard;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard11View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ if (wm.getValue(wm.WIZARD_CONFIG_FILE) != null) {
+ isEditWizard = true;
+ }
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public Wizard11View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ if (wm.getValue(wm.WIZARD_CONFIG_FILE) != null) {
+ isEditWizard = true;
+ }
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_SUMMARY_TITLE, CCLabel.class);
+ registerChild(CHILD_SUMMARY_TEXT, CCLabel.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_SUMMARY_TITLE)) {
+ String label = "APOC.wiz.11.title";
+ if (isEditWizard) {
+ label = "APOC.wiz.11.edit.title";
+ }
+ child = (View)new CCLabel(this,
+ name, m_I18n.getMessage(label));
+ } else if (name.equals(CHILD_SUMMARY_TEXT)) {
+ String label = "APOC.wiz.11.text";
+ if (isEditWizard) {
+ label = "APOC.wiz.11.edit.text";
+ }
+ child = (View)new CCLabel(this,
+ name, m_I18n.getMessage(label));
+ } else if (name.equals(CHILD_ALERT)) {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ child = new CCAlertInline(this, name, null);
+ ((CCAlertInline)child).setValue(CCAlertFullPage.TYPE_ERROR);
+ ((CCAlertInline)child).setDetail((String)wm.getValue(wm.FAIL_MESSAGE));
+ String label = "APOC.wiz.11.alert.title";
+ if (isEditWizard) {
+ label = "APOC.wiz.11.alert.edit.title";
+ }
+ ((CCAlertInline)child).setSummary(m_I18n.getMessage(label));
+ return child;
+ } else {
+ throw new IllegalArgumentException(
+ "WizardPage11View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ String success = (String)wm.getValue(wm.SUCCESS);
+
+ boolean displayAlert = true;
+ if (success.equals("true")) {
+ displayAlert = false;
+ }
+
+ return displayAlert;
+ }
+
+ public boolean beginDisplaySummaryTitleDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ String success = (String)wm.getValue(wm.SUCCESS);
+
+ boolean displayTitle = false;
+ if (success.equals("true")) {
+ displayTitle = true;
+ }
+ return displayTitle;
+ }
+
+ public boolean beginDisplaySummaryTextDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ String success = (String)wm.getValue(wm.SUCCESS);
+
+ boolean displayText = false;
+ if (success.equals("true")) {
+ displayText = true;
+ }
+ return displayText;
+ }
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard11.jsp";
+ }
+
+
+ public String getErrorMsg() {
+ return null;
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/contexts/Wizard12View.java b/src/com/sun/apoc/manager/contexts/Wizard12View.java
new file mode 100644
index 0000000..941d645
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard12View.java
@@ -0,0 +1,244 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.filechooser.*;
+
+import com.sun.web.ui.model.CCFileChooserModel;
+import com.sun.web.ui.model.CCFileChooserModelInterface;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import com.sun.web.ui.common.CCDebug;
+import javax.servlet.ServletException;
+
+import java.io.File;
+import java.io.IOException;
+
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.environment.EnvironmentMgr;
+import com.sun.web.ui.view.html.CCHiddenField;
+import java.util.Properties;
+
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard12View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard12View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_FOLDERCHOOSER =
+ "FolderChooser";
+ public static final String CHILD_ALERT =
+ "Alert";
+ public static final String CHILD_IS_FIRST_VIEW =
+ "isFirstView12";
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard12View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public Wizard12View(View parent, Model model, String name) {
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_FOLDERCHOOSER, CCFileChooser.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_IS_FIRST_VIEW, CCHiddenField.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_FOLDERCHOOSER)) {
+ // Create a folderchooser child.
+ child = new CCFileChooser(this, createFolderModel(), name);
+ } else if (name.equals(CHILD_ALERT)) {
+ child = new CCAlertInline(this, name, null);
+ return child;
+ } else if (name.equals(CHILD_IS_FIRST_VIEW)) {
+ child = (View)new CCHiddenField(this, name, "true");
+ } else {
+ throw new IllegalArgumentException(
+ "WizardPage12View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+ // Create a CCFileChooserModelInterface model.
+ // Return the cached model if it already exists
+ private CCFileChooserModelInterface createFolderModel() {
+ CCFileChooserModel model = null;
+ // instantiate the model
+ model = new CCFileChooserModel();
+ model.setFileListBoxHeight(7);
+ model.setAlertChildView(CHILD_ALERT);
+ return model;
+ }
+
+ /*
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard12.jsp";
+ }
+
+ public void beginDisplay(DisplayEvent event)
+ throws ModelControlException {
+ CCFileChooser child = (CCFileChooser) getChild(CHILD_FOLDERCHOOSER);
+ try {
+ child.restoreStateData();
+ } catch (Exception mce) {
+ CCDebug.trace3(mce.getMessage());
+ }
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ String sessionFilePath = (String)wm.getValue(wm.FILEPATH);
+ if (sessionFilePath != null) {
+ String sessionFilename = sessionFilePath.substring(sessionFilePath.lastIndexOf("/") + 1);
+ if (sessionFilename != null) {
+ CCTextField filename = (CCTextField)(child.getChild(child.FILE_NAME_TEXT));
+ filename.setValue(sessionFilename);
+ }
+ }
+ Properties properties = (Properties)wm.getValue(wm.PROPERTIES);
+ CCHiddenField isFirstView = (CCHiddenField)getChild(CHILD_IS_FIRST_VIEW);
+ if (isFirstView.getValue().equals("true") && properties != null) {
+ String oldAssignProviderUrl = properties.getProperty(EnvironmentConstants.ORGANIZATION_PREFIX
+ + EnvironmentConstants.ASSIGNMENT_PREFIX
+ + EnvironmentConstants.URL_KEY);
+
+ if (oldAssignProviderUrl != null && oldAssignProviderUrl.startsWith("file")) {
+ String oldProviderUrl = oldAssignProviderUrl.substring(0, oldAssignProviderUrl.lastIndexOf("/"));
+ String filepath = EnvironmentMgr.getPathFromURL(oldProviderUrl);
+ File file = new File(filepath);
+ if (file.exists()) {
+ CCTextField filename = (CCTextField)(child.getChild(child.FILE_NAME_TEXT));
+ filename.setValue(filepath.substring(filepath.lastIndexOf("/")+1));
+ filepath = filepath.substring(0, filepath.lastIndexOf("/"));
+ if (filepath.length() == 0) {
+ filepath = "/";
+ }
+ child.getModel().setHomeDirectory(filepath);
+ child.getModel().setCurrentDirectory(filepath);
+ }
+ }
+ }
+ isFirstView.setValue("false");
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ return false;
+ }
+
+ public String getErrorMsg() {
+ CCFileChooser child = (CCFileChooser) getChild(CHILD_FOLDERCHOOSER);
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+
+ try {
+ child.restoreStateData();
+ } catch (Exception mce) {
+ CCDebug.trace3(mce.getMessage());
+ }
+ String[] file = child.getSelectedResources();
+
+ // Hacks for Lockhart folderchooser bugs CR6229872 & CR5092619
+ // Remove when these bugs are fixed and integrated
+ CCTextField filename = (CCTextField)(child.getChild(child.FILE_NAME_TEXT));
+ CCTextField rootDir = (CCTextField)(child.getChild(child.LOOK_IN_TEXTFIELD));
+ String filepath = (String)rootDir.getValue() + "/" + (String)filename.getValue();
+ if (filepath.substring(0, 2).equals("//")) {
+ filepath = filepath.substring(1);
+ }
+
+ File dir = new File(filepath);
+ Object[] args = {filepath};
+ if (!dir.exists()) {
+ return m_I18n.getMessage("APOC.wiz.12.alert1", args);
+ }
+ if (!dir.isDirectory()) {
+ return m_I18n.getMessage("APOC.wiz.12.alert2", args);
+ }
+ if (!dir.canWrite()) {
+ return m_I18n.getMessage("APOC.wiz.12.alert3", args);
+ }
+
+ wm.setValue(wm.FILEPATH, filepath);
+ return null;
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/contexts/Wizard13View.java b/src/com/sun/apoc/manager/contexts/Wizard13View.java
new file mode 100644
index 0000000..98b4a9c
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard13View.java
@@ -0,0 +1,161 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCRadioButton;
+import com.iplanet.jato.view.html.OptionList;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import com.sun.web.ui.common.CCDebug;
+
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Constants;
+
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard13View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard13View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_UPDATE_LABEL =
+ "OverwriteLabel";
+ public static final String CHILD_UPDATE_OVERWRITE =
+ "Overwrite";
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard13View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public Wizard13View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ // Child manipulation methods
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_UPDATE_LABEL, CCLabel.class);
+ registerChild(CHILD_UPDATE_OVERWRITE, CCRadioButton.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_UPDATE_LABEL)) {
+ child = (View)new CCLabel(this,
+ name, m_I18n.getMessage("APOC.wiz.13.existing"));
+ } else if (name.equals(CHILD_UPDATE_OVERWRITE)) {
+ OptionList options = new OptionList();
+ options.add(0, m_I18n.getMessage("APOC.wiz.13.update"), "1");
+ options.add(1, m_I18n.getMessage("APOC.wiz.13.overwrite"), "0");
+ child = (View)new CCRadioButton(this, name, null);
+ ((CCRadioButton)child).setOptions(options);
+ } else {
+ throw new IllegalArgumentException(
+ "Wizard13View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+ public void beginDisplay(DisplayEvent event)
+ throws ModelControlException {
+ CCRadioButton child = (CCRadioButton)getChild(CHILD_UPDATE_OVERWRITE);
+ if (child.getValue() == null) {
+ child.setValue("1");
+ }
+ }
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard13.jsp";
+ }
+
+
+
+
+ public String getErrorMsg() {
+ CCRadioButton child = (CCRadioButton) getChild(CHILD_UPDATE_OVERWRITE);
+ try {
+ child.resetStateData();
+ } catch (Exception mce) {
+ CCDebug.trace3(mce.getMessage());
+ }
+ return null;
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/contexts/Wizard14View.java b/src/com/sun/apoc/manager/contexts/Wizard14View.java
new file mode 100644
index 0000000..5318f21
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard14View.java
@@ -0,0 +1,142 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCRadioButton;
+import com.iplanet.jato.view.html.OptionList;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard14View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard14View";
+
+ public static final String CHILD_UPDATE_LABEL =
+ "MigrateOverwriteLabel";
+ public static final String CHILD_MIGRATE =
+ "Migrate";
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard14View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public Wizard14View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ // Child manipulation methods
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_UPDATE_LABEL, CCLabel.class);
+ registerChild(CHILD_MIGRATE, CCRadioButton.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_UPDATE_LABEL)) {
+ child = (View)new CCLabel(this,
+ name, m_I18n.getMessage("APOC.wiz.14.existing"));
+ } else if (name.equals(CHILD_MIGRATE)) {
+ OptionList options = new OptionList();
+ options.add(0, m_I18n.getMessage("APOC.wiz.6.yes"), "0");
+ options.add(1, m_I18n.getMessage("APOC.wiz.6.no"), "1");
+ child = (View)new CCRadioButton(this, name, null);
+ ((CCRadioButton)child).setOptions(options);
+ ((CCRadioButton)child).setValue("0");
+ } else {
+ throw new IllegalArgumentException(
+ "Wizard14View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard14.jsp";
+ }
+
+
+ public String getErrorMsg() {
+ return null;
+ }
+
+}
+
+
diff --git a/src/com/sun/apoc/manager/contexts/Wizard15View.java b/src/com/sun/apoc/manager/contexts/Wizard15View.java
new file mode 100644
index 0000000..eb91df6
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard15View.java
@@ -0,0 +1,207 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.html.CCPassword;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import netscape.ldap.LDAPConnection;
+import netscape.ldap.LDAPException;
+
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import java.util.Properties;
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard15View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil{
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard15View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_USERDN_LABEL =
+ "UserDNLabel";
+ public static final String CHILD_PASSWORD_LABEL =
+ "PasswordLabel";
+ public static final String CHILD_USERDN_FIELD =
+ "UserDN";
+ public static final String CHILD_PASSWORD_FIELD =
+ "Password";
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard15View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public Wizard15View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_USERDN_LABEL, CCLabel.class);
+ registerChild(CHILD_PASSWORD_LABEL, CCLabel.class);
+ registerChild(CHILD_USERDN_FIELD, CCTextField.class);
+ registerChild(CHILD_PASSWORD_FIELD, CCPassword.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_USERDN_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.4.admin.dn"));
+ } else if (name.equals(CHILD_PASSWORD_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.4.admin.pw"));
+ } else if (name.equals(CHILD_USERDN_FIELD)) {
+ child = (View)new CCTextField(this, name, null);
+ } else if (name.equals(CHILD_PASSWORD_FIELD)) {
+ child = (View)new CCPassword(this, name, null);
+ } else {
+ throw new IllegalArgumentException(
+ "WizardPage15View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard15.jsp";
+ }
+
+ public String getErrorMsg() {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ String emsg = null;
+ String hostname = (String)wm.getWizardValue(Wizard3View.CHILD_HOST_FIELD);
+ String portString = (String)wm.getWizardValue(Wizard3View.CHILD_PORT_FIELD);
+
+ String userDn = (String)wm.getWizardValue(CHILD_USERDN_FIELD);
+ String password = (String)wm.getWizardValue(CHILD_PASSWORD_FIELD);
+ LDAPConnection conn = (LDAPConnection)wm.getValue(wm.CONNECTION);
+
+ try {
+ conn.bind(3, userDn, password);
+ } catch (LDAPException e) {
+ Object[] args = {userDn, hostname + ":" + portString};
+ emsg = m_I18n.getMessage("APOC.wiz.4.alert1", args);
+ return emsg;
+ // Eat exception.
+ }
+
+ createPolicyManager();
+
+ return emsg;
+ }
+
+ private String createPolicyManager() {
+ PolicyManager policyManager = null;
+ StringBuffer ldapBuff = new StringBuffer();
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ try {
+ Properties selectedBackendProperties = new Properties();
+ String host = (String)wm.getValue(Wizard3View.CHILD_HOST_FIELD) ;
+ String port = (String)wm.getValue(Wizard3View.CHILD_PORT_FIELD);
+ String baseDn = (String)wm.getValue(wm.BASEDN);
+ String datastore = "ldap";
+ String useAnon = (String)wm.getValue(Wizard4View.CHILD_ANON_ACCESS);
+ String useSSL = (String)wm.getValue(Wizard3View.CHILD_USE_SSL);
+ if (useSSL.equals("true")) {
+ datastore = "ldaps";
+ }
+ ldapBuff.append(datastore)
+ .append("://")
+ .append(host)
+ .append(":")
+ .append(port)
+ .append("/")
+ .append(baseDn);
+
+ selectedBackendProperties.put(EnvironmentConstants.URL_KEY, ldapBuff.toString());
+
+ String userAuthDn = (String)wm.getValue(Wizard15View.CHILD_USERDN_FIELD);
+ String userPassword = (String)wm.getValue(Wizard15View.CHILD_PASSWORD_FIELD);
+ selectedBackendProperties.setProperty(EnvironmentConstants.USER_KEY, userAuthDn);
+ selectedBackendProperties.setProperty(EnvironmentConstants.CREDENTIALS_KEY, userPassword);
+ selectedBackendProperties.setProperty(EnvironmentConstants.CREDENTIALS_ENCODING_KEY, EnvironmentConstants.SCRAMBLE_ENCODING);
+
+ policyManager = new PolicyManager(selectedBackendProperties);
+ wm.setValue(wm.POLICYMGR, policyManager);
+
+ } catch (SPIException e) {
+ Object[] args = {(String)wm.getValue(Wizard15View.CHILD_USERDN_FIELD), ldapBuff.toString()};
+ String errorMsg = e.getLocalizedMessage();
+ return errorMsg;
+ }
+ return null;
+ }
+
+}
+
+
diff --git a/src/com/sun/apoc/manager/contexts/Wizard1View.java b/src/com/sun/apoc/manager/contexts/Wizard1View.java
new file mode 100644
index 0000000..dbaaa70
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard1View.java
@@ -0,0 +1,139 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.model.DefaultModel;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.JspDisplayEvent;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.DisplayField;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.html.CCCheckBox;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import com.sun.web.ui.common.CCDebug;
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard1View extends RequestHandlingViewBase
+ implements CCWizardPage, WizardImplDataUtil{
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard1View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_NAME_LABEL =
+ "NameLabel";
+ public static final String CHILD_NAME_FIELD =
+ "NameField";
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard1View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ }
+
+ public Wizard1View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ registerChildren();
+ }
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_NAME_LABEL, CCLabel.class);
+ registerChild(CHILD_NAME_FIELD, CCTextField.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_NAME_LABEL)) {
+ child = (View)new CCLabel(this,
+ name, "Repository Name: ");
+ } else if (name.equals(CHILD_NAME_FIELD)) {
+ child = (View)new CCTextField(this, name, null);
+ } else {
+ throw new IllegalArgumentException(
+ "Wizard1View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard1.jsp";
+ }
+
+ public String getErrorMsg() {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ String value = (String)wm.getWizardValue(CHILD_NAME_FIELD);
+ String emsg = null;
+ if (value == null || value.length() == 0) {
+ emsg = "Please enter a name for the new configuration repository.";
+ }
+ return emsg;
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/contexts/Wizard2View.java b/src/com/sun/apoc/manager/contexts/Wizard2View.java
new file mode 100644
index 0000000..fc715d9
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard2View.java
@@ -0,0 +1,266 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCDropDownMenu;
+import com.iplanet.jato.view.html.OptionList;
+
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.model.CCWizardWindowModel;
+import com.sun.web.ui.model.CCWizardWindowModelInterface;
+import com.sun.web.ui.view.html.CCTextField;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.util.Properties;/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard2View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard2View";
+
+ // Child view names (i.e. display fields).
+ public static final String CHILD_NAME_LABEL =
+ "NameLabel";
+ public static final String CHILD_NAME_FIELD =
+ "NameField";
+ public static final String CHILD_BACKEND_TYPE_LABEL =
+ "BackendTypeLabel";
+ public static final String CHILD_BACKEND_TYPE =
+ "BackendType";
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard2View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ String selectedContext = (String)Toolbox2.getParameter("SelectedContext");
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ if (wm.getValue(wm.WIZARD_TITLE) == null) {
+ if (selectedContext != null && selectedContext.length() != 0) {
+ wm.setValue(wm.WIZARD_TITLE, m_I18n.getMessage("APOC.wiz.edit.title"));
+ } else {
+ wm.setValue(wm.WIZARD_TITLE, m_I18n.getMessage("APOC.wiz.title"));
+ }
+ }
+ }
+
+ public Wizard2View(View parent, Model model, String name) {
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ String selectedContext = (String)Toolbox2.getParameter("SelectedContext");
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ if (wm.getValue(wm.WIZARD_TITLE) == null) {
+ if (selectedContext != null && selectedContext.length() != 0) {
+ wm.setValue(wm.WIZARD_TITLE, m_I18n.getMessage("APOC.wiz.edit.title"));
+ } else {
+ wm.setValue(wm.WIZARD_TITLE, m_I18n.getMessage("APOC.wiz.title"));
+ }
+ }
+ registerChildren();
+ }
+
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_NAME_LABEL, CCLabel.class);
+ registerChild(CHILD_NAME_FIELD, CCTextField.class);
+ registerChild(CHILD_BACKEND_TYPE_LABEL, CCLabel.class);
+ registerChild(CHILD_BACKEND_TYPE, CCDropDownMenu.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_NAME_LABEL)) {
+ child = (View)new CCLabel(this,
+ name, m_I18n.getMessage("APOC.wiz.2.name"));
+ } else if (name.equals(CHILD_NAME_FIELD)) {
+ child = (View)new CCTextField(this, name, null);
+ } else if (name.equals(CHILD_BACKEND_TYPE_LABEL)) {
+ child = (View)new CCLabel(this,
+ name, m_I18n.getMessage("APOC.wiz.2.type"));
+ } else if (name.equals(CHILD_BACKEND_TYPE)) {
+ OptionList options = new OptionList();
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ options.add(0, m_I18n.getMessage("APOC.wiz.2.ldap"), "0");
+ options.add(1, m_I18n.getMessage("APOC.wiz.2.file"), "1");
+ options.add(2, m_I18n.getMessage("APOC.wiz.2.hybrid"), "2");
+ child = (View)new CCDropDownMenu(this, name, null);
+ ((CCDropDownMenu)child).setOptions(options);
+ } else {
+ throw new IllegalArgumentException(
+ "WizardPage2View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard2.jsp";
+ }
+
+ public void beginDisplay(DisplayEvent event)
+ throws ModelControlException {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ String selectedContext = (String)Toolbox2.getParameter("SelectedContext");
+ CCTextField nameField = (CCTextField)getChild(CHILD_NAME_FIELD);
+ String nameValue = (String) nameField.getValue();
+ if (nameValue == null) {
+ if (selectedContext != null) {
+ try {
+ File dir = new File(ManagerTableModel.CONFIG_FILE_LOCATION);
+ if (dir.exists()) {
+ FilenameFilter filter = new FilenameFilter() {
+ public boolean accept(File dir, String name) {
+ return name.endsWith(".properties");
+ }
+ };
+ File[] files = dir.listFiles(filter);
+ int i = 0;
+ while (i < files.length) {
+ File properties = files[i];
+ if (properties.canRead()) {
+ FileInputStream input = new FileInputStream(properties) ;
+ Properties backendProperties = new Properties();
+ backendProperties.load(input);
+ input.close();
+ if (backendProperties.getProperty("Backend") != null) {
+ String contextName = backendProperties.getProperty("Backend");
+ if (contextName.equals(selectedContext)) {
+ populateWizardModel(backendProperties);
+ wm.setValue(wm.WIZARD_CONFIG_FILE, properties);
+ break;
+ }
+ }
+ }
+ i++;
+ }
+ }
+ } catch (IOException ioe) {
+ CCDebug.trace3(ioe.toString());
+ }
+ }
+ }
+
+
+ Properties properties = (Properties)wm.getValue(wm.PROPERTIES);
+ CCDropDownMenu menu = (CCDropDownMenu)getChild(CHILD_BACKEND_TYPE);
+ String menuValue = (String)menu.getValue();
+ if (menuValue == null) {
+ if (properties != null) {
+ String entityUrl = properties.getProperty(EnvironmentConstants.ORGANIZATION_PREFIX
+ + EnvironmentConstants.URL_KEY);
+ String profileUrl = properties.getProperty(EnvironmentConstants.ORGANIZATION_PREFIX
+ + EnvironmentConstants.PROFILE_PREFIX
+ + EnvironmentConstants.URL_KEY);
+ if (entityUrl != null && profileUrl != null) {
+ if (entityUrl.startsWith("ldap")
+ && profileUrl.startsWith("ldap")) {
+ menu.setValue("0");
+ } else if (entityUrl.startsWith("file")
+ && profileUrl.startsWith("file")) {
+ menu.setValue("1");
+ } else if (entityUrl.startsWith("ldap")
+ && profileUrl.startsWith("file")) {
+ menu.setValue("2");
+ }
+ }
+ }
+ }
+
+
+ }
+
+ public String getErrorMsg() {
+ String emsg = null;
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ String value = (String)wm.getWizardValue(CHILD_NAME_FIELD);
+ if (value == null || value.length() == 0) {
+ emsg = m_I18n.getMessage("APOC.wiz.2.alert");
+ }
+ return emsg;
+ }
+
+ private void populateWizardModel(Properties properties) {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ if (!(properties.isEmpty())) {
+ wm.setValue(wm.PROPERTIES, properties);
+ String name = properties.getProperty("Backend");
+ CCTextField nameField = (CCTextField)getChild(CHILD_NAME_FIELD);
+ nameField.setValue(name);
+ }
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/contexts/Wizard3View.java b/src/com/sun/apoc/manager/contexts/Wizard3View.java
new file mode 100644
index 0000000..2a41a0f
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard3View.java
@@ -0,0 +1,329 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.html.CCCheckBox;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import com.sun.web.ui.common.CCDebug;
+import netscape.ldap.factory.JSSESocketFactory;
+
+import netscape.ldap.LDAPConnection;
+import netscape.ldap.LDAPException;
+import netscape.ldap.LDAPAttribute;
+import netscape.ldap.LDAPv2;
+import netscape.ldap.LDAPSearchResults;
+import netscape.ldap.LDAPEntry;
+import netscape.ldap.LDAPAttributeSet;
+
+import java.util.Enumeration;
+import java.util.ArrayList;
+
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.environment.EnvironmentMgr;
+import java.util.Properties;
+
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard3View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard3View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_HOST_LABEL =
+ "HostLabel";
+ public static final String CHILD_PORT_LABEL =
+ "PortLabel";
+ public static final String CHILD_HOST_FIELD =
+ "HostField";
+ public static final String CHILD_PORT_FIELD =
+ "PortField";
+ public static final String CHILD_SSL_LABEL =
+ "SSLLabel";
+ public static final String CHILD_USE_SSL =
+ "UseSSL";
+ /** minimum LDAP port number allowed */
+ private final static int LDAP_MINPORTNUMBER = 0;
+ /** maximum LDAP port number allowed */
+ private final static int LDAP_MAXPORTNUMBER = 65535;
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard3View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public Wizard3View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ // Child manipulation methods
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_HOST_LABEL, CCLabel.class);
+ registerChild(CHILD_PORT_LABEL, CCLabel.class);
+ registerChild(CHILD_HOST_FIELD, CCTextField.class);
+ registerChild(CHILD_PORT_FIELD, CCTextField.class);
+ registerChild(CHILD_SSL_LABEL, CCLabel.class);
+ registerChild(CHILD_USE_SSL, CCCheckBox.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_HOST_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.3.host"));
+ } else if (name.equals(CHILD_PORT_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.3.port"));
+ } else if (name.equals(CHILD_HOST_FIELD)) {
+ child = (View)new CCTextField(this, name, null);
+ } else if (name.equals(CHILD_PORT_FIELD)) {
+ child = (View)new CCTextField(this, name, "389");
+ } else if (name.equals(CHILD_SSL_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.3.ssl"));
+ } else if (name.equals(CHILD_USE_SSL)) {
+ child = (View)new CCCheckBox(this, name,
+ "true", "false", false);
+ } else {
+ throw new IllegalArgumentException(
+ "WizardPage1View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard3.jsp";
+ }
+
+ public void beginDisplay(DisplayEvent event)
+ throws ModelControlException {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ Properties properties = (Properties)wm.getValue(wm.PROPERTIES);
+ CCTextField hostField = (CCTextField)getChild(CHILD_HOST_FIELD);
+ CCTextField portField = (CCTextField)getChild(CHILD_PORT_FIELD);
+ String hostname = (String)hostField.getValue();
+ if (hostname == null) {
+ if (properties != null) {
+ String entityUrl = properties.getProperty(EnvironmentConstants.ORGANIZATION_PREFIX
+ + EnvironmentConstants.URL_KEY);
+ if (entityUrl != null && entityUrl.startsWith("ldap")) {
+ hostField.setValue(EnvironmentMgr.getHostFromURL(entityUrl));
+ portField.setValue(Integer.toString(EnvironmentMgr.getPortFromURL(entityUrl)));
+ }
+ }
+ }
+ }
+
+
+ public String getErrorMsg() {
+
+ int SCOPE = LDAPv2.SCOPE_BASE;
+ String FILTER = "(objectclass=*)";
+ String SEARCHBASE = "";
+ String OPEN_LDAP_ID = "structuralObjectClass";
+ String SUN_ONE_DS_ID= "vendorName";
+ String BASE_DN_ID = "namingContexts";
+ String[] attrs = {OPEN_LDAP_ID, SUN_ONE_DS_ID, BASE_DN_ID};
+ String SUN_ONE_DS = "Sun Microsystems, Inc.";
+ String OPEN_LDAP = "OpenLDAProotDSE";
+
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ String hostname = (String)wm.getWizardValue(CHILD_HOST_FIELD);
+ String portString = (String)wm.getWizardValue(CHILD_PORT_FIELD);
+ String useSSL = (String)wm.getWizardValue(CHILD_USE_SSL);
+ int port = 389;
+ String emsg = null;
+ if((portString != null) && (portString.length() != 0)) {
+ try {
+ port = Integer.parseInt(portString);
+ if ((port < LDAP_MINPORTNUMBER) || (port > LDAP_MAXPORTNUMBER)) {
+ Object[] args = {portString};
+ return m_I18n.getMessage("APOC.wiz.3.alert1", args);
+ }
+ } catch (NumberFormatException nfe) {
+ Object[] args = {portString};
+ return m_I18n.getMessage("APOC.wiz.3.alert1", args);
+ }
+ }
+
+ LDAPConnection conn = null;
+
+ if(useSSL.equals("true")) {
+ conn = new LDAPConnection(new JSSESocketFactory(null));
+ } else {
+ conn = new LDAPConnection();
+ }
+
+
+ try {
+ conn.connect(hostname, port);
+ wm.setValue(wm.CONNECTION, conn);
+ } catch (LDAPException e) {
+ CCDebug.trace3(e.getMessage());
+ Object[] args = {hostname + ":" + portString};
+ return m_I18n.getMessage("APOC.wiz.3.alert2", args);
+ }
+
+ wm.setValue(wm.VENDOR_ID, null);
+ wm.setValue(wm.BASEDN_LIST, null);
+
+ String backendType = (String)wm.getValue(Wizard2View.CHILD_BACKEND_TYPE);
+
+
+ /* Get the root DSE by doing a search where:
+ - The scope is SCOPE_BASE
+ - The base is ""
+ - The search filter is "(objectclass=*)"
+ */
+ try {
+ LDAPSearchResults res = conn.search( SEARCHBASE,
+ SCOPE, FILTER, attrs, false );
+
+ /* There should be only one entry in the results (the root DSE). */
+ while ( res.hasMoreElements() ) {
+ LDAPEntry findEntry = (LDAPEntry)res.nextElement();
+ /* Get the attributes of the root DSE. */
+ LDAPAttributeSet findAttrs = findEntry.getAttributeSet();
+ Enumeration enumAttrs = findAttrs.getAttributes();
+
+ /* Iterate through each attribute. */
+ while ( enumAttrs.hasMoreElements() ) {
+ LDAPAttribute anAttr = (LDAPAttribute)enumAttrs.nextElement();
+ /* Get and print the attribute name. */
+ String attrName = anAttr.getName();
+ /* Get the values of the attribute. */
+ if (attrName.equals(OPEN_LDAP_ID)) {
+ Enumeration enumVals = anAttr.getStringValues();
+ /* Get and set each value. */
+ if ( enumVals != null ) {
+ while ( enumVals.hasMoreElements() ) {
+ String aVal = ( String )enumVals.nextElement();
+ if (aVal.equals(OPEN_LDAP)) {
+ wm.setValue(wm.VENDOR_ID, "1");
+ }
+ }
+ }
+ } else if (attrName.equals(SUN_ONE_DS_ID)) {
+ Enumeration enumVals = anAttr.getStringValues();
+ /* Get and print each value. */
+ if ( enumVals != null ) {
+ while ( enumVals.hasMoreElements() ) {
+ String aVal = ( String )enumVals.nextElement();
+ if (aVal.equals(SUN_ONE_DS)) {
+ wm.setValue(wm.VENDOR_ID, "0");
+ }
+ }
+ }
+ } else if (attrName.equals(BASE_DN_ID)) {
+ Enumeration enumVals = anAttr.getStringValues();
+ /* Get and print each value. */
+ if ( enumVals != null ) {
+ ArrayList baseDNs = new ArrayList();
+ while ( enumVals.hasMoreElements() ) {
+ String aVal = ( String )enumVals.nextElement();
+ baseDNs.add(aVal);
+ }
+ wm.setValue(wm.BASEDN_LIST, baseDNs);
+ }
+ }
+
+ }
+ }
+ } catch( LDAPException e ) {
+ CCDebug.trace3( "Error: " + e.toString() );
+ }
+
+ String vendorId = (String)wm.getValue(wm.VENDOR_ID);
+ if (backendType.equals("0")) {
+ if (vendorId != null) {
+ if (vendorId.equals("1")) {
+ Object[] args = {m_I18n.getMessage("APOC.wiz.5.openldap")};
+ return m_I18n.getMessage(Wizard10View.checkSchema(conn), args);
+ }
+ }
+ }
+
+ return emsg;
+ }
+
+}
+
+
+
diff --git a/src/com/sun/apoc/manager/contexts/Wizard4View.java b/src/com/sun/apoc/manager/contexts/Wizard4View.java
new file mode 100644
index 0000000..dc6b2f2
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard4View.java
@@ -0,0 +1,281 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.html.CCCheckBox;
+import com.sun.web.ui.view.html.CCPassword;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import netscape.ldap.LDAPConnection;
+import netscape.ldap.LDAPException;
+import netscape.ldap.LDAPAttribute;
+import netscape.ldap.LDAPEntry;
+
+import java.util.Enumeration;
+
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import java.util.Properties;
+
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard4View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil{
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard4View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_ANON_ACCESS =
+ "AnonAccess";
+ public static final String CHILD_ANON_ACCESS_LABEL =
+ "AnonAccessLabel";
+ public static final String CHILD_NONANON_USERDN_LABEL =
+ "NonAnonUserDNLabel";
+ public static final String CHILD_NONANON_PASSWORD_LABEL =
+ "NonAnonPasswordLabel";
+ public static final String CHILD_NONANON_USERDN_FIELD =
+ "NonAnonUserDN";
+ public static final String CHILD_NONANON_PASSWORD_FIELD =
+ "NonAnonPassword";
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard4View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public Wizard4View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ANON_ACCESS_LABEL, CCLabel.class);
+ registerChild(CHILD_ANON_ACCESS, CCCheckBox.class);
+ registerChild(CHILD_NONANON_USERDN_LABEL, CCLabel.class);
+ registerChild(CHILD_NONANON_PASSWORD_LABEL, CCLabel.class);
+ registerChild(CHILD_NONANON_USERDN_FIELD, CCTextField.class);
+ registerChild(CHILD_NONANON_PASSWORD_FIELD, CCPassword.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_ANON_ACCESS_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.4.anon"));
+ } else if (name.equals(CHILD_ANON_ACCESS)) {
+ child = (View)new CCCheckBox(this, name,
+ "true", "false", true);
+ } else if (name.equals(CHILD_NONANON_USERDN_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.4.user.dn"));
+ } else if (name.equals(CHILD_NONANON_PASSWORD_LABEL)) {
+ child = (View)new CCLabel(this, name, m_I18n.getMessage("APOC.wiz.4.user.pw"));
+ } else if (name.equals(CHILD_NONANON_USERDN_FIELD)) {
+ child = (View)new CCTextField(this, name, null);
+ } else if (name.equals(CHILD_NONANON_PASSWORD_FIELD)) {
+ child = (View)new CCPassword(this, name, null);
+ } else {
+ throw new IllegalArgumentException(
+ "WizardPage4View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard4.jsp";
+ }
+
+ public void beginDisplay(DisplayEvent event)
+ throws ModelControlException {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ Properties properties = (Properties)wm.getValue(wm.PROPERTIES);
+ CCCheckBox useAnon = (CCCheckBox)getChild(CHILD_ANON_ACCESS);
+ CCTextField username = (CCTextField)getChild(CHILD_NONANON_USERDN_FIELD);
+ CCPassword password = (CCPassword)getChild(CHILD_NONANON_PASSWORD_FIELD);
+ String usernameValue = (String)username.getValue();
+ if (usernameValue == null) {
+ if (properties != null) {
+ String oldUsernameValue = properties.getProperty(EnvironmentConstants.ORGANIZATION_PREFIX
+ + EnvironmentConstants.LDAP_AUTH_USER_KEY);
+ String oldPassword = properties.getProperty(EnvironmentConstants.ORGANIZATION_PREFIX
+ + EnvironmentConstants.LDAP_AUTH_PASSWORD_KEY);
+ if (oldUsernameValue != null) {
+ properties.remove(EnvironmentConstants.ORGANIZATION_PREFIX
+ + EnvironmentConstants.LDAP_AUTH_USER_KEY);
+ useAnon.setChecked(false);
+ username.setValue(oldUsernameValue);
+ password.setValue(oldPassword);
+ }
+ }
+ }
+ }
+
+ public String getErrorMsg() {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ String hostname = (String)wm.getWizardValue(Wizard3View.CHILD_HOST_FIELD);
+ String portString = (String)wm.getWizardValue(Wizard3View.CHILD_PORT_FIELD);
+ String baseDN = (String)wm.getWizardValue(wm.BASEDN);
+ String backendType = (String)wm.getValue(Wizard2View.CHILD_BACKEND_TYPE);
+
+ String nonAnonUserDn = (String)wm.getWizardValue(CHILD_NONANON_USERDN_FIELD);
+ String nonAnonPassword = (String)wm.getWizardValue(CHILD_NONANON_PASSWORD_FIELD);
+ String useAnon = (String)wm.getWizardValue(CHILD_ANON_ACCESS);
+
+ LDAPConnection conn = (LDAPConnection)wm.getValue(wm.CONNECTION);
+
+ String emsg = null;
+ if (useAnon.equals("true")) {
+ nonAnonUserDn = "";
+ nonAnonPassword = "";
+ }
+
+ try {
+ conn.bind(3, nonAnonUserDn, nonAnonPassword);
+ } catch (LDAPException e) {
+ Object[] args = {nonAnonUserDn, hostname + ":" + portString};
+ emsg = m_I18n.getMessage("APOC.wiz.4.alert1", args);
+ return emsg;
+ // Eat exception.
+ }
+ // anon or non anon, both must be able to read server
+ LDAPEntry foundEntry = null;
+ try {
+ foundEntry = conn.read( nonAnonUserDn );
+ } catch ( LDAPException e ) {
+ Object[] args = {nonAnonUserDn, hostname + ":" + portString};
+ emsg = m_I18n.getMessage("APOC.wiz.4.alert3", args);
+ return emsg;
+ // Eat exception.
+ }
+ try {
+ LDAPEntry entry = conn.read(baseDN);
+ } catch (LDAPException e) {
+ if ( e.getLDAPResultCode() == LDAPException.NO_SUCH_OBJECT) {
+ Object[] args = {baseDN, hostname + ":" + portString};
+ emsg = m_I18n.getMessage("APOC.wiz.8.alert", args);
+ return emsg;
+ } else {
+ if (useAnon.equals("true")) {
+ nonAnonUserDn = m_I18n.getMessage("APOC.wiz.10.anonymous");
+ }
+ Object[] args = {nonAnonUserDn, hostname + ":" + portString};
+ emsg = m_I18n.getMessage("APOC.wiz.4.alert3", args);
+ return emsg;
+ }
+ }
+ //Check to see if an older version of APOC has been installed
+ String services = "ou=ApocRegistry,ou=default,ou=OrganizationConfig,ou=1.0,ou=ApocService,ou=services," + baseDN;
+ wm.setValue(wm.EXISTING_INSTALL, "false");
+ wm.setValue(wm.APOC1_INSTALL, "false");
+ try {
+ LDAPEntry tryEntry = conn.read(services);
+ // Active Dir sometimes returns null if it cant read the services branch
+ if (tryEntry == null) {
+ if (useAnon.equals("true")) {
+ nonAnonUserDn = m_I18n.getMessage("APOC.wiz.10.anonymous");
+ }
+ Object[] args = {nonAnonUserDn, hostname + ":" + portString};
+ emsg = m_I18n.getMessage("APOC.wiz.4.alert3", args);
+ return emsg;
+ }
+ LDAPAttribute attr = tryEntry.getAttribute("sunkeyvalue");
+ if (attr != null) {
+ Enumeration en = attr.getStringValues();
+ while (en.hasMoreElements()) {
+ String value = (String)en.nextElement();
+ // Versions of APOC older than 2.0 do not contain the ApocVersion attribute in the metaconfig
+ if (value.startsWith("organizationalmapping=")) {
+ wm.setValue(wm.EXISTING_INSTALL, "true");
+ if (value.indexOf("ApocVersion=") == -1) {
+ wm.setValue(wm.APOC1_INSTALL, "true");
+ }
+ }
+ }
+ }
+
+ } catch (LDAPException e) {
+ if ( e.getLDAPResultCode() == LDAPException.INSUFFICIENT_ACCESS_RIGHTS ) {
+ if (useAnon.equals("true")) {
+ nonAnonUserDn = m_I18n.getMessage("APOC.wiz.10.anonymous");
+ }
+ Object[] args = {nonAnonUserDn, hostname + ":" + portString};
+ emsg = m_I18n.getMessage("APOC.wiz.4.alert3", args);
+ }
+
+ }
+
+
+ return emsg;
+ }
+
+}
+
+
diff --git a/src/com/sun/apoc/manager/contexts/Wizard5View.java b/src/com/sun/apoc/manager/contexts/Wizard5View.java
new file mode 100644
index 0000000..1c00662
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard5View.java
@@ -0,0 +1,172 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.model.DefaultModel;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.JspDisplayEvent;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.DisplayField;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.html.CCCheckBox;
+import com.sun.web.ui.view.html.CCDropDownMenu;
+import com.iplanet.jato.view.html.OptionList;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import netscape.ldap.LDAPConnection;
+
+import com.sun.web.ui.common.CCDebug;
+
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard5View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard5View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_LDAP_SERVER_TYPE_LABEL =
+ "ServerTypeLabel";
+ public static final String CHILD_SERVER_TYPE =
+ "ServerType";
+ private CCI18N m_I18n;
+
+ // Should be in CCWizardPage ?
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard5View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public Wizard5View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_LDAP_SERVER_TYPE_LABEL, CCLabel.class);
+ registerChild(CHILD_SERVER_TYPE, CCDropDownMenu.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_LDAP_SERVER_TYPE_LABEL)) {
+ child = (View)new CCLabel(this,
+ name, m_I18n.getMessage("APOC.wiz.5.type"));
+ } else if (name.equals(CHILD_SERVER_TYPE)) {
+ OptionList options = new OptionList();
+ options.add(0, m_I18n.getMessage("APOC.wiz.5.sun"), "0");
+ options.add(1, m_I18n.getMessage("APOC.wiz.5.openldap"), "1");
+ options.add(2, m_I18n.getMessage("APOC.wiz.5.ad"), "2");
+ options.add(3, m_I18n.getMessage("APOC.wiz.5.other"), "3");
+ child = (View)new CCDropDownMenu(this, name, null);
+ ((CCDropDownMenu)child).setOptions(options);
+ } else {
+ throw new IllegalArgumentException(
+ "WizardPage1View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard5.jsp";
+ }
+
+ public String getErrorMsg() {
+
+ String emsg = null;
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ LDAPConnection conn = (LDAPConnection)wm.getValue(wm.CONNECTION);
+ String vendorId = (String)wm.getWizardValue(CHILD_SERVER_TYPE);
+ String backendType = (String)wm.getWizardValue(Wizard2View.CHILD_BACKEND_TYPE);
+ wm.setValue(wm.VENDOR_ID, vendorId);
+ if (backendType.equals("0")) {
+ if (vendorId != null) {
+ if (vendorId.equals("1")) {
+ Object[] args = {m_I18n.getMessage("APOC.wiz.5.openldap")};
+ emsg = m_I18n.getMessage(Wizard10View.checkSchema(conn), args);
+ } else if (vendorId.equals("2")) {
+ Object[] args = {m_I18n.getMessage("APOC.wiz.5.ad")};
+ emsg = m_I18n.getMessage(Wizard10View.checkSchema(conn), args);
+ } else if (vendorId.equals("3")) {
+ Object[] args = {m_I18n.getMessage("APOC.wiz.5.other")};
+ emsg = m_I18n.getMessage(Wizard10View.checkSchema(conn), args);
+ }
+ }
+ }
+ return emsg;
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/contexts/Wizard6View.java b/src/com/sun/apoc/manager/contexts/Wizard6View.java
new file mode 100644
index 0000000..de386c0
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard6View.java
@@ -0,0 +1,186 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.model.DefaultModel;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.JspDisplayEvent;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.DisplayField;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.html.CCCheckBox;
+import com.sun.web.ui.view.html.CCRadioButton;
+import com.iplanet.jato.view.html.OptionList;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import com.sun.web.ui.common.CCDebug;
+
+import java.io.InputStreamReader;
+import java.io.InputStream;
+import java.io.IOException;
+
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard6View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard6View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_ADAPT_METACONFIG_LABEL =
+ "AdaptMetaConfigLabel";
+ public static final String CHILD_ADAPT_METACONFIG =
+ "AdaptMetaConfig";
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard6View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public Wizard6View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ // Child manipulation methods
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_ADAPT_METACONFIG_LABEL, CCLabel.class);
+ registerChild(CHILD_ADAPT_METACONFIG, CCRadioButton.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_ADAPT_METACONFIG_LABEL)) {
+ child = (View)new CCLabel(this,
+ name, m_I18n.getMessage("APOC.wiz.6.question"));
+ } else if (name.equals(CHILD_ADAPT_METACONFIG)) {
+ OptionList options = new OptionList();
+ options.add(0, m_I18n.getMessage("APOC.wiz.6.no"), "0");
+ options.add(1, m_I18n.getMessage("APOC.wiz.6.yes"), "1");
+ child = (View)new CCRadioButton(this, name, null);
+ ((CCRadioButton)child).setOptions(options);
+ } else {
+ throw new IllegalArgumentException(
+ "WizardPage6View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard6.jsp";
+ }
+
+ public void beginDisplay(DisplayEvent event)
+ throws ModelControlException {
+ CCRadioButton child = (CCRadioButton)getChild(CHILD_ADAPT_METACONFIG);
+ if (child.getValue() == null) {
+ child.setValue("0");
+ }
+ }
+
+ public String getErrorMsg() {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ String serverType = (String)wm.getValue(wm.VENDOR_ID);
+ StringBuffer metaConfig = new StringBuffer();
+ InputStream istream = null;
+ try {
+ if (serverType != null) {
+ if (serverType.equals("0") || serverType.equals("3")) {
+ istream=getClass().getResource("metaconfig/OrganisationMapping").openStream();
+ } else if (serverType.equals("1")) {
+ istream = getClass().getResource("metaconfig/OrganisationMapping.OpenLDAP").openStream();
+ } else if (serverType.equals("2")) {
+ istream = getClass().getResource("metaconfig/OrganisationMapping.AD").openStream();
+ }
+ }
+ int c;
+ while ((c = istream.read()) != -1) {
+ String aChar = new Character((char)c).toString();
+ metaConfig.append(aChar);
+ }
+ istream.close() ;
+ }catch(IOException ioe) {
+ CCDebug.trace3("Wizard7View: Unable to find metaconfiguration file." + ioe.getLocalizedMessage()) ;
+ }
+ wm.setValue(wm.METACONFIG, metaConfig.toString());
+ return null;
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/contexts/Wizard7View.java b/src/com/sun/apoc/manager/contexts/Wizard7View.java
new file mode 100644
index 0000000..a3df27d
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard7View.java
@@ -0,0 +1,238 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCTextArea;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.environment.EnvironmentMgr;
+import com.sun.apoc.spi.ldap.environment.LdapEnvironmentMgr;
+import com.sun.web.ui.view.html.CCHiddenField;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.Properties;
+import netscape.ldap.LDAPAttribute;
+import netscape.ldap.LDAPConnection;
+import netscape.ldap.LDAPEntry;
+import netscape.ldap.LDAPException;
+import netscape.ldap.factory.JSSESocketFactory;
+
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard7View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard7View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_METACONFIG_LABEL =
+ "MetaConfigLabel";
+ public static final String CHILD_METACONFIG =
+ "MetaConfig";
+ public static final String CHILD_IS_FIRST_VIEW =
+ "isFirstView7";
+ private CCI18N m_I18n;
+
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard7View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+
+ }
+
+ public Wizard7View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_IS_FIRST_VIEW, CCHiddenField.class);
+ registerChild(CHILD_METACONFIG_LABEL, CCLabel.class);
+ registerChild(CHILD_METACONFIG, CCTextArea.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_METACONFIG_LABEL)) {
+ child = (View)new CCLabel(this,
+ name, m_I18n.getMessage("APOC.wiz.7.adapt"));
+ } else if (name.equals(CHILD_METACONFIG)) {
+ child = (View)new CCTextArea(this, name, null);
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ String metaConfig = (String)wm.getValue(wm.METACONFIG);
+ ((CCTextArea)child).setValue(metaConfig);
+ } else if (name.equals(CHILD_IS_FIRST_VIEW)) {
+ child = (View)new CCHiddenField(this, name, "true");
+ } else {
+ throw new IllegalArgumentException(
+ "WizardPage7View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ // CCWizardPage methods
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard7.jsp";
+ }
+
+ public void beginDisplay(DisplayEvent event)
+ throws ModelControlException {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ Properties properties = (Properties)wm.getValue(wm.PROPERTIES);
+ CCTextArea metaConfig = (CCTextArea)getChild(CHILD_METACONFIG);
+ CCHiddenField isFirstView = (CCHiddenField)getChild(CHILD_IS_FIRST_VIEW);
+ if (isFirstView.getValue().equals("true") && properties != null) {
+ String metaConfigLocation = properties.getProperty(EnvironmentConstants.LDAP_META_CONF_PREFIX
+ + EnvironmentConstants.URL_KEY);
+ String entityUrl = properties.getProperty(EnvironmentConstants.ORGANIZATION_PREFIX
+ + EnvironmentConstants.URL_KEY);
+ if (metaConfigLocation == null) {
+ if (entityUrl.startsWith("ldap")) {
+ String baseDN = LdapEnvironmentMgr.getBaseEntryFromURL(entityUrl);
+ String services = "ou=ApocRegistry,ou=default,ou=OrganizationConfig,ou=1.0,ou=ApocService,ou=services," + baseDN;
+ try {
+ LDAPConnection conn = null;
+ String hostname = EnvironmentMgr.getHostFromURL(entityUrl);
+ int port = EnvironmentMgr.getPortFromURL(entityUrl);
+ if(entityUrl.startsWith("ldaps")) {
+ conn = new LDAPConnection(new JSSESocketFactory(null));
+ } else {
+ conn = new LDAPConnection();
+ }
+ conn.connect(hostname, port);
+ // try an anon connection, if not available use the default metaconfig
+ conn.bind("", "");
+
+ LDAPEntry tryEntry = conn.read(services);
+ if (tryEntry != null) {
+ LDAPAttribute attr = tryEntry.getAttribute("sunkeyvalue");
+ if (attr != null) {
+ Enumeration en = attr.getStringValues();
+ while (en.hasMoreElements()) {
+ String value = (String)en.nextElement();
+ String key = "organizationalmapping=";
+ if (value.startsWith(key)) {
+ value = value.substring(key.length());
+ metaConfig.setValue(value);
+ }
+ }
+ }
+ }
+
+ } catch (LDAPException e) {} // if an exception occurs use the default metaconfig values
+ }
+ } else {
+ if (metaConfigLocation.startsWith("file")) {
+ String filepath = EnvironmentMgr.getPathFromURL(metaConfigLocation);
+ StringBuffer metaConfigBuffer = new StringBuffer();
+ try {
+ File metaConfigFile = new File(filepath + System.getProperty("file.separator") + "OrganizationMapping.properties");
+ if (metaConfigFile.exists()) {
+ FileInputStream fi = new FileInputStream(metaConfigFile);
+
+ int c;
+ while ((c = fi.read()) != -1) {
+ String aChar = new Character((char)c).toString();
+ metaConfigBuffer.append(aChar);
+ }
+ fi.close() ;
+ metaConfig.setValue(metaConfigBuffer.toString());
+ }
+ } catch(IOException ioe) {} // if an exception occurs use the default metaconfig values
+ }
+ }
+ }
+ isFirstView.setValue("false");
+ }
+
+
+
+ public String getErrorMsg() {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ String metaConfig = (String)wm.getWizardValue(CHILD_METACONFIG);
+ wm.setValue(wm.METACONFIG, metaConfig);
+
+ return null;
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/contexts/Wizard8View.java b/src/com/sun/apoc/manager/contexts/Wizard8View.java
new file mode 100644
index 0000000..f171857
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard8View.java
@@ -0,0 +1,195 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCDropDownMenu;
+import com.iplanet.jato.view.html.OptionList;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import netscape.ldap.LDAPConnection;
+
+import java.util.ArrayList;
+
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.ldap.environment.LdapEnvironmentMgr;
+import com.sun.web.ui.view.html.CCHiddenField;
+import java.util.Properties;
+import netscape.ldap.LDAPEntry;
+import netscape.ldap.LDAPException;
+
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard8View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard8View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_SELECT_BASEDN_LABEL =
+ "SelectBaseDNLabel";
+ public static final String CHILD_SELECT_BASEDN =
+ "SelectBaseDN";
+ public static final String CHILD_IS_FIRST_VIEW =
+ "isFirstView8";
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard8View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public Wizard8View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_IS_FIRST_VIEW, CCHiddenField.class);
+ registerChild(CHILD_SELECT_BASEDN_LABEL, CCLabel.class);
+ registerChild(CHILD_SELECT_BASEDN, CCDropDownMenu.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_SELECT_BASEDN_LABEL)) {
+ child = (View)new CCLabel(this,
+ name, m_I18n.getMessage("APOC.wiz.8.basedn"));
+ } else if (name.equals(CHILD_SELECT_BASEDN)) {
+ OptionList options = new OptionList();
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ ArrayList baseDNs = (ArrayList)wm.getWizardValue(wm.BASEDN_LIST);
+ for (int i = 0; i < baseDNs.size(); i++) {
+ String baseDN = (String)baseDNs.get(i);
+ options.add(i, baseDN, baseDN);
+ }
+ child = (View)new CCDropDownMenu(this, name, null);
+ ((CCDropDownMenu)child).setOptions(options);
+ } else if (name.equals(CHILD_IS_FIRST_VIEW)) {
+ child = (View)new CCHiddenField(this, name, "true");
+ } else {
+ throw new IllegalArgumentException(
+ "Wizard8View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard8.jsp";
+ }
+
+ public void beginDisplay(DisplayEvent event)
+ throws ModelControlException {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ Properties properties = (Properties)wm.getValue(wm.PROPERTIES);
+ CCHiddenField isFirstView = (CCHiddenField)getChild(CHILD_IS_FIRST_VIEW);
+ if (isFirstView.getValue().equals("true") && properties != null) {
+ String oldProviderUrl = properties.getProperty(EnvironmentConstants.ORGANIZATION_PREFIX
+ + EnvironmentConstants.URL_KEY);
+ if (oldProviderUrl != null && oldProviderUrl.startsWith("ldap")) {
+ String baseDn = LdapEnvironmentMgr.getBaseEntryFromURL(oldProviderUrl);
+ CCDropDownMenu baseDnMenu = (CCDropDownMenu)getChild(CHILD_SELECT_BASEDN);
+ if (baseDnMenu.getOptions().hasValue(baseDn)) {
+ baseDnMenu.setValue(baseDn);
+ }
+ }
+ }
+ isFirstView.setValue("false");
+ }
+
+ public String getErrorMsg() {
+
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+
+ String baseDN = (String)wm.getWizardValue(CHILD_SELECT_BASEDN);
+ LDAPConnection conn = (LDAPConnection)wm.getValue(wm.CONNECTION);
+ String hostname = (String)wm.getWizardValue(Wizard3View.CHILD_HOST_FIELD);
+ String portString = (String)wm.getWizardValue(Wizard3View.CHILD_PORT_FIELD);
+ String emsg = null;
+ try {
+ LDAPEntry entry = conn.read(baseDN);
+ } catch (LDAPException e) {
+ Object[] args = {baseDN, hostname + ":" + portString};
+ emsg = m_I18n.getMessage("APOC.wiz.8.alert", args);
+ // Eat exception.
+ }
+ if (emsg == null) {
+ wm.setValue(wm.BASEDN, baseDN);
+ }
+ return emsg;
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/contexts/Wizard9View.java b/src/com/sun/apoc/manager/contexts/Wizard9View.java
new file mode 100644
index 0000000..2449130
--- /dev/null
+++ b/src/com/sun/apoc/manager/contexts/Wizard9View.java
@@ -0,0 +1,238 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.contexts;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCTextField;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import netscape.ldap.LDAPConnection;
+import netscape.ldap.LDAPException;
+import netscape.ldap.LDAPEntry;
+
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.html.OptionList;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.ldap.environment.LdapEnvironmentMgr;
+import com.sun.web.ui.view.html.CCDropDownMenu;
+import com.sun.web.ui.view.html.CCHiddenField;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Properties;
+import javax.servlet.ServletException;
+
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class Wizard9View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "Wizard9View";
+
+ // Child view names (i.e. display fields).
+ public static final String CHILD_SELECT_BASEDN_LABEL =
+ "SelectBaseDNLabel";
+ public static final String CHILD_SELECT_BASEDN =
+ "SelectBaseDN";
+ public static final String CHILD_IS_FIRST_VIEW =
+ "isFirstView";
+
+ public static final String CHILD_ENTER_BASEDN_LABEL =
+ "EnterBaseDNLabel";
+ public static final String CHILD_ENTER_BASEDN_FIELD =
+ "EnterBaseDN";
+
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public Wizard9View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public Wizard9View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_IS_FIRST_VIEW, CCHiddenField.class);
+ registerChild(CHILD_SELECT_BASEDN_LABEL, CCLabel.class);
+ registerChild(CHILD_SELECT_BASEDN, CCDropDownMenu.class);
+ registerChild(CHILD_ENTER_BASEDN_LABEL, CCLabel.class);
+ registerChild(CHILD_ENTER_BASEDN_FIELD, CCTextField.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_SELECT_BASEDN_LABEL)) {
+ child = (View)new CCLabel(this,
+ name, m_I18n.getMessage("APOC.wiz.8.basedn"));
+ } else if (name.equals(CHILD_SELECT_BASEDN)) {
+ OptionList options = new OptionList();
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ ArrayList baseDNs = (ArrayList)wm.getWizardValue(wm.BASEDN_LIST);
+ if (baseDNs != null) {
+ for (int i = 0; i < baseDNs.size(); i++) {
+ String baseDN = (String)baseDNs.get(i);
+ options.add(i, baseDN, baseDN);
+ }
+ }
+ child = (View)new CCDropDownMenu(this, name, null);
+ ((CCDropDownMenu)child).setOptions(options);
+ } else if (name.equals(CHILD_IS_FIRST_VIEW)) {
+ child = (View)new CCHiddenField(this, name, "true");
+ } else if (name.equals(CHILD_ENTER_BASEDN_LABEL)) {
+ child = (View)new CCLabel(this,
+ name, m_I18n.getMessage("APOC.wiz.9.basedn"));
+ } else if (name.equals(CHILD_ENTER_BASEDN_FIELD)) {
+ child = (View)new CCTextField(this, name, null);
+ } else if (name.equals(CHILD_IS_FIRST_VIEW)) {
+ child = (View)new CCHiddenField(this, name, "true");
+ } else {
+ throw new IllegalArgumentException(
+ "Wizard9View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/contexts/Wizard9.jsp";
+ }
+
+ public void beginDisplay(DisplayEvent event)
+ throws ModelControlException {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ Properties properties = (Properties)wm.getValue(wm.PROPERTIES);
+ CCHiddenField isFirstView = (CCHiddenField)getChild(CHILD_IS_FIRST_VIEW);
+ if (isFirstView.getValue().equals("true") && properties != null) {
+ String oldProviderUrl = properties.getProperty(EnvironmentConstants.ORGANIZATION_PREFIX
+ + EnvironmentConstants.URL_KEY);
+ if (oldProviderUrl != null && oldProviderUrl.startsWith("ldap")) {
+ String baseDn = LdapEnvironmentMgr.getBaseEntryFromURL(oldProviderUrl);
+ if (isBaseDNKnown()) {
+ CCDropDownMenu baseDnMenu = (CCDropDownMenu)getChild(CHILD_SELECT_BASEDN);
+ if (baseDnMenu.getOptions().hasValue(baseDn)) {
+ baseDnMenu.setValue(baseDn);
+ }
+ } else {
+ CCTextField baseDnField = (CCTextField)getChild(CHILD_ENTER_BASEDN_FIELD);
+ baseDnField.setValue(baseDn);
+ }
+ }
+ }
+ isFirstView.setValue("false");
+ }
+
+ public boolean beginDisplayTextfieldInputDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ return !isBaseDNKnown();
+ }
+
+ public boolean beginDisplayDropdownInputDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ return isBaseDNKnown();
+ }
+
+ public String getErrorMsg() {
+
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ String baseDN = null;
+ if (isBaseDNKnown()) {
+ baseDN = (String)wm.getWizardValue(CHILD_SELECT_BASEDN);
+ } else {
+ baseDN = (String)wm.getWizardValue(CHILD_ENTER_BASEDN_FIELD);
+ }
+ LDAPConnection conn = (LDAPConnection)wm.getValue(wm.CONNECTION);
+ String hostname = (String)wm.getWizardValue(Wizard3View.CHILD_HOST_FIELD);
+ String portString = (String)wm.getWizardValue(Wizard3View.CHILD_PORT_FIELD);
+ String emsg = null;
+ try {
+ LDAPEntry entry = conn.read(baseDN);
+ } catch (LDAPException e) {
+ Object[] args = {baseDN, hostname + ":" + portString};
+ emsg = m_I18n.getMessage("APOC.wiz.9.alert", args);
+ }
+ if (emsg == null) {
+ wm.setValue(wm.BASEDN, baseDN);
+ }
+
+ return emsg;
+ }
+
+ private boolean isBaseDNKnown() {
+ AddContextWizardPageModel wm = (AddContextWizardPageModel)getDefaultModel();
+ ArrayList baseDNs = (ArrayList)wm.getValue(wm.BASEDN_LIST);
+ return baseDNs != null ? true : false;
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/entities/FindTiledModel.java b/src/com/sun/apoc/manager/entities/FindTiledModel.java
new file mode 100755
index 0000000..24db625
--- /dev/null
+++ b/src/com/sun/apoc/manager/entities/FindTiledModel.java
@@ -0,0 +1,168 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.entities;
+import com.iplanet.jato.model.DefaultModel;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.entities.Node;
+import com.sun.apoc.spi.entities.Organization;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.TreeMap;
+
+public class FindTiledModel extends DefaultModel {
+
+ public static final String CHILD_RESULT1_HREF = "Result1Href";
+ public static final String CHILD_RESULT2_HREF = "Result2Href";
+ public static final String CHILD_RESULT3_HREF = "Result3Href";
+ public static final String CHILD_RESULT1_TEXT = "Result1Text";
+ public static final String CHILD_RESULT2_TEXT = "Result2Text";
+ public static final String CHILD_RESULT3_TEXT = "Result3Text";
+
+ private TreeMap m_cache = new TreeMap();
+
+ public FindTiledModel() {
+ super();
+ }
+
+ public void retrieve(String sEntityType, String sEntity, String sPattern) throws ModelControlException {
+ PolicyManager policyManager = Toolbox2.getPolicyManager();
+ clear();
+
+ if (sPattern.length() == 0) {
+ sPattern = "*";
+ } else {
+ sPattern = stripQuotes(sPattern);
+ }
+
+ try {
+ Entity entity = policyManager.getEntity(sEntityType, sEntity);
+ LinkedList resultList = new LinkedList();
+ Iterator results = resultList.iterator();
+
+ if (entity instanceof Node) {
+ results = ((Node)entity).findEntities(sPattern, false);
+ addToCache(results);
+ }
+ if (entity instanceof Organization) {
+ results = ((Organization)entity).findUsers("(givenname="+sPattern+")", false);
+ addToCache(results);
+ results = ((Organization)entity).findUsers("(sn="+sPattern+")", false);
+ addToCache(results);
+ results = ((Organization)entity).findUsers("(cn="+sPattern+")", false);
+ addToCache(results);
+ }
+
+ if (m_cache.size()==0) {return;}
+
+ Object [] resultArray = m_cache.keySet().toArray();
+ int nColumnLength = (resultArray.length+2)/3;
+ int column1Runner = 0;
+ int column2Runner = nColumnLength;
+ int column3Runner = resultArray.length-(resultArray.length-nColumnLength)/2;
+ while ( column1Runner<nColumnLength ) {
+ appendRow();
+
+ // 1st column
+ String sDisplayName = (String) resultArray[column1Runner];
+ Entity sCachedEntity= (Entity)m_cache.get(sDisplayName);
+ String sId = sCachedEntity.getId();
+ String sType = sCachedEntity.getPolicySourceName();
+ setValue(CHILD_RESULT1_TEXT, sDisplayName);
+ setValue(CHILD_RESULT1_HREF, sId + "|" + sType);
+
+ // 2nd column
+ if (column2Runner<(resultArray.length-(resultArray.length-nColumnLength)/2)) {
+ sDisplayName = (String) resultArray[column2Runner];
+ sCachedEntity = (Entity)m_cache.get(sDisplayName);
+ sId = sCachedEntity.getId();
+ sType = sCachedEntity.getPolicySourceName();
+ } else {
+ sDisplayName = null;
+ sId = null;
+ sType = null;
+ }
+ setValue(CHILD_RESULT2_TEXT, sDisplayName);
+ setValue(CHILD_RESULT2_HREF, sId + "|" + sType);
+
+ // 3rd column
+ if (column3Runner<resultArray.length) {
+ sDisplayName = (String) resultArray[column3Runner];
+ sCachedEntity = (Entity)m_cache.get(sDisplayName);
+ sId = sCachedEntity.getId();
+ sType = sCachedEntity.getPolicySourceName();
+ } else {
+ sDisplayName = null;
+ sId = null;
+ sType = null;
+ }
+ setValue(CHILD_RESULT3_TEXT, sDisplayName);
+ setValue(CHILD_RESULT3_HREF, sId + "|" + sType);
+ column1Runner++;
+ column2Runner++;
+ column3Runner++;
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ private void addToCache(Iterator entities) throws SPIException, ModelControlException {
+ while (entities.hasNext()) {
+ Entity entity = (Entity) entities.next();
+ String sDisplayName = entity.getDisplayName(Toolbox2.getLocale());
+ m_cache.put(sDisplayName, entity);
+ }
+ }
+
+ private String stripQuotes(String sQuoted) {
+ sQuoted = sQuoted.trim();
+
+ if (sQuoted.length()>=2) {
+ if (sQuoted.substring(0,1).equals("\"") && sQuoted.substring(sQuoted.length()-1).equals("\"")) {
+ sQuoted=sQuoted.substring(1, sQuoted.length()-1);
+ } else if (sQuoted.substring(0,1).equals("'") && sQuoted.substring(sQuoted.length()-1).equals("'")) {
+ sQuoted=sQuoted.substring(1, sQuoted.length()-1);
+ }
+ }
+
+ return sQuoted;
+ }
+}
diff --git a/src/com/sun/apoc/manager/entities/FindTiledView.java b/src/com/sun/apoc/manager/entities/FindTiledView.java
new file mode 100755
index 0000000..8801d51
--- /dev/null
+++ b/src/com/sun/apoc/manager/entities/FindTiledView.java
@@ -0,0 +1,79 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.entities;
+
+import com.iplanet.jato.view.RequestHandlingTiledViewBase;
+import com.iplanet.jato.view.View;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+
+
+public class FindTiledView extends RequestHandlingTiledViewBase {
+
+ public FindTiledView(View parent, String name) {
+ super(parent, name);
+ setPrimaryModel(getModel(FindTiledModel.class));
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(FindTiledModel.CHILD_RESULT1_HREF, CCHref.class);
+ registerChild(FindTiledModel.CHILD_RESULT2_HREF, CCHref.class);
+ registerChild(FindTiledModel.CHILD_RESULT3_HREF, CCHref.class);
+ registerChild(FindTiledModel.CHILD_RESULT1_TEXT, CCStaticTextField.class);
+ registerChild(FindTiledModel.CHILD_RESULT2_TEXT, CCStaticTextField.class);
+ registerChild(FindTiledModel.CHILD_RESULT3_TEXT, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(FindTiledModel.CHILD_RESULT1_HREF) ||
+ name.equals(FindTiledModel.CHILD_RESULT2_HREF) ||
+ name.equals(FindTiledModel.CHILD_RESULT3_HREF)) {
+ CCHref child = new CCHref(this, getPrimaryModel(), name, null);
+ return child;
+ }
+ else if (name.equals(FindTiledModel.CHILD_RESULT1_TEXT) ||
+ name.equals(FindTiledModel.CHILD_RESULT2_TEXT) ||
+ name.equals(FindTiledModel.CHILD_RESULT3_TEXT)) {
+ CCStaticTextField child = new CCStaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/entities/MemberTableModel.java b/src/com/sun/apoc/manager/entities/MemberTableModel.java
new file mode 100755
index 0000000..c9e43c8
--- /dev/null
+++ b/src/com/sun/apoc/manager/entities/MemberTableModel.java
@@ -0,0 +1,112 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.entities;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestParticipant;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.entities.Role;
+import com.sun.apoc.spi.entities.User;
+
+import com.sun.web.ui.model.CCActionTableModel;
+import java.util.Iterator;
+public class MemberTableModel extends CCActionTableModel implements RequestParticipant {
+ //
+ public static final String CHILD_NAME_COLUMN = "NameColumn";
+ public static final String CHILD_NAME_TEXT = "NameText";
+ public static final String CHILD_NAME_HREF = "NameHref";
+ public static final String CHILD_PATH_COLUMN = "PathColumn";
+ public static final String CHILD_PATH_TEXT = "PathText";
+ public static final int RETRIEVE_ROLES = 0;
+ public static final int RETRIEVE_USERS = 1;
+
+ public MemberTableModel() {
+ super();
+ }
+
+ public void setRequestContext(RequestContext requestContext) {
+ setActionValue(CHILD_NAME_COLUMN, "APOC.navigation.name");
+ setActionValue(CHILD_PATH_COLUMN, "APOC.ca.path");
+ setMaxRows(10);
+ }
+
+ public void retrieve() throws ModelControlException {
+ clear();
+
+ Iterator resultIterator = null;
+
+ try {
+ Entity entity = Toolbox2.getSelectedEntity();
+
+ if (entity instanceof User) {
+ resultIterator = ((User) entity).getMemberships();
+ setTitle("APOC.roles.title");
+ setSummary("APOC.roles.tableSummary");
+ setEmpty("APOC.policies.set.table.empty");
+ } else if (entity instanceof Role) {
+ resultIterator = ((Role) entity).getMembers();
+ setTitle("APOC.users.title");
+ setSummary("APOC.users.tableSummary");
+ setEmpty("APOC.policies.set.table.empty");
+ }
+
+ while (resultIterator!=null && resultIterator.hasNext()) {
+ appendRow();
+
+ entity = (Entity) resultIterator.next();
+
+ String sDisplayName = entity.getDisplayName(Toolbox2.getLocale());
+
+ if (entity instanceof User) {
+ sDisplayName = sDisplayName + " [" + ((User)entity).getUserId() + "]";
+ }
+
+ // Name column: Entity name and query param(s)
+ setValue(CHILD_NAME_TEXT, sDisplayName);
+ setValue(CHILD_NAME_HREF, entity.getId());
+
+ // Path column(optional): Path
+ setValue(CHILD_PATH_TEXT, Toolbox2.getParentagePath(entity, true, false, "/"));
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/entities/MemberTableView.java b/src/com/sun/apoc/manager/entities/MemberTableView.java
new file mode 100755
index 0000000..934912e
--- /dev/null
+++ b/src/com/sun/apoc/manager/entities/MemberTableView.java
@@ -0,0 +1,114 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.entities;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.web.ui.view.table.CCActionTable;
+import java.io.IOException;
+import java.util.Map;
+import javax.servlet.ServletException;
+
+public class MemberTableView extends RequestHandlingViewBase {
+ public static final String CHILD_MEMBER_TABLE = "MemberTable";
+ protected MemberTableModel m_Model = null;
+
+ public MemberTableView(View parent, String name) throws ModelControlException {
+ super(parent, name);
+ m_Model = (MemberTableModel) getModel(MemberTableModel.class);
+ m_Model.setDocument(getRequestContext().getServletContext(), "/jsp/entities/MemberTable.xml");
+ m_Model.retrieve();
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_MEMBER_TABLE, CCActionTable.class);
+ m_Model.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_MEMBER_TABLE)) {
+ CCActionTable child = new CCActionTable(this, m_Model, name);
+ return child;
+ }
+ else if (m_Model.isChildSupported(name)) {
+ return m_Model.createChild(this, name);
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleViewActionRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public boolean beginChildDisplay(ChildDisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+
+ if (event.getChildName().equals(CHILD_MEMBER_TABLE)) {
+ int nSize = m_Model.getSize();
+ int nMaxRows = m_Model.getMaxRows();
+ String sQuery = getRequestContext().getRequest().getQueryString();
+
+ if ((sQuery != null) && (sQuery.indexOf(CCActionTable.CHILD_PAGINATION_HREF) != -1)) {
+ getRootView().setPageSessionAttribute("userPagination", new Boolean(true));
+ }
+
+ Object userPagination = getRootView().getPageSessionAttribute("userPagination");
+
+ m_Model.setShowPaginationIcon(nSize > nMaxRows);
+ m_Model.setShowPaginationControls(nSize > (nMaxRows * 5));
+
+ if ((userPagination == null)) {
+ String sChildName = getChild(CHILD_MEMBER_TABLE).getQualifiedName() + ".stateData";
+ Map stateData = (Map) getRootView().getPageSessionAttribute(sChildName);
+
+ if (stateData != null) {
+ stateData.put("showPaginationControls", new Boolean((nSize > (nMaxRows * 5))));
+ }
+ }
+ }
+
+ return true;
+ }
+}
diff --git a/src/com/sun/apoc/manager/entities/NavigationModel.java b/src/com/sun/apoc/manager/entities/NavigationModel.java
new file mode 100755
index 0000000..a8c7b07
--- /dev/null
+++ b/src/com/sun/apoc/manager/entities/NavigationModel.java
@@ -0,0 +1,825 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.entities;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.manager.SyncLoginViewBean;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.manager.contexts.ManagerTableModel;
+import com.sun.apoc.manager.profiles.CopyMoveWizardPageModel;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.entities.Leaf;
+import com.sun.apoc.spi.entities.Node;
+import com.sun.apoc.spi.entities.Role;
+import com.sun.apoc.spi.entities.User;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.model.CCNavNode;
+import com.sun.web.ui.model.CCNavNodeInterface;
+import com.sun.web.ui.model.CCTreeModel;
+import com.sun.web.ui.model.CCTreeModelInterface;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FilenameFilter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Properties;
+import java.util.TreeSet;
+//implements RequestParticipant
+public class NavigationModel extends CCTreeModel {
+ // Child view names (i.e. display fields).
+ public static final int NODE_ROOT = 0;
+ public static final int NODE_ROOT_ORG = 1;
+ public static final int NODE_ROOT_DOMAIN = 2;
+ public static final int NODE_SUBTREE_ROOT = 3;
+ public static final String DISPLAY_THRESHOLD_KEY= "DisplayThreshold";
+ public static final String DISPLAY_GRACE_KEY = "DisplayGrace";
+ public static final String DISPLAY_SHOW_ASSIGNED= "ShowAssignedProfiles";
+ public static final String DISPLAY_SMART_TURNER = "SmartTurner";
+
+ private PolicyManager m_policyManager;
+ private boolean m_bFilterLeaves = false;
+ private boolean m_bSparseBrowsing = true;
+ private HashSet m_syncedNodesDirs = new HashSet();
+ private HashSet m_syncedNodesLeaves = new HashSet();
+ private int m_nIdCounter = 10;
+ private int m_nDisplayThreshold = 10;
+ private int m_nDisplayGrace = 15;
+ private boolean m_bShowAssigned = false;
+ private boolean m_bSmartTurner = false;
+ private String m_SelectedEntityConstant = null;
+ private Entity m_rootEntity = null;
+
+ //
+ private LinkedList m_dirtyNodeIds = new LinkedList();
+
+ public NavigationModel() throws ModelControlException {
+ super();
+ m_SelectedEntityConstant = Constants.SELECTED_ENTITY;
+ setUpVariables();
+ }
+
+ public NavigationModel(String sessionConstant) throws ModelControlException {
+ super();
+ m_SelectedEntityConstant = sessionConstant;
+ setUpVariables();
+ }
+
+ private void setUpVariables() throws ModelControlException {
+ initTree(null, null, null);
+ PolicyManager pmgr = Toolbox2.getPolicyManager();
+ if (pmgr != null) {
+ try {
+ String policyMgrName = (String)pmgr.getEnvironment().get(Constants.POLICY_MANAGER_NAME);
+ File dir = new File(ManagerTableModel.CONFIG_FILE_LOCATION);
+ if (dir.exists()) {
+ FilenameFilter filter = new FilenameFilter() {
+ public boolean accept(File dir, String name) {
+ return name.endsWith(".properties");
+ }
+ };
+ File[] files = dir.listFiles(filter);
+ int i = 0;
+ while (i < files.length) {
+ File properties = files[i];
+ if (properties.canRead()) {
+ FileInputStream input = new FileInputStream(properties) ;
+ Properties backendProperties = new Properties();
+ backendProperties.load(input);
+ input.close();
+ if (backendProperties.getProperty("Backend") != null) {
+ String sName = backendProperties.getProperty("Backend");
+ if (sName.equals(policyMgrName)) {
+ try {
+ if (backendProperties.containsKey(DISPLAY_THRESHOLD_KEY)) {
+ m_nDisplayThreshold = Integer.parseInt(backendProperties.getProperty(DISPLAY_THRESHOLD_KEY));
+ }
+ if (backendProperties.containsKey(DISPLAY_GRACE_KEY)) {
+ m_nDisplayGrace = Integer.parseInt(backendProperties.getProperty(DISPLAY_GRACE_KEY));
+ }
+ if (backendProperties.containsKey(DISPLAY_SHOW_ASSIGNED)) {
+ m_bShowAssigned = Boolean.valueOf(backendProperties.getProperty(DISPLAY_SHOW_ASSIGNED)).booleanValue();
+ }
+ if (backendProperties.containsKey(DISPLAY_SMART_TURNER)) {
+ m_bSmartTurner = Boolean.valueOf(backendProperties.getProperty(DISPLAY_SMART_TURNER)).booleanValue();
+ }
+ } catch (NumberFormatException ex) {
+ CCDebug.trace3(ex.toString());
+ }
+ }
+ }
+ }
+ i++;
+ }
+ }
+ } catch (Exception e) {
+ throw new ModelControlException(e);
+ }
+ }
+ }
+
+ public void initTree(String sContext, String sRootEntityType, String sRootEntity) throws ModelControlException {
+ try {
+ //Toolbox2.stamp("initTree begin " + sContext);
+ // TPF_TODO:
+ // we may want to have a more generic "policyMgrs in use" list
+ // instead of restricting this to the sync env
+ HashMap syncEnv = (HashMap) RequestManager.getSession().getAttribute(Constants.SYNC_ENVIRONMENT);
+ String sLeftContext = (syncEnv==null)?null:(String) syncEnv.get(SyncLoginViewBean.ENV_LEFT_CONTEXTNAME);
+ String sRightContext = (syncEnv==null)?null:(String) syncEnv.get(SyncLoginViewBean.ENV_RIGHT_CONTEXTNAME);
+ PolicyManager sCopyMovePmgr = (PolicyManager) RequestManager.getRequest().getSession(false).getAttribute(CopyMoveWizardPageModel.TARGET_POLICYMGR);
+
+ String sCopyMoveContext = null;
+ if (sCopyMovePmgr != null) {
+ sCopyMoveContext = (String)sCopyMovePmgr.getEnvironment().get(Constants.POLICY_MANAGER_NAME);
+ }
+ if ((sContext!=null) && sContext.equals(sLeftContext)) {
+ m_policyManager = (PolicyManager) syncEnv.get(SyncLoginViewBean.ENV_LEFT_CONTEXT);
+ } else if ((sContext!=null) && sContext.equals(sRightContext)) {
+ m_policyManager = (PolicyManager) syncEnv.get(SyncLoginViewBean.ENV_RIGHT_CONTEXT);
+ } else if ((sContext!=null) && (sContext.equals(sCopyMoveContext))) {
+ m_policyManager = sCopyMovePmgr;
+ } else {
+ m_policyManager = Toolbox2.getPolicyManager();
+ }
+ if (m_policyManager==null) {
+ return;
+ }
+
+ m_syncedNodesDirs.clear() ;
+ m_syncedNodesLeaves.clear() ;
+ removeAllNodes();
+ setType(CCTreeModelInterface.TITLE_TYPE);
+ CCNavNode node = null;
+ ArrayList sources = new ArrayList(Arrays.asList(m_policyManager.getSources()));
+ boolean isNodeSelected = false ;
+ if (sRootEntity==null || sRootEntity.length()==0 ) {
+ for (int i = 0; i < sources.size(); i++) {
+ String sourceName = (String)sources.get(i);
+ String[] labelAttrs = getRootLabelAttributes(sourceName);
+ int rootId = this.getRootId(sourceName);
+ addNode(m_policyManager.getRootEntity(sourceName).getId(), rootId, labelAttrs[0], labelAttrs[1], labelAttrs[2], sourceName);
+ if (isNodeSelected == false) {
+ setSelectedNode(rootId);
+ isNodeSelected = true;
+ RequestManager.getSession().setAttribute(m_SelectedEntityConstant, m_policyManager.getRootEntity(sourceName));
+ }
+ }
+ } else {
+ boolean isASubtree = true;
+ for (int i = 0; i < sources.size(); i++) {
+ String sourceName = (String)sources.get(i);
+ String[] labelAttrs = getRootLabelAttributes(sourceName);
+ int rootId = this.getRootId(sourceName);
+ if (m_policyManager.getRootEntity(sourceName).getId().equals(sRootEntity)) {
+ isASubtree = false;
+ m_rootEntity = m_policyManager.getRootEntity(sourceName);
+ addNode(sRootEntity, rootId, labelAttrs[0], labelAttrs[1],
+ labelAttrs[2], sourceName);
+ setSelectedNode(rootId);
+ RequestManager.getSession().setAttribute(m_SelectedEntityConstant, m_policyManager.getRootEntity(sourceName));
+ }
+
+ }
+ if (isASubtree) {
+ node = new CCNavNode(NODE_SUBTREE_ROOT);
+ node.setLabel(m_policyManager.getEntity(sRootEntityType, sRootEntity).getDisplayName(Toolbox2.getLocale()));
+ node.setValue(m_policyManager.getEntity(sRootEntityType, sRootEntity).getId());
+ node.setValue("ENTITY", m_policyManager.getEntity(sRootEntityType, sRootEntity));
+ node.setValue(sRootEntity);
+ addNode(node);
+ setSelectedNode(NODE_SUBTREE_ROOT);
+ m_rootEntity = m_policyManager.getEntity(sRootEntityType, sRootEntity);
+ }
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ //Toolbox2.stamp("initTree end " + sContext);
+ }
+
+ public boolean isRootEntity(String sRootEntity) throws SPIException {
+ ArrayList sources = new ArrayList(Arrays.asList(m_policyManager.getSources()));
+ for (int i=0; i < sources.size(); i++) {
+ String source = (String)sources.get(i);
+ if (m_policyManager.getRootEntity(source).getId().equals(sRootEntity)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ public void addNode(String sRootEntity, int sId, String sLabel, String sStatus, String sTooltip, String sEntityType)
+ throws SPIException {
+ CCNavNode node = null;
+ node = new CCNavNode(sId);
+ node.setLabel(Toolbox2.getI18n(sLabel));
+ node.setStatus(Toolbox2.getI18n(sStatus));
+ node.setTooltip(Toolbox2.getI18n(sTooltip));
+ node.setValue("ENTITY", m_policyManager.getRootEntity(sEntityType));
+ node.setValue(sRootEntity);
+ node.setExpanded(true);
+ addNode(node);
+ // if ( m_policyManager.getRootEntity(sEntityType).getId().equals(sRootEntity) ) {
+ // setSelectedNode(sId);
+ // }
+ }
+
+ public void expandRoot() throws ModelControlException, SPIException {
+ String[] sSources = {EnvironmentConstants.HOST_SOURCE, EnvironmentConstants.USER_SOURCE} ;
+ if (m_policyManager != null) {
+ sSources = m_policyManager.getSources();
+ }
+ for(int i = 0; i < sSources.length; i++) {
+ if (sSources[i].equals(EnvironmentConstants.USER_SOURCE)) {
+ retrieve(NODE_ROOT_ORG);
+ } else if (sSources[i].equals(EnvironmentConstants.HOST_SOURCE)) {
+ retrieve(NODE_ROOT_DOMAIN);
+ }
+ }
+ }
+
+ public void setSparseBrowsing(boolean bIsSparse) {
+ m_bSparseBrowsing = bIsSparse;
+ }
+
+ public void setAssignedState(Entity entity, boolean bIsAssigned) {
+ String sSource = entity.getPolicySourceName();
+ CCNavNodeInterface sNode = null;
+ if (sSource.equals(EnvironmentConstants.USER_SOURCE)) {
+ sNode = getNodeById(NODE_ROOT_ORG);
+ } else if (sSource.equals(EnvironmentConstants.HOST_SOURCE)) {
+ sNode = getNodeById(NODE_ROOT_DOMAIN);
+ }
+ CCNavNodeInterface node = findChildByValue(sNode, entity.getId(), true);
+ if ( (node!=null) && (((Boolean)node.getValue("ASSIGNED")).booleanValue() != bIsAssigned) ) {
+ setTypeSpecifics(node, entity, bIsAssigned && m_bShowAssigned);
+ if (node.getVisible()) {
+ m_dirtyNodeIds.add(new Integer(node.getId()));
+ }
+ }
+ }
+
+ public boolean getAssignedState(int nNodeId) {
+ return (m_bShowAssigned)?((Boolean)getNodeById(nNodeId).getValue("ASSIGNED")).booleanValue():false;
+ }
+
+ public Iterator getDirtyNodeIds() {
+ return m_dirtyNodeIds.iterator();
+ }
+
+ public void clearDirtyNodeIds() {
+ m_dirtyNodeIds.clear();
+ }
+
+ public boolean isLeavesFiltered() {
+ return m_bFilterLeaves;
+ }
+
+ public void filterLeaves(boolean filterLeaves) {
+ m_bFilterLeaves = filterLeaves;
+ }
+
+ public String getViewedNode() {
+ return getSelectedNode().getValue();
+ }
+
+ public Object getStoredValue(int nTreeId) {
+ return getNodeById(nTreeId).getValue("ENTITY");
+ }
+
+ public String getStoredEntityId(int nTreeId) {
+ Entity entity = (Entity) getNodeById(nTreeId).getValue("ENTITY");
+ return entity.getId();
+ }
+
+ public String getStoredEntityType(int nTreeId) {
+ Entity entity = (Entity) getNodeById(nTreeId).getValue("ENTITY");
+ return entity.getPolicySourceName();
+ }
+
+ public String getNodeType(CCNavNodeInterface node) {
+ String nodeType = "";
+ Entity entity = (Entity) node.getValue("ENTITY");
+ if(entity != null) {
+ nodeType = entity.getPolicySourceName();
+ }
+ return nodeType;
+ }
+
+ public Entity getRootEntity() {
+ // Returns the root entity if this is a subtree otherwise null
+ return m_rootEntity;
+ }
+
+ public void setTypeSpecifics(CCNavNodeInterface node, Entity entity, boolean bIsAssigned) {
+ if (node.getVisible()) {
+
+ String sImage = "";
+ String sTooltip = "";
+ String source = entity.getPolicySourceName() ;
+
+ if (entity instanceof Role) {
+ if (bIsAssigned) {
+ sImage = "../images/roleAssigned.png";
+ sTooltip = Toolbox2.getI18n("APOC.navigation.role.with");
+ } else {
+ sImage = "../images/role.png";
+ sTooltip = Toolbox2.getI18n("APOC.navigation.role");
+ }
+ }
+ else if (source.equals(EnvironmentConstants.USER_SOURCE)) {
+ if (entity instanceof Node) {
+ if (bIsAssigned) {
+ sImage = "../images/orgAssigned.png";
+ sTooltip = Toolbox2.getI18n("APOC.navigation.organization.with");
+ } else {
+ sImage = "../images/org.png";
+ sTooltip = Toolbox2.getI18n("APOC.navigation.organization");
+ }
+ }
+ else if (entity instanceof Leaf) {
+ if (bIsAssigned) {
+ sImage = "../images/userAssigned.png";
+ sTooltip = Toolbox2.getI18n("APOC.navigation.user.with");
+ } else {
+ sImage = "../images/user.png";
+ sTooltip = Toolbox2.getI18n("APOC.navigation.user");
+ }
+ }
+ }
+ else if (source.equals(EnvironmentConstants.HOST_SOURCE)) {
+ if (entity instanceof Node) {
+ if (bIsAssigned) {
+ sImage = "../images/domainAssigned.png";
+ sTooltip = Toolbox2.getI18n("APOC.navigation.domain.with");
+ } else {
+ sImage = "../images/domain.png";
+ sTooltip = Toolbox2.getI18n("APOC.navigation.domain");
+ }
+ }
+ else if (entity instanceof Leaf) {
+ if (bIsAssigned) {
+ sImage = "../images/hostAssigned.png";
+ sTooltip = Toolbox2.getI18n("APOC.navigation.host.with");
+ } else {
+ sImage = "../images/host.png";
+ sTooltip = Toolbox2.getI18n("APOC.navigation.host");
+ }
+ }
+ }
+ node.setValue("ASSIGNED", new Boolean(bIsAssigned));
+ node.setImage(sImage);
+ node.setTooltip(sTooltip);
+ }
+ }
+
+ public int retrieve(boolean bFilterLeaves) throws ModelControlException {
+ //Toolbox2.stamp("retrieve begin " + bFilterLeaves);
+ try {
+ if (bFilterLeaves!=m_bFilterLeaves) {
+ m_bFilterLeaves=bFilterLeaves;
+ Iterator nodes = getNodes().iterator();
+ while (nodes.hasNext()) {
+ CCNavNodeInterface node = (CCNavNodeInterface) nodes.next();
+ if (m_bFilterLeaves==false) {
+ addLeaves(node);
+ } else {
+ removeLeaves(node);
+ }
+ }
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ //Toolbox2.stamp("retrieve end " + bFilterLeaves);
+ return getSelectedNode().getId();
+ }
+
+ public int retrieve(String sEntity) throws ModelControlException {
+ //Toolbox2.stamp("retrieve begin " + sEntity);
+
+ String sEntityType = EnvironmentConstants.USER_SOURCE;
+ if (sEntity.indexOf("|") != -1) {
+ sEntityType = sEntity.substring(sEntity.indexOf("|") + 1);
+ sEntity = sEntity.substring(0, sEntity.indexOf("|"));
+ }
+
+ CCNavNodeInterface pathNode = null;
+ if (sEntityType.equals(EnvironmentConstants.USER_SOURCE)) {
+ pathNode = getNodeById(NODE_ROOT_ORG);
+ } else if (sEntityType.equals(EnvironmentConstants.HOST_SOURCE)) {
+ pathNode = getNodeById(NODE_ROOT_DOMAIN);
+ }
+ if (pathNode == null) {
+ pathNode = getNodeById(NODE_SUBTREE_ROOT);
+ }
+ CCNavNodeInterface pathNodeTemp = null;
+
+ try {
+ Iterator pathEntities = Toolbox2.getParentPath(sEntityType, sEntity);
+ Entity pathEntity = null;
+
+ if (pathEntities.hasNext()) {
+ pathEntity = (Entity) pathEntities.next();
+ }
+
+ while (pathEntities.hasNext()) {
+
+ pathEntity = (Entity) pathEntities.next();
+
+ if (pathNode.getNumChildren() == 0) {
+ retrieve(pathNode.getId());
+ }
+
+ pathNodeTemp = findChildByValue(pathNode, pathEntity.getId(), false);
+
+ // SPI returns only a limited number of results,
+ // maybe the entity in question was not among them
+ if (pathNodeTemp==null) {
+ pathNode = addChild(pathNode, pathEntity);
+ } else {
+ pathNode = pathNodeTemp;
+ }
+ }
+
+ if (pathNode.getNumChildren() == 0) {
+ retrieve(pathNode.getId());
+ }
+
+ pathNodeTemp = findChildByValue(pathNode, sEntity, false);
+
+ // SPI returns only a limited number of results,
+ // maybe the entity in question was not among them
+ if (pathNodeTemp==null) {
+ pathNode = addChild(pathNode, m_policyManager.getEntity(sEntityType, sEntity));
+ } else {
+ pathNode = pathNodeTemp;
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ //Toolbox2.stamp("retrieve end " + sEntity);
+ return pathNode.getId();
+ }
+
+ public void retrieve(int nTreeId) throws ModelControlException {
+ //Toolbox2.stamp("retrieve begin " + nTreeId);
+
+ CCNavNodeInterface node = getNodeById(nTreeId);
+ if (node == null) {
+ return;
+ }
+
+ if (m_bFilterLeaves && m_syncedNodesDirs.contains(node)) {
+ return;
+ }
+
+ if (!m_bFilterLeaves && m_syncedNodesDirs.contains(node) && m_syncedNodesLeaves.contains(node)) {
+ // if (!m_bFilterLeaves && m_syncedNodesLeaves.contains(node)) {
+ return;
+ }
+
+ try {
+
+ Entity entity = null;
+
+ if (nTreeId == NODE_ROOT_ORG) {
+ entity = m_policyManager.getRootEntity(EnvironmentConstants.USER_SOURCE);
+ }
+ else if (nTreeId == NODE_ROOT_DOMAIN) {
+ entity = m_policyManager.getRootEntity(EnvironmentConstants.HOST_SOURCE);
+ }
+
+ else {
+ entity = (Entity)node.getValue("ENTITY");
+ }
+
+ if (entity instanceof Leaf) {
+ return;
+ }
+
+ if ((entity instanceof Node) && (!((Node) entity).hasChildren())) {
+ return;
+ }
+ addChildren(node,((Node) entity).getChildren());
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+
+ m_syncedNodesDirs.add(node);
+
+ if (!m_bFilterLeaves) {
+ m_syncedNodesLeaves.add(node);
+ }
+ }
+
+ private void addLeaves(CCNavNodeInterface node) throws SPIException {
+ //Toolbox2.stamp("addLeaves begin " + node.getLabel());
+ Iterator nodeChildren = node.getChildren().iterator();
+
+ while (nodeChildren.hasNext()) {
+ addLeaves((CCNavNodeInterface)nodeChildren.next());
+ }
+
+ if (!m_syncedNodesLeaves.contains(node)) {
+ Entity entity = (Entity) node.getValue("ENTITY");
+
+ addChildren(node, ((Node) entity).getChildren());
+ m_syncedNodesLeaves.add(node);
+ }
+ //Toolbox2.stamp("addLeaves end " + node.getLabel());
+ }
+
+ // called only for parents which have 0 children
+ private void addChildren(CCNavNodeInterface node, Iterator childrenIter) throws SPIException {
+ //Toolbox2.stamp("addChildren begin " + node.getId());
+ TreeSet entityChildren = new TreeSet(new EntityComparator());
+ while (childrenIter.hasNext()) {
+ entityChildren.add(childrenIter.next());
+ }
+
+ boolean bShowEllipsis = false;
+ int nBacklog = 0;
+ LinkedList newChildren = new LinkedList();
+
+ childrenIter = entityChildren.iterator();
+ while (childrenIter.hasNext()) {
+ Entity child = (Entity) childrenIter.next();
+ if ( (m_bFilterLeaves==false && !m_syncedNodesLeaves.contains(node)) || (child instanceof Node) ) {
+ if (findChildByValue(node, child.getId(), false)==null) {
+ newChildren.add(child);
+ nBacklog++;
+ if (m_bSparseBrowsing && (nBacklog+node.getNumChildren() > m_nDisplayGrace)) {
+ bShowEllipsis = true;
+ nBacklog = m_nDisplayThreshold-node.getNumChildren();
+ break;
+ }
+ }
+ }
+ }
+
+ if (nBacklog>0) {
+ node.setAcceptsChildren(true);
+ }
+
+ for (int nBacklogRunner=0; nBacklogRunner<nBacklog; nBacklogRunner++) {
+ CCNavNodeInterface newNode = createChild((Entity)newChildren.get(nBacklogRunner));
+ newNode.setParent(node);
+ }
+
+ if (bShowEllipsis) {
+// String sDisplayName = Toolbox2.getI18n("APOC.navigation.ellipsis", new Object[]{Integer.toString(entityChildren.size()-node.getNumChildren())});
+ String sDisplayName = Toolbox2.getI18n("APOC.navigation.ellipsis");
+ CCNavNode ellipsisNode = new CCNavNode(m_nIdCounter++);
+
+ ellipsisNode.setLabel(sDisplayName);
+ ellipsisNode.setStatus(sDisplayName);
+ ellipsisNode.setAcceptsChildren(false);
+ //node.setValue("ENTITY", entity);
+ ellipsisNode.setValue("ellipsis");
+ ellipsisNode.setValue("ASSIGNED", new Boolean(false));
+ ellipsisNode.setImage("../images/search.gif");
+ ellipsisNode.setTooltip(Toolbox2.getI18n("APOC.navigation.openfind"));
+ ellipsisNode.setParent(node);
+ ellipsisNode.setOnClick("var newWindow = window.open('/apoc/manager/EntitiesFindIndex?EntitiesFindIndex.FindHref="+ellipsisNode.getId()+"&EntitiesFindIndex.FindModel="+getName()+"', 'findWindow', 'height=800,width=500,top='+((screen.height-800)/2)+',left='+((screen.width-500)/2)+',scrollbars,resizable'); newWindow.focus(); return false;");
+ m_syncedNodesLeaves.add(ellipsisNode);
+ }
+ //Toolbox2.stamp("addChildren end " + node.getId());
+ }
+
+ // called only for parents which have children already
+ private CCNavNodeInterface addChild(CCNavNodeInterface node, Entity entity) throws SPIException {
+ CCNavNodeInterface newChild = createChild(entity);
+ List nodeChildren = node.getChildren();
+ LinkedList nodeChildren2 = new LinkedList(nodeChildren); // to circumvent ConcurrentModificationException
+ Iterator nodeChildren2Iter=nodeChildren2.iterator();
+ EntityComparator entityComparator= new EntityComparator();
+ CCNavNodeInterface nodeChild = null;
+ Entity nodeChildEntity= null;
+
+ node.setAcceptsChildren(true);
+
+ // insert the newChild at the correct place in the subnode list of nodes
+ // due to restrictions in the NavNode interface only possible by reassigning
+ // the parent for all subnodes in the correct order
+ while (nodeChildren2Iter.hasNext()) {
+ nodeChild = (CCNavNodeInterface) nodeChildren2Iter.next();
+ nodeChildEntity = (Entity) nodeChild.getValue("ENTITY");
+ if ( (newChild.getParent()==null) &&
+ ((nodeChildEntity==null) || (entityComparator.compare(entity, nodeChildEntity)<0)) ) {
+ newChild.setParent(node);
+ }
+ nodeChild.setParent(node);
+ }
+
+// // decrease number of not displayed entries displayed by the ellipsis node by one
+// String sLabel = nodeChild.getLabel();
+// sLabel = sLabel.replaceAll("[^0-9]","");
+// int nNumber = Integer.parseInt(sLabel);
+// sLabel = Toolbox2.getI18n("APOC.navigation.ellipsis", new Object[]{Integer.toString(nNumber-1)});
+// nodeChild.setLabel(sLabel);
+// nodeChild.setStatus(sLabel);
+
+ return newChild;
+ }
+
+ private CCNavNodeInterface createChild(Entity entity) throws SPIException {
+ //Toolbox2.stamp("createChild begin " + entity.getDisplayName());
+ String sDisplayName = entity.getDisplayName(Toolbox2.getLocale());
+ CCNavNode node = new CCNavNode(m_nIdCounter++);
+ boolean bAcceptsChildren= !m_bSmartTurner;
+ if (entity instanceof Leaf) {
+ bAcceptsChildren = false;
+ } else if ((m_bSmartTurner)) {
+ Iterator subChildren = ((Node)entity).getChildren();
+ if (subChildren.hasNext()) {
+ if (m_bFilterLeaves) {
+ while (subChildren.hasNext()) {
+ Entity subChild = (Entity)subChildren.next();
+ if (subChild instanceof Node) {
+ bAcceptsChildren = true;
+ break;
+ }
+ }
+ } else {
+ bAcceptsChildren=true;
+ }
+ }
+ }
+
+ if (entity instanceof User) {
+ sDisplayName = sDisplayName + " [" + ((User)entity).getUserId() + "]";
+ }
+
+ node.setLabel(sDisplayName);
+ node.setStatus(sDisplayName);
+ node.setAcceptsChildren(bAcceptsChildren);
+ node.setValue("ENTITY", entity);
+ node.setValue(entity.getId());
+
+ boolean bIsAssigned = false;
+ if (m_bShowAssigned) {
+ Iterator assignedProfiles = entity.getAssignedProfiles();
+ bIsAssigned = assignedProfiles.hasNext();
+ }
+ setTypeSpecifics(node, entity, bIsAssigned);
+
+ //Toolbox2.stamp("createChild end " + entity.getDisplayName());
+ return node;
+ }
+
+ private void removeLeaves(CCNavNodeInterface node) throws SPIException {
+ Iterator nodeChildren = node.getChildren().iterator();
+ boolean bRemovedChild = false;
+
+ while (nodeChildren.hasNext()) {
+ CCNavNodeInterface nodeChild = (CCNavNodeInterface) nodeChildren.next();
+ Entity entity = (Entity) nodeChild.getValue("ENTITY");
+ if (entity instanceof Node) {
+ removeLeaves(nodeChild);
+ } else {
+ if (nodeChild.equals(getSelectedNode())) {
+ setSelectedNode(node);
+ RequestManager.getSession().setAttribute(m_SelectedEntityConstant, entity);
+ }
+ nodeChildren.remove();
+ bRemovedChild=true;
+ if (node.getNumChildren()==0) {
+ node.setAcceptsChildren(false);
+ }
+ }
+ }
+ if (bRemovedChild) {
+ // removing the node from list only if at least one node was removed
+ // keeps that node in the sync list forever. Result:
+ // a node without children that are of type "leaf" is asked for leaf
+ // children only once (performance)
+ m_syncedNodesLeaves.remove(node);
+ }
+ }
+
+ private CCNavNodeInterface findChildByValue(CCNavNodeInterface parent, String sSearchString, boolean bRecursive) {
+ if (parent.getChildren() != null) {
+ Iterator children = parent.getChildren().iterator();
+
+ while (children.hasNext()) {
+ CCNavNodeInterface child = (CCNavNodeInterface) children.next();
+
+ if (child.getValue().equals(sSearchString)) {
+ return child;
+ }
+
+ if (bRecursive) {
+ child = findChildByValue(child, sSearchString, bRecursive);
+ if (child!=null) {
+ return child;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ class EntityComparator implements Comparator {
+ public int compare(Object o1, Object o2) {
+ // place EntityContainers first
+ int nComparison = -1;
+ int no1 = getPriority(o1);
+ int no2 = getPriority(o2);
+ if (no1<no2) {
+ nComparison = -1;
+ } else if (no1==no2) {
+ nComparison = ( ((Entity)o1).getDisplayName(Toolbox2.getLocale()).compareTo(((Entity)o2).getDisplayName(Toolbox2.getLocale())) );
+ } else {
+ nComparison = 1;
+ }
+ return nComparison;
+ }
+ }
+
+ private int getPriority(Object entity) {
+ if (entity instanceof Entity) {
+ String source = ((Entity) entity).getPolicySourceName() ;
+
+ if (source.equals(EnvironmentConstants.HOST_SOURCE)) {
+
+ }
+ if (entity instanceof Node) {
+ if (source.equals(EnvironmentConstants.HOST_SOURCE)) {return 1;}
+ if (source.equals(EnvironmentConstants.USER_SOURCE)) {return 2;}
+ }
+ if (entity instanceof Role) {return 3;}
+ if (source.equals(EnvironmentConstants.HOST_SOURCE)) {return 4;}
+ if (source.equals(EnvironmentConstants.USER_SOURCE)) {return 5;}
+ }
+ return 99;
+ }
+
+ private String[] getRootLabelAttributes(String entityType) {
+ if (entityType.equals(EnvironmentConstants.HOST_SOURCE)) {
+ String[] attrs = {"APOC.navigation.domains", "APOC.navigation.domains.help",
+ "APOC.navigation.domains.help"};
+ return attrs;
+ } else if (entityType.equals(EnvironmentConstants.USER_SOURCE)) {
+ String[] attrs = {"APOC.navigation.organizations", "APOC.navigation.organizations.help",
+ "APOC.navigation.organizations.help"};
+ return attrs;
+ }
+ return null;
+ }
+
+ private int getRootId(String entityType) {
+ if (entityType.equals(EnvironmentConstants.HOST_SOURCE)) {
+ return NODE_ROOT_DOMAIN;
+ }
+ return NODE_ROOT_ORG;
+ }
+}
diff --git a/src/com/sun/apoc/manager/entities/SearchTableModel.java b/src/com/sun/apoc/manager/entities/SearchTableModel.java
new file mode 100755
index 0000000..f46ab92
--- /dev/null
+++ b/src/com/sun/apoc/manager/entities/SearchTableModel.java
@@ -0,0 +1,305 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.entities;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestParticipant;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Domain;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.entities.Node;
+import com.sun.apoc.spi.entities.Organization;
+import com.sun.apoc.spi.entities.Role;
+import com.sun.apoc.spi.entities.User;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.ldap.entities.LdapEntityType;
+import com.sun.apoc.spi.ldap.entities.LdapNode;
+import com.sun.apoc.spi.ldap.environment.LdapEnvironmentMgr;
+
+import com.sun.web.ui.model.CCActionTableModel;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.StringTokenizer;
+
+public class SearchTableModel extends CCActionTableModel implements RequestParticipant {
+
+ public static final String CHILD_NAME_TEXT = "NameText";
+ public static final String CHILD_NAME_HREF = "NameHref";
+ public static final String CHILD_NAME_COLUMN = "NameColumn";
+ public static final String CHILD_VIEW_ACTION = "ViewAction";
+ public static final String CHILD_USERID_COLUMN = "UserIdColumn";
+ public static final String CHILD_USERID_TEXT = "UserIdText";
+ public static final String CHILD_TYPE_TEXT = "TypeText";
+ public static final String CHILD_TYPE_COLUMN = "TypeColumn";
+ public static final String CHILD_PATH_TEXT = "PathText";
+ public static final String CHILD_PATH_COLUMN = "PathColumn";
+ public static final String CHILD_FILTER_MENU = "FilterMenu";
+
+ private int m_nSearchLimit = 200;
+ private PolicyManager m_policyManager = null;
+ private String m_sType = "";
+
+ public SearchTableModel() {
+ super();
+ }
+
+ public void setRequestContext(RequestContext requestContext) {
+ setActionValue(CHILD_NAME_COLUMN, "APOC.navigation.name");
+ setActionValue(CHILD_TYPE_COLUMN, "APOC.navigation.type");
+ setActionValue(CHILD_PATH_COLUMN, "APOC.search.path");
+ setActionValue(CHILD_USERID_COLUMN, "APOC.search.userid");
+ }
+
+ public void retrieve(String sEntity, String sEntityType, String sType, String sSource, String sSearchString, String sMaxRows, boolean bGlobalSearch, String sContext) throws ModelControlException {
+ clear();
+
+ m_sType = sType;
+
+ if (sSearchString.length() == 0) {
+ sSearchString = "*";
+ }
+ sSearchString = stripQuotes(sSearchString);
+ if (!sSearchString.startsWith("*")) {
+ sSearchString = "*"+sSearchString;
+ }
+ if (!sSearchString.endsWith("*")) {
+ sSearchString = sSearchString+"*";
+ }
+
+ if ( (sMaxRows!=null) && (sMaxRows.length()>0) && (!sMaxRows.equals("defval"))) {
+ int nMaxRows = Integer.parseInt(sMaxRows);
+ setMaxRows(nMaxRows);
+ }
+
+ try {
+ PolicyManager m_policyManager = Toolbox2.getPolicyManager();
+ if (sContext!=null && sContext.length()>0) {
+ m_policyManager = Toolbox2.createPolicyManager(sContext, null, null, false);
+ }
+
+ //TPF_TODO: shouldn't be LDAP-specific here
+ LdapEnvironmentMgr envMgr = new LdapEnvironmentMgr(m_policyManager.getEnvironment());
+ m_nSearchLimit = envMgr.getSearchResultSizeLimit();
+ LinkedList resultList = new LinkedList();
+ Iterator results = resultList.iterator();
+ Entity entity = m_policyManager.getEntity(sEntityType, sEntity);
+
+ if (bGlobalSearch) {
+ entity = m_policyManager.getRootEntity(sSource);
+ }
+ if (sType.equals(LdapEntityType.STR_ORG) && (entity instanceof Organization)) {
+ results = ((Organization)entity).findSubOrganizations(sSearchString, true);
+ addToModel(results, false);
+ }
+ else if (sType.equals(LdapEntityType.STR_DOMAIN) && (entity instanceof Domain)) {
+ results = ((Domain)entity).findSubDomains(sSearchString, true);
+ addToModel(results, false);
+ }
+ else if (sType.equals(LdapEntityType.STR_HOST) && (entity instanceof Domain)) {
+ results = ((Domain)entity).findHosts(sSearchString, true);
+ addToModel(results, false);
+ }
+ else if (sType.equals(LdapEntityType.STR_ROLE) && ((entity instanceof Role) || (entity instanceof Organization))) {
+ //TPF_TODO: Katell: add findRoles to the Node interface
+ // the impl below is ok as long as only the ldap backend supports roles
+ if (entity instanceof LdapNode) {
+ results = ((LdapNode)entity).findRoles(sSearchString, true);
+ }
+ addToModel(results, false);
+ }
+ else if (sType.equals(LdapEntityType.STR_USERID) && (entity instanceof Organization)) {
+ results = ((Organization)entity).findUsers(sSearchString, true);
+ addToModel(results, false);
+ if (!sSearchString.equals("*")) {
+ searchUsers(entity, sSearchString);
+ }
+ }
+ if (bGlobalSearch) {
+ if (sType.equals(LdapEntityType.STR_ALL)) {
+ entity = m_policyManager.getRootEntity(EnvironmentConstants.HOST_SOURCE);
+ results = ((Node)entity).findEntities(sSearchString, true);
+ addToModel(results, bGlobalSearch);
+ entity = m_policyManager.getRootEntity(EnvironmentConstants.USER_SOURCE);
+ if ((entity instanceof Node) && (m_nSearchLimit>getSize())) {
+ results = ((Node)entity).findEntities(sSearchString, true);
+ addToModel(results, bGlobalSearch);
+ if ((entity instanceof Organization) && (!sSearchString.equals("*")) && (m_nSearchLimit>getSize())) {
+ searchUsers(entity, sSearchString);
+ }
+ }
+ }
+ } else {
+ if (sType.equals(LdapEntityType.STR_ALL) && (entity instanceof Domain)) {
+ results = ((Domain)entity).findSubDomains(sSearchString, true);
+ addToModel(results, false);
+ results = ((Domain)entity).findHosts(sSearchString, true);
+ addToModel(results, false);
+ }
+ else if (sType.equals(LdapEntityType.STR_ALL) && (entity instanceof Organization)) {
+ results = ((Node)entity).findEntities(sSearchString, true);
+ addToModel(results, bGlobalSearch);
+ if ((entity instanceof Organization) && (!sSearchString.equals("*")) && (m_nSearchLimit>getSize())) {
+ searchUsers(entity, sSearchString);
+ }
+ }
+ else if (sType.equals(LdapEntityType.STR_ALL) && (entity instanceof Node)) {
+ results = ((Node)entity).findEntities(sSearchString, true);
+ addToModel(results, false);
+ }
+ }
+ }
+ catch (Exception ex) {
+ throw new ModelControlException(ex);
+ }
+ }
+
+ private void searchUsers(Entity entity, String sSearchString)
+ throws SPIException, ModelControlException {
+
+ LinkedList resultList = new LinkedList();
+ Iterator results = resultList.iterator();
+ StringTokenizer tokens = new StringTokenizer(sSearchString, ",");
+ if (tokens.countTokens()==2) {
+ String sSurName = tokens.nextToken().trim();
+ String sGivenName = tokens.nextToken().trim();
+ if (m_nSearchLimit>getSize()) {
+ Iterator results1 = ((Organization)entity).findUsers("(givenname="+sGivenName+")", true);
+ Iterator results2 = ((Organization)entity).findUsers("(sn="+sSurName+")", true);
+ HashSet setIdUser = new HashSet();
+
+ while (results1.hasNext()) {
+ User user = (User) results1.next();
+ setIdUser.add(user.getUserId());
+ }
+ while (results2.hasNext()) {
+ User user = (User) results2.next();
+ if (setIdUser.contains(user.getUserId())) {
+ resultList.add(user);
+ }
+ }
+
+ addToModel(resultList.iterator(), true);
+ }
+ if (m_nSearchLimit>getSize()) {
+ results = ((Organization)entity).findUsers("(cn="+sGivenName+" "+sSurName+")", true);
+ addToModel(results, true);
+ }
+ } else {
+ if (m_nSearchLimit>getSize()) {
+ results = ((Organization)entity).findUsers("(givenname="+sSearchString+")", true);
+ addToModel(results, true);
+ }
+ if (m_nSearchLimit>getSize()) {
+ results = ((Organization)entity).findUsers("(sn="+sSearchString+")", true);
+ addToModel(results, true);
+ }
+ if (m_nSearchLimit>getSize()) {
+ results = ((Organization)entity).findUsers("(cn="+sSearchString+")", true);
+ addToModel(results, true);
+ }
+ }
+ }
+
+ private void addToModel(Iterator entities, boolean bForceUnique)
+ throws SPIException, ModelControlException {
+
+ while (entities.hasNext() && m_nSearchLimit>getSize()) {
+ boolean bAlreadyStored = false;
+ Entity entity = (Entity) entities.next();
+ String sEntityIdToAdd = entity.getId();
+
+ if (bForceUnique) {
+ int currentLocation = getLocation();
+ for (int nModelRunner = 0; nModelRunner < getNumRows(); nModelRunner++) {
+ setLocation(nModelRunner);
+ String sEntityId = (String) getValue(CHILD_VIEW_ACTION);
+ if (sEntityIdToAdd.equals(sEntityId)) {
+ bAlreadyStored = true;
+ break;
+ }
+ }
+ setLocation(currentLocation);
+ }
+
+ if (!bAlreadyStored) {
+
+ appendRow();
+
+ String sUserId = "-";
+ String sDisplayName = entity.getDisplayName(Toolbox2.getLocale());
+
+ if (entity instanceof User) {
+ sUserId = ((User)entity).getUserId();
+ if (!m_sType.equals(LdapEntityType.STR_USERID)) {
+ sDisplayName = sDisplayName + " [" + sUserId + "]";
+ }
+ }
+ String entityType = entity.getPolicySourceName();
+ // Name column
+ setValue(CHILD_NAME_TEXT, sDisplayName);
+ // setValue(CHILD_NAME_HREF, entity.getId());
+ setValue(CHILD_VIEW_ACTION, sEntityIdToAdd + "|" + entityType);
+
+ // User id column
+ setValue(CHILD_USERID_TEXT, sUserId);
+
+ // Type column
+ setValue(CHILD_TYPE_TEXT, Toolbox2.getEntityTypeResource(entity));
+
+ // Path column
+ setValue(CHILD_PATH_TEXT, Toolbox2.getParentagePath(entity, true, false, "/", m_policyManager));
+ }
+ }
+ }
+
+ private String stripQuotes(String sQuoted) {
+ sQuoted = sQuoted.trim();
+
+ if (sQuoted.length()>=2) {
+ if (sQuoted.substring(0,1).equals("\"") && sQuoted.substring(sQuoted.length()-1).equals("\"")) {
+ sQuoted=sQuoted.substring(1, sQuoted.length()-1);
+ } else if (sQuoted.substring(0,1).equals("'") && sQuoted.substring(sQuoted.length()-1).equals("'")) {
+ sQuoted=sQuoted.substring(1, sQuoted.length()-1);
+ }
+ }
+
+ return sQuoted;
+ }
+}
diff --git a/src/com/sun/apoc/manager/entities/SearchTableView.java b/src/com/sun/apoc/manager/entities/SearchTableView.java
new file mode 100755
index 0000000..a97258a
--- /dev/null
+++ b/src/com/sun/apoc/manager/entities/SearchTableView.java
@@ -0,0 +1,163 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.entities;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.sun.apoc.manager.EntitiesSearchResultViewBean;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.ldap.entities.LdapEntityType;
+
+import com.sun.web.ui.model.CCActionTableModelInterface;
+import com.sun.web.ui.view.table.CCActionTable;
+import java.util.Map;
+
+
+public class SearchTableView extends RequestHandlingViewBase {
+//
+ public static final String CHILD_ENTITY_TABLE = "EntityTable";
+ protected SearchTableModel m_Model = null;
+
+ public SearchTableView(View parent, String name) {
+ super(parent, name);
+ m_Model = (SearchTableModel) getModel(SearchTableModel.class);
+
+ if (Toolbox2.getParameter("EntityTypeMenu").equals(LdapEntityType.STR_USERID)) {
+ m_Model.setDocument(getRequestContext().getServletContext(), "/jsp/entities/SearchTableUser.xml");
+
+ String sPattern = Toolbox2.getParameter("SearchText");
+
+ if (sPattern.length() > 0) {
+ m_Model.setPrimarySortName(SearchTableModel.CHILD_USERID_TEXT);
+ m_Model.setPrimarySortOrder(CCActionTableModelInterface.ASCENDING);
+ m_Model.setSecondarySortName(SearchTableModel.CHILD_NAME_TEXT);
+ m_Model.setSecondarySortOrder(CCActionTableModelInterface.ASCENDING);
+ }
+ }
+ else {
+ m_Model.setDocument(getRequestContext().getServletContext(), "/jsp/entities/SearchTable.xml");
+ }
+
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ENTITY_TABLE, CCActionTable.class);
+ m_Model.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_ENTITY_TABLE)) {
+ CCActionTable child = new CCActionTable(this, m_Model, name);
+ return child;
+ }
+ else if (m_Model.isChildSupported(name)) {
+ return m_Model.createChild(this, name);
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ ((CCActionTable) getChild(CHILD_ENTITY_TABLE)).restoreStateData();
+ String sEntity = Toolbox2.getParameter(EntitiesSearchResultViewBean.CHILD_ENTITYID_HIDDEN);
+ String sEntityType = Toolbox2.getParameter(EntitiesSearchResultViewBean.CHILD_ENTITY_TYPE_HIDDEN);
+ String sType = Toolbox2.getParameter(EntitiesSearchResultViewBean.CHILD_TYPE_HIDDEN);
+ String sSource = EnvironmentConstants.HOST_SOURCE;
+ if (sType.equals("ORG")) {
+ m_Model.setTitle("APOC.search.organizationsFound");
+ sSource = EnvironmentConstants.USER_SOURCE;
+ }
+ else if (sType.equals("USERID")) {
+ m_Model.setTitle("APOC.search.usersFound");
+ sSource = EnvironmentConstants.USER_SOURCE;
+ }
+ else if (sType.equals("ROLE")) {
+ m_Model.setTitle("APOC.search.rolesFound");
+ sSource = EnvironmentConstants.USER_SOURCE;
+ }
+ else if (sType.equals("DOMAIN")) {
+ m_Model.setTitle("APOC.search.domainsFound");
+ sSource = EnvironmentConstants.HOST_SOURCE;
+ }
+ else if (sType.equals("HOST")) {
+ m_Model.setTitle("APOC.search.hostsFound");
+ sSource = EnvironmentConstants.HOST_SOURCE;
+ }
+ String sSearchText = Toolbox2.getParameter(EntitiesSearchResultViewBean.CHILD_SEARCHTEXT_HIDDEN);
+ String sRestrict = Toolbox2.getParameter(EntitiesSearchResultViewBean.CHILD_RESTRICT_HIDDEN);
+ String sResults = Toolbox2.getParameter(EntitiesSearchResultViewBean.CHILD_RESULTS_HIDDEN);
+ String sContext = Toolbox2.getParameter(EntitiesSearchResultViewBean.CHILD_CONTEXT_HIDDEN);
+ boolean bRestrict = Boolean.valueOf(sRestrict).booleanValue();
+ m_Model.retrieve(sEntity, sEntityType, sType, sSource, sSearchText, sResults, (!bRestrict), sContext);
+ }
+
+ public boolean beginChildDisplay(ChildDisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+
+ if (event.getChildName().equals(CHILD_ENTITY_TABLE)) {
+ int nSize = m_Model.getSize();
+ int nMaxRows = m_Model.getMaxRows();
+ String sQuery = getRequestContext().getRequest().getQueryString();
+
+ if ((sQuery != null) && (sQuery.indexOf(CCActionTable.CHILD_PAGINATION_HREF) != -1)) {
+ getRootView().setPageSessionAttribute("userPagination", new Boolean(true));
+ }
+
+ Object userPagination = getRootView().getPageSessionAttribute("userPagination");
+
+ m_Model.setShowPaginationIcon(nSize > nMaxRows);
+ m_Model.setShowPaginationControls(nSize > (nMaxRows * 5));
+
+ if ((userPagination == null)) {
+ String sChildName = getChild(CHILD_ENTITY_TABLE).getQualifiedName() + ".stateData";
+ Map stateData = (Map) getRootView().getPageSessionAttribute(sChildName);
+
+ if (stateData != null) {
+ stateData.put("showPaginationControls", new Boolean((nSize > (nMaxRows * 5))));
+ stateData.put("showPaginationControls", new Boolean(true));
+ }
+ }
+ }
+ return true;
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/AdvancedOptionsViewBean.java b/src/com/sun/apoc/manager/profiles/AdvancedOptionsViewBean.java
new file mode 100644
index 0000000..0956434
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/AdvancedOptionsViewBean.java
@@ -0,0 +1,336 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.DisplayField;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.iplanet.jato.view.html.OptionList;
+import com.sun.apoc.manager.ProfileWindowFramesetViewBean;
+import com.sun.apoc.manager.ProfileWindowViewBean;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.profiles.Applicability;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.model.CCOrderableListModel;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.model.CCPropertySheetModel;
+import com.sun.web.ui.view.alert.CCAlert;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.orderablelist.CCOrderableList;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.propertysheet.CCPropertySheet;
+import java.io.IOException;
+import java.util.LinkedList;
+import javax.servlet.ServletException;
+
+public class AdvancedOptionsViewBean extends RequestHandlingViewBase {
+
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_PAGETITLE = "PageTitle";
+ public static final String CHILD_PROPERTIES = "Properties";
+ public static final String CHILD_PRIO_LIST = "PrioritizationList";
+ public static final String CHILD_RELOCATE_BUTTON = "RelocateButton";
+ public static final String CHILD_DEFAULT_COMMAND = "DefaultCommand";
+ public static final String CHILD_ENTITYID_HIDDEN = "GeneralEntityId";
+ public static final String CHILD_ENTITY_TYPE_HIDDEN = "GeneralEntityType";
+ public static final String CHILD_ENTITYID_TEXT = "JSEntityId";
+ public static final String CHILD_ENTITYTYPE_TEXT = "JSEntityType";
+ public static final String CHILD_READONLY = "JSReadOnly";
+ public static final String APPLICABLE = "Applicable";
+
+ private CCPageTitleModel m_titleModel = null;
+ private CCPropertySheetModel m_propertySheetModel= null;
+ private ProfileWindowModel m_editorModel = null;
+ private PrioritizationListModel m_listModel = null;
+
+
+ public AdvancedOptionsViewBean(View parent, String name) {
+ super(parent, name);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_PAGETITLE, CCPageTitle.class);
+ registerChild(CHILD_PROPERTIES, CCPropertySheet.class);
+ registerChild(CHILD_PRIO_LIST, CCOrderableList.class);
+ registerChild(CHILD_RELOCATE_BUTTON, CCButton.class);
+ registerChild(CHILD_DEFAULT_COMMAND, CCButton.class);
+ registerChild(CHILD_ENTITYID_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_ENTITY_TYPE_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_ENTITYID_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_ENTITYTYPE_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_READONLY, CCStaticTextField.class);
+ getPageTitleModel().registerChildren(this);
+ getPropertiesModel().registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_PAGETITLE)) {
+ CCPageTitle child = new CCPageTitle(this, getPageTitleModel(), name);
+ Toolbox2.setPageTitleHelp(getPageTitleModel(), "APOC.profilewnd.advanced.tab",
+ "APOC.profilewnd.advanced.pagetitle_help", "gbgdh.html");
+ return child;
+
+ } else if (name.equals(CHILD_PROPERTIES)) {
+ CCPropertySheet child = new CCPropertySheet(this, getPropertiesModel(), name);
+ return child;
+
+ } else if (name.equals(CHILD_PRIO_LIST)) {
+ CCOrderableList child = new CCOrderableList(this, new CCOrderableListModel(), name);
+ return child;
+
+ } else if (name.equals(CHILD_RELOCATE_BUTTON) || name.equals(CHILD_DEFAULT_COMMAND)) {
+ CCButton child = new CCButton(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_ENTITYID_TEXT) ||
+ name.equals(CHILD_ENTITYTYPE_TEXT) ||
+ name.equals(CHILD_READONLY)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_ENTITYID_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_ENTITY_TYPE_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+
+ } else if (getPageTitleModel().isChildSupported(name)) {
+ return getPageTitleModel().createChild(this, name);
+
+ } else if (getPropertiesModel().isChildSupported(name)) {
+ return getPropertiesModel().createChild(this, name);
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ protected CCPageTitleModel getPageTitleModel() {
+ if (m_titleModel == null) {
+ m_titleModel = new CCPageTitleModel(
+ RequestManager.getRequestContext().getServletContext(),
+ "/jsp/profiles/AdvancedOptionsPageTitle.xml");
+ }
+ return m_titleModel;
+ }
+
+ protected CCPropertySheetModel getPropertiesModel() {
+ if (m_propertySheetModel == null) {
+ m_propertySheetModel = new CCPropertySheetModel(
+ RequestManager.getRequestContext().getServletContext(),
+ "/jsp/profiles/AdvancedOptionsPropertySheet.xml");
+ }
+ return m_propertySheetModel;
+ }
+
+ private ProfileWindowModel getEditorModel() {
+ if (m_editorModel == null) {
+ m_editorModel = (ProfileWindowModel) getModel(ProfileWindowModel.class);
+ }
+ return m_editorModel;
+ }
+
+ private PrioritizationListModel getListModel() {
+ if (m_listModel == null) {
+ m_listModel = (PrioritizationListModel) getModel(PrioritizationListModel.class);
+ }
+ return m_listModel;
+ }
+
+ public void handleRelocateButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ try {
+ String sSourceProfile = getEditorModel().getProfile().getId();
+ String sTargetEntity = Toolbox2.decode((String) ((CCHiddenField)getChild(CHILD_ENTITYID_HIDDEN)).getValue());
+ String sTargetEntityType = Toolbox2.decode((String) ((CCHiddenField)getChild(CHILD_ENTITY_TYPE_HIDDEN)).getValue());
+ String sTargetProfile = ProfileModel.copy(sSourceProfile, sTargetEntityType, sTargetEntity, true);
+
+ if (sTargetProfile.length()==0) {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ CCStaticTextField trace = (CCStaticTextField) getChild(CHILD_STACKTRACE);
+ alert.setValue(CCAlert.TYPE_ERROR);
+ alert.setSummary("APOC.relocate.error.summary");
+ alert.setDetail("APOC.relocate.error.detail");
+ trace.setValue("APOC.relocate.trace.text");
+ } else {
+ ProfileModel.destroy(sSourceProfile, Toolbox2.getPolicyManager());
+ getEditorModel().setProfile(Toolbox2.getPolicyManager().getProfile(sTargetProfile));
+ }
+ } catch (Exception e) {
+ Toolbox2.prepareErrorDisplay(e, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ }
+
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleSaveButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ try {
+ CCOrderableList list = (CCOrderableList) getChild(CHILD_PRIO_LIST);
+ OptionList options = getListModel().getSelectedOptionList(list);
+ int nOptionRunner = 0;
+ LinkedList valueList = new LinkedList();
+
+ while (nOptionRunner<options.size()) {
+ valueList.add(options.getValue(nOptionRunner));
+ nOptionRunner++;
+ }
+
+ ProfileModel.changePriority(valueList);
+
+ } catch (Exception e) {
+ Toolbox2.prepareErrorDisplay(e, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ }
+
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleCloseButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ CCStaticTextField child = (CCStaticTextField)((ProfileWindowViewBean)getViewBean(ProfileWindowViewBean.class)).getChild(ProfileWindowViewBean.CHILD_TAB_CHANGE_SCRIPT);
+ child.setValue("closeEditorAndRefresh();");
+ try {
+ mapRequestParameters(getRequestContext().getRequest());
+ handleSaveButtonRequest(event);
+ } catch (ModelControlException ex) {
+ CCDebug.trace3(ex.toString());
+ }
+
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ try {
+ Profile profile = ProfileWindowFramesetViewBean.getSelectedProfile();
+ if (profile != null) {
+ Entity entity = profile.getProfileRepository().getEntity();
+
+ StringBuffer sPath = new StringBuffer(Toolbox2.getParentagePath(entity, true, true, "/"));
+ m_propertySheetModel.setValue(APPLICABLE, sPath);
+
+ //TPF_TODO: move into model
+ DisplayField child = (DisplayField) getChild(CHILD_ENTITYID_TEXT);
+ if (profile.getApplicability().equals(Applicability.USER)) {
+ child.setValue(Toolbox2.encode(Toolbox2.getPolicyManager().getRootEntity(EnvironmentConstants.USER_SOURCE).getId()));
+ } else if (profile.getApplicability().equals(Applicability.HOST)) {
+ child.setValue(Toolbox2.encode(Toolbox2.getPolicyManager().getRootEntity(EnvironmentConstants.HOST_SOURCE).getId()));
+ }
+ //TPF_TODO: move into model
+ child = (DisplayField) getChild(CHILD_ENTITYTYPE_TEXT);
+ if (profile.getApplicability().equals(Applicability.USER)) {
+ child.setValue(EnvironmentConstants.USER_SOURCE);
+ } else if (profile.getApplicability().equals(Applicability.HOST)) {
+ child.setValue(EnvironmentConstants.HOST_SOURCE);
+ }
+
+ CCOrderableList list = (CCOrderableList) getChild(CHILD_PRIO_LIST);
+ list.resetStateData();
+ getListModel().retrieve(entity);
+ list.setModel(getListModel());
+ }
+ } catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ return ((alert.getSummary() != null) && (alert.getSummary().length() > 0));
+ }
+
+ public boolean beginChangeButtonDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCButton button = (CCButton) getChild(event.getChildName());
+ boolean bIsReadOnly = false;
+
+ try {
+ bIsReadOnly = Toolbox2.getSelectedEntity().getProfileRepository().isReadOnly();
+ } catch (SPIException se) {
+ throw new ServletException(se);
+ }
+
+ button.setDisabled(bIsReadOnly);
+ return true;
+ }
+
+ public boolean beginJSReadOnlyDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCStaticTextField text = (CCStaticTextField) getChild(CHILD_READONLY);
+ boolean bIsReadOnly = getEditorModel().isReadOnlyProfile();
+ text.setValue(Boolean.toString(bIsReadOnly));
+ return true;
+ }
+
+ public boolean beginSaveButtonDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ // do not show the save button for read-only profiles
+ return !getEditorModel().isReadOnlyProfile();
+ }
+
+ public boolean beginMoveUpButtonDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ return false;
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/profiles/AssignTableModel.java b/src/com/sun/apoc/manager/profiles/AssignTableModel.java
new file mode 100755
index 0000000..809fd33
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/AssignTableModel.java
@@ -0,0 +1,127 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.profiles.Applicability;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.profiles.ProfileRepository;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.LinkedList;
+
+public class AssignTableModel extends ProfileModel {
+
+ public AssignTableModel() {
+ super();
+ }
+
+ public void setRequestContext(RequestContext requestContext) {
+ super.setRequestContext(requestContext);
+
+ setActionValue(CHILD_NAME_COLUMN, "APOC.navigation.name");
+ setActionValue(CHILD_PRIO_COLUMN, "APOC.pool.priority");
+ setActionValue(CHILD_AUTHOR_COLUMN, "APOC.profilemgr.author");
+ setActionValue(CHILD_LASTMOD_COLUMN, "APOC.profilemgr.lastMod");
+ }
+
+ public void retrieve(Entity entity) throws ModelControlException {
+ clear();
+
+ try {
+ Entity selectedEntity = entity;
+ int nPrio = 1;
+ LinkedList entities = new LinkedList();
+ Applicability use = Applicability.USER;
+
+ if (entity.getPolicySourceName().equals(EnvironmentConstants.HOST_SOURCE)) {
+ use = Applicability.HOST;
+ }
+
+ // first retrieve all the parent entities
+ while (entity != null) {
+ entities.addFirst(entity);
+ entity = entity.getParent();
+ }
+
+ Iterator it = entities.iterator();
+ while (it.hasNext()) {
+
+ entity = (Entity) it.next();
+ ProfileRepository repository = entity.getProfileRepository();
+ Iterator profiles = repository.getProfiles(use);
+
+ while (profiles.hasNext()) {
+
+ Profile profile = (Profile) profiles.next();
+ Iterator assignedProfiles = selectedEntity.getAssignedProfiles();
+ boolean bIsAlreadyAssigned = false;
+
+ while (assignedProfiles.hasNext() && !bIsAlreadyAssigned) {
+ Profile assignedProfile = (Profile) assignedProfiles.next();
+ bIsAlreadyAssigned = assignedProfile.equals(profile);
+ }
+
+ if (!bIsAlreadyAssigned) {
+
+ appendRow();
+
+ Date date = new Date(profile.getLastModified());
+ SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss z");
+ String sDate = format.format(date);
+
+ setValue(CHILD_NAME_TEXT, profile.getDisplayName());
+ setValue(CHILD_NAME_HREF, profile.getId());
+ setValue(CHILD_LASTMOD_TEXT, sDate);
+ setValue(CHILD_PRIO_TEXT, new Integer(nPrio++));
+
+ if (profile.getAuthor() != null) {
+ setValue(CHILD_AUTHOR_TEXT, profile.getAuthor());
+ }
+ }
+ }
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/AssignTableView.java b/src/com/sun/apoc/manager/profiles/AssignTableView.java
new file mode 100755
index 0000000..c3578ef
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/AssignTableView.java
@@ -0,0 +1,140 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.AlertViewBean;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.table.CCActionTable;
+
+import java.io.IOException;
+import java.util.Enumeration;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+
+
+public class AssignTableView extends RequestHandlingViewBase {
+ public static final String CHILD_PROFILE_TABLE = "ProfileTable";
+ public static final String CHILD_ACTION_MENU = "ActionMenu";
+ public static final String CHILD_ACTION_MENU_HREF = "OkActionHref";
+ public static final String CHILD_IMPORTGROUP = "TabHref";
+
+ protected AssignTableModel m_Model = null;
+
+ public AssignTableView(View parent, String name) {
+ super(parent, name);
+ m_Model = getModel();
+ registerChildren();
+ }
+
+ public AssignTableModel getModel() {
+ if (m_Model == null) {
+ m_Model = (AssignTableModel) getModel(AssignTableModel.class);
+ m_Model.setDocument(getRequestContext().getServletContext(), "/jsp/profiles/AssignTable.xml");
+ }
+
+ return m_Model;
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_PROFILE_TABLE, CCActionTable.class);
+ registerChild(CHILD_ACTION_MENU_HREF, CCHref.class);
+ m_Model.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_PROFILE_TABLE)) {
+ CCActionTable child = new CCActionTable(this, m_Model, name);
+ return child;
+ }
+ else if (name.equals(CHILD_ACTION_MENU_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (m_Model.isChildSupported(name)) {
+ return m_Model.createChild(this, name);
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleOkActionHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ try {
+ m_Model.retrieve(Toolbox2.getSelectedEntity());
+ ((CCActionTable) getChild(CHILD_PROFILE_TABLE)).restoreStateData();
+ updateSelections();
+ m_Model.assign();
+ }
+ catch (ModelControlException mce) {
+ Toolbox2.prepareErrorDisplay(mce,
+ getRootView().getChild(AlertViewBean.CHILD_ALERT),
+ getRootView().getChild(AlertViewBean.CHILD_STACKTRACE));
+ }
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ m_Model.retrieve(Toolbox2.getSelectedEntity());
+ }
+
+ private void updateSelections() {
+ HttpServletRequest request = getRequestContext().getRequest();
+ Enumeration aParamNamesEnum = request.getParameterNames();
+
+ while (aParamNamesEnum.hasMoreElements()) {
+ String sParamName = (String) aParamNamesEnum.nextElement();
+ int nOptionPos = sParamName.indexOf(CCActionTable.CHILD_SELECTION_CHECKBOX);
+
+ if (nOptionPos != -1) {
+ String sParamValue = request.getParameter(sParamName);
+ String sRowNumber = sParamName.substring(nOptionPos+CCActionTable.CHILD_SELECTION_CHECKBOX.length());
+
+ if (sRowNumber.indexOf(".")==-1) {
+ m_Model.setRowSelected(Integer.parseInt(sRowNumber), Boolean.valueOf(sParamValue).booleanValue());
+ }
+ }
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/AssignedAboveTableModel.java b/src/com/sun/apoc/manager/profiles/AssignedAboveTableModel.java
new file mode 100755
index 0000000..022ff08
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/AssignedAboveTableModel.java
@@ -0,0 +1,114 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.entities.Leaf;
+import com.sun.apoc.spi.entities.Role;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.web.ui.model.CCActionTableModelInterface;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.LinkedList;
+
+public class AssignedAboveTableModel extends ProfileModel {
+
+ public static final String CHILD_ASSIGNEDTO_TEXT = "AssignedToText";
+ public static final String CHILD_ASSIGNEDTO_COLUMN = "AssignedToColumn";
+
+ public AssignedAboveTableModel() {
+ super();
+ }
+
+ public void setRequestContext(RequestContext requestContext) {
+ super.setRequestContext(requestContext);
+
+ setActionValue(CHILD_NAME_COLUMN, "APOC.navigation.name");
+ setActionValue(CHILD_PRIO_COLUMN, "APOC.pool.priority");
+ setActionValue(CHILD_ASSIGNEDTO_COLUMN, "Assigned To");
+
+ setPrimarySortName(CHILD_PRIO_TEXT);
+ setPrimarySortOrder(CCActionTableModelInterface.DESCENDING);
+ }
+
+ public void retrieve(Entity entity) throws ModelControlException {
+ clear();
+ if (entity==null) {
+ return;
+ }
+
+ try {
+ int nPrio = 1;
+ LinkedList parents = new LinkedList();
+
+ if (entity instanceof Leaf) {
+ Iterator memberships = ((Leaf) entity).getMemberships();
+ while (memberships.hasNext()) {
+ Role role = (Role) memberships.next();
+ parents.add(0,role);
+ }
+ }
+
+ while ((entity=entity.getParent())!=null) {
+ parents.add(0,entity);
+ }
+
+ for (int nParentRunner=0; nParentRunner<parents.size(); nParentRunner++) {
+
+ Iterator assignedProfiles = ((Entity)parents.get(nParentRunner)).getAssignedProfiles();
+
+ while (assignedProfiles.hasNext()) {
+ Profile profile = (Profile) assignedProfiles.next();
+
+ appendRow();
+
+ setValue(CHILD_NAME_TEXT, profile.getDisplayName());
+ setValue(CHILD_NAME_HREF, profile.getId());
+ setValue(CHILD_PRIO_TEXT, new Integer(nPrio++));
+ setValue(CHILD_ASSIGNEDTO_TEXT, Toolbox2.getParentagePath((Entity)parents.get(nParentRunner), false, true, "/"));
+ }
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/AssignedAboveTableView.java b/src/com/sun/apoc/manager/profiles/AssignedAboveTableView.java
new file mode 100755
index 0000000..9ea21f5
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/AssignedAboveTableView.java
@@ -0,0 +1,130 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.table.CCActionTable;
+import java.io.IOException;
+import java.util.Map;
+import javax.servlet.ServletException;
+
+public class AssignedAboveTableView extends RequestHandlingViewBase {
+ public static final String CHILD_PROFILE_TABLE = "AssignedAboveTable";
+ public static final String CHILD_OPENEDITOR = "ConditionalOpenEditor";
+ public static final String CHILD_HIDDEN_PROFILE = "SelectedProfile";
+
+ protected AssignedAboveTableModel m_Model = null;
+ private String m_pageModelName;
+
+ public AssignedAboveTableView(View parent, String name) throws ModelControlException {
+ super(parent, name);
+ m_Model = (AssignedAboveTableModel) getModel(AssignedAboveTableModel.class);
+ m_Model.setDocument(getRequestContext().getServletContext(), "/jsp/profiles/AssignedAboveTable.xml");
+ m_Model.retrieve(Toolbox2.getSelectedEntity());
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_PROFILE_TABLE, CCActionTable.class);
+ registerChild(CHILD_OPENEDITOR, CCStaticTextField.class);
+ registerChild(CHILD_HIDDEN_PROFILE, CCHiddenField.class);
+ m_Model.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_PROFILE_TABLE)) {
+ CCActionTable child = new CCActionTable(this, m_Model, name);
+ return child;
+ }
+ else if (name.equals(CHILD_OPENEDITOR)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, "");
+ return child;
+ }
+ else if (name.equals(CHILD_HIDDEN_PROFILE)) {
+ CCHiddenField child = new CCHiddenField(this, name, "");
+ child.setElementId("SelectedProfileCopyMoveWizard");
+ return child;
+ }
+ else if (m_Model.isChildSupported(name)) {
+ return m_Model.createChild(this, name);
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleNameHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public boolean beginChildDisplay(ChildDisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+
+ if (event.getChildName().equals(CHILD_PROFILE_TABLE)) {
+ int nSize = m_Model.getSize();
+ int nMaxRows = m_Model.getMaxRows();
+ String sQuery = getRequestContext().getRequest().getQueryString();
+
+ if ((sQuery != null) && (sQuery.indexOf(CCActionTable.CHILD_PAGINATION_HREF) != -1)) {
+ getRootView().setPageSessionAttribute("userPagination", new Boolean(true));
+ }
+
+ Object userPagination = getRootView().getPageSessionAttribute("userPagination");
+
+ m_Model.setShowPaginationIcon(nSize > nMaxRows);
+ m_Model.setShowPaginationControls(nSize > (nMaxRows * 5));
+
+ if ((userPagination == null)) {
+ String sChildName = getChild(CHILD_PROFILE_TABLE).getQualifiedName() + ".stateData";
+ Map stateData = (Map) getRootView().getPageSessionAttribute(sChildName);
+
+ if (stateData != null) {
+ stateData.put("showPaginationControls", new Boolean((nSize > (nMaxRows * 5))));
+ }
+ }
+ }
+
+ return true;
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/AssignedTableModel.java b/src/com/sun/apoc/manager/profiles/AssignedTableModel.java
new file mode 100755
index 0000000..21368da
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/AssignedTableModel.java
@@ -0,0 +1,105 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.web.ui.model.CCActionTableModelInterface;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Iterator;
+
+public class AssignedTableModel extends ProfileModel {
+
+ public AssignedTableModel() {
+ super();
+ }
+
+ public void setRequestContext(RequestContext requestContext) {
+ super.setRequestContext(requestContext);
+
+ setActionValue(CHILD_NAME_COLUMN, "APOC.navigation.name");
+ setActionValue(CHILD_PRIO_COLUMN, "APOC.pool.priority");
+ setActionValue(CHILD_AUTHOR_COLUMN, "APOC.profilemgr.author");
+ setActionValue(CHILD_LASTMOD_COLUMN, "APOC.profilemgr.lastMod");
+
+ setPrimarySortName(CHILD_PRIO_TEXT);
+ setPrimarySortOrder(CCActionTableModelInterface.DESCENDING);
+ }
+
+ public void retrieve(Entity entity) throws ModelControlException {
+ clear();
+
+ try {
+ int nPrio = 1;
+
+ if (entity==null) {
+ String[] sources = Toolbox2.getPolicyManager().getSources();
+ if (sources.length > 0) {
+ entity=Toolbox2.getPolicyManager().getRootEntity(sources[0]);
+ }
+ }
+
+ Iterator assignedProfiles = entity.getAssignedProfiles();
+
+ while (assignedProfiles.hasNext()) {
+ Profile profile = (Profile) assignedProfiles.next();
+
+ appendRow();
+
+ Date date = new Date(profile.getLastModified());
+ SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss z");
+ String sDate = format.format(date);
+
+ setValue(CHILD_NAME_TEXT, profile.getDisplayName());
+ setValue(CHILD_NAME_HREF, profile.getId());
+ setValue(CHILD_PRIO_TEXT, new Integer(nPrio++));
+ setValue(CHILD_LASTMOD_TEXT, sDate);
+ if (profile.getAuthor() != null) {
+ setValue(CHILD_AUTHOR_TEXT, profile.getAuthor());
+ }
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/AssignedTableView.java b/src/com/sun/apoc/manager/profiles/AssignedTableView.java
new file mode 100755
index 0000000..9ee0051
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/AssignedTableView.java
@@ -0,0 +1,411 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.iplanet.jato.util.HtmlUtil;
+import com.iplanet.jato.view.BasicCommandField;
+import com.iplanet.jato.view.DisplayFieldImpl;
+
+import com.sun.apoc.manager.AlertViewBean;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.EntityContentViewBean;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.table.CCActionTable;
+
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.model.CCWizardWindowModel;
+import com.sun.web.ui.model.CCWizardWindowModelInterface;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCCheckBox;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.wizard.CCWizardWindow;
+
+import java.io.ByteArrayOutputStream;
+
+import java.io.IOException;
+
+import java.util.Enumeration;
+import java.util.Map;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+public class AssignedTableView extends RequestHandlingViewBase {
+ public static final String CHILD_PROFILE_TABLE = "AssignedTable";
+ public static final String CHILD_ACTION_MENU = "ActionMenu";
+ public static final String CHILD_ACTION_MENU_HREF = "ActionMenuHref";
+ public static final String CHILD_IMPORTGROUP = "TabHref";
+ public static final String CHILD_OPENEDITOR = "ConditionalOpenEditor";
+ public static final String NEW_ACTION = "0";
+ public static final String RENAME_ACTION = "1";
+ public static final String EDITLOC_ACTION = "2";
+ public static final String EDITPRIOS_ACTION = "3";
+ public static final String SHOWALL_ACTION = "4";
+ public static final String IMPORT_ACTION = "5";
+ public static final String EXPORT_ACTION = "6";
+
+ public static CopyMoveWizardPageModel m_wizardPageModel;
+ public static final String WIZARDPAGEMODELNAME = "copyMovePageModelName";
+ public static final String WIZARDPAGEMODELNAME_PREFIX = "CopyMoveWizardPageModel";
+ public static final String WIZARDIMPLNAME = "copyMoveWizardImplName";
+ public static final String WIZARDIMPLNAME_PREFIX = "CopyMoveWizardImpl";
+ public static final String CHILD_WIZARDWINDOW = "copyMoveWizardWindow";
+ public static final String CHILD_FRWD_TO_CMDCHILD = "copyMoveForwardToVb";
+ public static final String CHILD_HIDDEN_PROFILE = "SelectedProfile";
+
+ protected AssignedTableModel m_Model = null;
+ private String m_pageModelName;
+ private String m_wizardImplName;
+ private boolean m_wizardLaunched = false;
+
+ public AssignedTableView(View parent, String name) {
+ super(parent, name);
+ m_Model = getModel();
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_PROFILE_TABLE, CCActionTable.class);
+ registerChild(CHILD_ACTION_MENU_HREF, CCHref.class);
+ registerChild(CHILD_OPENEDITOR, CCStaticTextField.class);
+ registerChild(CHILD_WIZARDWINDOW, CCWizardWindow.class);
+ registerChild(CHILD_FRWD_TO_CMDCHILD, BasicCommandField.class);
+ registerChild(CHILD_HIDDEN_PROFILE, CCHiddenField.class);
+ m_Model.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_PROFILE_TABLE)) {
+ CCActionTable child = new CCActionTable(this, m_Model, name);
+ return child;
+ }
+ else if (name.equals(CHILD_ACTION_MENU_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_OPENEDITOR)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, "");
+ return child;
+ }
+ else if (name.equals(CHILD_WIZARDWINDOW)) {
+ Boolean launched = (Boolean) getRootView().getPageSessionAttribute("COPYMOVEWIZARDLAUNCHED");
+ boolean init = launched == null || launched.booleanValue() == false;
+ CCWizardWindowModel wizWinModel = createModel(init);
+ CCWizardWindow child = new CCWizardWindow(this, wizWinModel, name, null);
+ child.setDisabled(!init);
+ return child;
+ } else if (name.equals(CHILD_FRWD_TO_CMDCHILD)) {
+ BasicCommandField bcf = new BasicCommandField(this, name);
+ return bcf;
+ }
+ else if (name.equals(CHILD_HIDDEN_PROFILE)) {
+ CCHiddenField child = new CCHiddenField(this, name, "");
+ child.setElementId("SelectedProfileCopyMoveWizard");
+ return child;
+ }
+ else if (m_Model.isChildSupported(name)) {
+ return m_Model.createChild(this, name);
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleActionMenuHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ View command = ((ContainerView) getParent()).getChild(EntityContentViewBean.CHILD_COMMAND_HIDDEN);
+ View parameters = ((ContainerView) getParent()).getChild(EntityContentViewBean.CHILD_PARAMETERS_HIDDEN);
+ String sCommand = (String) ((DisplayFieldImpl)command).getValue();
+ String sParameters = (String) ((DisplayFieldImpl)parameters).getValue();
+
+ try {
+ m_Model.retrieve(Toolbox2.getSelectedEntity());
+ ((CCActionTable) getChild(CHILD_PROFILE_TABLE)).restoreStateData();
+ updateSelections();
+
+ if (sCommand.equals(RENAME_ACTION)) {
+ int nSeparatorPos= sParameters.indexOf(" ");
+ String sProfileId = sParameters.substring(0, nSeparatorPos);
+ String sNewName = sParameters.substring(nSeparatorPos+1);
+ m_Model.rename(sNewName);
+ }
+ else if (sCommand.equals(EXPORT_ACTION)) {
+ // I cannot use the ServletOutputStream directly because an exception thrown
+ // by the SPI will disrupt that stream
+ ByteArrayOutputStream streamCache = new ByteArrayOutputStream();
+ m_Model.exportGroup(Toolbox2.decode(sParameters), streamCache);
+
+ String profileSource = Toolbox2.getSelectedEntity().getPolicySourceName();
+ HttpServletResponse response = getRequestContext().getResponse();
+ response.setHeader("Content-Type", "application/octet-stream");
+ // browsers cut files short starting with the first whitespace
+ // so we replace spaces with underscores to avoid this (#6233022#)
+ response.setHeader("Content-Disposition", "attachment; filename=" +
+ Toolbox2.getDisplayName(profileSource, Toolbox2.decode(sParameters)).replace(' ','_') + ".zip;");
+
+ ServletOutputStream stream = response.getOutputStream();
+ stream.write(streamCache.toByteArray());
+ stream.flush();
+ stream.close();
+ }
+ }
+ catch (ModelControlException mce) {
+ Toolbox2.prepareErrorDisplay(mce,
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_ALERT),
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_STACKTRACE));
+ }
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleAssignButtonRequest(RequestInvocationEvent event) throws ServletException, IOException {
+ try {
+ m_Model.retrieve(Toolbox2.getSelectedEntity());
+ ((CCActionTable) getChild(CHILD_PROFILE_TABLE)).restoreStateData();
+ updateSelections();
+ m_Model.assign();
+ }
+ catch (ModelControlException mce) {
+ Toolbox2.prepareErrorDisplay(mce,
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_ALERT),
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_STACKTRACE));
+ }
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleUnassignButtonRequest(RequestInvocationEvent event) throws ServletException, IOException {
+ try {
+ m_Model.retrieve(Toolbox2.getSelectedEntity());
+ ((CCActionTable) getChild(CHILD_PROFILE_TABLE)).restoreStateData();
+ updateSelections();
+ m_Model.unassign();
+ }
+ catch (ModelControlException mce) {
+ Toolbox2.prepareErrorDisplay(mce,
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_ALERT),
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_STACKTRACE));
+ }
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleDeleteButtonRequest(RequestInvocationEvent event) throws ServletException, IOException {
+ try {
+ m_Model.retrieve(Toolbox2.getSelectedEntity());
+ ((CCActionTable) getChild(CHILD_PROFILE_TABLE)).restoreStateData();
+ updateSelections();
+ m_Model.destroy();
+ }
+ catch (ModelControlException mce) {
+ Toolbox2.prepareErrorDisplay(mce,
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_ALERT),
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_STACKTRACE));
+ }
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleNameHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ CCButton deleteButton = (CCButton)getChild("DeleteButton");
+ String delAlert= Toolbox2.getI18n("APOC.profile.assigned.delete");
+ deleteButton.setExtraHtml("onClick= \"javascript:allowSubmit(confirm('" + delAlert + "'));\"");
+ setDisplayFieldValue(CHILD_ACTION_MENU, "0");
+ m_Model.retrieve(Toolbox2.getSelectedEntity());
+ // Ensure that the page session attributes contain the
+ // unique model name and WizardImpl name
+ getRootView().setPageSessionAttribute(WIZARDPAGEMODELNAME,
+ getWizardPageModelName(WIZARDPAGEMODELNAME_PREFIX));
+ getRootView().setPageSessionAttribute(WIZARDIMPLNAME,
+ getWizardImplName(WIZARDIMPLNAME_PREFIX));
+
+ getRootView().setPageSessionAttribute("COPYMOVEWIZARDLAUNCHED",
+ new Boolean(m_wizardLaunched));
+ ((CCWizardWindow)getChild(CHILD_WIZARDWINDOW)).setDisabled(m_wizardLaunched);
+ }
+
+ public boolean beginChildDisplay(ChildDisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ if (event.getChildName().equals(CHILD_PROFILE_TABLE)) {
+
+ int nSize = m_Model.getSize();
+ int nMaxRows = m_Model.getMaxRows();
+ String sQuery = getRequestContext().getRequest().getQueryString();
+
+ if ((sQuery != null) && (sQuery.indexOf(CCActionTable.CHILD_PAGINATION_HREF) != -1)) {
+ getRootView().setPageSessionAttribute("userPagination", new Boolean(true));
+ }
+
+ Object userPagination = getRootView().getPageSessionAttribute("userPagination");
+
+ m_Model.setShowPaginationIcon(nSize > nMaxRows);
+ m_Model.setShowPaginationControls(nSize > (nMaxRows * 5));
+
+ if ((userPagination == null)) {
+ String sChildName = getChild(CHILD_PROFILE_TABLE).getQualifiedName() + ".stateData";
+ Map stateData = (Map) getRootView().getPageSessionAttribute(sChildName);
+
+ if (stateData != null) {
+ stateData.put("showPaginationControls", new Boolean((nSize > (nMaxRows * 5))));
+ }
+ }
+ }
+
+ return true;
+ }
+
+ public void handleCopyMoveWizardWindowRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ m_wizardLaunched = true;
+ getRootView().forwardTo(getRequestContext());
+ }
+
+
+ public void handleCopyMoveForwardToVbRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ m_wizardLaunched = false;
+ getRootView().forwardTo(getRequestContext());
+ }
+
+
+ private String getWizardPageModelName(String prefix) {
+
+ if (m_pageModelName == null) {
+ m_pageModelName = (String)
+ getRootView().getPageSessionAttribute(WIZARDPAGEMODELNAME);
+ if (m_pageModelName == null) {
+ m_pageModelName = prefix + "_" + HtmlUtil.getUniqueValue();
+ getRootView().setPageSessionAttribute(WIZARDPAGEMODELNAME, m_pageModelName);
+ }
+ }
+
+ return m_pageModelName;
+ }
+
+ private String getWizardImplName(String prefix) {
+
+ if (m_wizardImplName == null) {
+ m_wizardImplName =
+ (String)getRootView().getPageSessionAttribute(WIZARDIMPLNAME);
+ if (m_wizardImplName == null) {
+ m_wizardImplName = prefix + "_" + HtmlUtil.getUniqueValue();
+ getRootView().setPageSessionAttribute(WIZARDIMPLNAME, m_wizardImplName);
+ }
+ }
+
+ return m_wizardImplName;
+ }
+
+
+ private CCWizardWindowModel createModel(boolean init) {
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+
+ CCWizardWindowModel wizWinModel = new CCWizardWindowModel();
+ wizWinModel.clear();
+ if (init) {
+ wizWinModel.setValue(CCWizardWindowModelInterface.MASTHEAD_ALT,
+ "APOC.masthead.altText");
+ wizWinModel.setValue(CCWizardWindowModelInterface.BASENAME,
+ Constants.RES_BASE_NAME);
+ wizWinModel.setValue(CCWizardWindowModelInterface.BUNDLEID,
+ "apocBundle");
+ wizWinModel.setValue(CCWizardWindowModelInterface.TITLE,
+ "APOC.wiz.copy.title");
+ wizWinModel.setValue(CCWizardWindowModelInterface.WINDOW_HEIGHT,
+ new Integer(594));
+ wizWinModel.setValue(CCWizardWindowModelInterface.WINDOW_WIDTH,
+ new Integer(825));
+
+ wizWinModel.setValue(
+ CCWizardWindowModelInterface.WIZARD_REFRESH_CMDCHILD,
+ getQualifiedName() + "." + CHILD_FRWD_TO_CMDCHILD);
+
+ wizWinModel.setValue(
+ CCWizardWindowModelInterface.WIZARD_CLASS_NAME,
+ "com.sun.apoc.manager.profiles.CopyMoveWizardImpl");
+
+ wizWinModel.setValue(CCWizardWindowModelInterface.WIZARD_NAME,
+ getWizardImplName(WIZARDIMPLNAME_PREFIX));
+
+ wizWinModel.setValue(WIZARDPAGEMODELNAME,
+ getWizardPageModelName(WIZARDPAGEMODELNAME_PREFIX));
+
+ }
+
+ return wizWinModel;
+ }
+
+ private void updateSelections() {
+ HttpServletRequest request = getRequestContext().getRequest();
+ Enumeration aParamNamesEnum = request.getParameterNames();
+
+ while (aParamNamesEnum.hasMoreElements()) {
+ String sParamName = (String) aParamNamesEnum.nextElement();
+ int nOptionPos = sParamName.indexOf(CCActionTable.CHILD_SELECTION_CHECKBOX);
+
+ if (nOptionPos != -1) {
+ String sParamValue = request.getParameter(sParamName);
+ String sRowNumber = sParamName.substring(nOptionPos+CCActionTable.CHILD_SELECTION_CHECKBOX.length());
+
+ if (sRowNumber.indexOf(".")==-1) {
+ m_Model.setRowSelected(Integer.parseInt(sRowNumber), Boolean.valueOf(sParamValue).booleanValue());
+ }
+ }
+ }
+ }
+
+ private AssignedTableModel getModel() {
+ if (m_Model == null) {
+ m_Model = (AssignedTableModel) getModel(AssignedTableModel.class);
+ m_Model.setDocument(getRequestContext().getServletContext(), "/jsp/profiles/AssignedTable.xml");
+ m_Model.setSelectionType(m_Model.MULTIPLE);
+ }
+
+ return m_Model;
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/AssigneesTableModel.java b/src/com/sun/apoc/manager/profiles/AssigneesTableModel.java
new file mode 100644
index 0000000..7c3c496
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/AssigneesTableModel.java
@@ -0,0 +1,163 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.web.ui.model.CCActionTableModel;
+import java.util.ArrayList;
+import java.util.Iterator;
+import javax.servlet.http.HttpSession;
+
+public class AssigneesTableModel extends CCActionTableModel {
+
+ public static final String NAME = "OrganizationName";
+ public static final String LOCATION = "LocationValue";
+ public static final String ENTITY = "Entity";
+
+ private ProfileWindowModel mEditorModel = null;
+
+ public AssigneesTableModel() {
+ super(RequestManager.getRequestContext().getServletContext(),
+ "/jsp/profiles/AssigneesTable.xml");
+ setActionValue("LocationColumn", "APOC.search.path");
+ setActionValue("NameColumn", "APOC.profilewnd.assignees.nameColumn");
+ try {
+ update();
+ } catch (ModelControlException mce) {
+ throw new RuntimeException(mce);
+ }
+ }
+
+ public void update() throws ModelControlException {
+ Profile profile = getEditorModel().getProfile();
+ if (profile != null) {
+ try {
+ getRowList().clear();
+ // Need to ensure that the entity list is always in the same
+ // order, therefore sort them by their IDs before adding to model
+ Iterator it = sortEntities(profile.getAssignedEntities());
+ while(it.hasNext()) {
+ appendRow();
+ Entity entity = (Entity) it.next();
+ setValue(NAME, Toolbox2.getDisplayName(entity));
+ setValue(LOCATION, Toolbox2.getParentagePath(entity, false, false, "/"));
+ setValue(ENTITY, entity);
+ }
+ } catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+ }
+
+ public void assign(String sEntityId, String sEntityType) throws ModelControlException {
+ try {
+ PolicyManager policyManager = Toolbox2.getPolicyManager();
+ Entity entity = policyManager.getEntity(sEntityType, sEntityId);
+ Profile profile = getEditorModel().getProfile();
+ entity.assignProfile(profile);
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ public void unassign() throws ModelControlException {
+ try {
+ int currentLocation = getLocation();
+
+ for (int nModelRunner = 0; nModelRunner < getNumRows(); nModelRunner++) {
+ if (isRowSelected(nModelRunner)) {
+ setLocation(nModelRunner);
+ HttpSession session = RequestManager.getSession();
+ ProfileWindowModel model = (ProfileWindowModel) RequestManager.getRequestContext().getModelManager().getModel(ProfileWindowModel.class);
+ Profile profile = model.getProfile();
+ Entity entity = (Entity) getValue(ENTITY);
+ entity.unassignProfile(profile);
+ setRowSelected(false);
+ }
+ }
+
+ setLocation(currentLocation);
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ protected ProfileWindowModel getEditorModel() {
+ if (mEditorModel == null) {
+ // TODO: Retrieving the request context via the request manager is
+ // not optimal. It would be better to store the request context as
+ // part of the AssigneesTableModel initialization
+ mEditorModel = (ProfileWindowModel) RequestManager.getRequestContext().getModelManager().getModel(ProfileWindowModel.class);
+ }
+ return mEditorModel;
+ }
+
+ private Iterator sortEntities(Iterator it) {
+ ArrayList sortedIds = new ArrayList();
+ ArrayList sortEntities = new ArrayList();
+ while(it.hasNext()) {
+ Entity entity = (Entity)it.next();
+ String id = entity.getId();
+ if (sortedIds.size() == 0) {
+ sortedIds.add(id);
+ sortEntities.add(entity);
+ continue;
+ }
+ for(int i = 0; i < sortedIds.size(); i++) {
+ String sortedId = (String)sortedIds.get(i);
+ if(id.compareToIgnoreCase(sortedId) <= 0) {
+ sortedIds.add(i, id);
+ sortEntities.add(i, entity);
+ break;
+ } else if(i == (sortedIds.size() - 1)) {
+ sortedIds.add(id);
+ sortEntities.add(entity);
+ break;
+ }
+ }
+ }
+ return sortEntities.iterator();
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/profiles/AssigneesViewBean.java b/src/com/sun/apoc/manager/profiles/AssigneesViewBean.java
new file mode 100644
index 0000000..22330b4
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/AssigneesViewBean.java
@@ -0,0 +1,295 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.AlertViewBean;
+import com.sun.apoc.manager.ProfileWindowViewBean;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.profiles.Applicability;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.web.ui.model.CCActionTableModel;
+import com.sun.web.ui.model.CCActionTableModelInterface;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.table.CCActionTable;
+import java.io.IOException;
+import java.util.Enumeration;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+public class AssigneesViewBean extends RequestHandlingViewBase {
+
+ public static final String CHILD_PAGETITLE = "PageTitle";
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_TABLE = "ActionTable";
+ public static final String CHILD_ENTITYID_HIDDEN = "AssigneeEntityId";
+ public static final String CHILD_ENTITYTYPE_HIDDEN = "AssigneeEntityType";
+ public static final String CHILD_ENTITYID_TEXT = "JSEntityId";
+ public static final String CHILD_ENTITYTYPE_TEXT = "JSEntityType";
+ public static final String CHILD_READONLY = "JSReadOnly";
+ public static final String CHILD_ASSIGN_HREF = "AssignHref";
+ public static final String ASSIGNEES_MODEL = "AssigneesModel";
+
+ private CCPageTitleModel m_titleModel = null;
+ private CCActionTableModel m_tableModel = null;
+ private ProfileWindowModel mEditorModel = null;
+
+ public AssigneesViewBean(View parent, String name) {
+ super(parent, name);
+ registerChildren();
+ }
+
+ public void handleAssignHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ try {
+ String sEntityId = (String) ((CCHiddenField)getChild("AssigneeEntityId")).getValue();
+ String sEntityType = (String) ((CCHiddenField)getChild("AssigneeEntityType")).getValue();
+ //TPF_TODO: don't like downcasts
+ ((AssigneesTableModel)getTableModel()).assign(Toolbox2.decode(sEntityId), sEntityType);
+ ((AssigneesTableModel)getTableModel()).update();
+ }
+ catch (ModelControlException mce) {
+ Toolbox2.prepareErrorDisplay(mce,
+ getChild(CHILD_ALERT),
+ getChild(CHILD_STACKTRACE));
+ }
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleUnassignButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ try {
+ ((CCActionTable) getChild(CHILD_TABLE)).restoreStateData();
+ updateSelections();
+ //TPF_TODO: don't like downcasts
+ ((AssigneesTableModel)getTableModel()).unassign();
+ ((AssigneesTableModel)getTableModel()).update();
+ }
+ catch (ModelControlException mce) {
+ Toolbox2.prepareErrorDisplay(mce,
+ getChild(AlertViewBean.CHILD_ALERT),
+ getChild(AlertViewBean.CHILD_STACKTRACE));
+ }
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleCloseButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ CCStaticTextField child = (CCStaticTextField)((ProfileWindowViewBean)getViewBean(ProfileWindowViewBean.class)).getChild(ProfileWindowViewBean.CHILD_TAB_CHANGE_SCRIPT);
+ child.setValue("closeEditorAndRefresh();");
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_PAGETITLE, CCPageTitle.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_TABLE, CCActionTable.class);
+ registerChild(CHILD_ENTITYID_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_ENTITYTYPE_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_ENTITYID_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_ENTITYTYPE_TEXT, CCStaticTextField.class);
+ registerChild(CHILD_READONLY, CCStaticTextField.class);
+ registerChild(CHILD_ASSIGN_HREF, CCHref.class);
+ getPageTitleModel().registerChildren(this);
+ getTableModel().registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_PAGETITLE)) {
+ CCPageTitle child = new CCPageTitle(this, getPageTitleModel(), name);
+ Toolbox2.setPageTitleHelp(getPageTitleModel(), "APOC.profilewnd.assignees.title",
+ "APOC.profilewnd.assignees.help", "gbgkr.html");
+ return child;
+
+ } else if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ } else if (name.equals(CHILD_STACKTRACE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_TABLE)) {
+ CCActionTable child = new CCActionTable(this, getTableModel(), name);
+ return child;
+
+ } else if (name.equals(CHILD_ENTITYID_TEXT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ try {
+ //TPF_TODO: move into model
+ Profile profile = getEditorModel().getProfile();
+ if (profile != null) {
+ Entity entity = profile.getProfileRepository().getEntity();
+ child.setValue(Toolbox2.encode(entity.getId()));
+ }
+ } catch (SPIException se) {
+ throw new RuntimeException(se);
+ }
+ return child;
+
+ } else if (name.equals(CHILD_READONLY)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+
+ } else if (name.equals(CHILD_ENTITYTYPE_TEXT)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ //TPF_TODO: move into model
+ Profile profile = getEditorModel().getProfile();
+ if (profile != null) {
+ Applicability use = profile.getApplicability();
+
+ if (use.equals(Applicability.HOST)) {
+ child.setValue(EnvironmentConstants.HOST_SOURCE);
+ } else if (use.equals(Applicability.USER)){
+ child.setValue(EnvironmentConstants.USER_SOURCE);
+ }
+ }
+
+ return child;
+
+ } else if (name.equals(CHILD_ASSIGN_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+
+ } else if (getPageTitleModel().isChildSupported(name)) {
+ return getPageTitleModel().createChild(this, name);
+
+ } else if (getTableModel().isChildSupported(name)) {
+ return getTableModel().createChild(this, name);
+
+ } else if (name.equals(CHILD_ENTITYID_HIDDEN) || name.equals(CHILD_ENTITYTYPE_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ public boolean beginActionTableDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCActionTable table = (CCActionTable) getChild(event.getChildName());
+ boolean bIsReadOnly = false;
+
+ try {
+ bIsReadOnly = Toolbox2.getSelectedEntity().getProfileRepository().isReadOnly();
+ } catch (SPIException se) {
+ throw new ServletException(se);
+ }
+ if (bIsReadOnly) {
+ table.getModel().setSelectionType(CCActionTableModelInterface.NONE);
+ }
+ return true;
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+ return ((alert.getSummary() != null) && (alert.getSummary().length() > 0));
+ }
+
+ public boolean beginJSReadOnlyDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCStaticTextField text = (CCStaticTextField) getChild(CHILD_READONLY);
+ boolean bIsReadOnly = false;
+
+ try {
+ bIsReadOnly = Toolbox2.getSelectedEntity().getProfileRepository().isReadOnly();
+ } catch (SPIException se) {
+ throw new ServletException(se);
+ }
+
+ text.setValue(Boolean.toString(bIsReadOnly));
+ return true;
+ }
+
+ private void updateSelections() {
+ HttpServletRequest request = getRequestContext().getRequest();
+ Enumeration aParamNamesEnum = request.getParameterNames();
+ while (aParamNamesEnum.hasMoreElements()) {
+ String sParamName = (String) aParamNamesEnum.nextElement();
+ int nOptionPos = sParamName.indexOf(CCActionTable.CHILD_SELECTION_CHECKBOX);
+
+ if (nOptionPos != -1) {
+ String sParamValue = request.getParameter(sParamName);
+ String sRowNumber = sParamName.substring(nOptionPos+CCActionTable.CHILD_SELECTION_CHECKBOX.length());
+ if (sRowNumber.indexOf(".")==-1) {
+ getTableModel().setRowSelected(Integer.parseInt(sRowNumber), Boolean.valueOf(sParamValue).booleanValue());
+ }
+
+ }
+ }
+ }
+
+ protected CCPageTitleModel getPageTitleModel() {
+ if (m_titleModel == null) {
+ m_titleModel = new CCPageTitleModel(
+ RequestManager.getRequestContext().getServletContext(),
+ "/jsp/profiles/AssigneesPageTitle.xml");
+ }
+ return m_titleModel;
+ }
+
+ protected CCActionTableModel getTableModel() {
+ if (m_tableModel == null) {
+ m_tableModel = new AssigneesTableModel();
+ }
+ return m_tableModel;
+ }
+
+ protected ProfileWindowModel getEditorModel() {
+ if (mEditorModel == null) {
+ mEditorModel = (ProfileWindowModel) getModel(ProfileWindowModel.class);
+ }
+ return mEditorModel;
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/profiles/AvailableDomainTableView.java b/src/com/sun/apoc/manager/profiles/AvailableDomainTableView.java
new file mode 100755
index 0000000..7845655
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/AvailableDomainTableView.java
@@ -0,0 +1,77 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.sun.apoc.manager.AlertViewBean;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.profiles.Applicability;
+import com.sun.web.ui.view.html.CCButton;
+
+public class AvailableDomainTableView extends AvailableTableView {
+
+ public AvailableDomainTableView(View parent, String name) {
+ super(parent, name);
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ CCButton deleteButton = (CCButton)getChild("DeleteButton");
+ String delAlert= Toolbox2.getI18n("APOC.profile.unassigned.delete");
+ deleteButton.setExtraHtml("onClick= \"javascript:if (confirm('" + delAlert + "')) {allowSubmit(false); handleSelection(this); return false;} else {allowSubmit(false);return false;} \"");
+ setDisplayFieldValue(CHILD_ACTION_MENU, "0");
+ m_Model.fillModel(Applicability.HOST);
+ }
+
+ public boolean beginChildDisplay(ChildDisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+
+ if (event.getChildName().equals("NewButton")) {
+ CCButton button = (CCButton) getChild(event.getChildName());
+ StringBuffer buffer = new StringBuffer();
+ buffer.append("onClick = ")
+ .append("\"allowSubmit(false); ")
+ .append("openWindow(window, null, '/apoc/manager/ProfileWindowFrameset?ProfileWindowFrameset.SelectedProfile=NewProfileDomain', 'ProfileEditorWindow', 600, 1200);\"");
+ button.setExtraHtml(buffer.toString());
+ }
+
+ return true;
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/AvailableOrgTableView.java b/src/com/sun/apoc/manager/profiles/AvailableOrgTableView.java
new file mode 100755
index 0000000..4af9084
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/AvailableOrgTableView.java
@@ -0,0 +1,77 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.sun.apoc.manager.AlertViewBean;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.profiles.Applicability;
+import com.sun.web.ui.view.html.CCButton;
+
+public class AvailableOrgTableView extends AvailableTableView {
+
+ public AvailableOrgTableView(View parent, String name) {
+ super(parent, name);
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ CCButton deleteButton = (CCButton)getChild("DeleteButton");
+ String delAlert= Toolbox2.getI18n("APOC.profile.unassigned.delete");
+ deleteButton.setExtraHtml("onClick= \"javascript:if (confirm('" + delAlert + "')) {allowSubmit(false); handleSelection(this); return false;} else {allowSubmit(false);return false;} \"");
+ setDisplayFieldValue(CHILD_ACTION_MENU, "0");
+ m_Model.fillModel(Applicability.USER);
+ }
+
+ public boolean beginChildDisplay(ChildDisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+
+ if (event.getChildName().equals("NewButton")) {
+ CCButton button = (CCButton) getChild(event.getChildName());
+ StringBuffer buffer = new StringBuffer();
+ buffer.append("onClick = ")
+ .append("\"allowSubmit(false); ")
+ .append("openWindow(window, null, '/apoc/manager/ProfileWindowFrameset?ProfileWindowFrameset.SelectedProfile=NewProfileOrg', 'ProfileEditorWindow', 600, 1200);\"");
+ button.setExtraHtml(buffer.toString());
+ }
+
+ return true;
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/AvailableTableModel.java b/src/com/sun/apoc/manager/profiles/AvailableTableModel.java
new file mode 100755
index 0000000..dab2f87
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/AvailableTableModel.java
@@ -0,0 +1,192 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.profiles.Applicability;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.profiles.ProfileRepository;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+public class AvailableTableModel extends ProfileModel {
+
+ public static final String CHILD_ACCESS_HIDDEN = "AccessHidden";
+
+ private static LinkedList m_allProfiles;
+ private static HashMap m_accessCache;
+ private static Boolean m_organizationRootReadOnly;
+ private static Boolean m_domainRootReadOnly;
+
+ public AvailableTableModel() {
+ super();
+ }
+
+ public void setRequestContext(RequestContext requestContext) {
+ super.setRequestContext(requestContext);
+
+ setActionValue(CHILD_NAME_COLUMN, "APOC.navigation.name");
+ setActionValue(CHILD_AUTHOR_COLUMN, "APOC.profilemgr.author");
+ setActionValue(CHILD_LASTMOD_COLUMN, "APOC.profilemgr.lastMod");
+ }
+
+ public void rename(String sProfileId, String sNewName) throws ModelControlException {
+ try {
+ Profile profile = Toolbox2.getPolicyManager().getProfile(sProfileId);
+ profile.setDisplayName(sNewName);
+ } catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ public void destroy(LinkedList profiles) throws ModelControlException {
+ try {
+ NavigationModel navigationModel = (NavigationModel) m_requestContext.getModelManager().getModel(NavigationModel.class, "NavTree", true, true);
+ Iterator profilesIter = profiles.iterator();
+ while (profilesIter.hasNext()) {
+ String sProfile = (String) profilesIter.next();
+ Profile profile = Toolbox2.getPolicyManager().getProfile(sProfile);
+ ProfileRepository repository = profile.getProfileRepository();
+ Iterator assignedEntities = profile.getAssignedEntities();
+
+ while (assignedEntities.hasNext()) {
+ Entity entity = (Entity) assignedEntities.next();
+ Iterator assignedProfiles= entity.getAssignedProfiles();
+ assignedProfiles.next();
+ navigationModel.setAssignedState(entity, assignedProfiles.hasNext());
+ entity.unassignProfile(profile);
+ }
+
+ repository.destroyProfile(profile);
+ }
+ } catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ public void retrieve(Entity entity) throws ModelControlException {
+ try {
+ m_allProfiles = new LinkedList();
+ m_accessCache = new HashMap();
+ m_organizationRootReadOnly = null;
+ m_domainRootReadOnly = null;
+ Iterator profiles = Toolbox2.getPolicyManager().getAllProfiles();
+ ArrayList sources = new ArrayList(Arrays.asList(Toolbox2.getPolicyManager().getSources()));
+ while (profiles.hasNext()) {
+ Profile profile = (Profile) profiles.next();
+ m_allProfiles.add(profile);
+ if (!m_accessCache.containsKey(profile)) {
+ m_accessCache.put(profile, new Boolean(profile.getProfileRepository().isReadOnly()));
+ if ((sources.contains(EnvironmentConstants.USER_SOURCE))
+ && (m_organizationRootReadOnly==null)
+ && (Toolbox2.getPolicyManager().getRootEntity(EnvironmentConstants.USER_SOURCE).equals(profile.getProfileRepository().getEntity()))){
+ m_organizationRootReadOnly = (Boolean) m_accessCache.get(profile);
+ } else if ((sources.contains(EnvironmentConstants.HOST_SOURCE))
+ && (m_domainRootReadOnly==null)
+ && (Toolbox2.getPolicyManager().getRootEntity(EnvironmentConstants.HOST_SOURCE).equals(profile.getProfileRepository().getEntity()))){
+ m_domainRootReadOnly = (Boolean) m_accessCache.get(profile);
+ }
+ }
+ }
+ if (sources.contains(EnvironmentConstants.USER_SOURCE) && m_organizationRootReadOnly==null) {
+ m_organizationRootReadOnly = new Boolean(Toolbox2.getPolicyManager().getRootEntity(EnvironmentConstants.USER_SOURCE).getProfileRepository().isReadOnly());
+ }
+ if (sources.contains(EnvironmentConstants.HOST_SOURCE) && m_domainRootReadOnly==null) {
+ m_domainRootReadOnly = new Boolean(Toolbox2.getPolicyManager().getRootEntity(EnvironmentConstants.HOST_SOURCE).getProfileRepository().isReadOnly());
+ }
+ } catch (Exception e) {
+ throw new ModelControlException(e);
+ }
+ }
+
+ public void fillModel(Applicability aplicty) throws ModelControlException {
+ clear();
+
+ try {
+ Iterator profiles = m_allProfiles.listIterator();
+ while (profiles.hasNext()) {
+ Profile profile = (Profile) profiles.next();
+ if ( profile.getApplicability().equals(aplicty) ) {
+
+ appendRow();
+ Date date = new Date(profile.getLastModified());
+ SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss z");
+ String sDate = format.format(date);
+
+ setValue(CHILD_NAME_TEXT, profile.getDisplayName());
+ setValue(CHILD_NAME_HREF, profile.getId());
+// setValue(CHILD_NAME_HREF, profile.getId()+"&amp;AccessInfo="+((Boolean)m_accessCache.get(profile)).toString());
+ setValue(CHILD_LASTMOD_TEXT, sDate);
+ setValue(CHILD_ACCESS_HIDDEN, ((Boolean)m_accessCache.get(profile)).toString());
+ if (profile.getAuthor() != null) {
+ setValue(CHILD_AUTHOR_TEXT, profile.getAuthor());
+ }
+ }
+ }
+ } catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ public boolean hasReadOnlyProfile() {
+ Iterator iter = m_accessCache.values().iterator();
+ while (iter.hasNext()) {
+ if (((Boolean)iter.next()).booleanValue()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public boolean isOrganizationRootReadOnly() {
+ return m_organizationRootReadOnly==null ? false : m_organizationRootReadOnly.booleanValue();
+ }
+
+ public boolean isDomainRootReadOnly() {
+ return m_domainRootReadOnly==null ? false : m_domainRootReadOnly.booleanValue();
+ }
+
+}
diff --git a/src/com/sun/apoc/manager/profiles/AvailableTableView.java b/src/com/sun/apoc/manager/profiles/AvailableTableView.java
new file mode 100755
index 0000000..4e0e03b
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/AvailableTableView.java
@@ -0,0 +1,325 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.DisplayFieldImpl;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.iplanet.jato.util.HtmlUtil;
+import com.iplanet.jato.view.BasicCommandField;
+import com.iplanet.jato.view.event.DisplayEvent;
+
+import com.sun.apoc.manager.AlertViewBean;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.table.CCActionTable;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.StringTokenizer;
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.model.CCWizardWindowModel;
+import com.sun.web.ui.model.CCWizardWindowModelInterface;
+import com.sun.web.ui.view.wizard.CCWizardWindow;
+
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+
+abstract public class AvailableTableView extends RequestHandlingViewBase {
+ public static final String CHILD_PROFILE_TABLE = "AvailableTable";
+ public static final String CHILD_ACTION_MENU = "ActionMenu";
+ public static final String CHILD_ACTION_MENU_HREF = "ActionMenuHref";
+ public static final String CHILD_IMPORTGROUP = "TabHref";
+ public static final String NEW_ACTION = "0";
+ public static final String RENAME_ACTION = "1";
+ public static final String EDITLOC_ACTION = "2";
+ public static final String EDITPRIOS_ACTION = "3";
+ public static final String SHOWALL_ACTION = "4";
+ public static final String IMPORT_ACTION = "5";
+ public static final String EXPORT_ACTION = "6";
+ public static final String DELETE_ACTION = "7";
+ protected AvailableTableModel m_Model = null;
+
+ public static CopyMoveWizardPageModel m_wizardPageModel;
+ public static final String WIZARDPAGEMODELNAME = "copyMovePageModelName";
+ public static final String WIZARDPAGEMODELNAME_PREFIX = "CopyMoveWizardPageModel";
+ public static final String WIZARDIMPLNAME = "copyMoveWizardImplName";
+ public static final String WIZARDIMPLNAME_PREFIX = "CopyMoveWizardImpl";
+ public static final String CHILD_WIZARDWINDOW = "copyMoveWizardWindow";
+ public static final String CHILD_FRWD_TO_CMDCHILD = "copyMoveForwardToVb";
+
+ private String m_pageModelName;
+ private String m_wizardImplName;
+ private boolean m_wizardLaunched = false;
+
+ public AvailableTableView(View parent, String name) {
+ super(parent, name);
+ m_Model = getModel();
+ registerChildren();
+ }
+
+ public AvailableTableModel getModel() {
+ if (m_Model == null) {
+ m_Model = (AvailableTableModel) getRequestContext().getModelManager().getModel(AvailableTableModel.class, Integer.toString(hashCode()));
+ m_Model.setDocument(getRequestContext().getServletContext(), "/jsp/profiles/AvailableTable.xml");
+ }
+ return m_Model;
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_PROFILE_TABLE, CCActionTable.class);
+ registerChild(CHILD_ACTION_MENU_HREF, CCHref.class);
+ registerChild(CHILD_WIZARDWINDOW, CCWizardWindow.class);
+ registerChild(CHILD_FRWD_TO_CMDCHILD, BasicCommandField.class);
+ m_Model.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_PROFILE_TABLE)) {
+ CCActionTable child = new CCActionTable(this, m_Model, name);
+ return child;
+ }
+ else if (name.equals(CHILD_ACTION_MENU_HREF)) {
+ CCHref child = new CCHref(this, name, null);
+ return child;
+ }
+ else if (name.equals(CHILD_WIZARDWINDOW)) {
+ Boolean launched = (Boolean) getRootView().getPageSessionAttribute("COPYMOVEWIZARDLAUNCHED");
+ boolean init = launched == null || launched.booleanValue() == false;
+ CCWizardWindowModel wizWinModel = createModel(init);
+ CCWizardWindow child = new CCWizardWindow(this, wizWinModel, name, null);
+ child.setDisabled(!init);
+ return child;
+ } else if (name.equals(CHILD_FRWD_TO_CMDCHILD)) {
+ BasicCommandField bcf = new BasicCommandField(this, name);
+ return bcf;
+ }
+ else if (m_Model.isChildSupported(name)) {
+ return m_Model.createChild(this, name);
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleNameHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleActionMenuHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ // The state data is not used to retrieve the selections of the action table
+ // but the ids of the selected profiles and other data is transfered in an extra
+ // hidden field. This allows increase the speed by nearly factor 2
+ // as we have to retrieve the data only once, after the actions took place
+ View command = ((ContainerView) getParent()).getChild(AvailableView.CHILD_COMMAND_HIDDEN);
+ View parameters = ((ContainerView) getParent()).getChild(AvailableView.CHILD_PARAMETERS_HIDDEN);
+ String sCommand = (String) ((DisplayFieldImpl)command).getValue();
+ String sParameters = (String) ((DisplayFieldImpl)parameters).getValue();
+
+ try {
+ if (sCommand.equals(DELETE_ACTION)) {
+ StringTokenizer tokenizer = new StringTokenizer(sParameters, " ");
+ LinkedList profiles = new LinkedList();
+
+ while (tokenizer.hasMoreTokens()) {
+ String sProfile = tokenizer.nextToken();
+ profiles.add(Toolbox2.decode(sProfile));
+ }
+
+ m_Model.destroy(profiles);
+ }
+ else if (sCommand.equals(RENAME_ACTION)) {
+ int nSeparatorPos= sParameters.indexOf(" ");
+ String sProfileId = sParameters.substring(0, nSeparatorPos);
+ String sNewName = sParameters.substring(nSeparatorPos+1);
+ m_Model.rename(Toolbox2.decode(sProfileId), sNewName);
+ }
+ else if (sCommand.equals(EXPORT_ACTION)) {
+ // I cannot use the ServletOutputStream directly because an exception thrown
+ // by the SPI will disrupt that stream
+ ByteArrayOutputStream streamCache = new ByteArrayOutputStream();
+ m_Model.exportGroup(Toolbox2.decode(sParameters), streamCache);
+
+ String sQuery = getRequestContext().getRequest().getQueryString();
+ String profileSource = EnvironmentConstants.USER_SOURCE;
+ if (sQuery.indexOf("AvailableDomainTableView") != -1) {
+ profileSource = EnvironmentConstants.HOST_SOURCE;
+ }
+ HttpServletResponse response = getRequestContext().getResponse();
+ response.setHeader("Content-Type", "application/octet-stream");
+ response.setHeader("Content-Disposition", "attachment; filename=" + Toolbox2.getDisplayName(profileSource, Toolbox2.decode(sParameters)) + ".zip;");
+
+ ServletOutputStream stream = response.getOutputStream();
+ stream.write(streamCache.toByteArray());
+ stream.flush();
+ stream.close();
+ }
+ }
+ catch (ModelControlException mce) {
+ Toolbox2.prepareErrorDisplay(mce,
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_ALERT),
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_STACKTRACE));
+ }
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleCopyMoveWizardWindowRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ m_wizardLaunched = true;
+ getRootView().forwardTo(getRequestContext());
+ }
+
+
+ public void handleCopyMoveForwardToVbRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ m_wizardLaunched = false;
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public boolean beginChildDisplay(ChildDisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+
+ if (event.getChildName().equals(CHILD_PROFILE_TABLE)) {
+ int nSize = m_Model.getSize();
+ int nMaxRows = m_Model.getMaxRows();
+ String sQuery = getRequestContext().getRequest().getQueryString();
+
+ if ((sQuery != null) && (sQuery.indexOf(CCActionTable.CHILD_PAGINATION_HREF) != -1)) {
+ getRootView().setPageSessionAttribute("userPagination", new Boolean(true));
+ }
+
+ Object userPagination = getRootView().getPageSessionAttribute("userPagination");
+
+ m_Model.setShowPaginationIcon(nSize > nMaxRows);
+ m_Model.setShowPaginationControls(nSize > (nMaxRows * 5));
+
+ if ((userPagination == null)) {
+ String sChildName = getChild(CHILD_PROFILE_TABLE).getQualifiedName() + ".stateData";
+ Map stateData = (Map) getRootView().getPageSessionAttribute(sChildName);
+
+ if (stateData != null) {
+ stateData.put("showPaginationControls", new Boolean((nSize > (nMaxRows * 5))));
+ }
+ }
+ }
+ return true;
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ getRootView().setPageSessionAttribute(WIZARDPAGEMODELNAME, getWizardPageModelName(WIZARDPAGEMODELNAME_PREFIX));
+ getRootView().setPageSessionAttribute(WIZARDIMPLNAME, getWizardImplName(WIZARDIMPLNAME_PREFIX));
+ getRootView().setPageSessionAttribute("COPYMOVEWIZARDLAUNCHED", new Boolean(m_wizardLaunched));
+ ((CCWizardWindow)getChild(CHILD_WIZARDWINDOW)).setDisabled(m_wizardLaunched);
+ }
+
+ private String getWizardPageModelName(String prefix) {
+
+ if (m_pageModelName == null) {
+ m_pageModelName = (String)
+ getRootView().getPageSessionAttribute(WIZARDPAGEMODELNAME);
+ if (m_pageModelName == null) {
+ m_pageModelName = prefix + "_" + HtmlUtil.getUniqueValue();
+ getRootView().setPageSessionAttribute(WIZARDPAGEMODELNAME, m_pageModelName);
+ }
+ }
+
+ return m_pageModelName;
+ }
+
+ private String getWizardImplName(String prefix) {
+
+ if (m_wizardImplName == null) {
+ m_wizardImplName =
+ (String)getRootView().getPageSessionAttribute(WIZARDIMPLNAME);
+ if (m_wizardImplName == null) {
+ m_wizardImplName = prefix + "_" + HtmlUtil.getUniqueValue();
+ getRootView().setPageSessionAttribute(WIZARDIMPLNAME, m_wizardImplName);
+ }
+ }
+
+ return m_wizardImplName;
+ }
+
+
+ private CCWizardWindowModel createModel(boolean init) {
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+
+ CCWizardWindowModel wizWinModel = new CCWizardWindowModel();
+ wizWinModel.clear();
+ if (init) {
+ wizWinModel.setValue(CCWizardWindowModelInterface.MASTHEAD_ALT,
+ "APOC.masthead.altText");
+ wizWinModel.setValue(CCWizardWindowModelInterface.BASENAME,
+ Constants.RES_BASE_NAME);
+ wizWinModel.setValue(CCWizardWindowModelInterface.BUNDLEID,
+ "apocBundle");
+ wizWinModel.setValue(CCWizardWindowModelInterface.TITLE,
+ "APOC.wiz.copy.title");
+ wizWinModel.setValue(CCWizardWindowModelInterface.WINDOW_HEIGHT,
+ new Integer(594));
+ wizWinModel.setValue(CCWizardWindowModelInterface.WINDOW_WIDTH,
+ new Integer(825));
+
+ wizWinModel.setValue(
+ CCWizardWindowModelInterface.WIZARD_REFRESH_CMDCHILD,
+ getQualifiedName() + "." + CHILD_FRWD_TO_CMDCHILD);
+
+ wizWinModel.setValue(
+ CCWizardWindowModelInterface.WIZARD_CLASS_NAME,
+ "com.sun.apoc.manager.profiles.CopyMoveWizardImpl");
+
+ wizWinModel.setValue(CCWizardWindowModelInterface.WIZARD_NAME,
+ getWizardImplName(WIZARDIMPLNAME_PREFIX));
+
+ wizWinModel.setValue(WIZARDPAGEMODELNAME,
+ getWizardPageModelName(WIZARDPAGEMODELNAME_PREFIX));
+
+ }
+
+ return wizWinModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/AvailableView.java b/src/com/sun/apoc/manager/profiles/AvailableView.java
new file mode 100755
index 0000000..71ac237
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/AvailableView.java
@@ -0,0 +1,193 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import javax.servlet.ServletException;
+
+public class AvailableView extends RequestHandlingViewBase {
+ public static final String CHILD_ALERT = "Alert";
+ public static final String CHILD_STACKTRACE = "StackTrace";
+ public static final String CHILD_DOMTABLE_VIEW = "AvailableDomainTableView";
+ public static final String CHILD_ORGTABLE_VIEW = "AvailableOrgTableView";
+ public static final String CHILD_PROFILE_TITLE = "AvailableTitle";
+ public static final String CHILD_RENAME = "RenameMessage";
+ public static final String CHILD_DOM_DISABLE = "ConditionalNewDomainDisable";
+ public static final String CHILD_ORG_DISABLE = "ConditionalNewOrgDisable";
+ public static final String CHILD_HIDDEN_PROFILE = "SelectedProfile";
+
+ public static final String CHILD_COMMAND_HIDDEN = "CommandHidden";
+ public static final String CHILD_PARAMETERS_HIDDEN = "CommandParametersHidden";
+
+ public AvailableView(View parent, String name) {
+ super(parent, name);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ registerChild(CHILD_STACKTRACE, CCStaticTextField.class);
+ registerChild(CHILD_PROFILE_TITLE, CCPageTitle.class);
+ registerChild(CHILD_DOMTABLE_VIEW, AvailableDomainTableView.class);
+ registerChild(CHILD_ORGTABLE_VIEW, AvailableOrgTableView.class);
+ registerChild(CHILD_RENAME, CCStaticTextField.class);
+ registerChild(CHILD_DOM_DISABLE, CCStaticTextField.class);
+ registerChild(CHILD_ORG_DISABLE, CCStaticTextField.class);
+ registerChild(CHILD_COMMAND_HIDDEN, CCHiddenField.class);
+ registerChild(CHILD_PARAMETERS_HIDDEN,CCHiddenField.class);
+ registerChild(CHILD_HIDDEN_PROFILE, CCHiddenField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_ALERT)) {
+ CCAlertInline child = new CCAlertInline(this, name, null);
+ return child;
+ } else if (name.equals(CHILD_STACKTRACE) || name.equals(CHILD_RENAME) ||
+ name.equals(CHILD_DOM_DISABLE) || name.equals(CHILD_ORG_DISABLE)) {
+ CCStaticTextField child = new CCStaticTextField(this, name, null);
+ return child;
+ } else if (name.equals(CHILD_PROFILE_TITLE)) {
+ CCPageTitleModel pageTitleModel = new CCPageTitleModel();
+ Toolbox2.setPageTitleHelp(pageTitleModel, "APOC.sync.result.title",
+ "APOC.profileall.help", "gbgcd.html");
+ CCPageTitle child = new CCPageTitle(this, pageTitleModel, name);
+ return child;
+ } else if (name.equals(CHILD_DOMTABLE_VIEW)) {
+ AvailableDomainTableView child = new AvailableDomainTableView(this, name);
+ return child;
+ } else if (name.equals(CHILD_ORGTABLE_VIEW)) {
+ AvailableOrgTableView child = new AvailableOrgTableView(this, name);
+ return child;
+ } else if (name.equals(CHILD_COMMAND_HIDDEN) || name.equals(CHILD_PARAMETERS_HIDDEN)) {
+ CCHiddenField child = new CCHiddenField(this, name, null);
+ return child;
+ } else if (name.equals(CHILD_HIDDEN_PROFILE)) {
+ CCHiddenField child = new CCHiddenField(this, name, "");
+ child.setElementId("SelectedProfileCopyMoveWizard");
+ return child;
+ } else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ try {
+ AvailableTableModel model = (AvailableTableModel) getRequestContext().getModelManager().getModel(AvailableTableModel.class, Integer.toString(hashCode()));
+ model.retrieve(null);
+ } catch (Exception e) {
+ Toolbox2.prepareErrorDisplay(e, getChild(CHILD_ALERT), getChild(CHILD_STACKTRACE));
+ }
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCAlertInline alert = (CCAlertInline) getChild(CHILD_ALERT);
+
+ if ((alert.getSummary() != null) && (alert.getSummary().length() > 0)) {
+ return true;
+ }
+
+ AvailableTableModel model = (AvailableTableModel) getRequestContext().getModelManager().getModel(AvailableTableModel.class, Integer.toString(hashCode()));
+ boolean bIsReadOnly = model.hasReadOnlyProfile();
+
+ if (bIsReadOnly) {
+ alert.setValue(CCAlertInline.TYPE_INFO);
+ alert.setType(CCAlertInline.TYPE_INFO);
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ alert.setSummary(i18n.getMessage("APOC.policies.info.readonly.maybe"));
+ }
+
+ return bIsReadOnly;
+ }
+
+ public boolean beginDisplayDomainTableDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException, SPIException {
+ PolicyManager policymgr = Toolbox2.getPolicyManager();
+ ArrayList sources = new ArrayList(Arrays.asList(policymgr.getSources()));
+ return sources.contains(EnvironmentConstants.HOST_SOURCE);
+ }
+
+ public boolean beginDisplayOrgTableDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException, SPIException {
+ PolicyManager policymgr = Toolbox2.getPolicyManager();
+ ArrayList sources = new ArrayList(Arrays.asList(policymgr.getSources()));
+ return sources.contains(EnvironmentConstants.USER_SOURCE);
+ }
+
+ public boolean beginConditionalNewDomainDisableDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ AvailableTableModel model = (AvailableTableModel) getRequestContext().getModelManager().getModel(AvailableTableModel.class, Integer.toString(hashCode()));
+ return model.isDomainRootReadOnly();
+ }
+
+ public boolean beginConditionalNewOrgDisableDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ AvailableTableModel model = (AvailableTableModel) getRequestContext().getModelManager().getModel(AvailableTableModel.class, Integer.toString(hashCode()));
+ return model.isOrganizationRootReadOnly();
+ }
+
+ public boolean beginCommandHiddenDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCHiddenField hidden = (CCHiddenField) getChild(event.getChildName());
+ hidden.setValue("");
+ return true;
+ }
+
+ public boolean beginCommandParametersHiddenDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCHiddenField hidden = (CCHiddenField) getChild(event.getChildName());
+ hidden.setValue("");
+ return true;
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/CopyMoveWizard1View.java b/src/com/sun/apoc/manager/profiles/CopyMoveWizard1View.java
new file mode 100644
index 0000000..6867878
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/CopyMoveWizard1View.java
@@ -0,0 +1,221 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCHiddenField;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import com.sun.web.ui.common.CCDebug;
+
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.Toolbox2;
+
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class CopyMoveWizard1View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil{
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "CopyMoveWizard1View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_CONTEXT_LABEL =
+ "SourceContextLabel";
+ public static final String CHILD_CONTEXT =
+ "SourceContext";
+ public static final String CHILD_CONTEXT_BUTTON =
+ "ContextBrowseButton";
+ public static final String CHILD_PROFILE_LABEL =
+ "SourceProfileLabel";
+ public static final String CHILD_PROFILE =
+ "SourceProfile";
+ public static final String CHILD_PROFILE_BUTTON =
+ "ProfileBrowseButton";
+ public static final String CHILD_HIDDEN_PROFILE =
+ "NewSelectedProfile";
+ public static final String CHILD_HIDDEN_CONTEXT =
+ "SelectedContext";
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public CopyMoveWizard1View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ }
+
+ public CopyMoveWizard1View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ registerChildren();
+ }
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_CONTEXT_LABEL, CCLabel.class);
+ registerChild(CHILD_CONTEXT, CCStaticTextField.class);
+ registerChild(CHILD_CONTEXT_BUTTON, CCButton.class);
+ registerChild(CHILD_PROFILE_LABEL, CCLabel.class);
+ registerChild(CHILD_PROFILE, CCStaticTextField.class);
+ registerChild(CHILD_PROFILE_BUTTON, CCButton.class);
+ registerChild(CHILD_HIDDEN_PROFILE, CCHiddenField.class);
+ registerChild(CHILD_HIDDEN_CONTEXT, CCHiddenField.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ View child = null;
+ if (name.equals(CHILD_CONTEXT_LABEL)) {
+ child = (View)new CCLabel(this, name, null);
+ } else if (name.equals(CHILD_CONTEXT)) {
+ child = (View)new CCStaticTextField(this, name, null);
+ } else if (name.equals(CHILD_CONTEXT_BUTTON)) {
+ child = (View)new CCButton(this, name, null);
+ } else if (name.equals(CHILD_PROFILE_LABEL)) {
+ child = (View)new CCLabel(this, name, null);
+ } else if (name.equals(CHILD_PROFILE)) {
+ child = (View)new CCStaticTextField(this, name, null);
+ } else if (name.equals(CHILD_PROFILE_BUTTON)) {
+ child = (View)new CCButton(this, name, null);
+ } else if (name.equals(CHILD_HIDDEN_PROFILE)) {
+ String profileId = (String)wm.getValue(CopyMoveWizardOverviewView.CHILD_HIDDEN_PROFILE);
+ child = (View)new CCHiddenField(this, name, profileId);
+ } else if (name.equals(CHILD_HIDDEN_CONTEXT)) {
+ child = (View)new CCHiddenField(this, name, null);
+ } else {
+ throw new IllegalArgumentException(
+ "CopyMoveWizard1 : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+ public void beginDisplay(DisplayEvent event)
+ throws ModelControlException {
+
+ CCStaticTextField selectedProfile = (CCStaticTextField) getChild(CHILD_PROFILE);
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ PolicyManager sourcePmgr = (PolicyManager) RequestManager.getRequest().getSession(false).getAttribute(wm.SOURCE_POLICYMGR);
+ if (sourcePmgr == null) {
+ sourcePmgr = Toolbox2.getPolicyManager();
+ RequestManager.getRequestContext().getRequest().getSession(true).setAttribute(wm.SOURCE_POLICYMGR, sourcePmgr);
+ }
+ CCHiddenField hiddenProfile = (CCHiddenField) getChild(CHILD_HIDDEN_PROFILE);
+ String profileId = (String)hiddenProfile.getValue();
+ if ((profileId != null) && (profileId.length() != 0)) {
+ try {
+ Profile profile = sourcePmgr.getProfile(Toolbox2.decode(profileId));
+ selectedProfile.setValue(profile.getDisplayName());
+ wm.setValue(wm.SOURCE_PROFILE, profile);
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ }
+ } else {
+ wm.setValue(wm.SOURCE_PROFILE, null);
+ selectedProfile.setValue("");
+ }
+
+ try {
+ String context = (String)sourcePmgr.getEnvironment().get(Constants.POLICY_MANAGER_NAME);
+ CCStaticTextField contextNameField = (CCStaticTextField)getChild(CHILD_CONTEXT);
+ contextNameField.setValue(context);
+ CCButton selectContextBtn = (CCButton)getChild(CHILD_CONTEXT_BUTTON);
+ selectContextBtn.setExtraHtml("onClick=\"javascript:openSelectContextWindow('" + context + "', '" + wm.SOURCE_POLICYMGR + "');return false;\"");
+ CCHiddenField hiddenContext = (CCHiddenField) getChild(CHILD_HIDDEN_CONTEXT);
+ hiddenContext.setValue(context);
+ } catch (SPIException e) {
+ CCDebug.trace3(e.toString());
+ }
+ }
+
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/profiles/CopyMoveWizard1.jsp";
+ }
+
+ public String getErrorMsg() {
+ String emsg = null;
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ Profile profile = (Profile)wm.getValue(wm.SOURCE_PROFILE);
+ if (profile == null) {
+ emsg = "APOC.wiz.copy.1.alert";
+ } else {
+ try {
+ Entity entity = profile.getProfileRepository().getEntity();
+ wm.setValue(wm.PROFILE_HOST_ENTITY, entity);
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ }
+ }
+
+ return emsg;
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/profiles/CopyMoveWizard2View.java b/src/com/sun/apoc/manager/profiles/CopyMoveWizard2View.java
new file mode 100644
index 0000000..a01f54f
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/CopyMoveWizard2View.java
@@ -0,0 +1,181 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.html.OptionList;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.spi.SPIException;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCCheckBox;
+import com.sun.web.ui.view.html.CCRadioButton;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.web.ui.common.CCI18N;/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class CopyMoveWizard2View extends RequestHandlingViewBase
+ implements CCWizardPage, WizardImplDataUtil{
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "CopyMoveWizard2View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_ACTION_LABEL =
+ "SelectActionLabel";
+ public static final String CHILD_ACTION =
+ "SelectAction";
+ public static final String CHILD_ASSIGNMENTS =
+ "Assignments";
+ public static final String CHILD_ASSIGNMENTS_LABEL =
+ "AssignmentsLabel";
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public CopyMoveWizard2View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public CopyMoveWizard2View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_ACTION_LABEL, CCLabel.class);
+ registerChild(CHILD_ACTION, CCRadioButton.class);
+ registerChild(CHILD_ASSIGNMENTS, CCCheckBox.class);
+ registerChild(CHILD_ASSIGNMENTS_LABEL, CCLabel.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_ACTION_LABEL)) {
+ child = (View)new CCLabel(this, name, null);
+
+ } else if (name.equals(CHILD_ACTION)) {
+ OptionList options = new OptionList();
+ options.add(0, "APOC.wiz.copy.copy", "0");
+ options.add(1, "APOC.wiz.copy.move", "1");
+ child = (View)new CCRadioButton(this, name, null);
+ ((CCRadioButton)child).setOptions(options);
+ // ((CCRadioButton)child).setValue("0");
+
+ } else if (name.equals(CHILD_ASSIGNMENTS)) {
+ child = (View)new CCCheckBox(this, name,
+ "true", "false", true);
+
+ } else if (name.equals(CHILD_ASSIGNMENTS_LABEL)) {
+ child = (View)new CCLabel(this, name, null);
+
+ } else {
+ throw new IllegalArgumentException(
+ "CopyMoveWizard2 : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/profiles/CopyMoveWizard2.jsp";
+ }
+
+ public String getErrorMsg() {
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ wm.setValue(CHILD_ACTION, (String)((CCRadioButton)getChild(CHILD_ACTION)).getValue());
+ wm.setValue(CHILD_ASSIGNMENTS, (String)((CCCheckBox)getChild(CHILD_ASSIGNMENTS)).getValue());
+ String emsg = null;
+ PolicyManager sourcePmgr = (PolicyManager) RequestManager.getRequest().getSession(false).getAttribute(wm.SOURCE_POLICYMGR);
+ try {
+ String action = (String)wm.getValue(CHILD_ACTION);
+ if (action.equals("1") && isProfileRepositoryReadOnly()) {
+ String username = (String)sourcePmgr.getEnvironment().get(EnvironmentConstants.USER_KEY);
+ String profile = ((Profile)wm.getWizardValue(wm.SOURCE_PROFILE)).getDisplayName();
+ Object[] args = {username, profile};
+ emsg = m_I18n.getMessage("APOC.wiz.copy.2.alert", args);
+ }
+ } catch (SPIException ex) {}
+ return emsg;
+ }
+
+ private boolean isProfileRepositoryReadOnly() throws SPIException {
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ PolicyManager sourcePmgr = (PolicyManager) RequestManager.getRequest().getSession(false).getAttribute(wm.SOURCE_POLICYMGR);
+ String[] sourceNames = sourcePmgr.getSources();
+ for (int i=0; i < sourceNames.length; i++) {
+ if (sourcePmgr.getDefaultProfileRepository(sourceNames[i]).isReadOnly()) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/profiles/CopyMoveWizard3View.java b/src/com/sun/apoc/manager/profiles/CopyMoveWizard3View.java
new file mode 100644
index 0000000..70bfba0
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/CopyMoveWizard3View.java
@@ -0,0 +1,345 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.html.CCHiddenField;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import com.sun.web.ui.common.CCDebug;
+
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.Toolbox2;
+
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.profiles.ProfileRepository;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.web.ui.common.CCI18N;
+import java.util.ArrayList;
+import java.util.Arrays;
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class CopyMoveWizard3View extends RequestHandlingViewBase
+ implements CCWizardPage, WizardImplDataUtil{
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "CopyMoveWizard3View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_CONTEXT_LABEL =
+ "TargetContextLabel";
+ public static final String CHILD_TARGET_CONTEXT =
+ "TargetContext";
+ public static final String CHILD_CONTEXT_BUTTON =
+ "ContextBrowseButton";
+ public static final String CHILD_ENTITY_LABEL =
+ "TargetEntityLabel";
+ public static final String CHILD_ENTITY =
+ "TargetEntity";
+ public static final String CHILD_ENTITY_BUTTON =
+ "EntityBrowseButton";
+ public static final String CHILD_HIDDEN_ENTITY =
+ "HiddenSelectedTargetEntity";
+ public static final String CHILD_HIDDEN_ENTITY_TYPE =
+ "HiddenSelectedTargetEntityType";
+ public static final String CHILD_HIDDEN_CONTEXT =
+ "SelectedContext";
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public CopyMoveWizard3View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public CopyMoveWizard3View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_CONTEXT_LABEL, CCLabel.class);
+ registerChild(CHILD_TARGET_CONTEXT, CCStaticTextField.class);
+ registerChild(CHILD_CONTEXT_BUTTON, CCButton.class);
+ registerChild(CHILD_ENTITY_LABEL, CCLabel.class);
+ registerChild(CHILD_ENTITY, CCStaticTextField.class);
+ registerChild(CHILD_ENTITY_BUTTON, CCButton.class);
+ registerChild(CHILD_HIDDEN_ENTITY, CCHiddenField.class);
+ registerChild(CHILD_HIDDEN_ENTITY_TYPE, CCHiddenField.class);
+ registerChild(CHILD_HIDDEN_CONTEXT, CCHiddenField.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ if (name.equals(CHILD_CONTEXT_LABEL)) {
+ child = (View)new CCLabel(this, name, null);
+ } else if (name.equals(CHILD_TARGET_CONTEXT)) {
+ String value = (String)wm.getWizardValue(CopyMoveWizard1View.CHILD_CONTEXT);
+ child = (View)new CCStaticTextField(this, name, value);
+ } else if (name.equals(CHILD_CONTEXT_BUTTON)) {
+ child = (View)new CCButton(this, name, null);
+ } else if (name.equals(CHILD_ENTITY_LABEL)) {
+ child = (View)new CCLabel(this, name, null);
+ } else if (name.equals(CHILD_ENTITY)) {
+ child = (View)new CCStaticTextField(this, name, null);
+ } else if (name.equals(CHILD_ENTITY_BUTTON)) {
+ child = (View)new CCButton(this, name, null);
+ } else if (name.equals(CHILD_HIDDEN_ENTITY)) {
+ child = (View)new CCHiddenField(this, name, "");
+ } else if (name.equals(CHILD_HIDDEN_ENTITY_TYPE)) {
+ child = (View)new CCHiddenField(this, name, "");
+ } else if (name.equals(CHILD_HIDDEN_CONTEXT)) {
+ child = (View)new CCHiddenField(this, name, null);
+ } else {
+ throw new IllegalArgumentException(
+ "CopyMoveWizard3View : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+ public void beginDisplay(DisplayEvent event)
+ throws ModelControlException {
+
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ PolicyManager sourcePmgr = (PolicyManager) RequestManager.getRequest().getSession(false).getAttribute(wm.SOURCE_POLICYMGR);
+ if (sourcePmgr == null) {
+ sourcePmgr = Toolbox2.getPolicyManager();
+ RequestManager.getRequestContext().getRequest().getSession(true).setAttribute(wm.SOURCE_POLICYMGR, sourcePmgr);
+ }
+ PolicyManager targetPmgr = (PolicyManager) RequestManager.getRequest().getSession(false).getAttribute(wm.TARGET_POLICYMGR);
+ if (targetPmgr == null) {
+ targetPmgr = (PolicyManager) RequestManager.getRequest().getSession(false).getAttribute(wm.SOURCE_POLICYMGR);
+ RequestManager.getRequestContext().getRequest().getSession(true).setAttribute(wm.TARGET_POLICYMGR, targetPmgr);
+ }
+
+ try {
+ String context = (String)targetPmgr.getEnvironment().get(Constants.POLICY_MANAGER_NAME);
+ CCStaticTextField contextNameField = (CCStaticTextField)getChild(CHILD_TARGET_CONTEXT);
+ contextNameField.setValue(context);
+ CCButton selectContextBtn = (CCButton)getChild(CHILD_CONTEXT_BUTTON);
+ selectContextBtn.setExtraHtml("onClick=\"javascript:openSelectContextWindow('" + context + "','" + wm.TARGET_POLICYMGR + "');return false;\"");
+ CCHiddenField hiddenContext = (CCHiddenField) getChild(CHILD_HIDDEN_CONTEXT);
+ hiddenContext.setValue(context);
+ } catch (SPIException e) {
+ CCDebug.trace3(e.toString());
+ }
+
+ String sourceContextName = "";
+ String targetContextName = "";
+ try {
+ sourceContextName = (String)sourcePmgr.getEnvironment().get(Constants.POLICY_MANAGER_NAME);
+ targetContextName = (String)targetPmgr.getEnvironment().get(Constants.POLICY_MANAGER_NAME);
+ } catch (SPIException e) {
+ CCDebug.trace3(e.toString());
+ }
+ CCStaticTextField entityName = (CCStaticTextField)getChild(CHILD_ENTITY);
+
+ CCStaticTextField selectedEntity = (CCStaticTextField) getChild(CHILD_ENTITY);
+ CCHiddenField hiddenEntity = (CCHiddenField) getChild(CHILD_HIDDEN_ENTITY);
+ CCHiddenField hiddenEntityType= (CCHiddenField) getChild(CHILD_HIDDEN_ENTITY_TYPE);
+ String entityId = Toolbox2.decode((String)hiddenEntity.getValue());
+ String entityType = Toolbox2.decode((String)hiddenEntityType.getValue());
+ if ((entityId != null) && (entityId.length() != 0)) {
+ try {
+ Entity entity = targetPmgr.getEntity(entityType, entityId);
+ String entityPath = Toolbox2.getParentagePath(
+ entity,
+ false,
+ true,
+ ">",
+ targetPmgr,
+ true);
+ selectedEntity.setValue(entityPath);
+ wm.setValue(wm.TARGET_ENTITY, entity);
+ hiddenEntity.setValue(Toolbox2.encode(entity.getId()));
+ hiddenEntityType.setValue(Toolbox2.encode(entity.getPolicySourceName()));
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ }
+ } else {
+ String action = (String)wm.getWizardValue(CopyMoveWizard2View.CHILD_ACTION);
+ String entityPath = "";
+ Entity hostEntity = (Entity)wm.getWizardValue(wm.PROFILE_HOST_ENTITY);
+ if (action.equals("0") && (sourceContextName.equals(targetContextName))) {
+ entityPath = Toolbox2.getParentagePath(
+ hostEntity,
+ false,
+ true,
+ ">",
+ sourcePmgr,
+ true);
+ wm.setValue(wm.TARGET_ENTITY, hostEntity);
+ hiddenEntity.setValue(Toolbox2.encode(hostEntity.getId()));
+ hiddenEntityType.setValue(Toolbox2.encode(hostEntity.getPolicySourceName()));
+ selectedEntity.setValue(entityPath);
+ } else {
+ hiddenEntity.setValue("");
+ hiddenEntityType.setValue("");
+ selectedEntity.setValue("");
+ }
+ }
+ }
+
+ public boolean beginEntityBrowseButtonDisplay(ChildDisplayEvent event)
+ throws ModelControlException, SPIException {
+ CCButton child = (CCButton) getChild("EntityBrowseButton");
+ StringBuffer buffer = new StringBuffer();
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ PolicyManager targetPmgr = (PolicyManager) RequestManager.getRequest().getSession(false).getAttribute(wm.TARGET_POLICYMGR);
+ String contextId = Toolbox2.encode((String)wm.getWizardValue(CHILD_TARGET_CONTEXT));
+ Profile profile = (Profile)wm.getValue(wm.SOURCE_PROFILE);
+ String sourceName = profile.getApplicability().getStringValue();
+ ArrayList sources = new ArrayList(Arrays.asList(targetPmgr.getSources()));
+ String entityId = null;
+ if (sources.contains(sourceName)) {
+ entityId = Toolbox2.encode(targetPmgr.getRootEntity(sourceName).getId());
+ } else {
+ if (!sources.isEmpty()) {
+ sourceName = "";//(String)sources.get(0);
+ entityId = "";//Toolbox2.encode(targetPmgr.getRootEntity(sourceName).getId());
+ }
+ }
+ String entityType = sourceName;
+ buffer.append(" onClick=\"")
+ .append("openWindow(window, null, '/apoc/manager/BrowseTreeIndex?EntityId=")
+ .append(entityId)
+ .append("&EntityType=")
+ .append(entityType)
+ .append("&ContextId=")
+ .append(contextId)
+ .append("', 'TreeWindow', 500, 600, true);")
+ .append("return false;\"");
+ child.setExtraHtml(buffer.toString());
+ return true;
+ }
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/profiles/CopyMoveWizard3.jsp";
+ }
+
+ public String getErrorMsg() {
+ String emsg = null;
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ Entity targetEntity = (Entity)wm.getWizardValue(wm.TARGET_ENTITY);
+ Entity hostEntity = (Entity)wm.getWizardValue(wm.PROFILE_HOST_ENTITY);
+ PolicyManager targetPmgr = (PolicyManager) RequestManager.getRequest().getSession(false).getAttribute(wm.TARGET_POLICYMGR);
+ String action = (String)wm.getWizardValue(CopyMoveWizard2View.CHILD_ACTION);
+ String actionString = "";
+ if (action.equals("0")) {
+ actionString = "APOC.wiz.copy.results.copied.lc";
+ } else {
+ actionString = "APOC.wiz.copy.results.moved.lc";
+ }
+ String targetEntityName = Toolbox2.getParentagePath(
+ targetEntity,
+ false,
+ true,
+ ">",
+ targetPmgr,
+ true);
+
+ try {
+ if (targetEntity == null) {
+ emsg = "APOC.wiz.copy.3.alert";
+ } else if (targetEntity.getProfileRepository().isReadOnly()) {
+ String username = (String)targetPmgr.getEnvironment().get(EnvironmentConstants.USER_KEY);
+ String profile = ((Profile)wm.getWizardValue(wm.SOURCE_PROFILE)).getDisplayName();
+ Object[] args = {username, profile, actionString, targetEntityName};
+ emsg = m_I18n.getMessage("APOC.wiz.copy.2.alert", args);
+ } else {
+ if (action.equals("1") && (targetEntity.getId().equals(hostEntity.getId()))) {
+ emsg = "APOC.wiz.copy.3.alert1";
+ }
+ Profile profile = (Profile)wm.getWizardValue(wm.SOURCE_PROFILE);
+ ProfileRepository profileRep = targetEntity.getProfileRepository();
+ String displayName = profile.getDisplayName();
+ if (!(targetEntity.getId().equals(hostEntity.getId()))) {
+ if (profileRep.findProfile(displayName) != null) {
+ Object[] args = {displayName, actionString, targetEntityName};
+ emsg = m_I18n.getMessage("APOC.wiz.copy.3.alert2", args);
+ }
+ }
+ }
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ }
+ return emsg;
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/profiles/CopyMoveWizard4View.java b/src/com/sun/apoc/manager/profiles/CopyMoveWizard4View.java
new file mode 100644
index 0000000..9f7c07f
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/CopyMoveWizard4View.java
@@ -0,0 +1,358 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCStaticTextField;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import com.sun.web.ui.common.CCDebug;
+
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.profiles.ProfileRepository;
+import com.sun.apoc.spi.entities.Entity;
+
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.apoc.manager.sync.ContextTiledModel;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedList;
+
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class CopyMoveWizard4View extends RequestHandlingViewBase
+ implements CCWizardPage, WizardImplDataUtil{
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "CopyMoveWizard4View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_SOURCE_CONTEXT_LABEL =
+ "SourceContextLabel";
+ public static final String CHILD_SOURCE_CONTEXT =
+ "SourceContext";
+ public static final String CHILD_SOURCE_PROFILE_LABEL =
+ "SourceProfileLabel";
+ public static final String CHILD_SOURCE_PROFILE =
+ "SourceProfile";
+ public static final String CHILD_ACTION_LABEL =
+ "SelectActionLabel";
+ public static final String CHILD_ACTION =
+ "ActionSelected";
+ public static final String CHILD_ASSIGNMENTS_LABEL =
+ "AssignmentsLabel";
+ public static final String CHILD_ASSIGNMENTS =
+ "AssignmentsYesNo";
+ public static final String CHILD_TARGET_CONTEXT_LABEL =
+ "TargetContextLabel";
+ public static final String CHILD_TARGET_CONTEXT =
+ "TargetContext";
+ public static final String CHILD_TARGET_ENTITY_LABEL =
+ "TargetEntityLabel";
+ public static final String CHILD_TARGET_ENTITY =
+ "TargetEntity";
+ private CCI18N m_I18n;
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public CopyMoveWizard4View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public CopyMoveWizard4View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_SOURCE_CONTEXT_LABEL, CCLabel.class);
+ registerChild(CHILD_SOURCE_CONTEXT, CCStaticTextField.class);
+ registerChild(CHILD_SOURCE_PROFILE_LABEL, CCLabel.class);
+ registerChild(CHILD_SOURCE_PROFILE, CCStaticTextField.class);
+ registerChild(CHILD_ACTION_LABEL, CCLabel.class);
+ registerChild(CHILD_ACTION, CCStaticTextField.class);
+ registerChild(CHILD_ASSIGNMENTS_LABEL, CCLabel.class);
+ registerChild(CHILD_ASSIGNMENTS, CCStaticTextField.class);
+ registerChild(CHILD_TARGET_CONTEXT_LABEL, CCLabel.class);
+ registerChild(CHILD_TARGET_CONTEXT, CCStaticTextField.class);
+ registerChild(CHILD_TARGET_ENTITY_LABEL, CCLabel.class);
+ registerChild(CHILD_TARGET_ENTITY, CCStaticTextField.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ if (name.equals(CHILD_SOURCE_CONTEXT_LABEL)) {
+ child = (View)new CCLabel(this, name, null);
+ } else if (name.equals(CHILD_SOURCE_CONTEXT)) {
+ child = (View)new CCStaticTextField(this, name, null);
+ } else if (name.equals(CHILD_SOURCE_PROFILE_LABEL)) {
+ child = (View)new CCLabel(this, name, null);
+ } else if (name.equals(CHILD_SOURCE_PROFILE)) {
+ child = (View)new CCStaticTextField(this, name, null);
+ } else if (name.equals(CHILD_ACTION_LABEL)) {
+ child = (View)new CCLabel(this, name, null);
+ } else if (name.equals(CHILD_ACTION)) {
+ String action = (String)wm.getValue(CopyMoveWizard2View.CHILD_ACTION);
+ String value = null;
+ if (action.equals("0")) {
+ value = "APOC.wiz.copy.copy";
+ } else {
+ value = "APOC.wiz.copy.move";
+ }
+ child = (View)new CCStaticTextField(this, name, value);
+ ((CCStaticTextField)child).setValue(value, true);
+ } else if (name.equals(CHILD_ASSIGNMENTS_LABEL)) {
+ child = (View)new CCLabel(this, name, null);
+ } else if (name.equals(CHILD_ASSIGNMENTS)) {
+ String doAssignments = (String)wm.getValue(CopyMoveWizard2View.CHILD_ASSIGNMENTS);
+ String value = null;
+ if (doAssignments.equals("true")) {
+ value = "APOC.wiz.6.yes";
+ } else {
+ value = "APOC.wiz.6.no";
+ }
+ child = (View)new CCStaticTextField(this, name, value);
+ ((CCStaticTextField)child).setValue(value, true);
+ } else if (name.equals(CHILD_TARGET_CONTEXT_LABEL)) {
+ child = (View)new CCLabel(this, name, null);
+ } else if (name.equals(CHILD_TARGET_CONTEXT)) {
+ child = (View)new CCStaticTextField(this, name, null);
+ } else if (name.equals(CHILD_TARGET_ENTITY_LABEL)) {
+ child = (View)new CCLabel(this, name, null);
+ } else if (name.equals(CHILD_TARGET_ENTITY)) {
+ child = (View)new CCStaticTextField(this, name, null);
+ } else {
+ throw new IllegalArgumentException(
+ "CopyMoveWizard4 : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/profiles/CopyMoveWizard4.jsp";
+ }
+
+ public String getErrorMsg() {
+ String emsg = null;
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ wm.setValue(wm.SUCCESS, "true");
+ PolicyManager sourcePmgr = (PolicyManager) RequestManager.getRequest().getSession(false).getAttribute(wm.SOURCE_POLICYMGR);
+ PolicyManager targetPmgr = (PolicyManager) RequestManager.getRequest().getSession(false).getAttribute(wm.TARGET_POLICYMGR);
+ Profile profile = (Profile)wm.getWizardValue(wm.SOURCE_PROFILE);
+ Entity targetEntity = (Entity)wm.getWizardValue(wm.TARGET_ENTITY);
+ Entity hostEntity = (Entity)wm.getWizardValue(wm.PROFILE_HOST_ENTITY);
+ String sourceEntityId = hostEntity.getId();
+ String targetEntityId = targetEntity.getId();
+ String sourceEntityType = hostEntity.getPolicySourceName();
+ String targetEntityType = targetEntity.getPolicySourceName();
+ LinkedList syncList = new LinkedList();
+ syncList.add(profile.getId());
+ syncList.add(targetEntityId + "|" + targetEntityType);
+ String action = (String)wm.getWizardValue(CopyMoveWizard2View.CHILD_ACTION);
+ String doAssignments = (String)wm.getValue(CopyMoveWizard2View.CHILD_ASSIGNMENTS);
+ boolean considerAssignments = false;
+ String sTargetProfile = "";
+ if (doAssignments.equals("true")) {
+ considerAssignments = true;
+ }
+ ArrayList involvedEntities = new ArrayList();
+ involvedEntities.add(targetEntity);
+ involvedEntities.add(hostEntity);
+ try {
+ ContextTiledModel model = new ContextTiledModel();
+ String sourceContextName = (String)sourcePmgr.getEnvironment().get(Constants.POLICY_MANAGER_NAME);
+ String targetContextName = (String)targetPmgr.getEnvironment().get(Constants.POLICY_MANAGER_NAME);
+ Iterator entities = null;
+ if (considerAssignments && sourceContextName.equals(targetContextName)) {
+ // Test if new location of the profile does conflict with entities
+ // already assigned to that profile.
+ // Only entities at and below the storage location (applicable from)
+ // of the profile are allowed to be assigned to the profile
+ boolean bRuleBreach= false;
+ try {
+ entities = profile.getAssignedEntities();
+ } catch (SPIException ex) {
+ CCDebug.trace3(ex.toString());
+ }
+ while (entities.hasNext()&&!bRuleBreach) {
+ Entity entity = (Entity) entities.next();
+ involvedEntities.add(entity);
+ boolean assignedEntityBelowNewProfileLocation = false;
+ while (entity!=null) {
+ if (entity.equals(targetEntity)) {
+ assignedEntityBelowNewProfileLocation = true;
+ break;
+ }
+ entity = entity.getParent();
+ }
+ bRuleBreach = !assignedEntityBelowNewProfileLocation;
+ }
+
+
+ if (bRuleBreach) {
+ String displayName = profile.getDisplayName();
+ String targetEntityName = Toolbox2.getParentagePath(
+ targetEntity,
+ false,
+ true,
+ ">",
+ targetPmgr,
+ true);
+
+ String actionString = "";
+ if (action.equals("0")) {
+ actionString = "APOC.wiz.copy.results.copied.lc";
+ } else {
+ actionString = "APOC.wiz.copy.results.moved.lc";
+ }
+ Object[] args = {displayName, actionString, targetEntityName};
+ String alert = m_I18n.getMessage("APOC.wiz.copy.4.alert", args);
+
+ return alert;
+ }
+ }
+ sTargetProfile = model.sync(sourcePmgr, sourceEntityId, sourceEntityType, targetPmgr, targetEntityId, targetEntityType, syncList, getSession(), false, considerAssignments);
+ } catch (ModelControlException mce) {
+ CCDebug.trace3(mce.toString());
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.copy.4.fail1"), mce.toString());
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.copy.4.fail1"), spie.toString());
+ } catch (Exception e) {
+ CCDebug.trace3(e.toString());
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.copy.4.fail1"), e.toString());
+ }
+
+
+ if (action.equals("1")) {
+ try {
+ ProfileModel.destroy(profile.getId(), sourcePmgr);
+ } catch (ModelControlException mce) {
+ CCDebug.trace3(mce.toString());
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.copy.4.fail2"), mce.toString());
+ }
+ }
+
+ if (action.equals("0") && (targetEntity.getId().equals(hostEntity.getId()))) {
+ try {
+ Profile newProfile = targetPmgr.getProfile(sTargetProfile);
+ ProfileRepository profileRep = targetEntity.getProfileRepository();
+ for (int i=1; i < 100; i++) {
+ Object[] args = {Integer.toString(i), profile.getDisplayName()};
+ String newDisplayName = m_I18n.getMessage("APOC.wiz.copy.copyof", args);
+ if (profileRep.findProfile(newDisplayName) == null) {
+ newProfile.setDisplayName(newDisplayName);
+ break;
+ }
+ }
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.copy.4.fail3"), spie.toString());
+ }
+ }
+ try {
+ Profile targetProfile = targetPmgr.getProfile(sTargetProfile);
+ targetEntity.assignProfile(targetProfile);
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.copy.4.fail4"), spie.toString());
+ }
+
+ try {
+ Iterator updateEntities = involvedEntities.iterator();
+ while (updateEntities.hasNext()) {
+ Entity entity = (Entity)updateEntities.next();
+ NavigationModel navModel = (NavigationModel) RequestManager.getRequestContext().getModelManager().
+ getModel(NavigationModel.class, "NavTree", true, true);
+ navModel.setAssignedState(entity, entity.getAssignedProfiles().hasNext());
+ }
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ setFailureMessage(m_I18n.getMessage("APOC.wiz.copy.4.fail4"), spie.toString());
+ }
+ return emsg;
+ }
+
+ private void setFailureMessage(String error, String cause) {
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ if (((String)wm.getValue(wm.SUCCESS)).equals("true")) {
+ wm.setValue(wm.SUCCESS, "false");
+ wm.setValue(wm.FAIL_MESSAGE, error + "<br>- " + cause);
+ }
+ }
+}
+
+
diff --git a/src/com/sun/apoc/manager/profiles/CopyMoveWizard5View.java b/src/com/sun/apoc/manager/profiles/CopyMoveWizard5View.java
new file mode 100644
index 0000000..940e008
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/CopyMoveWizard5View.java
@@ -0,0 +1,233 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.alert.CCAlertInline;
+import com.sun.web.ui.view.alert.CCAlertFullPage;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import javax.servlet.ServletException;
+
+import java.io.IOException;
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.profiles.Profile;
+
+
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class CopyMoveWizard5View extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "CopyMoveWizard5View";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_SUMMARY_TITLE =
+ "SummaryTitle";
+ public static final String CHILD_SUMMARY_TEXT =
+ "SummaryText";
+ public static final String CHILD_ALERT =
+ "Alert";
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public CopyMoveWizard5View(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public CopyMoveWizard5View(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_SUMMARY_TITLE, CCLabel.class);
+ registerChild(CHILD_SUMMARY_TEXT, CCLabel.class);
+ registerChild(CHILD_ALERT, CCAlertInline.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ View child = null;
+ if (name.equals(CHILD_SUMMARY_TITLE)) {
+ String action = (String)wm.getWizardValue(CopyMoveWizard2View.CHILD_ACTION);
+ String value = "";
+ if (action.equals("0")) {
+ value = m_I18n.getMessage("APOC.wiz.copy.results.copied");
+ } else {
+ value = m_I18n.getMessage("APOC.wiz.copy.results.moved");
+ }
+ Object[] args = {value};
+ String title = m_I18n.getMessage("APOC.wiz.copy.results.title", args);
+ child = (View)new CCLabel(this,
+ name, title);
+ } else if (name.equals(CHILD_SUMMARY_TEXT)) {
+ String action = (String)wm.getWizardValue(CopyMoveWizard2View.CHILD_ACTION);
+ String actionString = "";
+ if (action.equals("0")) {
+ actionString = m_I18n.getMessage("APOC.wiz.copy.results.copied.lc");
+ } else {
+ actionString = m_I18n.getMessage("APOC.wiz.copy.results.moved.lc");
+ }
+ Profile profile = (Profile)wm.getWizardValue(wm.SOURCE_PROFILE);
+ Entity targetEntity = (Entity)wm.getWizardValue(wm.TARGET_ENTITY);
+ String targetEntityName = Toolbox2.getParentagePath(
+ targetEntity,
+ false,
+ true,
+ ">");
+ String displayName = profile.getDisplayName();
+ Object[] args = {displayName, actionString, targetEntityName};
+ String doAssignments = (String)wm.getValue(CopyMoveWizard2View.CHILD_ASSIGNMENTS);
+ String text = "";
+ if (doAssignments.equals("true")) {
+ text = m_I18n.getMessage("APOC.wiz.copy.results.text.assigned", args);
+ } else {
+ text = m_I18n.getMessage("APOC.wiz.copy.results.text.unassigned", args);
+ }
+ child = (View)new CCLabel(this,
+ name, text);
+ } else if (name.equals(CHILD_ALERT)) {
+ child = new CCAlertInline(this, name, null);
+ String action = (String)wm.getWizardValue(CopyMoveWizard2View.CHILD_ACTION);
+ String value = "";
+ if (action.equals("0")) {
+ value = m_I18n.getMessage("APOC.wiz.copy.copy");
+ } else {
+ value = m_I18n.getMessage("APOC.wiz.copy.move");
+ }
+ Object[] args = {value};
+ String summary = m_I18n.getMessage("APOC.wiz.copy.results.alert.title", args);
+ ((CCAlertInline)child).setValue(CCAlertFullPage.TYPE_ERROR);
+ ((CCAlertInline)child).setDetail("alert");
+ ((CCAlertInline)child).setSummary(summary);
+ return child;
+ } else {
+ throw new IllegalArgumentException(
+ "CopyMoveWizard5 : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+ public boolean beginDisplayAlertDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ String success = (String)wm.getValue(wm.SUCCESS);
+
+ boolean displayAlert = true;
+ if (success.equals("true")) {
+ displayAlert = false;
+ }
+
+ return displayAlert;
+ }
+
+ public boolean beginDisplaySummaryTitleDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ String success = (String)wm.getValue(wm.SUCCESS);
+
+ boolean displayTitle = false;
+ if (success.equals("true")) {
+ displayTitle = true;
+ }
+ return displayTitle;
+ }
+
+ public boolean beginDisplaySummaryTextDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+ String success = (String)wm.getValue(wm.SUCCESS);
+
+ boolean displayText = false;
+ if (success.equals("true")) {
+ displayText = true;
+ }
+ return displayText;
+ }
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/profiles/CopyMoveWizard5.jsp";
+ }
+
+
+ public String getErrorMsg() {
+ return null;
+ }
+}
+
+
+
+
+
diff --git a/src/com/sun/apoc/manager/profiles/CopyMoveWizardImpl.java b/src/com/sun/apoc/manager/profiles/CopyMoveWizardImpl.java
new file mode 100644
index 0000000..ce3dfd5
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/CopyMoveWizardImpl.java
@@ -0,0 +1,412 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.profiles;
+
+import java.util.Map;
+
+import com.iplanet.jato.ModelManager;
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.RequestManager;
+
+import com.sun.web.ui.model.wizard.WizardInterface;
+import com.sun.web.ui.model.wizard.WizardInterfaceExt;
+import com.sun.web.ui.model.wizard.WizardEvent;
+import com.sun.web.ui.common.CCI18N;
+
+import com.sun.apoc.manager.Constants;
+import com.sun.web.ui.common.CCDebug;
+
+interface WizardImplDataUtil {
+
+ public String getErrorMsg();
+}
+
+interface WizardImplData {
+
+
+ final String name = "CopyMoveWizardImpl";
+ final String title = "APOC.wiz.copy.title";
+ final String cancelMsg = "";
+
+ final String finishPageId = "5";
+ final String firstPageId = "1";
+ final String lastPageId = "6";
+ final String resultsPageId = "6";
+
+ final int[] pageIds = {1, 2, 3, 4, 5, 6};
+ final String[][] futurePages = { {"2", "3", "4", "5", "6"}, {"3", "4", "5", "6"}, {"4", "5", "6"}, {"5", "6"}, {"6"}, {null} };
+
+
+ final Class[] pageClass = {
+ CopyMoveWizardOverviewView.class,
+ CopyMoveWizard1View.class,
+ CopyMoveWizard2View.class,
+ CopyMoveWizard3View.class,
+ CopyMoveWizard4View.class,
+ CopyMoveWizard5View.class
+ };
+
+ final String[] stepText = {
+ "APOC.wiz.copy.steptext.overview",
+ "APOC.wiz.copy.steptext.1",
+ "APOC.wiz.copy.steptext.2",
+ "APOC.wiz.copy.steptext.3",
+ "APOC.wiz.steptext.10",
+ "APOC.wiz.steptext.11"
+ };
+
+ final String[] pageTitle = {
+ null,
+ null,
+ null,
+ null,
+ null,
+ null
+ };
+
+ final String[][] stepHelp = {
+ {""},
+ {"APOC.wiz.copy.help.1"},
+ {"APOC.wiz.copy.help.2"},
+ {"APOC.wiz.copy.help.3"},
+ {"APOC.wiz.help.10"},
+ {"APOC.wiz.help.11"}
+ };
+
+ final String[] stepInstruction = {
+ "",
+ "APOC.wiz.copy.instruction.1",
+ "APOC.wiz.copy.instruction.2",
+ "APOC.wiz.copy.instruction.3",
+ "APOC.wiz.copy.instruction.4",
+ "APOC.wiz.instruction.11"
+ };
+
+ final String[] placeHolders = {
+ null,
+ null,
+ null,
+ null,
+ null,
+ null
+ };
+
+
+}
+
+public class CopyMoveWizardImpl implements WizardImplData, WizardInterface, WizardInterfaceExt{
+
+ private CopyMoveWizardPageModel thePageModel;
+
+ private String getParameter(String name,
+ RequestContext requestContext) {
+
+ Map parameterMap = requestContext.getRequest().getParameterMap();
+
+ // Need the qualified name. Not sure how to get it
+ //
+ String[] values = (String[])parameterMap.get(name);
+ return values == null ? null : values[0];
+ }
+
+
+ private void getWizardPageModel(RequestContext requestContext) {
+
+ String modelInstanceName = getParameter(AssignedTableView.WIZARDPAGEMODELNAME, requestContext);
+ ModelManager mm = requestContext.getModelManager();
+ thePageModel = (CopyMoveWizardPageModel)mm.getModel(
+ com.sun.apoc.manager.profiles.CopyMoveWizardPageModel.class,
+ modelInstanceName, false, false);
+ thePageModel.selectWizardContext();
+
+ }
+
+ private boolean validate(WizardEvent wizardEvent) {
+
+ WizardImplDataUtil view = (WizardImplDataUtil)
+ wizardEvent.getView();
+
+ String emsg = view.getErrorMsg();
+ boolean haveError = (emsg != null);
+ if (haveError) {
+ wizardEvent.setSeverity(WizardEvent.ACKNOWLEDGE);
+ wizardEvent.setErrorMessage(emsg);
+ }
+ return !haveError;
+ }
+
+ public static WizardInterface create(RequestContext requestContext) {
+ CopyMoveWizardImpl wiz = new CopyMoveWizardImpl(requestContext);
+ return wiz;
+ }
+
+ public CopyMoveWizardImpl(RequestContext requestContext) {
+ getWizardPageModel(requestContext);
+ }
+
+ public String getPageName(String pageId) {
+ return null;
+ }
+
+ public Model getPageModel(String pageId) {
+ Model m = null;
+ try {
+ m = thePageModel;
+ } catch (Exception e) {
+ dumpexception(e);
+ }
+ return m;
+ }
+
+ public Class getPageClass(String pageId) {
+ Class c = null;
+ try {
+ c = pageClass[pageIdToStep(pageId)];
+ } catch (Exception e) {
+ dumpexception(e);
+ }
+ return c;
+ }
+
+ // This can't be called unless firstPage is set.
+ public String getFirstPageId() {
+ return firstPageId;
+ }
+
+ public String getNextPageId(String pageId) {
+ int nextPageId = Integer.parseInt(pageId);
+ if (!isFinishPageId(pageId)) {
+ nextPageId++;
+ }
+ return Integer.toString(nextPageId);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ // It should already have a name
+ // The framework needs one to identify it.
+ // Should be immutable.
+ //
+ public void setName(String name) {
+ }
+
+ /**
+ * The wizard framework no longer posts an alert
+ * when the user revisits a previously seen page.
+ * This method should always return false.
+ *
+ */
+ public boolean warnOnRevisitStep() {
+ return false;
+ }
+
+ public String getResourceBundle() {
+ CCI18N m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ return Constants.RES_BASE_NAME;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ // This is just using the stepText
+ // need better source for the example
+ //
+ public String getStepTitle(String pageId) {
+ return stepText[pageIdToStep(pageId)];
+ }
+
+
+ public String[] getFuturePages(String currentPageId) {
+ String[] nextPages = futurePages[pageIdToStep(currentPageId)];
+ return nextPages;
+ }
+
+ public String[] getFutureSteps(String currentPageId) {
+ String[] nextPages = futurePages[pageIdToStep(currentPageId)];
+ String[] futureSteps = null;
+
+ if (!currentPageId.equals(lastPageId)) {
+ futureSteps = new String[nextPages.length];
+ for(int i = 0; i < nextPages.length; i++) {
+ int futurePage = Integer.parseInt(nextPages[i]);
+ futureSteps[i] = stepText[futurePage - 1];
+ }
+ }
+ return futureSteps;
+ }
+
+
+ public String getStepInstruction(String pageId) {
+ String s = null;
+ try {
+ s = stepInstruction[pageIdToStep(pageId)];
+ } catch (Exception e) {
+ dumpexception(e);
+ }
+ return s;
+ }
+
+ public String getStepText(String pageId) {
+ return stepText[pageIdToStep(pageId)];
+ }
+
+ public String[] getStepHelp(String pageId) {
+ String[] s = null;
+ try {
+ s = stepHelp[pageIdToStep(pageId)];
+ } catch (Exception e) {
+ dumpexception(e);
+ }
+ return s;
+ }
+
+ public boolean isFinishPageId(String pageId) {
+ return pageId.equals(finishPageId);
+ }
+
+ public boolean hasPreviousPageId(String pageId) {
+ return pageIdToStep(getFirstPageId()) != pageIdToStep(pageId);
+ }
+
+ // Events
+ public boolean done(String wizardName) {
+ thePageModel.selectDefaultContext();
+
+ return true;
+ }
+
+ public boolean nextStep(WizardEvent wizardEvent) {
+ boolean result = validate(wizardEvent);
+ if (result == false) {
+ return result;
+ }
+ return result;
+ }
+
+ public boolean previousStep(WizardEvent wizardEvent) {
+ return !wizardEvent.getPageId().equals(getFirstPageId());
+ }
+
+ public boolean gotoStep(WizardEvent wizardEvent) {
+ return true;
+ }
+
+ public boolean finishStep(WizardEvent wizardEvent) {
+ boolean result = validate(wizardEvent);
+ if (!result) {
+ return result;
+ }
+ return true;
+ }
+
+
+ public boolean cancelStep(WizardEvent wizardEvent) {
+ thePageModel.clearWizardData();
+ return true;
+ }
+
+ public void closeStep(WizardEvent wizardEvent) {
+ }
+
+ public boolean isSubstep(String pageId) {
+ return false;
+ }
+
+ // Display a confirmation message if one is specified
+ public String getCancelPrompt(String pageId) {
+ return cancelMsg;
+ }
+
+ public String getPlaceholderText(String pageId) {
+ String s = null;
+ try {
+ s = placeHolders[pageIdToStep(pageId)];
+ } catch (Exception e) {
+ dumpexception(e);
+ }
+ return s;
+ }
+
+ public boolean helpTab(WizardEvent wizardEvent) {
+ return true;
+ }
+
+ public boolean stepTab(WizardEvent wizardEvent) {
+ return true;
+ }
+
+ public boolean canBeStepLink(String pageId) {
+ return true;
+ }
+
+ public String getResultsPageId(String pageId) {
+ return resultsPageId;
+ }
+
+ // Helper methods
+ //
+ private String stepToPageId(int step) {
+ return Integer.toString(step + 1);
+ }
+
+ private int pageIdToStep(String pageId) {
+ return Integer.parseInt(pageId) - 1;
+ }
+
+ public String toString() {
+ return name;
+ }
+
+ private void dumpexception(Exception e) {
+ CCDebug.trace3(
+ com.sun.web.ui.common.CCDebug.getClassMethod(1) +
+ " : " + e.getMessage());
+ }
+
+ private boolean isTrue(String tOrf) {
+ return tOrf == null ? false : tOrf.equalsIgnoreCase("true");
+ }
+
+
+}
+
+
+
diff --git a/src/com/sun/apoc/manager/profiles/CopyMoveWizardOverviewView.java b/src/com/sun/apoc/manager/profiles/CopyMoveWizardOverviewView.java
new file mode 100644
index 0000000..4d8bd53
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/CopyMoveWizardOverviewView.java
@@ -0,0 +1,165 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.model.Model;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+import com.sun.web.ui.view.html.CCLabel;
+import com.sun.web.ui.view.html.CCHiddenField;
+
+import com.sun.web.ui.view.wizard.CCWizardPage;
+
+import com.sun.web.ui.common.CCDebug;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.SPIException;
+/**
+ * A ContainerView object for the pagelet.
+ *
+ * @version
+ * @author
+ */
+public class CopyMoveWizardOverviewView extends RequestHandlingViewBase implements CCWizardPage, WizardImplDataUtil {
+
+ // The "logical" name for this page.
+ public static final String PAGE_NAME = "CopyMoveWizardOverviewView";
+
+ // Child view names (i.e. display fields).
+
+ public static final String CHILD_OVERVIEW_TITLE =
+ "OverviewTitle";
+ public static final String CHILD_OVERVIEW_TEXT =
+ "OverviewText";
+ public static final String CHILD_HIDDEN_PROFILE =
+ "SelectedProfile";
+ private CCI18N m_I18n;
+
+ /**
+ * Construct an instance with the specified properties.
+ * A constructor of this form is required
+ *
+ * @param parent The parent view of this object.
+ * @param name This view's name.
+ */
+ public CopyMoveWizardOverviewView(View parent, Model model) {
+ this(parent, model, PAGE_NAME);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public CopyMoveWizardOverviewView(View parent, Model model, String name) {
+
+ super(parent, name);
+ setDefaultModel(model);
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ registerChildren();
+ }
+
+
+ /**
+ * Register each child view.
+ */
+ protected void registerChildren() {
+ registerChild(CHILD_OVERVIEW_TITLE, CCLabel.class);
+ registerChild(CHILD_OVERVIEW_TEXT, CCLabel.class);
+ registerChild(CHILD_HIDDEN_PROFILE, CCHiddenField.class);
+ }
+
+ /**
+ * Instantiate each child view.
+ */
+ protected View createChild(String name) {
+
+ View child = null;
+ if (name.equals(CHILD_OVERVIEW_TITLE)) {
+ child = (View)new CCLabel(this,
+ name, m_I18n.getMessage("APOC.wiz.copy.overview.title"));
+ } else if (name.equals(CHILD_OVERVIEW_TEXT)) {
+ child = (View)new CCLabel(this,
+ name, m_I18n.getMessage("APOC.wiz.copy.overview.text"));
+ ((CCLabel)child).setEscape(false);
+ } else if (name.equals(CHILD_HIDDEN_PROFILE)) {
+ child = (View)new CCHiddenField(this, name, "");
+ } else {
+ throw new IllegalArgumentException(
+ "CopyMoveWizardOverviewView : Invalid child name [" + name + "]");
+ }
+ return child;
+ }
+
+
+ /**
+ * Get the pagelet to use for the rendering of this instance.
+ *
+ * @return The pagelet to use for the rendering of this instance.
+ */
+ public String getPageletUrl() {
+ return "/jsp/profiles/CopyMoveWizardOverview.jsp";
+ }
+
+
+ public String getErrorMsg() {
+ String emsg = null;
+ CopyMoveWizardPageModel wm = (CopyMoveWizardPageModel)getDefaultModel();
+
+ // Reset session constants
+ RequestManager.getRequest().getSession(false).removeAttribute(wm.SOURCE_POLICYMGR);
+ RequestManager.getRequest().getSession(false).removeAttribute(wm.TARGET_POLICYMGR);
+
+ CCHiddenField hiddenProfile = (CCHiddenField) getChild(CHILD_HIDDEN_PROFILE);
+ String profileId = (String)hiddenProfile.getValue();
+ if ((profileId != null) && (profileId.length() != 0)) {
+ try {
+ Profile profile = Toolbox2.getPolicyManager().getProfile(Toolbox2.decode(profileId));
+ wm.setValue(wm.SOURCE_PROFILE, profile);
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ }
+ }
+ return emsg;
+ }
+}
+
+
+
+
+
diff --git a/src/com/sun/apoc/manager/profiles/CopyMoveWizardPageModel.java b/src/com/sun/apoc/manager/profiles/CopyMoveWizardPageModel.java
new file mode 100644
index 0000000..77bac14
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/CopyMoveWizardPageModel.java
@@ -0,0 +1,169 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.model.DefaultModel;
+import com.iplanet.jato.model.InvalidContextException;
+
+/**
+ * This is an example model implementation designed to
+ * share data collected during a wizard session and the
+ * application that originated the wizard session.
+ *
+ * There are two contexts in this model.
+ * The DEFAULT context which all DefaultModel's have
+ * and a WIZARD_CONTEXT. The WIZARD_CONTEXT is created
+ * to allow the application to discard the data collected
+ * during a wizard session vs. preserving it as the
+ * the actual data used by the application.
+ */
+public class CopyMoveWizardPageModel extends DefaultModel {
+
+ final String WIZARD_CONTEXT = "WIZARD_CONTEXT";
+ public static final String SUCCESS = "Success";
+ public static final String FAIL_MESSAGE = "FailMessage";
+ public static final String SOURCE_PROFILE = "SelectedSourceProfile";
+ public static final String TARGET_ENTITY = "SelectedTargetEntity";
+ public static final String PROFILE_HOST_ENTITY = "ProfileHostEntity";
+ public static final String HIDDEN_SELECTED_PROFILE = "HiddenSelectedProfile";
+ public static final String SOURCE_POLICYMGR = "SourcePolicyManager";
+ public static final String TARGET_POLICYMGR = "TargetPolicyManager";
+
+ public CopyMoveWizardPageModel() {
+ this(null);
+ }
+
+ public CopyMoveWizardPageModel(String name) {
+ super();
+ setName(name);
+ addContext(WIZARD_CONTEXT);
+ setUseDefaultValues(false);
+ }
+
+ public void selectWizardContext() {
+ try {
+ selectContext(WIZARD_CONTEXT);
+ } catch (InvalidContextException e) {
+ // this means that the wizard has not set any
+ // values in the model
+ //
+ // Should never fail.
+ }
+ }
+
+ public void selectDefaultContext() {
+ try {
+ selectContext(DEFAULT_CONTEXT_NAME);
+ } catch (InvalidContextException e) {
+ // this means that the wizard has not set any
+ // values in the model
+ //
+ // Should never fail.
+ }
+ }
+
+ public void clearWizardData() {
+ try {
+ selectContext(WIZARD_CONTEXT);
+ clear();
+ } catch (InvalidContextException e) {
+ // This should never fail
+ }
+
+ // Restore the default context.
+ try {
+ selectContext(DefaultModel.DEFAULT_CONTEXT_NAME);
+ } catch (InvalidContextException e) {
+ // never fails.
+ }
+ }
+
+ /**
+ * This is an example on how to get data set by the wizard
+ * from the model. More sophisticated models may need more
+ * sophisticated techniques. This method called from the
+ * beginDisplay methods of the container views to set
+ * a field's value. For simplicity we assume only single
+ * valued values.
+ */
+ public Object getWizardValue(String fieldName) {
+
+ // Remember the current context
+ //
+ String cntxt = getCurrentContextName();
+
+ // Set the model to retrieve data from the WIZARD_CONTEXT
+ // in the model
+ //
+ try {
+ selectContext(WIZARD_CONTEXT);
+ } catch (InvalidContextException e) {
+ // this means that the wizard has not set any
+ // This should never fail
+ }
+ Object obj = getValue(fieldName);
+
+ // Restore the default context.
+ try {
+ selectContext(DefaultModel.DEFAULT_CONTEXT_NAME);
+ } catch (InvalidContextException e) {
+ // never fails.
+ }
+ // If there is no wizard value return the default
+ // context value
+ //
+ if (obj == null) {
+ obj = getValue(fieldName);
+ }
+
+ // Restore the original context
+ //
+ try {
+ selectContext(cntxt);
+ } catch (InvalidContextException e) {
+ // this means that the wizard has not set any
+ // values in the model
+ //
+ // Should never fail.
+ }
+
+ return obj;
+ }
+}
+
+
+
diff --git a/src/com/sun/apoc/manager/profiles/GeneralSettingsViewBean.java b/src/com/sun/apoc/manager/profiles/GeneralSettingsViewBean.java
new file mode 100644
index 0000000..e2310dc
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/GeneralSettingsViewBean.java
@@ -0,0 +1,267 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.ProfileWindowViewBean;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.model.CCPageTitleModel;
+import com.sun.web.ui.model.CCPropertySheetModel;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.html.CCTextArea;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.pagetitle.CCPageTitle;
+import com.sun.web.ui.view.propertysheet.CCPropertySheet;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Iterator;
+import javax.servlet.ServletException;
+
+public class GeneralSettingsViewBean extends RequestHandlingViewBase {
+
+ public static final String CHILD_PAGETITLE = "PageTitle";
+ public static final String CHILD_PROPERTIES = "Properties";
+ public static final String CHILD_HIDDEN_NAME = "OriginalName";
+ public static final String CHILD_HIDDEN_COMMENT = "OriginalComment";
+ public static final String CHILD_HIDDEN_IS_NEW_PROFILE = "IsNewProfile";
+ public static final String NAME = "Name";
+ public static final String COMMENT = "Comment";
+ public static final String AUTHOR = "Author";
+ public static final String LAST_MODIFIED = "ModifiedDate";
+
+ private CCPageTitleModel m_titleModel = null;
+ private ProfileWindowModel mEditorModel = null;
+ private CCPropertySheetModel m_propertySheetModel = null;
+
+ public GeneralSettingsViewBean(View parent, String name) {
+ super(parent, name);
+ registerChildren();
+ }
+
+ public void handleSaveButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ Profile profile = getEditorModel().getProfile();
+ if (profile != null) {
+ try {
+ String sName = (String)((CCTextField)getChild(NAME)).getValue();
+ String sComment= (String)((CCTextArea)getChild(COMMENT)).getValue();
+ if (!profile.getDisplayName().equals(sName)) {
+ profile.setDisplayName(sName);
+ }
+ profile.setComment(sComment);
+ } catch (SPIException se) {
+ getEditorModel().setErrorMessage("Error storing new settings.", se);
+ }
+ }
+ ((CCHiddenField)getChild(CHILD_HIDDEN_IS_NEW_PROFILE)).setValue("false");
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleCloseButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ CCStaticTextField child = (CCStaticTextField)((ProfileWindowViewBean)getViewBean(ProfileWindowViewBean.class)).getChild(ProfileWindowViewBean.CHILD_TAB_CHANGE_SCRIPT);
+ child.setValue("closeEditorAndRefresh();");
+ try {
+ String isNewProfile = (String)(((CCHiddenField)getChild(CHILD_HIDDEN_IS_NEW_PROFILE)).getValue());
+ if (isNewProfile.equals("true")) {
+ Profile profile = getEditorModel().getProfile();
+ if (profile != null) {
+ try {
+ Iterator it = profile.getAssignedEntities();
+ while (it.hasNext()) {
+ Entity entity = (Entity)it.next();
+ entity.unassignProfile(profile);
+ }
+ profile.getProfileRepository().destroyProfile(profile);
+ } catch (SPIException se) {
+ getEditorModel().setErrorMessage("Error destroying profile.", se);
+ }
+ }
+ getRootView().forwardTo(getRequestContext());
+ } else {
+ mapRequestParameters(getRequestContext().getRequest());
+ handleSaveButtonRequest(event);
+ }
+ } catch (ModelControlException ex) {
+ CCDebug.trace3(ex.toString());
+ }
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_PAGETITLE, CCPageTitle.class);
+ registerChild(CHILD_PROPERTIES, CCPropertySheet.class);
+ registerChild(CHILD_HIDDEN_NAME, CCHiddenField.class);
+ registerChild(CHILD_HIDDEN_COMMENT, CCHiddenField.class);
+ registerChild(CHILD_HIDDEN_IS_NEW_PROFILE, CCHiddenField.class);
+ getPageTitleModel().registerChildren(this);
+ getPropertiesModel().registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_PAGETITLE)) {
+ CCPageTitle child = new CCPageTitle(this, getPageTitleModel(), name);
+ return child;
+
+ } else if (name.equals(CHILD_HIDDEN_NAME)) {
+ CCHiddenField child = new CCHiddenField(this, name, "");
+ return child;
+
+ } else if (name.equals(CHILD_HIDDEN_COMMENT)) {
+ CCHiddenField child = new CCHiddenField(this, name, "");
+ return child;
+
+ } else if (name.equals(CHILD_HIDDEN_IS_NEW_PROFILE)) {
+ CCHiddenField child = new CCHiddenField(this, name, "false");
+ return child;
+
+ } else if (name.equals(CHILD_PROPERTIES)) {
+ CCPropertySheet child = new CCPropertySheet(this, getPropertiesModel(), name);
+ return child;
+
+ } else if (getPageTitleModel().isChildSupported(name)) {
+ return getPageTitleModel().createChild(this, name);
+
+ } else if (getPropertiesModel().isChildSupported(name)) {
+ return getPropertiesModel().createChild(this, name);
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ protected CCPageTitleModel getPageTitleModel() {
+ if (m_titleModel == null) {
+ m_titleModel = new CCPageTitleModel(
+ RequestManager.getRequestContext().getServletContext(),
+ "/jsp/profiles/GeneralSettingsPageTitle.xml");
+ }
+ return m_titleModel;
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ // initialize the property sheet values
+ try {
+ Profile profile = getEditorModel().getProfile();
+
+ if (profile != null) {
+ Date date = new Date(profile.getLastModified());
+ SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss z");
+ String sDate = format.format(date);
+ Entity entity = profile.getProfileRepository().getEntity();
+
+ m_propertySheetModel.setValue(NAME, profile.getDisplayName());
+ m_propertySheetModel.setValue(COMMENT, profile.getComment());
+ m_propertySheetModel.setValue(AUTHOR, profile.getAuthor());
+ m_propertySheetModel.setValue(LAST_MODIFIED, sDate);
+ ((CCHiddenField)getChild(CHILD_HIDDEN_NAME)).setValue(profile.getDisplayName());
+ ((CCHiddenField)getChild(CHILD_HIDDEN_COMMENT)).setValue(profile.getComment());
+ if (getEditorModel().hasAlert()) {
+ ((CCHiddenField)getChild(CHILD_HIDDEN_IS_NEW_PROFILE)).setValue("true");
+ }
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+
+ boolean bIsReadOnly = getEditorModel().isReadOnlyProfile();
+ if (!getEditorModel().hasAlert() && bIsReadOnly) {
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ getEditorModel().setInfoMessage(i18n.getMessage("APOC.policies.info.readonly.access"), "");
+ }
+
+ CCTextField edit = (CCTextField) getChild("Name");
+ CCTextArea area = (CCTextArea) getChild("Comment");
+ edit.setDisabled(bIsReadOnly);
+ area.setDisabled(bIsReadOnly);
+
+ // try to reserve some extra space for the alert to prevent scrolling
+ // decrease the comment area if necessary
+ if (getEditorModel().hasAlert()) {
+ area.setRows(4);
+ }
+ }
+
+ public boolean beginPageTitleDisplay(ChildDisplayEvent event)
+ throws ServletException, IOException {
+ CCPageTitle title = (CCPageTitle) getChild(event.getChildName());
+ title.getModel().setPageTitleText(Toolbox2.buildProfileTitle("APOC.profilewnd.general.tab"));
+
+ Toolbox2.setPageTitleHelp(getPageTitleModel(), "APOC.profilewnd.general.tab",
+ "APOC.profilewnd.general.help", "gbgcg.html");
+
+ return true;
+ }
+
+ public boolean beginSaveButtonDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ // do not show the save button for read-only profiles
+ return !getEditorModel().isReadOnlyProfile();
+ }
+
+ protected CCPropertySheetModel getPropertiesModel() {
+ if (m_propertySheetModel == null) {
+ m_propertySheetModel = new CCPropertySheetModel(
+ RequestManager.getRequestContext().getServletContext(),
+ "/jsp/profiles/GeneralSettingsPropertySheet.xml");
+ }
+ return m_propertySheetModel;
+ }
+
+ private ProfileWindowModel getEditorModel() {
+ if (mEditorModel == null) {
+ mEditorModel = (ProfileWindowModel) getModel(ProfileWindowModel.class);
+ }
+ return mEditorModel;
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/profiles/PrioritizationListModel.java b/src/com/sun/apoc/manager/profiles/PrioritizationListModel.java
new file mode 100755
index 0000000..6b33a77
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/PrioritizationListModel.java
@@ -0,0 +1,99 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.html.Option;
+import com.iplanet.jato.view.html.OptionList;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Domain;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.entities.Host;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.profiles.Applicability;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.profiles.ProfileRepository;
+import com.sun.web.ui.model.CCOrderableListModel;
+import java.util.Iterator;
+public class PrioritizationListModel extends CCOrderableListModel {
+
+ public static String NAME_TEXT = "NameText";
+ public static String NAME_HREF = "NameHref";
+
+ public PrioritizationListModel() {
+ super();
+ }
+
+ public void setRequestContext(RequestContext requestContext) {
+ }
+
+ public void retrieve(Profile profile) throws ModelControlException {
+ try {
+ if (profile != null) {
+ retrieve(profile.getProfileRepository().getEntity());
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ public void retrieve(Entity entity) throws ModelControlException {
+
+ try {
+ Applicability use = Applicability.USER;
+
+ if (entity.getPolicySourceName().equals(EnvironmentConstants.HOST_SOURCE)) {
+ use = Applicability.HOST;
+ }
+
+ ProfileRepository repository= entity.getProfileRepository();
+ Iterator profiles = repository.getProfiles(use);
+ OptionList options = new OptionList();
+
+ while (profiles.hasNext()) {
+ Profile profile = (Profile) profiles.next();
+ options.add(new Option(profile.getDisplayName(), profile.getId()));
+ }
+
+ setSelectedOptionList(options);
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/PrioritizationTableModel.java b/src/com/sun/apoc/manager/profiles/PrioritizationTableModel.java
new file mode 100755
index 0000000..1fad604
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/PrioritizationTableModel.java
@@ -0,0 +1,117 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Domain;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.entities.Host;
+import com.sun.apoc.spi.entities.Organization;
+import com.sun.apoc.spi.profiles.Applicability;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.profiles.ProfileRepository;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Iterator;
+
+public class PrioritizationTableModel extends ProfileModel {
+
+ public PrioritizationTableModel() {
+ super();
+ }
+
+ public void setRequestContext(RequestContext requestContext) {
+ super.setRequestContext(requestContext);
+
+ setActionValue(CHILD_NAME_COLUMN, "APOC.navigation.name");
+ setActionValue(CHILD_AUTHOR_COLUMN, "APOC.profilemgr.author");
+ setActionValue(CHILD_LASTMOD_COLUMN, "APOC.profilemgr.lastMod");
+
+ setPrimarySortName(CHILD_PRIO_TEXT);
+ }
+
+ public void retrieve(Profile profile) throws ModelControlException {
+ try {
+ if (profile != null) {
+ retrieve(profile.getProfileRepository().getEntity());
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ public void retrieve(Entity entity) throws ModelControlException {
+ clear();
+
+ try {
+ Applicability use = Applicability.USER;
+
+ if ((entity instanceof Domain) || (entity instanceof Host)) {
+ use = Applicability.HOST;
+ }
+
+ ProfileRepository repository= entity.getProfileRepository();
+ Iterator profiles = repository.getProfiles(use);
+
+ while (profiles.hasNext()) {
+
+ appendRow();
+
+ Profile profile = (Profile) profiles.next();
+ Date date = new Date(profile.getLastModified());
+ SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss z");
+ String sDate = format.format(date);
+
+ setValue(CHILD_NAME_TEXT, profile.getDisplayName());
+ setValue(CHILD_NAME_HREF, profile.getId());
+ setValue(CHILD_LASTMOD_TEXT, sDate);
+ setValue(CHILD_PRIO_TEXT, new Integer(profile.getPriority()));
+
+ if (profile.getAuthor() != null) {
+ setValue(CHILD_AUTHOR_TEXT, profile.getAuthor());
+ }
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/PrioritizationTableView.java b/src/com/sun/apoc/manager/profiles/PrioritizationTableView.java
new file mode 100755
index 0000000..a2c93de
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/PrioritizationTableView.java
@@ -0,0 +1,152 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.AlertViewBean;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.web.ui.view.table.CCActionTable;
+import java.io.IOException;
+import java.util.Enumeration;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+
+public class PrioritizationTableView extends RequestHandlingViewBase {
+ public static final String CHILD_PRIO_TABLE = "PrioritizationTable";
+ public static final String MOVE_UP_ACTION = "0";
+ public static final String MOVE_DOWN_ACTION = "1";
+
+ private PrioritizationTableModel m_prioModel = null;
+ private ProfileWindowModel mEditorModel = null;
+
+ public PrioritizationTableView(View parent, String name) {
+ super(parent, name);
+ m_prioModel = (PrioritizationTableModel) getModel(PrioritizationTableModel.class);
+ m_prioModel.setDocument(getSession().getServletContext(), "/jsp/profiles/PrioritizationTable.xml");
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_PRIO_TABLE, CCActionTable.class);
+ m_prioModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+
+ if (name.equals(CHILD_PRIO_TABLE)) {
+ CCActionTable child = new CCActionTable(this, m_prioModel, name);
+ return child;
+ } else {
+ if (m_prioModel.isChildSupported(name)) {
+ return m_prioModel.createChild(this, name);
+ }
+ }
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+
+ public void handleUpButtonRequest(RequestInvocationEvent event) throws ServletException, IOException {
+ try {
+ m_prioModel.retrieve(getEditorModel().getProfile());
+ ((CCActionTable) getChild(CHILD_PRIO_TABLE)).restoreStateData();
+ updateSelections();
+ m_prioModel.changePriority(1);
+ }
+ catch (ModelControlException mce) {
+ Toolbox2.prepareErrorDisplay(mce,
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_ALERT),
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_STACKTRACE));
+ }
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleDownButtonRequest(RequestInvocationEvent event) throws ServletException, IOException {
+ try {
+ m_prioModel.retrieve(getEditorModel().getProfile());
+ ((CCActionTable) getChild(CHILD_PRIO_TABLE)).restoreStateData();
+ updateSelections();
+ m_prioModel.changePriority(-1);
+ }
+ catch (ModelControlException mce) {
+ Toolbox2.prepareErrorDisplay(mce,
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_ALERT),
+ ((ContainerView)getParent()).getChild(AlertViewBean.CHILD_STACKTRACE));
+ }
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void handleNameHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ m_prioModel.retrieve(getEditorModel().getProfile());
+ }
+
+ private void updateSelections() {
+ HttpServletRequest request = getRequestContext().getRequest();
+ Enumeration aParamNamesEnum = request.getParameterNames();
+
+ while (aParamNamesEnum.hasMoreElements()) {
+ String sParamName = (String) aParamNamesEnum.nextElement();
+ int nOptionPos = sParamName.indexOf(CCActionTable.CHILD_SELECTION_CHECKBOX);
+
+ if (nOptionPos != -1) {
+ String sParamValue = request.getParameter(sParamName);
+ String sRowNumber = sParamName.substring(nOptionPos+CCActionTable.CHILD_SELECTION_CHECKBOX.length());
+
+ if (sRowNumber.indexOf(".")==-1) {
+ m_prioModel.setRowSelected(Integer.parseInt(sRowNumber), Boolean.valueOf(sParamValue).booleanValue());
+ }
+ }
+ }
+ }
+
+ private ProfileWindowModel getEditorModel() {
+ if (mEditorModel == null) {
+ mEditorModel = (ProfileWindowModel) getModel(ProfileWindowModel.class);
+ }
+ return mEditorModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/ProfileModel.java b/src/com/sun/apoc/manager/profiles/ProfileModel.java
new file mode 100755
index 0000000..d396c53
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/ProfileModel.java
@@ -0,0 +1,479 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.RequestParticipant;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.policies.Policy;
+import com.sun.apoc.spi.profiles.Applicability;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.profiles.ProfileRepository;
+import com.sun.web.ui.model.CCActionTableModel;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Vector;
+
+public abstract class ProfileModel extends CCActionTableModel implements RequestParticipant {
+ // Child view names (i.e. display fields).
+ public static final String CHILD_COLUMN = "Col";
+ public static final String CHILD_STATIC_TEXT = "Text";
+ public static final String CHILD_NAME_COLUMN = "NameColumn";
+ public static final String CHILD_NAME_HREF = "NameHref";
+ public static final String CHILD_NAME_TEXT = "NameText";
+ public static final String CHILD_PRIO_COLUMN = "PrioColumn";
+ public static final String CHILD_PRIO_TEXT = "PrioText";
+ public static final String CHILD_AUTHOR_COLUMN = "AuthorColumn";
+ public static final String CHILD_AUTHOR_TEXT = "AuthorText";
+ public static final String CHILD_LASTMOD_COLUMN = "LastModifiedColumn";
+ public static final String CHILD_LASTMOD_TEXT = "LastModifiedText";
+ public static final String CHILD_SCOPE_COLUMN = "ScopeColumn";
+ public static final String CHILD_SCOPE_TEXT = "ScopeText";
+
+ //
+ protected RequestContext m_requestContext;
+
+ public abstract void retrieve(Entity entity) throws ModelControlException;
+
+ public ProfileModel() {
+ super();
+ }
+
+ public void setRequestContext(RequestContext requestContext) {
+ m_requestContext = requestContext;
+ setMaxRows(10);
+ }
+
+ static public String create(String sName, String sComment, String sLocation, boolean bAssign) throws ModelControlException {
+ try {
+ PolicyManager policyManager = Toolbox2.getPolicyManager();
+ Entity entity = Toolbox2.getSelectedEntity();
+ Entity writableEntity = entity;
+ Applicability use = Applicability.USER;
+
+ while (entity!=null) {
+ ProfileRepository repository = entity.getProfileRepository();
+ if (!repository.isReadOnly()) {
+ writableEntity = entity;
+ }
+ entity = entity.getParent();
+ }
+
+ if (writableEntity.getPolicySourceName().equals(EnvironmentConstants.HOST_SOURCE)) {
+ use = Applicability.HOST;
+ }
+ ProfileRepository repository = writableEntity.getProfileRepository();
+ Profile newProfile = repository.createProfile(sName, use);
+
+ newProfile.setComment(sComment);
+
+ if (bAssign) {
+ Toolbox2.getSelectedEntity().assignProfile(newProfile);
+ NavigationModel navigationModel = (NavigationModel) RequestManager.getRequestContext().getModelManager().getModel(NavigationModel.class, "NavTree", true, true);
+ navigationModel.setAssignedState(Toolbox2.getSelectedEntity(), true);
+ }
+
+ return newProfile.getId();
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ public void destroy() throws ModelControlException {
+ int currentLocation = getLocation();
+ for (int nModelRunner = 0; nModelRunner < getNumRows(); nModelRunner++) {
+ if (isRowSelected(nModelRunner)) {
+ setLocation(nModelRunner);
+ destroy((String) getValue(CHILD_NAME_HREF), Toolbox2.getPolicyManager());
+ setRowSelected(false);
+ }
+ }
+ setLocation(currentLocation);
+ }
+
+ static public void destroy(String sProfile, PolicyManager pmgr) throws ModelControlException {
+ try {
+ NavigationModel navigationModel = (NavigationModel) RequestManager.getRequestContext().getModelManager().getModel(NavigationModel.class, "NavTree", true, true);
+
+ Profile profile = pmgr.getProfile(sProfile);
+ ProfileRepository repository = profile.getProfileRepository();
+ Iterator assignedEntities = profile.getAssignedEntities();
+
+ while (assignedEntities.hasNext()) {
+ Entity entity = (Entity) assignedEntities.next();
+ Iterator assignedProfiles= entity.getAssignedProfiles();
+ assignedProfiles.next();
+ navigationModel.setAssignedState(entity, assignedProfiles.hasNext());
+ entity.unassignProfile(profile);
+ }
+
+ repository.destroyProfile(profile);
+
+ // close gaps in prios originating from deletions
+ // don't do this once at the end as the retrieve() method
+ // may have populated this model with profiles stored in
+ // different repositories
+ Iterator profileIter = repository.getProfiles(profile.getApplicability());
+ int nMaxPrio = 1;
+ while (profileIter.hasNext()) {
+ Profile prioProfile = (Profile) profileIter.next();
+ // don't set all prios with brute force to minimize write access
+ if (prioProfile.getPriority()!=nMaxPrio) {
+ prioProfile.setPriority(nMaxPrio);
+ }
+ nMaxPrio++;
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+
+ static public String copy(String sSourceProfile, String sTargetEntityType, String sTargetEntity, boolean bConsiderAssignments) throws ModelControlException {
+ Profile targetProfile = null;
+ try {
+ PolicyManager manager = Toolbox2.getPolicyManager();
+ Profile sourceProfile = (Profile) manager.getProfile(sSourceProfile);
+ ProfileRepository sourceRepository = sourceProfile.getProfileRepository();
+ Entity targetEntity = manager.getEntity(sTargetEntityType, sTargetEntity);
+ Iterator entities = null;
+
+ if (bConsiderAssignments) {
+ // Test if new location of the profile does conflict with entities
+ // already assigned to that profile.
+ // Only entities at and below the storage location (applicable from)
+ // of the profile are allowed to be assigned to the profile
+ boolean bRuleBreach= false;
+ entities = sourceProfile.getAssignedEntities();
+ while (entities.hasNext()&&!bRuleBreach) {
+ Entity entity = (Entity) entities.next();
+ boolean assignedEntityBelowNewProfileLocation = false;
+ while (entity!=null) {
+ if (entity.equals(targetEntity)) {
+ assignedEntityBelowNewProfileLocation = true;
+ break;
+ }
+ entity = entity.getParent();
+ }
+ bRuleBreach = !assignedEntityBelowNewProfileLocation;
+ }
+
+ //TPF_TODO: use an exception rather than this empty string
+ if (bRuleBreach) {
+ return "";
+ }
+ }
+
+ ProfileRepository targetRepository = targetEntity.getProfileRepository();
+ targetProfile = targetRepository.createProfile(sourceProfile.getDisplayName(), sourceProfile.getApplicability());
+ targetProfile.setComment(sourceProfile.getComment());
+
+ Iterator policies = sourceProfile.getPolicies();
+ while (policies.hasNext()) {
+ Policy policy = (Policy) policies.next();
+ targetProfile.storePolicy(policy);
+ }
+
+ if (bConsiderAssignments) {
+ entities = sourceProfile.getAssignedEntities();
+ while (entities.hasNext()) {
+ Entity entity = (Entity) entities.next();
+ entity.assignProfile(targetProfile);
+ }
+ }
+ } catch (Exception e) {
+ throw new ModelControlException(e);
+ }
+
+ return targetProfile.getId();
+ }
+
+ public void assign() throws ModelControlException {
+ try {
+ int currentLocation = getLocation();
+
+ for (int nModelRunner = 0; nModelRunner < getNumRows(); nModelRunner++) {
+ if (isRowSelected(nModelRunner)) {
+ setLocation(nModelRunner);
+
+ String sProfile = (String) getValue(CHILD_NAME_HREF);
+ Profile profile = Toolbox2.getPolicyManager().getProfile(sProfile);
+ Toolbox2.getSelectedEntity().assignProfile(profile);
+ setRowSelected(false);
+ }
+ }
+
+ setLocation(currentLocation);
+
+ NavigationModel navigationModel = (NavigationModel) m_requestContext.getModelManager().getModel(
+ NavigationModel.class, "NavTree", true, true);
+
+ navigationModel.setAssignedState(Toolbox2.getSelectedEntity(), true);
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ public void unassign() throws ModelControlException {
+ try {
+ int currentLocation = getLocation();
+ Entity entity = Toolbox2.getSelectedEntity();
+
+ for (int nModelRunner = 0; nModelRunner < getNumRows(); nModelRunner++) {
+ if (isRowSelected(nModelRunner)) {
+ setLocation(nModelRunner);
+
+ String sProfile = (String) getValue(CHILD_NAME_HREF);
+ Profile profile = Toolbox2.getPolicyManager().getProfile(sProfile);
+ entity.unassignProfile(profile);
+ setRowSelected(false);
+ }
+ }
+
+ setLocation(currentLocation);
+
+ NavigationModel navigationModel = (NavigationModel) m_requestContext.getModelManager().getModel(
+ NavigationModel.class, "NavTree", true, true);
+
+ navigationModel.setAssignedState(entity, entity.getAssignedProfiles().hasNext());
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ public void rename(String sNewName) throws ModelControlException {
+ try {
+ int currentLocation = getLocation();
+
+ for (int nModelRunner = 0; nModelRunner < getNumRows(); nModelRunner++) {
+ if (isRowSelected(nModelRunner)) {
+ setLocation(nModelRunner);
+
+ String sProfile= (String) getValue(CHILD_NAME_HREF);
+ Profile profile = Toolbox2.getPolicyManager().getProfile(sProfile);
+
+ profile.setDisplayName(sNewName);
+ setRowSelected(false);
+ }
+ }
+
+ setLocation(currentLocation);
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ public void changePriority(int nChange) throws ModelControlException {
+
+ if (nChange==0) {
+ return;
+ }
+
+ try {
+ String sProfile = (String) getValue(CHILD_NAME_HREF);
+ Profile profile = Toolbox2.getPolicyManager().getProfile(sProfile);
+ ProfileRepository repository = profile.getProfileRepository();
+ int nMaxPrio = 0;
+ int nCurrentLocation= getLocation();
+ Vector profiles = new Vector();
+ Vector profilePrios = new Vector();
+
+ for (int nModelRunner = 0; nModelRunner < getNumRows(); nModelRunner++) {
+ if (isRowSelected(nModelRunner)) {
+ setLocation(nModelRunner);
+
+ if (profiles.size()==0) {
+ Iterator profileIter = repository.getProfiles(profile.getApplicability());
+ while (profileIter.hasNext()) {
+ Profile tmpProfile = (Profile) profileIter.next();
+ profiles.add(tmpProfile);
+ profilePrios.add(new Integer(tmpProfile.getPriority()));
+ if (tmpProfile.getPriority()>nMaxPrio) {
+ nMaxPrio=tmpProfile.getPriority();
+ }
+ }
+
+ if (nChange>0) {
+ if (profiles.indexOf(profile)-nChange<0) {
+ return;
+ }
+ } else {
+ if (profiles.indexOf(profile)-nChange>=getNumRows()) {
+ return;
+ }
+ }
+ }
+
+ profiles.add(nModelRunner-nChange, profiles.remove(nModelRunner));
+ }
+ }
+
+ // TPF_TODO: can be solved more efficiently with a swap
+ for (int nProfileRunner=0; nProfileRunner<profiles.size(); nProfileRunner++) {
+ if ( ((Profile)profiles.get(nProfileRunner)).getPriority() != ((Integer)profilePrios.get(nProfileRunner)).intValue() ) {
+ ((Profile)profiles.get(nProfileRunner)).setPriority(++nMaxPrio);
+ }
+ }
+
+ for (int nProfileRunner=0; nProfileRunner<profiles.size(); nProfileRunner++) {
+ if ( ((Profile)profiles.get(nProfileRunner)).getPriority() != ((Integer)profilePrios.get(nProfileRunner)).intValue() ) {
+ ((Profile)profiles.get(nProfileRunner)).setPriority(((Integer)profilePrios.get(nProfileRunner)).intValue());
+ }
+ }
+
+ //move selections also
+ if (nChange>0) {
+ for (int nModelRunner = 0; nModelRunner < getNumRows(); nModelRunner++) {
+ if (isRowSelected(nModelRunner)) {
+ setRowSelected(nModelRunner-nChange, true);
+ setRowSelected(nModelRunner, false);
+ }
+ }
+ } else {
+ for (int nModelRunner = getNumRows(); nModelRunner > 0; nModelRunner--) {
+ if (isRowSelected(nModelRunner)) {
+ setRowSelected(nModelRunner-nChange, true);
+ setRowSelected(nModelRunner, false);
+ }
+ }
+ }
+
+ setLocation(nCurrentLocation);
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ static public void changePriority(LinkedList newProfileSequence) throws ModelControlException {
+ // TPF_TODO: can be solved more efficiently with a selective swap
+ // handle prio 0 "local settings" profile
+
+ PolicyManager manager = Toolbox2.getPolicyManager();
+
+ try {
+ int nMaxPrio = 0;
+ for (int nProfileRunner=0; nProfileRunner<newProfileSequence.size(); nProfileRunner++) {
+ Profile profile = manager.getProfile((String)newProfileSequence.get(nProfileRunner));
+ if (profile.getPriority()>nMaxPrio) {
+ nMaxPrio=profile.getPriority();
+ }
+ }
+ for (int nProfileRunner=0; nProfileRunner<newProfileSequence.size(); nProfileRunner++) {
+ Profile profile = manager.getProfile((String)newProfileSequence.get(nProfileRunner));
+ profile.setPriority(nMaxPrio+nProfileRunner+1);
+ }
+ for (int nProfileRunner=0; nProfileRunner<newProfileSequence.size(); nProfileRunner++) {
+ Profile profile = manager.getProfile((String)newProfileSequence.get(nProfileRunner));
+ profile.setPriority(nProfileRunner+1);
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ public void exportGroup(String sProfile, OutputStream stream) throws ModelControlException {
+ try {
+ Profile profile = Toolbox2.getPolicyManager().getProfile(sProfile);
+ ProfileRepository repository = profile.getProfileRepository();
+
+ repository.exportProfile(profile, stream);
+
+ for (int nModelRunner = 0; nModelRunner < getNumRows(); nModelRunner++) {
+ setRowSelected(nModelRunner, false);
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ static public void importGroup(String sName, Entity entity, Applicability use, boolean bAssign, InputStream stream)
+ throws ModelControlException {
+ try {
+ Entity writableEntity = entity;
+
+ while (entity!=null) {
+ ProfileRepository repository = entity.getProfileRepository();
+ if (!repository.isReadOnly()) {
+ writableEntity = entity;
+ }
+ entity = entity.getParent();
+ }
+
+
+ ProfileRepository repository = writableEntity.getProfileRepository();
+
+ repository.importProfile(sName, use, stream);
+
+ if (bAssign) {
+ Iterator profiles = repository.getProfiles(use);
+ Profile profile = null;
+
+ while (profiles.hasNext()) {
+ profile = (Profile) profiles.next();
+ if (profile.getDisplayName().equals(sName)) {
+ break;
+ }
+ }
+
+ if (profile!=null) {
+ Toolbox2.getSelectedEntity().assignProfile(profile);
+ NavigationModel navigationModel = (NavigationModel) RequestManager.getRequestContext().getModelManager().getModel(NavigationModel.class, "NavTree", true, true);
+ navigationModel.setAssignedState(Toolbox2.getSelectedEntity(), true);
+ }
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/ProfileWindowModel.java b/src/com/sun/apoc/manager/profiles/ProfileWindowModel.java
new file mode 100644
index 0000000..5f51656
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/ProfileWindowModel.java
@@ -0,0 +1,477 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import java.util.HashSet;
+import java.util.Iterator;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.RequestParticipant;
+import com.iplanet.jato.model.DefaultModel;
+
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.ProfileWindowSettingsTreeViewBean;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.apoc.manager.settings.PolicyMgrHelper;
+import com.sun.apoc.templates.parsing.TemplateElement;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.profiles.Applicability;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.profiles.ProfileRepository;
+import com.sun.apoc.templates.parsing.TemplateRepository;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.view.alert.CCAlert;
+public class ProfileWindowModel extends DefaultModel implements RequestParticipant {
+
+ // identifiers for the different tabs
+ public static final String SETTINGS_TAB = "1";
+ public static final String ASSIGNEES_TAB = "2";
+ public static final String GENERAL_TAB = "3";
+ public static final String SUMMARY_TAB = "4";
+ public static final String ADVANCED_TAB = "5";
+
+ // key for storing the currently selected tab
+ public static final String SELECTED_TAB = "SelectedEditorTab";
+
+ // key for storing the currently selected profile
+ public static final String SELECTED_PROFILE = "ProfileWindowFrameset.SelectedProfile";
+
+ // key for storing the currently selected category
+ public static final String CATEGORY_HREF_SELECTION = "PolicySettingsContent.CategoryHref";
+
+ // key for storing the profile manager
+ public static final String PROFILE_HELPER = "ProfileHelper";
+
+ // keys for requesting the creation of a new profile
+ public static final String NEW_ASSIGNED_PROFILE = "NewAssignedProfile";
+ public static final String NEW_PROFILE = "NewProfile";
+ public static final String NEW_PROFILE_ORG = "NewProfileOrg";
+ public static final String NEW_PROFILE_DOMAIN = "NewProfileDomain";
+
+ // keys for storing error/info messages
+ public static final String ALERT_TXT = "AlertText";
+ public static final String ALERT_DETAILS = "AlertDetails";
+ public static final String ALERT_TYPE = "AlertType";
+
+ // private members
+ private String mSelectedTab = null;
+ private Profile mProfile = null;
+ private String mSelectedCategory = null;
+ private HttpServletRequest mRequest = null;
+ private HttpSession mSession = null;
+ private String mAnchor = "";
+
+ /**
+ * Sets the desired tab in the profile editor. The tab selection will be
+ * stored as a session attribute.
+ *
+ * @param tabId defines the identifier of the tab. This can be SUMMARY_TAB,
+ * SETTINGS_TAB, etc.
+ */
+ public void setSelectedTab(String tabId) {
+ mSession.setAttribute(SELECTED_TAB, tabId);
+ mSelectedTab = tabId;
+ }
+
+ /**
+ * Returns the currently selected tab.
+ *
+ * @return the tab id such as SUMMARY_TAB, SETTINGS_TAB, etc.
+ */
+ public String getSelectedTab() {
+ return mSelectedTab;
+ }
+
+ /**
+ * Helper method to determine the currently selected tab via request and
+ * session parameters. The method will first search for a SELECTED_TAB
+ * parameter in the request. If this is not available, it will lookup the
+ * information in the session. As a last fallback the profile general tab
+ * will be used as default.
+ *
+ * @return the selected tab id
+ */
+ protected String determineSelectedTab() {
+ String selectedTab = (String) mRequest.getParameter(SELECTED_TAB);
+ if (selectedTab == null) {
+ selectedTab = (String) mSession.getAttribute(SELECTED_TAB);
+ }
+ if (selectedTab == null) {
+ selectedTab = GENERAL_TAB;
+ }
+ return selectedTab;
+ }
+
+ /**
+ * Sets the path of the currently selected settings category.
+ *
+ * @param path
+ */
+ public void setSelectedCategory(String path) {
+ mSession.setAttribute(Constants.TEMPLATE_PATH, path);
+ mSelectedCategory = path;
+ }
+
+ /**
+ * Returns the path of the currently selected settings category
+ * @return
+ */
+ public String getSelectedCategory() {
+ return mSelectedCategory;
+ }
+
+ /**
+ * Determines the currently selected settings category. This method will
+ * first look at the request parameter and afterwards at the session
+ * attribute. The last fallback is to return an empty string.
+ *
+ * @return the path of the selected category
+ */
+ public String determineSelectedCategory() {
+ String selectedCategory = (String) mRequest.getParameter(CATEGORY_HREF_SELECTION);
+ // if the category parameter is present then we are switching from another
+ // view (i.e. settings summary) so reset the categories tree
+ if (selectedCategory != null) {
+ ProfileWindowSettingsTreeViewBean.resetTreeModel();
+ } else {
+ selectedCategory = (String) mSession.getAttribute(Constants.TEMPLATE_PATH);
+ }
+ if (selectedCategory == null) {
+ selectedCategory = "";
+ }
+ return selectedCategory;
+ }
+
+ /**
+ * Sets the profile that is loaded/opened via the profile editor.
+ *
+ * @param profile
+ */
+ public void setProfile(Profile profile) {
+ Profile previousProfile = (Profile) mSession.getAttribute(SELECTED_PROFILE);
+ if (previousProfile == null) {
+ resetNavigationState();
+ } else if (profile == null) {
+ resetNavigationState();
+ } else if (!profile.getId().equals(previousProfile.getId())) {
+ resetNavigationState();
+ }
+
+ mSession.setAttribute(PROFILE_HELPER, new PolicyMgrHelper(Toolbox2.getPolicyManager(), profile));
+ mSession.setAttribute(SELECTED_PROFILE, profile);
+ mProfile = profile;
+ }
+
+ protected void resetNavigationState() {
+ ProfileWindowSettingsTreeViewBean.resetTreeModel();
+ String selectedCategory = determineSelectedCategory();
+ if (selectedCategory != null && selectedCategory.indexOf(TemplateRepository.SET_PREFIX) != -1) {
+ selectedCategory = selectedCategory.substring(0, selectedCategory.indexOf(TemplateRepository.SET_PREFIX) - 1);
+ setSelectedCategory(selectedCategory);
+ }
+// setSelectedCategory("");
+ }
+
+ /**
+ * Returns the currently opened profile.
+ *
+ * @return
+ */
+ public Profile getProfile() {
+ return mProfile;
+ }
+
+ /**
+ * Helper method that retrieves the currently selected profile from a
+ * request parameter. This might also result in the creation of a brand
+ * new profile.
+ *
+ * @return the currently edited profile
+ */
+ protected Profile determineProfile() {
+ Profile selectedProfile = null;
+ try {
+ // detect currenty selected profile via submitted profile id
+ String selectedProfileId = (String) mRequest.getParameter(SELECTED_PROFILE);
+ if (selectedProfileId == null) {
+
+ // no profile id specified, take now a look into the session
+ selectedProfile = (Profile) mSession.getAttribute(SELECTED_PROFILE);
+
+ } else {
+ PolicyManager mgr = Toolbox2.getPolicyManager();
+
+ // profile id has been specified. First, check, if we need to
+ // create a new profile
+ if ( (selectedProfileId.equals(NEW_ASSIGNED_PROFILE) ||
+ (selectedProfileId.startsWith(NEW_PROFILE))) ) {
+ setSelectedTab(GENERAL_TAB);
+
+ // create new profile
+ if (selectedProfileId.equals(NEW_PROFILE_ORG)) {
+ selectedProfileId = createNewProfile(mgr.getRootEntity(EnvironmentConstants.USER_SOURCE), false);
+ } else if (selectedProfileId.equals(NEW_PROFILE_DOMAIN)) {
+ selectedProfileId = createNewProfile(mgr.getRootEntity(EnvironmentConstants.HOST_SOURCE), false);
+ } else {
+ Entity selectedEntity = Toolbox2.getSelectedEntity();
+ boolean autoAssign = selectedProfileId.equals(NEW_ASSIGNED_PROFILE);
+ selectedProfileId = createNewProfile(selectedEntity, autoAssign);
+ }
+ }
+
+ // retrieve the selected profile
+ selectedProfile = mgr.getProfile(selectedProfileId);
+ }
+ } catch (SPIException ex) {
+ setErrorMessage("Could not create new profile.", ex);
+ }
+ return selectedProfile;
+ }
+
+ /**
+ * Creates a brand new profile in the top most available repository. The
+ * name of the profile is set to "New Profile" or "NewProfile1", etc.
+ *
+ * @param automaticAssignment if set to true, the new profile will
+ * automatically be assigned to the currently selected entity.
+ *
+ * @return the id of the newly created profile
+ * @throws SPIException
+ */
+ public String createNewProfile(Entity selectedEntity, boolean automaticAssignment)
+ throws SPIException {
+ Profile newProfile = null;
+ CCI18N i18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ String domainsString = i18n.getMessage("APOC.profilewnd.lc_domains");
+ String hostsString = i18n.getMessage("APOC.profilewnd.lc_hosts");
+ String orgsString = i18n.getMessage("APOC.profilewnd.lc_orgs");
+ String usersString = i18n.getMessage("APOC.profilewnd.lc_users");
+ // determine applicability of new profile
+ Applicability applicability = Applicability.USER;
+ if (selectedEntity.getPolicySourceName().equals(EnvironmentConstants.HOST_SOURCE)) {
+ applicability = Applicability.HOST;
+ Object[] args = {domainsString, hostsString};
+ setInfoMessage(i18n.getMessage("APOC.profilewnd.creating_new"), i18n.getMessage("APOC.profilewnd.general.new_profile_instructions", args));
+ } else {
+ applicability = Applicability.USER;
+ Object[] args = {orgsString, usersString};
+ setInfoMessage(i18n.getMessage("APOC.profilewnd.creating_new"), i18n.getMessage("APOC.profilewnd.general.new_profile_instructions", args));
+ }
+
+ // determine the top most repository with write access for the
+ // currently logged in user
+ ProfileRepository writeableRepository = null;
+ for (Entity entity = selectedEntity; entity != null; entity = entity.getParent()) {
+ ProfileRepository repository = entity.getProfileRepository();
+ if (!repository.isReadOnly()) {
+ writeableRepository = repository;
+ }
+ }
+
+ // define a profile name
+ String profileName = generateDefaultProfileName(writeableRepository, applicability);
+
+ // create the new profile
+ newProfile = writeableRepository.createProfile(profileName, applicability);
+
+ // and eventually assign it to selected entity
+ if (automaticAssignment) {
+ selectedEntity.assignProfile(newProfile);
+ }
+ NavigationModel navigationModel = (NavigationModel) RequestManager.getRequestContext().getModelManager().getModel(
+ NavigationModel.class, "NavTree", true, true);
+
+ navigationModel.setAssignedState(selectedEntity, true);
+ return newProfile.getId();
+ }
+
+ /**
+ * Helper method that tries to generate a default profile name that is not
+ * already used by other profiles in the same repository and with the same
+ * applicability. The method starts with "NewProfile" as name and will then
+ * continue with "NewProfile1", "NewProfile2", etc. until a new name is
+ * found.
+ *
+ * @param repository The repository for the new profile
+ * @param applicability
+ * @return generated new profile name
+ * @throws SPIException
+ */
+ protected String generateDefaultProfileName(
+ ProfileRepository repository, Applicability applicability)
+ throws SPIException {
+ String defaultProfileName = "NewProfile";
+
+ // collect the names of the existing profiles
+ HashSet usedDisplayNames = new HashSet();
+ Iterator it = repository.getProfiles(applicability);
+ while(it.hasNext()) {
+ Profile profile = (Profile) it.next();
+ usedDisplayNames.add(profile.getDisplayName());
+ }
+
+ // try to find a profile name that is not used yet
+ String profileName = defaultProfileName;
+ for(int i = 1; usedDisplayNames.contains(profileName); i++) {
+ StringBuffer buffer = new StringBuffer(defaultProfileName);
+ buffer.append(i);
+ profileName = buffer.toString();
+ }
+ return profileName;
+ }
+
+ /**
+ * Returns the scope of the settings.
+ *
+ * @return
+ * @throws SPIException
+ */
+ public byte getSettingsScope() {
+ if (getProfile() != null && (Applicability.USER.equals(getProfile().getApplicability()))) {
+ return TemplateElement.USER_SCOPE;
+ } else {
+ return TemplateElement.HOST_SCOPE;
+ }
+ }
+
+ /**
+ * Checks, if the currently logged in user can edit the opened/selected
+ * profile
+ *
+ * @return true if the profile is read-only.
+ */
+ public boolean isReadOnlyProfile() {
+ boolean result = true;
+ try {
+ result = getProfile().getProfileRepository().isReadOnly();
+ } catch (SPIException ex) {
+ // ignore the exception for now
+ }
+ return result;
+ }
+
+ /**
+ * Sets the message text and details for an info
+ */
+ public void setInfoMessage(String message, String details) {
+ mSession.setAttribute(ALERT_TXT, message);
+ mSession.setAttribute(ALERT_DETAILS, details);
+ mSession.setAttribute(ALERT_TYPE, CCAlert.TYPE_INFO);
+ }
+
+ /**
+ * Sets the message text and details for an alert
+ */
+ public void setErrorMessage(String message, String details) {
+ mSession.setAttribute(ALERT_TXT, message);
+ mSession.setAttribute(ALERT_DETAILS, details);
+ mSession.setAttribute(ALERT_TYPE, CCAlert.TYPE_ERROR);
+ }
+
+ /**
+ * Set error message with details from provided exception
+ */
+ public void setErrorMessage(String message, SPIException ex) {
+ setErrorMessage(message, ex.getLocalizedMessage(mRequest.getLocale()));
+ }
+
+ public void setAnchor(String anchor) {
+ mSession.setAttribute("ANCHOR", anchor);
+ }
+
+ /**
+ * Returns true, if any errors occured
+ */
+ public boolean hasAlert() {
+ return getAlertMessage() != null;
+ }
+
+ /**
+ * Returns the alert message
+ */
+ public String getAlertMessage() {
+ return (String) mSession.getAttribute(ALERT_TXT);
+ }
+
+ /**
+ * Return the type of the alert
+ */
+ public String getAlertType() {
+ return (String) mSession.getAttribute(ALERT_TYPE);
+ }
+
+ /**
+ * Returns the alert details
+ */
+ public String getAlertDetails() {
+ return (String) mSession.getAttribute(ALERT_DETAILS);
+ }
+
+ /**
+ * Retrieves the profile manager from the session
+ *
+ * @return the profile manager
+ */
+ public PolicyMgrHelper getProfileHelper() {
+ return (PolicyMgrHelper) mSession.getAttribute(PROFILE_HELPER);
+ }
+
+ public String getAnchor() {
+ return (String) mSession.getAttribute("ANCHOR");
+ }
+
+
+ /**
+ * This method just implements the RequestParticipant interface. It is
+ * automatically called by the JATO framework and initializes the model.
+ * As part of the initialization the selected profile will be retrieved (or
+ * eventually a new one will be created) and the selected tab is determined.
+ */
+ public void setRequestContext(RequestContext requestContext) {
+ mRequest = requestContext.getRequest();
+ mSession = mRequest.getSession();
+ setProfile(determineProfile());
+ setSelectedTab(determineSelectedTab());
+ setSelectedCategory(determineSelectedCategory());
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/ProfileWindowPageletView.java b/src/com/sun/apoc/manager/profiles/ProfileWindowPageletView.java
new file mode 100644
index 0000000..d963b1e
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/ProfileWindowPageletView.java
@@ -0,0 +1,122 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.JspDisplayEvent;
+import com.sun.apoc.manager.profiles.GeneralSettingsViewBean;
+import com.sun.apoc.manager.SettingsSummaryViewBean;
+import com.sun.web.ui.common.CCDebug;
+
+public class ProfileWindowPageletView extends RequestHandlingViewBase {
+
+ public static final String CHILD_ASSIGNEES = "Assignees";
+ public static final String CHILD_GENERAL = "GeneralSettings";
+ public static final String CHILD_SUMMARY = "SettingsSummary";
+ public static final String CHILD_ADVANCED = "AdvancedOptions";
+
+ private ProfileWindowModel mModel = null;
+
+ public ProfileWindowPageletView(View parent, String name) {
+ super(parent, name);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_GENERAL, GeneralSettingsViewBean.class);
+ registerChild(CHILD_ASSIGNEES, AssigneesViewBean.class);
+ registerChild(CHILD_SUMMARY, SettingsSummaryViewBean.class);
+ registerChild(CHILD_ADVANCED, AdvancedOptionsViewBean.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_GENERAL)) {
+ GeneralSettingsViewBean child = new GeneralSettingsViewBean(this, name);
+ return child;
+
+ } else if (name.equals(CHILD_ASSIGNEES)) {
+ AssigneesViewBean child = new AssigneesViewBean(this, name);
+ return child;
+
+ } else if (name.equals(CHILD_SUMMARY)) {
+ SettingsSummaryViewBean child = new SettingsSummaryViewBean();
+ return child;
+
+ } else if (name.equals(CHILD_ADVANCED)) {
+ AdvancedOptionsViewBean child = new AdvancedOptionsViewBean(this, name);
+ return child;
+
+ } else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) {
+ String url = null;
+ String selectedTab = getModel().getSelectedTab();
+ if (selectedTab != null) {
+ if (selectedTab.equals(ProfileWindowModel.ASSIGNEES_TAB)) {
+ url = "/jsp/profiles/Assignees.jsp";
+ } else if (selectedTab.equals(ProfileWindowModel.GENERAL_TAB)) {
+ url = "/jsp/profiles/GeneralSettings.jsp";
+ } else if (selectedTab.equals(ProfileWindowModel.SUMMARY_TAB)) {
+ url = "/jsp/profiles/SettingsSummary.jsp";
+ } else if (selectedTab.equals(ProfileWindowModel.ADVANCED_TAB)) {
+ url = "/jsp/profiles/AdvancedOptions.jsp";
+ }
+ if (url != null) {
+ try {
+ ((JspDisplayEvent) event).getPageContext().include(url);
+ } catch (ServletException ex) {
+ CCDebug.trace1(ex.toString());
+ } catch (IOException ex) {
+ CCDebug.trace1(ex.toString());
+ }
+ }
+ }
+ }
+
+ private ProfileWindowModel getModel() {
+ if (mModel == null) {
+ mModel = (ProfileWindowModel) getModel(ProfileWindowModel.class);
+ }
+ return mModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/ProfileWindowSettingsCategoriesTableModel.java b/src/com/sun/apoc/manager/profiles/ProfileWindowSettingsCategoriesTableModel.java
new file mode 100644
index 0000000..b31225e
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/ProfileWindowSettingsCategoriesTableModel.java
@@ -0,0 +1,129 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import java.util.HashMap;
+import java.util.Iterator;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.RequestParticipant;
+import com.sun.apoc.templates.parsing.TemplateCategory;
+import com.sun.apoc.templates.parsing.TemplatePage;
+import com.sun.apoc.templates.parsing.TemplateRepository;
+import com.sun.apoc.manager.resource.ResourceRepository;
+import com.sun.web.ui.model.CCActionTableModel;
+
+
+public class ProfileWindowSettingsCategoriesTableModel extends CCActionTableModel
+ implements RequestParticipant {
+
+ public static final String CATEGORY_NAME = "CategoryName";
+ public static final String CATEGORY_HREF = "CategoryHref";
+ public static final String CATEGORY_DESCR = "CategoryDescription";
+
+ private ProfileWindowModel mEditorModel = null;
+ private RequestContext mRequestContext = null;
+ private TemplatePage mTemplatePage = null;
+
+ public ProfileWindowSettingsCategoriesTableModel() {
+ super(RequestManager.getRequestContext().getServletContext(),
+ "/jsp/categories/Navigation.xml");
+ setActionValue("NameColumn", "APOC.policies.nameCol");
+ setActionValue("DescriptionColumn", "APOC.policies.commentCol");
+ }
+
+ public void setRequestContext(RequestContext ctx) {
+ mRequestContext = ctx;
+ String templatePath = getEditorModel().getSelectedCategory();
+ TemplateRepository templateRepository = TemplateRepository.getDefaultRepository();
+ mTemplatePage = templateRepository.getPage(templatePath, getEditorModel().getSettingsScope());
+ getRowList().clear();
+ if ((mTemplatePage != null) && (mTemplatePage.hasSubCategories())) {
+ HashMap subCategories = mTemplatePage.getSubCategories();
+ Iterator it = subCategories.values().iterator();
+ ResourceRepository resources = ResourceRepository.getDefaultRepository();
+ while(it.hasNext()) {
+ TemplateCategory tiledCategory = (TemplateCategory) it.next();
+ if (tiledCategory.isInScope(getEditorModel().getSettingsScope())) {
+ appendRow();
+ // set category name
+ String name = resources.getMessage(
+ tiledCategory.getResourceId(),
+ tiledCategory.getResourceBundle(),
+ RequestManager.getRequest());
+ setValue(CATEGORY_NAME, name);
+
+ // set category description
+ String description = "";
+ if (tiledCategory.getDescriptionId() != null) {
+ description = resources.getMessage(
+ tiledCategory.getDescriptionId(),
+ tiledCategory.getResourceBundle(),
+ RequestManager.getRequest());
+ }
+ setValue(CATEGORY_DESCR, description);
+
+ // set category path
+ StringBuffer path = new StringBuffer(templatePath);
+ path.append(TemplateRepository.TEMPLATE_PATH_SEPARATOR);
+ path.append(tiledCategory.getDefaultName());
+ setValue(CATEGORY_HREF, path.toString());
+ }
+ }
+ }
+ }
+
+ public TemplatePage getSelectedTemplatePage() {
+ return mTemplatePage;
+ }
+
+ public boolean hasSubCategories() {
+ if (mTemplatePage != null) {
+ return mTemplatePage.hasSubCategories();
+ } else {
+ return true;
+ }
+ }
+
+ private ProfileWindowModel getEditorModel() {
+ if (mEditorModel == null) {
+ mEditorModel = (ProfileWindowModel) mRequestContext.getModelManager().getModel(ProfileWindowModel.class);
+ }
+ return mEditorModel;
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/profiles/SearchTableModel.java b/src/com/sun/apoc/manager/profiles/SearchTableModel.java
new file mode 100755
index 0000000..ae49c6e
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/SearchTableModel.java
@@ -0,0 +1,163 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.ldap.entities.LdapEntityType;
+import com.sun.apoc.spi.profiles.Profile;
+
+import com.sun.web.ui.model.CCActionTableModel;
+import java.util.Iterator;
+import java.util.StringTokenizer;
+import java.util.TreeMap;
+public class SearchTableModel extends CCActionTableModel {
+
+ public static final String CHILD_NAME_COLUMN1 = "NameColumn1";
+ public static final String CHILD_NAME_TEXT1 = "NameText1";
+ public static final String CHILD_NAME_HREF1 = "NameHref1";
+ public static final String CHILD_NAME_COLUMN2 = "NameColumn2";
+ public static final String CHILD_NAME_TEXT2 = "NameText2";
+ public static final String CHILD_NAME_HREF2 = "NameHref2";
+ public static final String CHILD_NAME_COLUMN3 = "NameColumn3";
+ public static final String CHILD_NAME_TEXT3 = "NameText3";
+ public static final String CHILD_NAME_HREF3 = "NameHref3";
+
+ //
+ private String m_sEntityType = LdapEntityType.STR_UNKNOWN;
+ private int m_nMaxRows = 10;
+
+ public SearchTableModel() {
+ super();
+ setMaxRows(m_nMaxRows);
+ setActionValue(CHILD_NAME_COLUMN1, "");
+ setActionValue(CHILD_NAME_COLUMN2, "");
+ setActionValue(CHILD_NAME_COLUMN3, "");
+ }
+
+ public void retrieve(String sPattern) throws ModelControlException {
+ PolicyManager policyManager = (PolicyManager) RequestManager.getRequest().getSession(false).getAttribute(CopyMoveWizardPageModel.SOURCE_POLICYMGR);
+ clear();
+
+ if ( (sPattern==null) || (sPattern.length() == 0) ) {
+ sPattern = "*";
+ } else {
+ sPattern = stripQuotes(sPattern);
+ }
+
+ try {
+ TreeMap sortContainer = new TreeMap();
+ Iterator profiles = policyManager.getProfileProvider(LdapEntityType.STR_ALL).getAllProfiles();
+
+ while (profiles.hasNext()) {
+ Profile profile = (Profile) profiles.next();
+ if (isMatch(profile.getDisplayName(), sPattern)) {
+ sortContainer.put(profile.getDisplayName(), profile.getId());
+ }
+ }
+
+ Iterator sortContainerIter = sortContainer.keySet().iterator();
+ while (sortContainerIter.hasNext()) {
+ appendRow();
+
+ // 1st column
+ String sDisplayName = (String) sortContainerIter.next();
+ String sId = (String) sortContainer.get(sDisplayName);
+ setValue(CHILD_NAME_TEXT1, sDisplayName);
+ setValue(CHILD_NAME_HREF1, sId);
+
+ // 2nd column
+ if (sortContainerIter.hasNext()) {
+ sDisplayName = (String) sortContainerIter.next();
+ sId = (String) sortContainer.get(sDisplayName);
+ } else {
+ sDisplayName = null;
+ sId = null;
+ }
+ setValue(CHILD_NAME_TEXT2, sDisplayName);
+ setValue(CHILD_NAME_HREF2, sId);
+
+ // 3rd column
+ if (sortContainerIter.hasNext()) {
+ sDisplayName = (String) sortContainerIter.next();
+ sId = (String) sortContainer.get(sDisplayName);
+ } else {
+ sDisplayName = null;
+ sId = null;
+ }
+ setValue(CHILD_NAME_TEXT3, sDisplayName);
+ setValue(CHILD_NAME_HREF3, sId);
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ private boolean isMatch(String sData, String sFilter)
+ {
+ int nCurrentDataPosition = 0;
+ int nMatchPosition = 0;
+ StringTokenizer aTokenizer = new StringTokenizer(sFilter, "*");
+ String sSubMatcher = "";
+ while(aTokenizer.hasMoreTokens())
+ {
+ sSubMatcher = (String)aTokenizer.nextElement();
+ nMatchPosition = sData.indexOf(sSubMatcher, nCurrentDataPosition);
+ if(nCurrentDataPosition == 0 && !sFilter.startsWith("*") && nMatchPosition != 0)
+ return false;
+ if(nMatchPosition == -1)
+ return false;
+ nCurrentDataPosition = nMatchPosition + sSubMatcher.length();
+ }
+ return sFilter.endsWith("*") || nCurrentDataPosition == sData.length();
+ }
+
+ private String stripQuotes(String sQuoted) {
+ sQuoted = sQuoted.trim();
+
+ if (sQuoted.length()>=2) {
+ if (sQuoted.substring(0,1).equals("\"") && sQuoted.substring(sQuoted.length()-1).equals("\"")) {
+ sQuoted=sQuoted.substring(1, sQuoted.length()-1);
+ } else if (sQuoted.substring(0,1).equals("'") && sQuoted.substring(sQuoted.length()-1).equals("'")) {
+ sQuoted=sQuoted.substring(1, sQuoted.length()-1);
+ }
+ }
+
+ return sQuoted;
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/SearchTableView.java b/src/com/sun/apoc/manager/profiles/SearchTableView.java
new file mode 100755
index 0000000..be00100
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/SearchTableView.java
@@ -0,0 +1,86 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.sun.web.ui.view.html.CCHiddenField;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.table.CCActionTable;
+import javax.servlet.ServletContext;
+
+public class SearchTableView extends RequestHandlingViewBase {
+ public static final String CHILD_ENTITY_TABLE = "ProfileTable";
+ protected SearchTableModel m_Model = null;
+
+ public SearchTableView(View parent, String name) {
+ super(parent, name);
+ ServletContext context = RequestManager.getRequestContext().getServletContext();
+ m_Model = (SearchTableModel) getModel(SearchTableModel.class);
+ m_Model.setDocument(context, "/jsp/profiles/SearchTable.xml");
+
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ENTITY_TABLE, CCActionTable.class);
+ m_Model.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_ENTITY_TABLE)) {
+ CCActionTable child = new CCActionTable(this, m_Model, name);
+ return child;
+ }
+ else if (m_Model.isChildSupported(name)) {
+ return m_Model.createChild(this, name);
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ CCHiddenField textField = (CCHiddenField) ((ContainerView) getParent()).getChild("SearchString");
+ m_Model.retrieve((String) textField.getValue());
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/profiles/SearchTiledModel.java b/src/com/sun/apoc/manager/profiles/SearchTiledModel.java
new file mode 100755
index 0000000..d14f028
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/SearchTiledModel.java
@@ -0,0 +1,177 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.DefaultModel;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.profiles.Profile;
+import java.util.Iterator;
+import java.util.StringTokenizer;
+import java.util.TreeMap;public class SearchTiledModel extends DefaultModel {
+
+ public static final String CHILD_RESULT1_HREF = "Result1Href";
+ public static final String CHILD_RESULT2_HREF = "Result2Href";
+ public static final String CHILD_RESULT3_HREF = "Result3Href";
+ public static final String CHILD_RESULT1_TEXT = "Result1Text";
+ public static final String CHILD_RESULT2_TEXT = "Result2Text";
+ public static final String CHILD_RESULT3_TEXT = "Result3Text";
+
+ public SearchTiledModel() {
+ super();
+ }
+
+ public void retrieve(String sPattern) throws ModelControlException {
+ PolicyManager policyManager = (PolicyManager) RequestManager.getRequest().getSession(false).getAttribute(CopyMoveWizardPageModel.SOURCE_POLICYMGR);
+
+ clear();
+
+ if ( (sPattern==null) || (sPattern.length() == 0) ) {
+ sPattern = "*";
+ } else {
+ sPattern = stripQuotes(sPattern);
+ }
+
+ try {
+ TreeMap sortContainer = new TreeMap();
+ String selectedProfileId = (String)RequestManager.getRequest().getSession(false).getAttribute(Constants.PROFILE_SEARCH_PROFILE);
+ String sSource = null;
+ if (selectedProfileId != null && selectedProfileId.length() != 0) {
+ sSource = policyManager.getProfile(selectedProfileId).getProfileRepository().getEntity().getPolicySourceName();
+ }
+ Iterator profiles = null;
+ if (sSource != null) {
+ profiles = policyManager.getProfileProvider(sSource).getAllProfiles();
+ } else {
+ profiles = policyManager.getAllProfiles();
+ }
+
+ while (profiles.hasNext()) {
+ Profile profile = (Profile) profiles.next();
+ if (isMatch(profile.getDisplayName(), sPattern)) {
+ sortContainer.put(profile.getDisplayName(), profile.getId());
+ }
+ }
+
+ if (sortContainer.size()==0) {return;}
+
+ Object [] resultArray = sortContainer.keySet().toArray();
+ int nColumnLength = (resultArray.length+2)/3;
+ int column1Runner = 0;
+ int column2Runner = nColumnLength;
+ int column3Runner = resultArray.length-(resultArray.length-nColumnLength)/2;
+ while ( column1Runner<nColumnLength ) {
+ appendRow();
+
+ // 1st column
+ String sDisplayName = (String) resultArray[column1Runner];
+ String sId = (String) sortContainer.get(sDisplayName);
+ setValue(CHILD_RESULT1_TEXT, sDisplayName);
+ setValue(CHILD_RESULT1_HREF, sId);
+
+ // 2nd column
+ if (column2Runner<(resultArray.length-(resultArray.length-nColumnLength)/2)) {
+ sDisplayName = (String) resultArray[column2Runner];
+ sId = (String) sortContainer.get(sDisplayName);
+ } else {
+ sDisplayName = null;
+ sId = null;
+ }
+ setValue(CHILD_RESULT2_TEXT, sDisplayName);
+ setValue(CHILD_RESULT2_HREF, sId);
+
+ // 3rd column
+ if (column3Runner<resultArray.length) {
+ sDisplayName = (String) resultArray[column3Runner];
+ sId = (String) sortContainer.get(sDisplayName);
+ } else {
+ sDisplayName = null;
+ sId = null;
+ }
+ setValue(CHILD_RESULT3_TEXT, sDisplayName);
+ setValue(CHILD_RESULT3_HREF, sId);
+ column1Runner++;
+ column2Runner++;
+ column3Runner++;
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ private boolean isMatch(String sData, String sFilter)
+ {
+ int nCurrentDataPosition = 0;
+ int nMatchPosition = 0;
+ StringTokenizer aTokenizer = new StringTokenizer(sFilter, "*");
+ String sSubMatcher = "";
+ while(aTokenizer.hasMoreTokens())
+ {
+ sSubMatcher = (String)aTokenizer.nextElement();
+ nMatchPosition = sData.indexOf(sSubMatcher, nCurrentDataPosition);
+ if(nCurrentDataPosition == 0 && !sFilter.startsWith("*") && nMatchPosition != 0)
+ return false;
+ if(nMatchPosition == -1)
+ return false;
+ nCurrentDataPosition = nMatchPosition + sSubMatcher.length();
+ }
+ return sFilter.endsWith("*") || nCurrentDataPosition == sData.length();
+ }
+
+ private String stripQuotes(String sQuoted) {
+ sQuoted = sQuoted.trim();
+
+ if (sQuoted.length()>=2) {
+ if (sQuoted.substring(0,1).equals("\"") && sQuoted.substring(sQuoted.length()-1).equals("\"")) {
+ sQuoted=sQuoted.substring(1, sQuoted.length()-1);
+ } else if (sQuoted.substring(0,1).equals("'") && sQuoted.substring(sQuoted.length()-1).equals("'")) {
+ sQuoted=sQuoted.substring(1, sQuoted.length()-1);
+ }
+ }
+
+ return sQuoted;
+ }
+
+ protected NavigationModel getModel() {
+ return (NavigationModel) RequestManager.getRequestContext().getModelManager().getModel(NavigationModel.class,
+ "NavTree", true, true);
+ }
+}
diff --git a/src/com/sun/apoc/manager/profiles/SearchTiledView.java b/src/com/sun/apoc/manager/profiles/SearchTiledView.java
new file mode 100755
index 0000000..c46fde6
--- /dev/null
+++ b/src/com/sun/apoc/manager/profiles/SearchTiledView.java
@@ -0,0 +1,78 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.profiles;
+
+import com.iplanet.jato.view.RequestHandlingTiledViewBase;
+import com.iplanet.jato.view.View;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+
+public class SearchTiledView extends RequestHandlingTiledViewBase {
+
+ public SearchTiledView(View parent, String name) {
+ super(parent, name);
+ setPrimaryModel(getModel(SearchTiledModel.class));
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(SearchTiledModel.CHILD_RESULT1_HREF, CCHref.class);
+ registerChild(SearchTiledModel.CHILD_RESULT2_HREF, CCHref.class);
+ registerChild(SearchTiledModel.CHILD_RESULT3_HREF, CCHref.class);
+ registerChild(SearchTiledModel.CHILD_RESULT1_TEXT, CCStaticTextField.class);
+ registerChild(SearchTiledModel.CHILD_RESULT2_TEXT, CCStaticTextField.class);
+ registerChild(SearchTiledModel.CHILD_RESULT3_TEXT, CCStaticTextField.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(SearchTiledModel.CHILD_RESULT1_HREF) ||
+ name.equals(SearchTiledModel.CHILD_RESULT2_HREF) ||
+ name.equals(SearchTiledModel.CHILD_RESULT3_HREF)) {
+ CCHref child = new CCHref(this, getPrimaryModel(), name, null);
+ return child;
+ }
+ else if (name.equals(SearchTiledModel.CHILD_RESULT1_TEXT) ||
+ name.equals(SearchTiledModel.CHILD_RESULT2_TEXT) ||
+ name.equals(SearchTiledModel.CHILD_RESULT3_TEXT)) {
+ CCStaticTextField child = new CCStaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+ }
+ else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/report/CategoryTiledModel.java b/src/com/sun/apoc/manager/report/CategoryTiledModel.java
new file mode 100644
index 0000000..574057c
--- /dev/null
+++ b/src/com/sun/apoc/manager/report/CategoryTiledModel.java
@@ -0,0 +1,133 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.report;
+
+import java.io.File;
+import java.util.Vector;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Iterator;
+import java.util.HashMap;
+import java.util.Enumeration;
+import javax.servlet.http.HttpServletRequest;
+
+import com.iplanet.jato.model.DefaultModel;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.RequestParticipant;
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestManager;
+
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.common.CCI18N;
+
+import com.sun.apoc.templates.parsing.TemplateCategory;
+import com.sun.apoc.templates.parsing.TemplatePage;
+import com.sun.apoc.templates.parsing.TemplateElement;
+import com.sun.apoc.templates.parsing.TemplateSection;
+import com.sun.apoc.templates.parsing.TemplateRepository;
+import com.sun.apoc.manager.resource.ResourceRepository;
+import com.sun.apoc.manager.Constants;
+
+
+public class CategoryTiledModel extends DefaultModel {
+
+ public static final String TURNER_ID_PREFIX = "turner.";
+ public static final String IMAGE_ID_PREFIX = "image.";
+ public static final String DESCOL_ID_PREFIX = "desCol.";
+ public static final String STATUSCOL_ID_PREFIX = "statusCol.";
+
+ private ArrayList m_resultsData = null;
+ private ArrayList m_categories = null;
+
+ /**
+ * Creates a new instance of CategoryTiledModel
+ */
+ public CategoryTiledModel() {
+ super();
+ }
+
+ public void setData(ArrayList resultsData) {
+ m_resultsData = resultsData;
+ m_categories = new ArrayList();
+ Iterator it = m_resultsData.iterator();
+ while (it.hasNext()) {
+ ResultsData data = (ResultsData)it.next();
+ String path = data.getPath();
+ String catname = path.substring(0, path.indexOf(';'));
+ if (!m_categories.contains(catname)) {
+ m_categories.add(catname);
+ }
+ }
+
+ try {
+ this.setSize(m_categories.size());
+ } catch (ModelControlException mce){
+ CCDebug.trace2("Model contol expection caught: "+mce);
+ }
+ }
+
+ public void retrieve() throws ModelControlException {
+ Iterator it = m_categories.iterator();
+ int i = 1;
+ while (it.hasNext()) {
+ String category = (String)it.next();
+ String id = Integer.toString(i);
+ setValue(CategoryTiledView.CHILD_CATEGORY, category);
+ setValue(CategoryTiledView.CHILD_ROW_ID, id);
+ setValue(CategoryTiledView.CHILD_TURNER_ID, TURNER_ID_PREFIX + id);
+ setValue(CategoryTiledView.CHILD_IMAGE_ID, IMAGE_ID_PREFIX + id);
+ i++;
+ next();
+ }
+ first();
+ }
+
+ public ArrayList getCurrentCategoryData() {
+ String currentCategory = (String)getValue(CategoryTiledView.CHILD_CATEGORY);
+ ArrayList dataForCategory = new ArrayList();
+ Iterator it = m_resultsData.iterator();
+ while (it.hasNext()) {
+ ResultsData data = (ResultsData)it.next();
+ String path = data.getPath();
+ String catname = path.substring(0, path.indexOf(';'));
+ if (catname.equals(currentCategory)) {
+ dataForCategory.add(data);
+ }
+ }
+ return dataForCategory;
+ }
+}
diff --git a/src/com/sun/apoc/manager/report/CategoryTiledView.java b/src/com/sun/apoc/manager/report/CategoryTiledView.java
new file mode 100644
index 0000000..80331a6
--- /dev/null
+++ b/src/com/sun/apoc/manager/report/CategoryTiledView.java
@@ -0,0 +1,130 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.report;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingTiledViewBase;
+import com.iplanet.jato.view.html.StaticTextField;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.model.ModelControlException;
+import java.text.DateFormat;
+import java.util.Date;
+
+
+public class CategoryTiledView extends RequestHandlingTiledViewBase {
+
+ public static final String CHILD_ROW_ID =
+ "RowID";
+ public static final String CHILD_TURNER_ID =
+ "TurnerID";
+ public static final String CHILD_IMAGE_ID =
+ "ImageID";
+ public static final String CHILD_CATEGORY =
+ "Category";
+ public static final String CHILD_SECTION_TILEDVIEW =
+ "SectionTiledView";
+
+ private CategoryTiledModel m_tiledModel = null;
+ private int m_Id = 1;
+
+ public CategoryTiledView(View parent, String name) {
+ super(parent, name);
+ setPrimaryModel(getModel());
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ROW_ID, StaticTextField.class);
+ registerChild(CHILD_TURNER_ID, StaticTextField.class);
+ registerChild(CHILD_IMAGE_ID, StaticTextField.class);
+ registerChild(CHILD_CATEGORY, StaticTextField.class);
+ registerChild(CHILD_SECTION_TILEDVIEW, SectionTiledView.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_CATEGORY)) {
+ StaticTextField child = new StaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+
+ } else if (name.equals(CHILD_ROW_ID)) {
+ StaticTextField child = new StaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+
+ } else if (name.equals(CHILD_TURNER_ID)) {
+ StaticTextField child = new StaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+
+ } else if (name.equals(CHILD_IMAGE_ID)) {
+ StaticTextField child = new StaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+
+ } else if (name.equals(CHILD_SECTION_TILEDVIEW)) {
+ SectionTiledView child = new SectionTiledView(this, name);
+ return child;
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ if (getPrimaryModel() == null){
+ throw new ModelControlException("Primary Model is null");
+ }
+ super.beginDisplay(event);
+ resetTileIndex();
+ getModel().retrieve();
+ }
+
+ public boolean beginSectionTiledViewDisplay (ChildDisplayEvent event) {
+ SectionTiledView child = (SectionTiledView) getChild(CHILD_SECTION_TILEDVIEW);
+ SectionTiledModel model = (SectionTiledModel) child.getPrimaryModel();
+ model.setData(getModel().getCurrentCategoryData(), Integer.toString(m_Id));
+ m_Id++;
+ return true;
+ }
+
+
+
+ protected CategoryTiledModel getModel(){
+ if (m_tiledModel == null) {
+ m_tiledModel = (CategoryTiledModel) getModel(CategoryTiledModel.class);
+ }
+ return m_tiledModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/report/ElementsInvolvedTableModel.java b/src/com/sun/apoc/manager/report/ElementsInvolvedTableModel.java
new file mode 100644
index 0000000..0407326
--- /dev/null
+++ b/src/com/sun/apoc/manager/report/ElementsInvolvedTableModel.java
@@ -0,0 +1,79 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.report;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestParticipant;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.web.ui.model.CCActionTableModel;
+import java.util.ArrayList;
+
+public class ElementsInvolvedTableModel extends CCActionTableModel {
+ // Child view names (i.e. display fields).
+ public static final String CHILD_ELEMENTS_INVOLVED_COLUMN = "ElementsInvolvedColumn";
+ public static final String CHILD_ELEMENTS_INVOLVED_TEXT = "ElementsInvolvedValue";
+
+ //
+ private RequestContext m_requestContext;
+
+ public ElementsInvolvedTableModel() {
+ super();
+ setActionValue(CHILD_ELEMENTS_INVOLVED_COLUMN, "Elements");
+ }
+
+ public void retrieve(ArrayList elements, ArrayList elementTypes) throws ModelControlException {
+ clear();
+ try {
+ for (int i = 0; i < elements.size(); i++) {
+ appendRow();
+ String hrefValue="BrowseHref";
+ String elementId = Toolbox2.decode((String)elements.get(i));
+ String elementType = (String)elementTypes.get(i);
+ Entity entity = Toolbox2.getPolicyManager().getEntity(elementType, elementId);
+ setValue(CHILD_ELEMENTS_INVOLVED_TEXT, Toolbox2.getParentagePath(entity, false, true, ">"));
+ }
+
+ } catch (Exception e) {
+ throw new ModelControlException(e);
+ }
+
+ }
+
+}
+
diff --git a/src/com/sun/apoc/manager/report/PolicyMgrReportHelper.java b/src/com/sun/apoc/manager/report/PolicyMgrReportHelper.java
new file mode 100644
index 0000000..ed0460b
--- /dev/null
+++ b/src/com/sun/apoc/manager/report/PolicyMgrReportHelper.java
@@ -0,0 +1,282 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.report;
+
+import com.sun.apoc.manager.Toolbox2;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.ArrayList;
+
+import com.sun.apoc.spi.cfgtree.policynode.PolicyNode;
+import com.sun.apoc.spi.cfgtree.PolicyTree;
+import com.sun.apoc.spi.cfgtree.property.Property;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.cfgtree.readwrite.ReadWritePolicyTreeFactoryImpl;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.policies.Policy;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.cfgtree.XMLStreamable;
+import com.sun.apoc.spi.cfgtree.policynode.PolicyNodeImpl;
+
+import com.sun.web.ui.common.CCDebug;
+public class PolicyMgrReportHelper {
+
+ public static final String SEPARATOR = "/";
+ public static final String PENDING = "pending_";
+ public static final String DISABLED = "disabled_";
+ public static final String PENDING_DISABLED = PENDING + DISABLED;
+
+ private Profile m_profile = null;
+ private LinkedList m_entityList = new LinkedList();
+ private LinkedList m_groupList = new LinkedList();
+ private HashMap m_reportingTreeCache = new HashMap();
+ private HashMap m_definedProps = new HashMap();
+ private HashMap m_policyIterators = new HashMap();
+
+ public PolicyMgrReportHelper() {
+ }
+
+ public PolicyMgrReportHelper(Profile profile) {
+ initialize();
+ try {
+ m_profile = profile;
+ m_groupList.add(m_profile);
+ getPolicyIterators();
+ } catch (SPIException e) {
+ CCDebug.trace3(e.toString());
+ }
+ }
+
+ public PolicyMgrReportHelper(Entity entity) {
+ initialize();
+ try {
+ Iterator profileIt = entity.getLayeredProfiles();
+ while (profileIt.hasNext()) {
+ m_groupList.add(0, profileIt.next());
+ }
+ getPolicyIterators();
+ } catch (SPIException e) {
+ CCDebug.trace3("Error getting layered profiles for PolicyMgrReportHelper! " + e.toString());
+ }
+ }
+
+ public PolicyMgrReportHelper(ArrayList entityList) {
+ initialize();
+ try {
+ for (int i = 0; i < entityList.size(); i++) {
+ Iterator it = ((Entity)entityList.get(i)).getLayeredProfiles();
+ while (it.hasNext()) {
+ m_groupList.add(0, it.next());
+ }
+ }
+ getPolicyIterators();
+ } catch (SPIException e) {
+ CCDebug.trace3("Error getting layered profiles for PolicyMgrReportHelper! " + e.toString());
+ }
+ }
+
+ public LinkedList getPolicyGroupList() {
+ return m_groupList;
+ }
+
+ public void getPolicyIterators() throws SPIException {
+ Profile profile = null;
+ Iterator profileIt = m_groupList.iterator();
+
+ while (profileIt.hasNext()) {
+ profile = (Profile)profileIt.next();
+ Iterator policyIt = profile.getPolicies();
+ while (policyIt.hasNext()) {
+ Policy policy = (Policy)policyIt.next();
+ String id = policy.getId();
+ if (m_policyIterators.containsKey(id)) {
+ ArrayList list = (ArrayList)m_policyIterators.get(id);
+ list.add(0, policy);
+ m_policyIterators.put(id, list);
+ } else {
+ ArrayList list = new ArrayList();
+ list.add(policy);
+ m_policyIterators.put(id, list);
+ }
+ }
+ }
+ }
+
+ public void initialize() {
+ m_reportingTreeCache.clear();
+ m_entityList.clear();
+ m_groupList.clear();
+ m_definedProps.clear();
+ m_policyIterators.clear();
+ }
+
+ public boolean equalProperties(Property prop1, Property prop2) throws SPIException {
+ if ((prop1 == null) || (prop2 == null)) {
+ return false;
+ } else if (prop1.isProtected() != prop2.isProtected()) {
+ return false;
+ } else if (prop1.getValue() == null) {
+ if (prop2.getValue() != null) {
+ return false;
+ }
+ } else if (!prop1.getValue().equals(prop2.getValue())) {
+ return false;
+ }
+ return true;
+ }
+
+ public PolicyTree getTree(Iterator groupIterator, String policyId) throws SPIException {
+
+ PolicyTree policyTree = null;
+
+ if (m_reportingTreeCache.containsKey(policyId)) {
+ policyTree = (PolicyTree) m_reportingTreeCache.get(policyId);
+ } else {
+ Iterator policyIterator = getPolicyIterator(policyId);
+ if (policyIterator.hasNext()) {
+ ReadWritePolicyTreeFactoryImpl factory = new ReadWritePolicyTreeFactoryImpl();
+ policyTree = factory.getPolicyTree(policyIterator);
+ }
+ m_reportingTreeCache.put(policyId, policyTree);
+ }
+
+ return policyTree;
+ }
+
+ public Property getReportProperty(String dataPath)
+ throws SPIException {
+
+ Property property = null;
+ String propertyName = dataPath.substring(dataPath.lastIndexOf('/')+1);
+ String policyId = dataPath.substring(0, dataPath.indexOf('/'));
+ PolicyTree policyTree = getTree(m_groupList.iterator(), policyId);
+ String policyNodePath = dataPath.substring(0, dataPath.lastIndexOf('/')+1);
+
+ if (policyTree != null) {
+ PolicyNode policyNode = policyTree.getNode(policyNodePath);
+ if (policyNode != null) {
+ property = policyNode.getProperty(propertyName);
+ }
+ }
+ return property;
+ }
+
+ public HashMap getAllDefinedProperties()
+ throws SPIException {
+
+ Iterator policyIds = m_policyIterators.keySet().iterator();
+ while (policyIds.hasNext()) {
+ String id = (String) policyIds.next();
+ PolicyTree tree = getTree(m_groupList.iterator(), id);
+ recursiveGetProperties(tree, "");
+ }
+ return m_definedProps;
+ }
+
+ public void recursiveGetProperties(PolicyTree policyTree, String nodePath)
+ throws SPIException {
+ PolicyNode node = null;
+ if (nodePath.length() == 0) {
+ node = policyTree.getRootNode();
+ } else {
+ String pathSoFar = policyTree.getRootNode().getAbsolutePath() + nodePath + "/";
+ node = policyTree.getNode(pathSoFar);
+ }
+ String encodedSlash = Toolbox2.encode("/");
+ String[] propNames = node.getPropertyNames();
+ String[] childNames = node.getChildrenNames();
+ if (propNames != null && propNames.length != 0) {
+ for (int i = 0; i < propNames.length; i++) {
+ String dataPath = policyTree.getRootNode().getAbsolutePath() + nodePath + "/" + propNames[i].replaceAll("/", encodedSlash);
+ m_definedProps.put(dataPath, node.getProperty(propNames[i]));
+ }
+ }
+ if (childNames != null && childNames.length != 0) {
+ for (int j = 0; j < childNames.length; j++) {
+ recursiveGetProperties(policyTree, nodePath + "/" + childNames[j].replaceAll("/", encodedSlash));
+ }
+ }
+ }
+
+ public boolean isASetNode(String dataPath)
+ throws SPIException {
+ boolean isASetNode = false;
+ PolicyNode policyNode = getReportPolicyNode(dataPath);
+ if (policyNode != null) {
+ String attributes = ((PolicyNodeImpl)policyNode).getAttributes(XMLStreamable.POLICY_SCHEMA);
+ if(attributes.indexOf("oor:op") != -1) {
+ isASetNode = true;
+ }
+ }
+ return isASetNode;
+ }
+
+ public PolicyNode getReportPolicyNode(String dataPath)
+ throws SPIException {
+
+ PolicyNode policyNode = null;
+ String policyNodePath = dataPath.substring(0, dataPath.lastIndexOf('/')+1);
+ String policyId = dataPath.substring(0, dataPath.indexOf('/'));
+ PolicyTree policyTree = getTree(m_groupList.iterator(), policyId);
+ if (policyTree != null) {
+ policyNode = policyTree.getNode(policyNodePath);
+ }
+
+ return policyNode;
+ }
+
+ public Profile getReportProfile(String profileId) {
+ Profile profile = null;
+ Iterator it = m_groupList.iterator();
+ while (it.hasNext()) {
+ Profile nextProfile = (Profile)it.next();
+ if (nextProfile.getId().equals(profileId)) {
+ profile = nextProfile;
+ break;
+ }
+ }
+ return profile;
+ }
+
+ private Iterator getPolicyIterator(String id) {
+ ArrayList list = (ArrayList)m_policyIterators.get(id);
+ if (list == null) {
+ list = new ArrayList();
+ }
+ return list.iterator();
+ }
+} \ No newline at end of file
diff --git a/src/com/sun/apoc/manager/report/PropertyTiledModel.java b/src/com/sun/apoc/manager/report/PropertyTiledModel.java
new file mode 100644
index 0000000..dc300ec
--- /dev/null
+++ b/src/com/sun/apoc/manager/report/PropertyTiledModel.java
@@ -0,0 +1,393 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.report;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestParticipant;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.templates.parsing.TemplateProperty;
+import com.sun.apoc.templates.parsing.TemplatePropertyConstraint;
+import com.sun.apoc.templates.parsing.TemplateSection;
+import com.sun.apoc.manager.resource.ResourceRepository;
+
+import com.sun.apoc.spi.cfgtree.property.Property;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.policies.Policy;
+import com.sun.apoc.spi.cfgtree.property.MergedProperty;
+import com.sun.apoc.spi.SPIException;
+
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.model.CCActionTableModel;
+import com.sun.web.ui.common.CCI18N;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.templates.parsing.TemplateSet;
+import java.util.ArrayList;
+import javax.servlet.http.HttpServletRequest;
+
+public class PropertyTiledModel extends CCActionTableModel implements RequestParticipant {
+
+ public static final String NAME = "NameValue";
+ public static final String VALUE = "ValueValue";
+ public static final String STATUS = "StatusValue";
+ public static final String PROFILE = "ProfileValue";
+ public static final String DESCRIPTION = "DescriptionValue";
+ public static final String STATUSPRO = "StatusValueProtection";
+
+
+ private ResultsData m_resultsData = null;
+ private String m_Id = "1";
+ private PolicyMgrReportHelper m_policyMgrHelper = null;
+
+ CCI18N m_I18n = null;
+ HttpServletRequest m_Request;
+
+ public PropertyTiledModel() {
+ super();
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public void setRequestContext(RequestContext requestContext) {
+ m_Request = requestContext.getRequest();
+ }
+
+ public void setData(ResultsData resultsData, String id) {
+ m_resultsData = resultsData;
+ m_Id = id;
+ m_policyMgrHelper = (PolicyMgrReportHelper)RequestManager.getRequestContext().getRequest()
+ .getSession(true).getAttribute(Constants.POLICY_MANAGER_HELPER);
+ try {
+ this.setSize(m_resultsData.getPropertyList().size());
+ } catch (ModelControlException mce){
+ CCDebug.trace2("Model contol expection caught: "+mce);
+ }
+ }
+
+ public void retrieve() throws ModelControlException {
+ ResourceRepository resources = ResourceRepository.getDefaultRepository();
+ ArrayList templateProperties = m_resultsData.getTemplatePropertyList();
+ ArrayList properties = m_resultsData.getPropertyList();
+ int j = 1;
+ for (int i = 0; i < templateProperties.size(); i++) {
+ String id = Integer.toString(j);
+ String superId = m_Id + ".";
+ String path = m_resultsData.getPath();
+ String linkPath = m_resultsData.getLinkPath();
+ boolean isASet = m_resultsData.isASet();
+ TemplateSection section = m_resultsData.getSection();
+ if (isASet) {
+ section = (TemplateSet)section;
+ }
+ TemplateProperty templateProperty = (TemplateProperty)templateProperties.get(i);
+ PropertyParams propParams = new PropertyParams((Property)properties.get(i));
+ try {
+ addToModel(NAME, getModelValue(section, templateProperty, propParams, path, linkPath, isASet, NAME));
+ addToModel(VALUE, getModelValue(section, templateProperty, propParams, path, linkPath, isASet, VALUE));
+ addToModel(STATUS, getModelValue(section, templateProperty, propParams, path, linkPath, isASet, STATUS));
+ addToModel(STATUSPRO, getModelValue(section, templateProperty, propParams, path, linkPath, isASet, STATUSPRO));
+ addToModel(PROFILE, getModelValue(section, templateProperty, propParams, path, linkPath, isASet, PROFILE));
+ addToModel(DESCRIPTION, getModelValue(section, templateProperty, propParams, path, linkPath, isASet, DESCRIPTION));
+ setValue(PropertyTiledView.CHILD_ROW_ID, superId + id);
+ }
+ catch (Exception se) {
+ throw new ModelControlException(se);
+ }
+ j++;
+ next();
+ }
+ first();
+ }
+
+ public void addToModel(String name, String value)
+ throws ModelControlException {
+ int currentLocation = getLocation();
+ if (name.equals(NAME)) {
+ setValue(PropertyTiledView.CHILD_NAME_VALUE, value);
+ } else if (name.equals(VALUE)) {
+ setValue(PropertyTiledView.CHILD_VALUE_VALUE, value);
+ } else if (name.equals(STATUS)) {
+ setValue(PropertyTiledView.CHILD_STATUS_VALUE, value);
+ } else if (name.equals(STATUSPRO)) {
+ setValue(PropertyTiledView.CHILD_STATUSPRO_VALUE, value);
+ } else if (name.equals(PROFILE)) {
+ String profileName = "";
+ if (value != null && value.length() != 0) {
+ String profileId = value.substring(0, value.indexOf("|"));
+ String sectionPath = value.substring(value.indexOf("|") + 1);
+ if (profileId != null && profileId.length() != 0) {
+ profileName = m_policyMgrHelper.getReportProfile(profileId).getDisplayName();
+ }
+ setValue(PropertyTiledView.CHILD_PROFILE_VALUE, profileName);
+ setValue(PropertyTiledView.CHILD_PROFILE_VALUE_HREF, profileId + "\\|" + sectionPath);
+ } else {
+ setValue(PropertyTiledView.CHILD_PROFILE_VALUE, profileName);
+ setValue(PropertyTiledView.CHILD_PROFILE_VALUE_HREF, profileName);
+ }
+ }
+ }
+
+ public String getModelValue(TemplateSection section, TemplateProperty prop,
+ PropertyParams propParams, String path,
+ String linkPath, boolean isASet, String str) {
+ ResourceRepository resources = ResourceRepository.getDefaultRepository();
+ String reportType = (String)RequestManager.getRequestContext().getRequest().getSession(true).getAttribute(Constants.REPORT_TYPE);
+ String result = null;
+ if (str.equals(NAME)) {
+ // get localized property name
+ String name = null;
+ name = resources.getMessage(
+ prop.getResourceId(),
+ prop.getResourceBundle(),
+ RequestManager.getRequest());
+
+ result = name;
+
+ } else if (str.equals(VALUE)) {
+ String value = propParams.getValue();
+
+ if (value == null) {
+ if (prop.getDefaultValue() != null ){
+ value = prop.getDefaultValue();
+ } else {
+ value = "";
+ }
+ }
+
+ // If its a checkbox set the value to the display value
+ if (prop.getVisualType().equals(TemplateProperty.CHECKBOX)) {
+ if (value.equals("true")) {
+ value = resources.getValidMessage(
+ prop.getResourceId() + ".checked",
+ prop.getResourceBundle(),
+ RequestManager.getRequest());
+ if (value == null) {
+ value = m_I18n.getMessage("APOC.policies.enabled");
+ }
+ } else {
+ value = resources.getValidMessage(
+ prop.getResourceId() + ".unchecked",
+ prop.getResourceBundle(),
+ RequestManager.getRequest());
+ if (value == null) {
+ value = m_I18n.getMessage("APOC.policies.disabled");;
+ }
+ }
+ // If ifs a radio or combo selection get what the ints mean
+ } else if ((prop.getVisualType().equals(TemplateProperty.RADIOBUTTONS)) ||
+ (prop.getVisualType().equals(TemplateProperty.COMBOBOX))) {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(prop.getResourceId());
+ buffer.append(".");
+ buffer.append(value);
+ String descr = resources.getValidMessage(
+ buffer.toString(),
+ prop.getResourceBundle(),
+ RequestManager.getRequest());
+
+ if (descr == null) {
+ for(int z=0; z < prop.getConstraints().size(); z++) {
+ TemplatePropertyConstraint constraint = (TemplatePropertyConstraint) prop.getConstraints().elementAt(z);
+ if (constraint.getValue().equals(value)) {
+ if (constraint.getResourceId() != null) {
+ descr = resources.getMessage(
+ constraint.getResourceId(),
+ prop.getResourceBundle(),
+ RequestManager.getRequest());
+ break;
+ }
+
+ }
+ }
+ }
+ if (descr != null) {
+ value = descr;
+ } else {
+ value = buffer.toString();
+ }
+
+ // Display string lists correctly bug fix #b4952223
+ } else if (prop.getVisualType().equals(TemplateProperty.STRING_LIST)) {
+ StringBuffer buffer = new StringBuffer();
+ String separator = prop.getSeparator();
+ /*while (value.indexOf(";") != -1) {
+ int end = value.indexOf(";") + 1;
+ buffer.append(value.substring(0, end));
+ buffer.append(" ");
+ value = value.substring(end, value.length());
+ }
+ buffer.append(value);
+ value = buffer.toString();
+ value = value.replaceAll("; ", "<br>");*/
+ value = value.replaceAll(separator, "<br>");
+ } else if (prop.getVisualType().equals(TemplateProperty.COLOR_CHOOSER) &&
+ prop.getDataPath().startsWith("org.openoffice.Office")) {
+ if (value != "") {
+ Integer valueInt = new Integer(value);
+ String hex;
+ try {
+ hex = Integer.toHexString(valueInt.intValue());
+ value = "#"+hex;
+ } catch (NumberFormatException ex) {
+ CCDebug.trace1("Error wrong value format" + valueInt, ex);
+ value = "";
+ }
+ }
+ }
+ result = value;
+
+ } else if (str.equals(STATUS)) {
+ StringBuffer buffer = new StringBuffer();
+ String value = propParams.getValue();
+ if (value != null) {
+ if (reportType.equals(Constants.ENTITY_REPORT_TYPE)) {
+ buffer.append(m_I18n.getMessage("APOC.report.table.defined.in"));
+ } else {
+ buffer.append(m_I18n.getMessage("APOC.report.table.defined"));
+ }
+ }
+
+ result = buffer.toString();
+
+ } else if (str.equals(STATUSPRO)) {
+ // Check if property is protected
+ StringBuffer buffer = new StringBuffer();
+ boolean finalized = propParams.isProtected();
+ if (propParams.getOriginOfProtection() != null) {
+ finalized = true;
+ }
+ if (finalized == true) {
+ buffer.append(m_I18n.getMessage("APOC.report.table.protected.in"));
+ } else {
+ buffer.append("");
+ }
+ result = buffer.toString();
+
+ } else if (str.equals(PROFILE)) {
+ StringBuffer buffer = new StringBuffer();
+ Profile policyGroupOrigin = null;
+
+ String nodeValue = null;
+ nodeValue = propParams.getValue();
+ if (nodeValue == null) {
+ result = "";
+ } else {
+ Policy policyOrigin = propParams.getOrigin();
+ policyGroupOrigin = m_policyMgrHelper.getReportProfile(policyOrigin.getProfileId());
+ if (policyGroupOrigin == null) {
+ result = "";
+ } else {
+ buffer.append(policyGroupOrigin.getId());
+ String sectionPath = linkPath.replaceAll(";", "/");
+ result = buffer.toString() + "|" + sectionPath;
+ }
+ }
+
+ } else if (str.equals(DESCRIPTION)) {
+ String description;
+
+ if (prop.getDescriptionId() != null) {
+ description = resources.getMessage(
+ prop.getDescriptionId(),
+ prop.getResourceBundle(),
+ RequestManager.getRequest());
+ } else {
+ description = "";
+ }
+
+ result = description;
+
+ } else {
+ result = (String)super.getValue(str);
+ }
+ return result;
+ }
+
+ class PropertyParams {
+ private String m_value = null;
+ private Policy m_origin = null;
+ private Policy m_originOfProtection = null;
+ private boolean m_isReadOnly = false;
+ private boolean m_isProtected = false;
+ private Property m_property = null;
+
+ public PropertyParams(Property property) {
+ m_property = property;
+ initialize();
+ }
+
+ public String getValue() {
+ return m_value;
+ }
+
+ public Policy getOrigin() {
+ return m_origin;
+ }
+
+ public Policy getOriginOfProtection() {
+ return m_originOfProtection;
+ }
+
+ public boolean isReadOnly() {
+ return m_isReadOnly;
+ }
+
+ public boolean isProtected() {
+ return m_isProtected;
+ }
+
+ private void initialize() {
+ // evaluate property value
+ try {
+ if ((m_property != null)) {
+ m_value = m_property.getValue();
+ }
+ } catch (SPIException e){
+ CCDebug.trace3("SPI Exception caught: "+e);
+ }
+
+ // evaluate the origin
+ m_origin = ((MergedProperty)m_property).getOriginOfValue();
+ // evaluate the origin of protection
+ m_originOfProtection = ((MergedProperty)m_property).getOriginOfProtection();
+ // evalute readonly value
+ m_isReadOnly = m_property.isReadOnly();
+ // evalute protected value
+ m_isProtected = m_property.isProtected();
+ }
+
+ }
+}
diff --git a/src/com/sun/apoc/manager/report/PropertyTiledView.java b/src/com/sun/apoc/manager/report/PropertyTiledView.java
new file mode 100644
index 0000000..6dcd37b
--- /dev/null
+++ b/src/com/sun/apoc/manager/report/PropertyTiledView.java
@@ -0,0 +1,132 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.report;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingTiledViewBase;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.html.CCStaticTextField;
+
+
+public class PropertyTiledView extends RequestHandlingTiledViewBase {
+
+ public static final String CHILD_ROW_ID =
+ "RowID";
+ public static final String CHILD_NAME_VALUE =
+ "NameValue";
+ public static final String CHILD_VALUE_VALUE =
+ "ValueValue";
+ public static final String CHILD_STATUS_VALUE =
+ "StatusValue";
+ public static final String CHILD_PROFILE_VALUE =
+ "ProfileValue";
+ public static final String CHILD_PROFILE_VALUE_HREF =
+ "ProfileValueHref";
+ public static final String CHILD_STATUSPRO_VALUE =
+ "StatusValueProtection";
+
+ private PropertyTiledModel m_tiledModel = null;
+
+ public PropertyTiledView(View parent, String name) {
+ super(parent, name);
+ setPrimaryModel(getModel());
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ROW_ID, CCStaticTextField.class);
+ registerChild(CHILD_NAME_VALUE, CCStaticTextField.class);
+ registerChild(CHILD_VALUE_VALUE, CCStaticTextField.class);
+ registerChild(CHILD_STATUS_VALUE, CCStaticTextField.class);
+ registerChild(CHILD_STATUSPRO_VALUE, CCStaticTextField.class);
+ registerChild(CHILD_PROFILE_VALUE, CCStaticTextField.class);
+ registerChild(CHILD_PROFILE_VALUE_HREF, CCHref.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_ROW_ID)) {
+ CCStaticTextField child = new CCStaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+
+ } else if (name.equals(CHILD_NAME_VALUE)) {
+ CCStaticTextField child = new CCStaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+
+ } else if (name.equals(CHILD_VALUE_VALUE)) {
+ CCStaticTextField child = new CCStaticTextField(this, getPrimaryModel(), name, null);
+ child.setEscape(false);
+ return child;
+
+ } else if (name.equals(CHILD_STATUS_VALUE)) {
+ CCStaticTextField child = new CCStaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+
+ } else if (name.equals(CHILD_STATUSPRO_VALUE)) {
+ CCStaticTextField child = new CCStaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+
+ } else if (name.equals(CHILD_PROFILE_VALUE)) {
+ CCStaticTextField child = new CCStaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+
+ } else if (name.equals(CHILD_PROFILE_VALUE_HREF)) {
+ CCHref child = new CCHref(this, getPrimaryModel(), name, null);
+ return child;
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ if (getPrimaryModel() == null){
+ throw new ModelControlException("Primary Model is null");
+ }
+ super.beginDisplay(event);
+ resetTileIndex();
+ getModel().retrieve();
+ }
+
+ protected PropertyTiledModel getModel(){
+ if (m_tiledModel == null) {
+ m_tiledModel = (PropertyTiledModel) getModel(PropertyTiledModel.class);
+ }
+ return m_tiledModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/report/ResultsData.java b/src/com/sun/apoc/manager/report/ResultsData.java
new file mode 100644
index 0000000..c9a7708
--- /dev/null
+++ b/src/com/sun/apoc/manager/report/ResultsData.java
@@ -0,0 +1,93 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.report;
+
+import java.util.ArrayList;
+import com.sun.apoc.templates.parsing.TemplateSection;
+
+public class ResultsData {
+
+
+ private TemplateSection m_section = null;
+ private ArrayList m_templateProperties = null;
+ private ArrayList m_properties = null;
+ private String m_path = null;
+ private String m_linkPath = null;
+ private boolean m_isASet = false;
+
+ /**
+ * Creates a new instance of ResultsData
+ */
+ public ResultsData(TemplateSection section,
+ ArrayList templateProperties,
+ ArrayList properties,
+ String path,
+ String linkPath,
+ boolean isASet) {
+
+ m_section = section;
+ m_templateProperties = templateProperties;
+ m_properties = properties;
+ m_path = path;
+ m_linkPath = linkPath;
+ m_isASet = isASet;
+ }
+
+ public TemplateSection getSection() {
+ return m_section;
+ }
+
+ public ArrayList getTemplatePropertyList() {
+ return m_templateProperties;
+ }
+
+ public ArrayList getPropertyList() {
+ return m_properties;
+ }
+
+ public String getPath() {
+ return m_path;
+ }
+
+ public String getLinkPath() {
+ return m_linkPath;
+ }
+
+ public boolean isASet() {
+ return m_isASet;
+ }
+
+}
diff --git a/src/com/sun/apoc/manager/report/SectionTiledModel.java b/src/com/sun/apoc/manager/report/SectionTiledModel.java
new file mode 100644
index 0000000..8008b3e
--- /dev/null
+++ b/src/com/sun/apoc/manager/report/SectionTiledModel.java
@@ -0,0 +1,129 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.report;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Iterator;
+import java.util.HashMap;
+import java.util.Enumeration;
+import javax.servlet.http.HttpServletRequest;
+
+import com.iplanet.jato.model.DefaultModel;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.RequestParticipant;
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestManager;
+
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.common.CCI18N;
+
+import com.sun.apoc.templates.parsing.TemplateCategory;
+import com.sun.apoc.templates.parsing.TemplatePage;
+import com.sun.apoc.templates.parsing.TemplateSection;
+import com.sun.apoc.templates.parsing.TemplateRepository;
+import com.sun.apoc.manager.resource.ResourceRepository;
+import com.sun.apoc.manager.Constants;
+
+
+public class SectionTiledModel extends DefaultModel {
+
+ private ArrayList m_resultsData = null;
+ private CCI18N m_I18n = null;
+ private String m_Id = "1";
+ /**
+ * Creates a new instance of SectionTiledModel
+ */
+ public SectionTiledModel() {
+ super();
+ m_I18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ }
+
+ public void setData(ArrayList resultsData, String id) {
+ m_resultsData = resultsData;
+ m_Id = id;
+ try {
+ this.setSize(m_resultsData.size());
+ } catch (ModelControlException mce){
+ CCDebug.trace2("Model contol expection caught: "+mce);
+ }
+ }
+
+ public String getId() {
+ String superId = m_Id + "." + Integer.toString(this.getRowIndex()+1);
+ return superId;
+ }
+
+ public void retrieve() throws ModelControlException {
+ Iterator it = m_resultsData.iterator();
+ ResourceRepository resourceRepository = ResourceRepository.getDefaultRepository();
+ int i = 1;
+ while (it.hasNext()) {
+ String id = Integer.toString(i);
+ String superId = m_Id + ".";
+ ResultsData data = (ResultsData)it.next();
+ String rawPagePath = data.getPath();
+ String pagePath = rawPagePath.substring(rawPagePath.indexOf(";")+1);
+ pagePath = pagePath.replaceAll(";", " > ");
+ pagePath = pagePath + " > ";
+ String sectionName = resourceRepository.getMessage(data.getSection().getResourceId(),
+ data.getSection().getResourceBundle(),
+ RequestManager.getRequest());
+
+ String section = pagePath + sectionName;
+
+ if (data.isASet()) {
+ String queriedName = rawPagePath.substring(rawPagePath.lastIndexOf(";")+1);
+ section = rawPagePath.substring(rawPagePath.indexOf(";")+1, rawPagePath.lastIndexOf(";"));
+ section = section.replaceAll(";", " > ");
+ section = section + " > " + queriedName + ":" + sectionName;
+ }
+
+ setValue(SectionTiledView.CHILD_SECTION, section);
+ setValue(SectionTiledView.CHILD_ROW_ID, superId + id);
+ setValue(SectionTiledView.CHILD_TURNER_ID, CategoryTiledModel.TURNER_ID_PREFIX + superId + id);
+ setValue(SectionTiledView.CHILD_IMAGE_ID, CategoryTiledModel.IMAGE_ID_PREFIX + superId + id);
+ i++;
+ next();
+ }
+ first();
+ }
+
+ public ResultsData getCurrentSectionData() {
+ return (ResultsData)m_resultsData.get(this.getRowIndex());
+ }
+}
diff --git a/src/com/sun/apoc/manager/report/SectionTiledView.java b/src/com/sun/apoc/manager/report/SectionTiledView.java
new file mode 100644
index 0000000..7b30d84
--- /dev/null
+++ b/src/com/sun/apoc/manager/report/SectionTiledView.java
@@ -0,0 +1,128 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.report;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.RequestHandlingTiledViewBase;
+import com.iplanet.jato.view.html.StaticTextField;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+
+
+public class SectionTiledView extends RequestHandlingTiledViewBase {
+
+ public static final String CHILD_ROW_ID =
+ "RowID";
+ public static final String CHILD_TURNER_ID =
+ "TurnerID";
+ public static final String CHILD_IMAGE_ID =
+ "ImageID";
+ public static final String CHILD_SECTION =
+ "Section";
+ public static final String CHILD_PROPERTY_TILEDVIEW =
+ "PropertyTiledView";
+
+ private SectionTiledModel m_tiledModel = null;
+
+ /**
+ * Creates a new instance of ContentsSectionTiledView
+ */
+ public SectionTiledView(View parent, String name) {
+ super(parent, name);
+ setPrimaryModel(getModel());
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_ROW_ID, StaticTextField.class);
+ registerChild(CHILD_TURNER_ID, StaticTextField.class);
+ registerChild(CHILD_IMAGE_ID, StaticTextField.class);
+ registerChild(CHILD_SECTION, StaticTextField.class);
+ registerChild(CHILD_PROPERTY_TILEDVIEW, PropertyTiledView.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_SECTION)) {
+ StaticTextField child = new StaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+
+ } else if (name.equals(CHILD_ROW_ID)) {
+ StaticTextField child = new StaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+
+ } else if (name.equals(CHILD_TURNER_ID)) {
+ StaticTextField child = new StaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+
+ } else if (name.equals(CHILD_IMAGE_ID)) {
+ StaticTextField child = new StaticTextField(this, getPrimaryModel(), name, null);
+ return child;
+
+ } else if (name.equals(CHILD_PROPERTY_TILEDVIEW)) {
+ PropertyTiledView child = new PropertyTiledView(this, name);
+ return child;
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ if (getPrimaryModel() == null){
+ throw new ModelControlException("Primary Model is null");
+ }
+ super.beginDisplay(event);
+ resetTileIndex();
+ getModel().retrieve();
+ }
+
+ public boolean beginPropertyTiledViewDisplay (ChildDisplayEvent event) {
+ PropertyTiledView child = (PropertyTiledView) getChild(CHILD_PROPERTY_TILEDVIEW);
+ PropertyTiledModel model = (PropertyTiledModel) child.getPrimaryModel();
+ String superId = getModel().getId();
+ model.setData(getModel().getCurrentSectionData(), superId);
+ return true;
+ }
+
+ protected SectionTiledModel getModel(){
+ if (m_tiledModel == null) {
+ m_tiledModel = (SectionTiledModel) getModel(SectionTiledModel.class);
+ }
+ return m_tiledModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/resource/ResourceRepository.java b/src/com/sun/apoc/manager/resource/ResourceRepository.java
new file mode 100644
index 0000000..f61d4fd
--- /dev/null
+++ b/src/com/sun/apoc/manager/resource/ResourceRepository.java
@@ -0,0 +1,283 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.resource;
+
+import com.sun.web.ui.common.CCDebug;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.FileInputStream;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.ArrayList;
+import java.util.jar.JarFile;
+import java.util.zip.ZipEntry;
+import java.util.ResourceBundle;
+import java.util.MissingResourceException;
+import java.util.PropertyResourceBundle;
+import javax.servlet.http.HttpServletRequest;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.util.NonSyncStringBuffer;
+
+
+public class ResourceRepository {
+
+ public static final String CACHED_BUNDLE = "CachedResourceBundle";
+
+ public static final String PROPS_SUFFIX = ".properties";
+ public static final String JAR_SUFFIX = ".jar";
+
+ public static final String RES_DIRNAME = "/res/";
+ public static final String CLASSES_DIRNAME = "/classes/";
+
+ private static ResourceRepository m_defaultRepository = null;
+ private HashMap m_resourceBundles = null;
+
+
+ public static ResourceRepository getDefaultRepository() {
+ if (m_defaultRepository == null) {
+ m_defaultRepository = new ResourceRepository();
+ }
+ return m_defaultRepository;
+ }
+
+
+ protected ResourceRepository() {
+ CCDebug.initTrace();
+ m_resourceBundles = new HashMap();
+ }
+
+
+ public void addResource(File file) {
+ if (file.exists()) {
+ try {
+ CCDebug.trace3("Examine resources of file " + file.getName());
+ if (file.getName().endsWith(PROPS_SUFFIX)) {
+ String path = file.getPath();
+ if (path.indexOf(CLASSES_DIRNAME) != -1) {
+ path = path.substring(path.indexOf(CLASSES_DIRNAME) + CLASSES_DIRNAME.length());
+ m_resourceBundles.put(path, file);
+ } else if (path.indexOf(RES_DIRNAME) != -1) {
+ path = path.substring(path.indexOf(RES_DIRNAME) + RES_DIRNAME.length());
+ m_resourceBundles.put(path, file);
+ }
+ } else if (file.getName().endsWith(JAR_SUFFIX)) {
+ JarFile jarFile = new JarFile(file);
+ Enumeration en = jarFile.entries();
+ while (en.hasMoreElements()) {
+ ZipEntry entry = (ZipEntry) en.nextElement();
+ if (entry.getName().endsWith(PROPS_SUFFIX)) {
+ m_resourceBundles.put(entry.getName(), jarFile);
+ }
+ }
+ }
+ } catch (IOException e) {
+ CCDebug.trace1("Could not load " + file.getName(), e);
+ }
+ }
+ }
+
+
+ // Helper method: Traverse through the prefered locale list and try to find
+ // a matching resource bundle
+ public ResourceBundle getBundle(String baseName) {
+ HttpServletRequest request = RequestManager.getRequest();
+ ResourceBundle bundle = null;
+
+ // try to find a cached resource bundle
+ NonSyncStringBuffer key = new NonSyncStringBuffer(CACHED_BUNDLE);
+ key.append(baseName);
+ bundle = (ResourceBundle) request.getAttribute(key.toString());
+
+ // okay, it is not in the cache, thus we need to find a matching
+ // resource bundle
+ if (bundle == null) {
+ ArrayList locales = (ArrayList) Collections.list(request.getLocales());
+ locales.add(new Locale(""));
+ locales.add(new Locale("en"));
+ locales.add(new Locale("en", "US"));
+ for (int i = 0; i < locales.size(); i++) {
+ Locale locale = (Locale) locales.get(i);
+ bundle = getBundle(baseName, locale);
+ if (bundle != null) {
+ // cache the found bundle
+ request.setAttribute(key.toString(), bundle);
+ break;
+ }
+ }
+ }
+ return bundle;
+ }
+
+
+ // Helper method to create resource bundle suffixes.
+ static private String getSuffix(String language, String country,
+ String variant) {
+ NonSyncStringBuffer buffer = new NonSyncStringBuffer();
+ String ext = "_";
+ if (language.length() > 0)
+ buffer.append(ext + language);
+ if (country.length() > 0)
+ buffer.append(ext + country);
+ if (variant.length() > 0)
+ buffer.append(ext + variant);
+ return buffer.toString();
+ }
+
+
+ // Get a matching resource bundle for the specified locale
+ public ResourceBundle getBundle(String baseName, Locale locale) {
+ ResourceBundle bundle = null;
+ if (baseName != null) {
+ // Create a list of ordered locale suffixes to test.
+ ArrayList suffix = new ArrayList();
+
+ // Add language_country_variant suffix.
+ if (locale.getLanguage().length() > 0
+ && locale.getCountry().length() > 0
+ && locale.getVariant().length() > 0) {
+ suffix.add(getSuffix(locale.getLanguage(), locale.getCountry(),
+ locale.getVariant()));
+ }
+ // Add language_country suffix.
+ if (locale.getLanguage().length() > 0
+ && locale.getCountry().length() > 0) {
+ suffix.add(getSuffix(locale.getLanguage(), locale.getCountry(),
+ ""));
+ }
+ // Add language suffix.
+ if (locale.getLanguage().length() > 0) {
+ suffix.add(getSuffix(locale.getLanguage(), "", ""));
+ }
+ // Add default suffix.
+ suffix.add("");
+
+ // Load the resource bundle best matching suffix list.
+ for (int i = 0; i < suffix.size(); i++) {
+ String fullBaseName =
+ new NonSyncStringBuffer(baseName).append(suffix.get(i)).toString();
+ bundle = loadBundle(fullBaseName);
+ if (bundle != null) {
+ break;
+ }
+ }
+ }
+ return bundle;
+ }
+
+
+ // Load the resource bundle from the jar file
+ public ResourceBundle loadBundle(String bundleName) {
+ PropertyResourceBundle bundle = null;
+ String normalizedName = bundleName.replace('.', '/');
+ normalizedName = new StringBuffer(normalizedName).append(PROPS_SUFFIX).toString();
+ Object entry = m_resourceBundles.get(normalizedName);
+ if (entry != null) {
+ try {
+ InputStream is = null;
+ if (entry instanceof JarFile) {
+ JarFile jarFile = (JarFile) entry;
+ is = jarFile.getInputStream(new ZipEntry(normalizedName));
+ } else {
+ is = new FileInputStream((File) entry);
+ }
+ bundle = new PropertyResourceBundle(is);
+ } catch (IOException e) {
+ CCDebug.trace1("Could not load " + bundleName, e);
+ }
+ }
+ return bundle;
+ }
+
+
+ // Return the localized message for the specified key and locale
+ public String getMessage(String key, String baseName, Locale locale) {
+ String message = null;
+ ResourceBundle bundle = getBundle(baseName, locale);
+ if (bundle != null) {
+ try {
+ message = bundle.getString(key);
+ return message;
+ } catch (MissingResourceException e) {
+ CCDebug.trace3("Could not retrieve resource for key: " + key);
+ }
+ }
+ return key;
+ }
+
+
+ // Return the localized message for the specified key
+ public String getMessage(String key, String baseName) {
+ String message = getValidMessage(key, baseName);
+ if (message != null) {
+ return message;
+ } else {
+ return key;
+ }
+ }
+
+
+ // Return the localized message for the specified key (or null if not exist)
+ public String getValidMessage(String key, String baseName) {
+ String message = null;
+ ResourceBundle bundle = getBundle(baseName);
+ if (bundle != null) {
+ try {
+ message = bundle.getString(key);
+ return message;
+ } catch (MissingResourceException e) {
+ // silently ignore this as the caller will be notified via
+ // a null return value
+ }
+ }
+ return null;
+ }
+
+
+ // Deprecated. Should be removed with the next release.
+ public String getValidMessage(String key, String baseName, HttpServletRequest request) {
+ return getValidMessage(key, baseName);
+ }
+
+
+ public String getMessage(String key, String baseName, HttpServletRequest request) {
+ return getMessage(key, baseName);
+ }
+}
+
diff --git a/src/com/sun/apoc/manager/resource/apoc_manager.properties b/src/com/sun/apoc/manager/resource/apoc_manager.properties
new file mode 100644
index 0000000..b2b9261
--- /dev/null
+++ b/src/com/sun/apoc/manager/resource/apoc_manager.properties
@@ -0,0 +1,998 @@
+#*******************************************************************************
+#
+# $RCSfile: apoc_manager.properties,v $
+#
+# Description: Resource bundle for the Sun Java(tm) Desktop System
+# Configuration Manager
+#
+# Last change: $Date: 2007/03/06 11:54:38 $ $Revision: 1.81 $
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use of this
+# product is subject to license terms.
+#
+#*******************************************************************************
+
+#*******************************************************************************
+# Common
+#
+#*******************************************************************************
+
+APOC.framelongdesc=This application has a three frame structure. The Masthead Frame is across the top of the page. The Navigation Frame is on the left side and allows you to navigate through the Users and Hosts. Selecting an element in the Navigation Frame causes an update to the Content Frame, or both the Content Frame and the Navigation Frame. The Content Area is on the right and it displays information on the currently selected element.
+APOC.so7=StarOffice 7
+APOC.button.remove=Remove
+APOC.button.close=Close
+APOC.button.OK=OK
+APOC.button.cancel=Cancel
+APOC.button.browse=Change...
+APOC.headings.name=Name
+APOC.login.username=User Name:
+APOC.login.password=Password:
+APOC.infoAlert.success=The action has been completed successfully.
+APOC.noframes=Frames are required to use this application.
+APOC.settings.notset=-- Not Set --
+APOC.profiles.profile=Profile
+APOC.help.more.on=>> More on {0}
+APOC.help.more=>> More
+APOC.pool.renameContextMessage=Enter the new name of the repository:
+APOC.pool.removeContextMessage=Do you want to delete the selected configuration repository?
+APOC.helpwindow.tooltip=Help (Opens a New Window)
+
+#*******************************************************************************
+# Masthead
+#
+#*******************************************************************************
+
+APOC.frame.masthead=Masthead Frame
+APOC.masthead.altTextVer=Sun Desktop Manager 1.0.1
+APOC.masthead.altText=Sun Desktop Manager 1.0.1
+APOC.masthead.altTextForSub={0}
+APOC.masthead.packages.alt=Policy Packages (Opens a New Window)
+APOC.masthead.path.link=Repositories
+APOC.masthead.path.help=Return to Configuration Repository Page
+
+#*******************************************************************************
+# Packages Dialog Strings
+#
+#*******************************************************************************
+
+APOC.packages.title=Policy Packages
+APOC.packages.introtext=You can install or uninstall policy packages here. Policy packages are provided by Sun Microsystems or 3rd-party vendors and contain additional policies to be used within the {0}.
+APOC.packages.tabletitle=Installed Policy Packages
+APOC.packages.headings.adddate=Add Date
+APOC.packages.action.file=Install from Server...
+APOC.packages.action.url=Install from Client...
+APOC.packages.action.uninstall=Uninstall
+APOC.packages.uninstall.confirm=Are you sure you want to uninstall the selected package?
+APOC.packages.filechooser.addfile=Install Policy Package from Server File
+APOC.packages.filechooser.button=Choose File
+APOC.packages.localchooser.title=Install Policy Package from Local File
+APOC.packages.localchooser.upload=Upload
+APOC.packages.localchooser.choosetext=File to Upload:
+
+#*******************************************************************************
+# Users Page Tab
+#
+#*******************************************************************************
+
+APOC.users.title=Users
+APOC.users.introtext=This tab page lists the users which are members of the selected role. The 'path' column lists the absolute paths.
+APOC.users.tableSummary=This table lists the users which are members of the selected role. The 'path' column lists the absolute paths. Click a user name to select that user in the left frame.
+
+#*******************************************************************************
+# Roles Page Tab
+#
+#*******************************************************************************
+
+APOC.roles.title=Roles
+APOC.roles.introtext=This tab page lists the roles of which the selected user is a member. The 'path' column lists the absolute paths.
+APOC.roles.tableSummary=This table lists the roles of which the selected user is a member. The 'path' column lists the absolute paths. Click a role name to select that role in the left frame.
+
+#*******************************************************************************
+# Assignees Page Tab
+#
+#*******************************************************************************
+
+APOC.assignees.title=Assignees
+APOC.assignees.introtext=This tab page lists the entities to which the selected profile has been assigned. The 'path' column lists the absolute paths.
+APOC.assignees.tableSummary=This table lists the entities to which the selected profile has been assigned. The 'path' column lists the absolute paths. Click an element's name to select that element in the left frame.
+
+#*******************************************************************************
+# Profiles Tab page
+#
+#*******************************************************************************
+
+APOC.policysets.title=Assigned Profiles
+APOC.policysets.label=Profiles:
+APOC.policysets.introtext=On this tab page, you can assign profiles to the element you have selected.
+APOC.policysets.save=Save
+APOC.policysets.infoAlert.saveSuccess=The changes in profile assignments have been saved.
+
+#*******************************************************************************
+# Policies Tab page
+#
+#*******************************************************************************
+
+APOC.policies.title=Assigned Policies
+APOC.policies.subcategories=Subcategories
+APOC.policies.nameCol=Name
+APOC.policies.commentCol=Comment
+APOC.policies.actionCol=Action
+APOC.policies.toggle.button=Toggle Action
+APOC.policies.introtext=This page lists the configuration policy tree and the configured settings for the seleted element.
+APOC.policies.tableSummary=This table lists the available policies. Every row contains the name of the policy and a short description. Click a name to drill-down to its subpolicies.
+APOC.properties.tableSummary=This table lists the configuration settings. Every row contains the property status, name and value.
+APOC.policies.stateCol=State
+APOC.policies.value=Value
+APOC.policies.value.notconfig=Not Configured
+APOC.policies.value.config=Configured
+APOC.policies.status=Status
+APOC.policies.root=Policies
+APOC.policies.actions=&#8212;&nbsp;Policy Actions&nbsp;&#8212;
+APOC.policies.actions.protect=Protect
+APOC.policies.actions.unprotect=Unprotect
+APOC.policies.actions.default=Apply Default
+APOC.policies.actions.clear=Clear
+APOC.policies.enable=Enable
+APOC.policies.enabled=Enabled
+APOC.policies.disabled=Disabled
+APOC.policies.clear.button=Clear Settings
+APOC.policies.createrep.button=Create Report...
+APOC.policies.createrep.tooltip=Create Report (Opens a New Window)
+APOC.policies.clear.confirmation=This action will delete all setttings in this layer and all layers below it. Do you really want to continue?
+APOC.policies.backToTop=Back to top
+APOC.policies.backToTop.tooltip=Back to Top
+APOC.policies.jumpDown.tooltip={0} (Jumps down to this section)
+APOC.policies.save.button=Save
+APOC.policies.reset.button=Reset
+APOC.policies.navigation.table.empty=No policies are assigned.
+APOC.policies.set.table.empty=No entries were found.
+APOC.policies.new.button=New...
+APOC.policies.delete.button=Delete
+APOC.policies.name.question=Please enter a name for the new entry.
+APOC.policies.rename.set=Please enter the new name for the entry.
+APOC.policies.status.defined_here=The item is defined in this layer.
+APOC.policies.status.defined_above=The item is defined in a layer above.
+APOC.policies.status.noprotection=No protection status.
+APOC.policies.status.nodefinition=No definition status.
+APOC.policies.status.jumpto=Click this link to go to {0}.
+APOC.policies.status.protected_here=The item is protected in this layer.
+APOC.policies.status.protected_above=The item is protected in a layer above.
+APOC.policies.status.policygroup=Profile {0}
+APOC.policies.info.general=The action has been completed successfully.
+APOC.policies.info.stored=All settings have been stored.
+APOC.policies.info.removed=All settings have been removed.
+APOC.policies.error.general=An error occurred.
+APOC.policies.error.removing=Error removing settings: {0}
+APOC.policies.error.storing=Error storing settings: {0}
+APOC.policies.confirmation.storechanges=You have made several changes. Would you like to store your changes now?
+APOC.policies.info.readonly.access=This page is read-only, because you do not have the necessary access rights to make any modifications.
+APOC.policies.info.readonly.maybe=At least one of the displayed profiles is read-only, because you do not have the necessary access rights to make any modifications.
+APOC.policies.info.readonly.roles=This page is read-only because local policies cannot be assigned to roles.
+APOC.policies.edit.button=Edit...
+APOC.policies.include_in=Include in
+APOC.policies.exclude_from=Exclude from
+APOC.policies.footnote=* Indicates default values automatically used by the application if no other setting is explicitly defined.
+APOC.policies.settings_title=Settings (Profile {0})
+
+#*******************************************************************************
+# Content Area
+#
+#*******************************************************************************
+
+APOC.frame.contentarea=Content Area Frame
+APOC.catabs.policy.des=Policies (Opens Tab Page)
+APOC.catabs.policysets.des=Assigned Profiles (Opens Tab Page)
+APOC.catabs.users.des=Users (Opens Tab Page)
+APOC.catabs.roles.des=Roles (Opens Tab Page)
+APOC.catabs.assignees.des=Assignees (Opens Tab Page)
+APOC.ca.backtop=Back to top
+APOC.ca.locale=Locale
+APOC.ca.path=Path
+
+#*******************************************************************************
+# Help
+#
+#*******************************************************************************
+
+APOC.help.helpTooltip=Help (Opens a New Window)
+APOC.help.windowTitle=Help
+
+#*******************************************************************************
+# Navigation Area Common
+#
+#*******************************************************************************
+
+APOC.navigation.search=Search
+APOC.navigation.reset=Reset
+APOC.navigation.search.help=Opens a window that lets you issue a search.
+APOC.navigation.edit.help=Enter your search string.
+APOC.navigation.close=Close
+APOC.navigation.organization=Organization
+APOC.navigation.organization.with=Organization with assignments
+APOC.navigation.organizations=Organizations
+APOC.navigation.organizations.help=Root of the organization tree.
+APOC.navigation.user=User
+APOC.navigation.user.with=User with assignments
+APOC.navigation.users=Users
+APOC.navigation.role=Role
+APOC.navigation.role.with=Role with assignments
+APOC.navigation.roles=Roles
+APOC.navigation.domain=Domain
+APOC.navigation.domain.with=Domain with assignments
+APOC.navigation.domains=Domains
+APOC.navigation.domains.help=Root of the domain tree.
+APOC.navigation.host=Host
+APOC.navigation.host.with=Host with assignments
+APOC.navigation.hosts=Hosts
+APOC.navigation.name=Name
+APOC.navigation.actions=Actions
+APOC.navigation.view=View
+APOC.navigation.view.tooltip=Shows this Element in the Right Frame
+APOC.navigation.area=Navigation Pane
+APOC.navigation.empty=No entities are available.
+APOC.navigation.name.label=Name:
+APOC.navigation.type=Type
+APOC.navigation.userTooltip=Users (Opens Users Tab Page)
+APOC.navigation.hostTooltip=Hosts (Opens Hosts Tab Page)
+APOC.navigation.breadcrumb.tooltip=Back to {0}
+APOC.navigation.show=Show:
+APOC.navigation.showDirsOnly=Directories Only
+APOC.navigation.showAll=All
+APOC.navigation.ellipsis=... some elements not displayed
+APOC.navigation.openfind=Opens the find window
+APOC.navigation.search.target.alert1=The target window for the selection could not be determined.\\nPlease close the search window and reopen it again from the intended target window.
+
+#*******************************************************************************
+# Navigation Area User Tree Tab
+#
+#*******************************************************************************
+
+APOC.usertree.title=Organization Tree
+APOC.usertree.tooltip=Organization Tree (Opens Organization Tree Tab Page)
+APOC.usertree.tableSummary=This table provides a list of the children of the current organisation. Every row contains the name of the child, its type (organization, user or role) and a link. Click the link to display the content of the organization in the frame on the right.
+
+#*******************************************************************************
+# Navigation Area Host Tree Tab
+#
+#*******************************************************************************
+
+APOC.hosttree.title=Domain Tree
+APOC.hosttree.tooltip=Domain Tree (Opens Domain Tree Tab Page)
+APOC.hosttree.tableSummary=This table provides a list of the children of the current domain. Every row contains the name of the child, its type (can be domain or user) and a view link to show its content in the right frame.
+
+#*******************************************************************************
+# Navigation Area Entities Table Filter
+#
+#*******************************************************************************
+
+APOC.entityfilter.titleUsers=Advanced Filter - Users
+APOC.entityfilter.titleHosts=Advanced Filter - Hosts
+APOC.entityfilter.help.title=Help
+APOC.entityfilter.type.label=Type:
+APOC.entityfilter.filter=Filter
+APOC.entityfilter.placeholder=<name to filter on>
+
+#*******************************************************************************
+# Set Color Dialog
+#
+#*******************************************************************************
+
+APOC.setcolor.edit.alt=Edit Palette (Opens a New Window)
+APOC.setcolor.title=Edit Palette
+APOC.setcolor.introtext=The current color is listed in the central column. This color may then be added to the palette using the add or replace color buttons. Names may be associated with colors by entering a name in the "Name" field. Save your changes to the palette by clicking "OK" when you are finished.
+APOC.setcolor.palette.heading=Color Palette:
+APOC.setcolor.color.heading=Color:
+APOC.setcolor.color.alt=Current Color is {0}
+APOC.setcolor.red.heading=Red:
+APOC.setcolor.red.increase=Increase Red
+APOC.setcolor.red.decrease=Decrease Red
+APOC.setcolor.green.heading=Green:
+APOC.setcolor.green.increase=Increase Green
+APOC.setcolor.green.decrease=Decrease Green
+APOC.setcolor.blue.heading=Blue:
+APOC.setcolor.blue.increase=Increase Blue
+APOC.setcolor.blue.decrease=Decrease Blue
+APOC.setcolor.hue.heading=Hue:
+APOC.setcolor.hue.increase=Increase Hue
+APOC.setcolor.hue.decrease=Decrease Hue
+APOC.setcolor.sat.heading=Sat:
+APOC.setcolor.sat.increase=Increase Saturation
+APOC.setcolor.sat.decrease=Decrease Saturation
+APOC.setcolor.lum.heading=Lum:
+APOC.setcolor.lum.increase=Increase Luminance
+APOC.setcolor.lum.decrease=Decrease Luminance
+APOC.setcolor.html.heading=Hex Value:
+APOC.setcolor.original.heading=Original Color:
+APOC.setcolor.original.alt=Original Color is {0}.
+APOC.setcolor.wheel.heading=Color Spectrum:
+APOC.setcolor.wheel.alt=Click on image to select color from spectrum, hue on the x-axis and saturation on the y-axis. Clicking on a particular color in the spectrum will update the central column to contain that color.
+APOC.setcolor.slider.summary=Click anywhere in this table to adjust the luminance of the current color. The luminance decreases from right to left.
+APOC.setcolor.add.button=Add Color >
+APOC.setcolor.replace.button=Replace Color >
+APOC.setcolor.remove.button=Delete Color
+APOC.setcolor.remove.alert=The selected tile does not contain a stored palette color and thus cannot be removed.
+APOC.setcolor.name.alert=The specified color name is already in use, please choose a different color name.
+APOC.setcolor.restoreorigcolor.button=Restore Color
+APOC.setcolor.restore.button=Restore Defaults
+APOC.setcolor.restore.confirm=Do you really want to restore the default colors?
+APOC.setcolor.increase.tooltip=Increase
+APOC.setcolor.decrease.tooltip=Decrease
+APOC.setcolor.tooltip=Edit Colors dialog (opens in a new window)
+APOC.setcolor.replace.alert=Use the Add Color button if you wish to add an additional color.
+APOC.setcolor.add.alert=Use the Replace Color button if you wish to replace an existing color.
+APOC.setcolor.noname=No Name
+APOC.setcolor.invalid.hex=The hex value is invalid please enter a valid value
+
+#*******************************************************************************
+# Chooser
+#
+#*******************************************************************************
+
+APOC.page.chooser.list.editor=Edit List
+APOC.page.chooser.list.help=Add or remove elements that are shown in the drop-down menu in the content pane by editing the list below. Remove all user changes from the list by clicking the 'Restore Defaults' button. Save the changes to the list by clicking the 'OK' button.
+APOC.chooser.add=Add
+APOC.chooser.system_added=(*) Denotes an element added to the list by the system. Elements are added to the list by the system if they are a default value or the element is the stored value for a currently displayed property
+APOC.chooser.protected.alert=This element cannot be removed from the list because it is either a default value or it is the stored value for a setting on this page
+APOC.chooser.selected.alert=This element cannot be removed from the list because it is the currently selected value for a property on this page
+APOC.chooser.edit.alt=Edit List (Opens a New Window)
+APOC.font.chooser.title=Edit Font List
+APOC.window.border.chooser.title=Edit Windows Border Theme List
+APOC.window.controls.chooser.title=Edit Controls Theme List
+APOC.window.icon.chooser.title=Edit Icon Theme List
+
+#*******************************************************************************
+# Navigation Area Repository Tab
+#
+#*******************************************************************************
+
+APOC.pool.title=Policy Repository
+APOC.pool.all_profiles=All Profiles
+APOC.pool.all_profiles.help=This tab page lists all profiles.
+APOC.pool.all_domain_profiles=All Domain Profiles
+APOC.pool.all_org_profiles=All Organization Profiles
+APOC.pool.tooltip=Policy Repository (Opens Policy Repository Tab Page)
+APOC.pool.sets=Assigned Profiles
+APOC.pool.setsHost=Host Profiles
+APOC.pool.priority=Priority
+APOC.pool.actions=&#8212;&nbsp;Profile Actions&nbsp;&#8212;
+APOC.pool.new=New...
+APOC.pool.delete=Delete...
+APOC.pool.import=Import...
+APOC.pool.export=Export...
+APOC.pool.rename=Rename...
+APOC.pool.edit=Edit Priorities...
+APOC.pool.add_assignment=Assign Profile
+APOC.pool.available_profiles=Available Profiles
+APOC.pool.add_assignment_help=You can use this window to assign profiles.
+APOC.pool.new_button.help=Creates a new profile.
+APOC.pool.delete_button.help=Deletes a profile.
+APOC.pool.assign_button.help=Opens a new windows that lets you select the profile to be assigned.
+APOC.pool.unassign_button.help=Revokes the assignment of the selected profile(s) with the current Organization.
+APOC.pool.report_button.help=Opens a window which contains the report.
+APOC.pool.tableSummary=This table provides a list of the global profiles. Every row contains the name of the profile, its priority and a link. Click the link to display the content of the profile in the frame on the right.
+APOC.pool.empty=No profiles are available.
+APOC.pool.deleteMessage=Do you really want to delete the selected profiles?
+APOC.pool.tableSummary=This table provides a list of profiles. Every row contains the name of the profile, its author and the date of its last modification. Click on the name to display the content of the profile.
+APOC.pool.empty=No profiles are available.
+APOC.pool.deleteMessage=Do you really want to delete the selected profile?
+APOC.pool.newMessage=Enter the name of the new profile:
+APOC.pool.newDefault=NewPolicyGroup
+APOC.pool.renameMessage=Enter the new name of the profile:
+APOC.pool.help.title=Policy Repository Help
+APOC.pool.help.text1=The policy repository is used to store your profiles. A profile is a named container for policies. The name of a profile has to be unique.
+APOC.pool.help.text2=After creating a new profile you can store configuration settings in it and add this profile to any organization, user, role, domain or host. This is done by viewing the element in the navigation pane and selecting the "Profiles" tab page in the content pane.
+APOC.pool.help.text3=Although the use of profiles is not necessary for configuration management, profiles allow you to manage configuration settings in a more flexible way. For example, you can create the profile "Novice", store configuration settings suitable for novices in that profile and add that profile to any member of the organization or domain tree.
+APOC.pool.import.tooltip=Import a Profile into the Repository.
+APOC.pool.export.tooltip=Export a Profile.
+APOC.pool.rename.tooltip=Rename a Profile.
+APOC.pool.import.disabled.tooltip=Import a Profile into the Repository (Unavailable).
+APOC.pool.export.disabled.tooltip=Export a Profile (Unavailable).
+APOC.pool.rename.disabled.tooltip=Rename a Profile (Unavailable).
+
+#*******************************************************************************
+# Navigation Area Priorities
+#
+#*******************************************************************************
+
+APOC.prios.title=Profile Priorities
+APOC.prios.help=This tab page allows you to change the priorities of the profiles. The priorities define the merge order of the profiles when more than one profile with the same applicability is assigned to an element.
+APOC.prios.up=Move Up
+APOC.prios.down=Move Down
+
+#*******************************************************************************
+# Navigation Area Profile Import
+#
+#*******************************************************************************
+
+APOC.groupimport.title=Import Profile from Local File
+APOC.groupimport.help=Select a local profile file to import into the current configuration repository
+APOC.groupimport.choosetext=File to Import:
+APOC.groupimport.defaulttext=<filename>
+APOC.groupimport.import=Import
+APOC.groupimport.error.zip=Error: The file must be in Zip format.
+APOC.importwnd.js.overwrite_alert=A profile with this name already exists. Overwrite this profile?
+APOC.groupimport.importing=Importing Profiles
+
+#*******************************************************************************
+# Navigation Area Search
+#
+#*******************************************************************************
+
+APOC.search.search=Search
+APOC.search.param.help=This search covers the entire tree.
+APOC.search.userid.label=User ID:
+APOC.search.firstname.label=First Name:
+APOC.search.lastname.label=Last Name:
+APOC.search.point.label=Starting Point:
+APOC.search.perpage.label=Results displayed per page:
+APOC.search.results=Results
+APOC.search.result.help=This page lists the search results. The path column lists the path relative to the starting point.
+APOC.search.entitiesFound=Elements Found
+APOC.search.param.title.help=Specify the parameters for the search.
+APOC.search.usersFound=Users Found
+APOC.search.rolesFound=Roles Found
+APOC.search.organizationsFound=Organizations Found
+APOC.search.domainsFound=Domains Found
+APOC.search.hostsFound=Hosts Found
+APOC.search.all=Search All
+APOC.search.users=Search Users
+APOC.search.roles=Search Roles
+APOC.search.organizations=Search Organizations
+APOC.search.domains=Search Domains
+APOC.search.hosts=Search Hosts
+APOC.search.tableSummary=This table provides a list of search results. Every row contains the name of the element, its type (organization, user or role) and its full path. Click a name to select that element in the left frame of the main application window.
+APOC.search.path=Path
+APOC.search.userid=User ID
+APOC.search.title.text=Search
+APOC.search.search.help=Searches the repository.
+APOC.search.reset.help=Resets the search parameters to the defaults.
+APOC.search.cancel.help=Closes this window.
+APOC.search.advanced.show.button=Show Advanced Options
+APOC.search.advanced.show.help=Shows the advanced options.
+APOC.search.advanced.hide.button=Hide Advanced Options
+APOC.search.advanced.hide.help=Hides the advanced options.
+APOC.search.advanced.start.label=Search Area:
+APOC.search.advanced.restrict.label=Restrict to:
+APOC.search.advanced.browse.help=Opens a window that lets you change the path which determines the starting point for the search.
+APOC.search.advanced.start.label=Search Area:
+APOC.search.help.title=About the Search
+APOC.search.help.text1=The search is not case-sensitive and not strict, e.g. the search string "bc" will match "ABC" and "bcd".
+APOC.search.help.text2=An asterisk (*) denotes an arbitrary sequence of characters within a search string. You can use more than one asterisk at any location in the search string.
+APOC.search.help.text3=An empty field is equivalent to a field with the search string "*". By default the maximum number of results returned is 100, however, this parameter is configurable. Please consult the Installation Guide for more details.
+APOC.search.help.inline=Enter the name. You can specify * as wildcard.
+APOC.search.help.inlineUser=Enter the user id. You can specify * as wildcard.
+
+#*******************************************************************************
+# Content Area - Profiles
+#*******************************************************************************
+APOC.profile.inherited.table=Inherited Profiles
+APOC.profile.page.title=This tab page lists the content of the selected element.
+APOC.profile.name.text=(Profile {0})
+APOC.profilemgr.assigned=Assigned
+APOC.profilemgr.assign=Assign Profile...
+APOC.profilemgr.pending=Changes Present
+APOC.profilemgr.author=Author
+APOC.profilemgr.lastMod=Last Modified
+APOC.profilemgr.delete=Delete
+APOC.profilemgr.moreActions=&#8212;&nbsp;More Actions&nbsp;&#8212;
+APOC.profilemgr.yes=Yes
+APOC.profileassi.unassign=Unassign Profile
+APOC.profileassi.manage=Manage Profiles...
+APOC.profileassi.release=Release Changes...
+APOC.profileassi.releaseNow=Release
+APOC.profileassi.showResults=Effective Settings...
+APOC.profileassi.title=Release Changes
+APOC.profileassi.table.empty=There are no profiles assigned.
+APOC.profileavail.title=Available Profiles
+APOC.profileavail.help=You can use this window to assign profiles.
+APOC.profileavail.assigning=Assigning Profiles
+APOC.profileall.title=All Profiles
+APOC.profileall.help=This tab page lists all profiles.
+APOC.profileall.domtable.title=All Domain Profiles
+APOC.profileall.orgtable.title=All Organization Profiles
+APOC.profile.search.profile=Search Profile
+APOC.profile.error.storing=Error storing profile.
+APOC.profile.assigned.delete=The profiles you selected are assigned to at least one element. \\n \\n Do you really want to delete these profiles?
+APOC.profile.unassigned.delete=All profile data for the selected profiles will be deleted. Do you want to proceed?
+APOC.profiles.default.msg=Indicates default value
+
+#*******************************************************************************
+# Configure Report
+#
+#*******************************************************************************
+
+APOC.configrep.title=Modify the Effective Settings Parameters
+APOC.configrep.help=Specify the parameters for generating effective settings. The elements involved in the generation of the effective settings can be defined using the list below. One element of each type can be chosen and the effective settings are the result of a merging of the policy settings contained in the assigned profiles for the chosen elements.
+APOC.configrep.effective.settings=Effective Settings
+APOC.configrep.columns=Show in the Settings Summary:
+APOC.configrep.statepath=Status Path
+APOC.configrep.des=Description
+APOC.configrep.reptype=Selected Profile Sources Merge Order
+APOC.configrep.orgtree=Select an Element from the Organization Tree:
+APOC.configrep.domtree=Select an Element from the Domain Tree:
+APOC.configrep.typeorg=Settings in the Organization Tree
+APOC.configrep.typedom=Settings in the Domain Tree
+APOC.configrep.typeboth=Settings in Both Trees
+APOC.configrep.button.report=Generate Effective Settings
+
+#*******************************************************************************
+# Report
+#
+#*******************************************************************************
+APOC.report.button.tooltip=Opens a window which contains the report.
+APOC.report.onetree.title=Effective Settings for the {0} "{1}" on host "{2}"
+APOC.report.twotree.title=Effective Settings for the {0} "{1}" & the {2} "{3}" on host "{4}"
+APOC.report.multipletree.title=Effective Settings for the {0} on host "{1}"
+APOC.report.involved.profiles.entity={0} Profiles
+APOC.report.locorg={0} is an Organization below {1}.
+APOC.report.locrole={0} is a Role below {1}.
+APOC.report.locuserid={0} is a User below {1}.
+APOC.report.lochost={0} is a Host below {1} .
+APOC.report.locdomain={0} is a Domain below {1}.
+APOC.report.rootlocorg={0} is an Organization.
+APOC.report.rootlocuserid={0} is a User.
+APOC.report.rootlocrole={0} is a Role.
+APOC.report.rootlochost={0} is a Host.
+APOC.report.rootlocdomain={0} is a Domain.
+APOC.report.policygrouploc={0} is a Profile.
+APOC.report.bothand=and
+APOC.report.creator=Creator is {0} on {1}.
+APOC.report.createdate=Creation date is {0}.
+APOC.report.backendtype=Backend type is {0}.
+APOC.report.backendhost=Backend host is {0}.
+APOC.report.unknown=Unknown
+APOC.report.startcat=Start category is {0}.
+APOC.report.contitle=Table of Contents
+APOC.report.isbelow=is below {0}
+APOC.report.table.summary=This table lists the configuration settings. Each row contains the property status, name and value.
+APOC.report.table.nameheading=Name
+APOC.report.table.valueheading=Value
+APOC.report.table.statusheading=Status
+APOC.report.table.statuspheading=Status Path
+APOC.report.table.desheading=Description
+APOC.report.table.defined=Defined
+APOC.report.table.protected=Enforced
+APOC.report.table.readonly=Read-only
+APOC.report.table.defined.in=Defined in
+APOC.report.table.protected.in=Users May Not Overwrite
+APOC.report.table.readonly.in=Read-only In
+APOC.report.table.pathPG=Profile:
+APOC.report.table.empty={0} contain(s) no values.
+APOC.report.buttons.print=Print
+APOC.report.assigned.profiles.title=Profiles Involved
+APOC.report.settings.summary.title=Settings Summary
+APOC.report.addremove.elements=Elements Involved:
+APOC.report.elements.table.heading=Elements Involved
+APOC.report.elements.table.summary=This table specifies the elements involved in the generation of the effective settings results.
+APOC.report.elements.table.title=This list can be used to specify the elements involved in the generation of the effective settings.
+APOC.report.add.element=Add Element
+APOC.report.remove.element=Remove Element
+APOC.report.novalues=The elements involved contain no values.
+APOC.report.xml.parsing.error=XML parsing error while reading profile data!
+
+#*******************************************************************************
+# Full-Page Error Alert
+#
+#*******************************************************************************
+
+APOC.pageerror.title=Operation Failed
+APOC.pageerror.comment=You can find a stacktrace of this error as an HTML comment on this page.
+
+#*******************************************************************************
+# PolicyMgr Error Messages
+#
+#*******************************************************************************
+
+APOC.error.occurred=An error occurred.
+APOC.error.open.connection=The connection for the user could not be established.
+APOC.error.close.connection=An error occurred while closing the connetion.
+APOC.error.user.invalid=The username is invalid.
+APOC.error.unsupported.datastore=The datastore type specified in the bootstrapping information is not supported.
+APOC.error.application.initialize=The application cannot be initialized.
+APOC.error.bootstrap.incomplete=The bootstrapping information is incomplete.
+APOC.error.bootstrap.unavailable=The bootstrapping information is unavailable.
+APOC.error.ldap.bootstrap=The bootstrapping information for the LDAP directory server is incomplete.
+APOC.error.org.settings=The organization settings are invalid in the metaconfiguration.
+APOC.error.role.settings=The role settings are invalid in the metaconfiguration.
+APOC.error.user.settings=The user settings are invalid in the metaconfiguration.
+APOC.error.create.parser=The XML parser cannot be created.
+APOC.error.filter=The filter is syntactically incorrect.
+APOC.error.policy.read=The policy data cannot be read.
+APOC.error.policy.data.invalid=The policy data is invalid.
+APOC.error.policy.invalid=The policy is invalid.
+APOC.error.path.invalid=The path is invalid.
+APOC.error.userprofile.attribute=The attribute is not part of the user profile.
+APOC.error.locale.support=This locale is not supported.
+APOC.error.ldap.read=An LDAP read error occurred.
+APOC.error.ldap.write=An LDAP write error occurred.
+APOC.error.ldap.search=An LDAP error occurred during the search.
+APOC.error.ldap.results.size=An LDAP error occurred during the search because the number of resulting entries was larger than the limit set by the LDAP server.
+APOC.error.ldap.policygroup.creation=An LDAP error occurred during the creation of the profile.
+APOC.error.ldap.policygroup.deletion=An LDAP error occurred during the deletion of the profile.
+APOC.error.ldap.policygroup.rename=An LDAP error occurred during the renaming of the profile.
+APOC.error.unprotect.item=The item cannot be unprotected because the parent item is protected.
+APOC.error.readonly.item=A read-only item cannot be edited.
+APOC.error.mandatory.remove=A mandatory item cannot be removed.
+APOC.error.comply.constraints=The value does not comply with property constraints.
+APOC.error.nillable=The item is not nillable.
+APOC.error.mandatory.setting=The mandatory setting cannot be changed for this item.
+APOC.error.policygroup.priority.exists=A profile with this priority already exists.
+APOC.error.policygroup.name.exists=A profile with this name already exists.
+APOC.error.policygroup.not.exists=The profile does not exist.
+APOC.error.priorities.incorrect=The profile priorities are incorrect.
+APOC.error.policygroup.invalid=The profile is invalid.
+APOC.error.host.invalid=The host name is invalid.
+APOC.error.domain.settings=The domain settings are invalid in the metaconfiguration.
+APOC.error.host.settings=The host settings are invalid in the metaconfiguration.
+APOC.error.export.policygroup=An error occurred while exporting the profile.
+APOC.error.import.policygroup=An error occurred while importing the profile.
+APOC.error.export.policygroup_data=There is no profile data available for export.
+APOC.error.import.policygroup_data=There is no profile data available for import.
+
+#*******************************************************************************
+# Profile Window Profile
+#
+#*******************************************************************************
+
+APOC.profilewnd.buttons.save=Save
+APOC.profilewnd.buttons.close=Close
+
+# General Settings Tab
+APOC.profilewnd.general.tab=General Properties
+APOC.profilewnd.general.title=General Settings
+APOC.profilewnd.general.help=Specify the general properties for this profile.
+APOC.profilewnd.general.name=Name
+APOC.profilewnd.general.namecol=Name:
+APOC.profilewnd.general.comment=Comment
+APOC.profilewnd.general.commentcol=Comment:
+APOC.profilewnd.general.applicable=Applicable from
+APOC.profilewnd.general.browse=Change...
+APOC.profilewnd.general.pending=Pending Changes
+APOC.profilewnd.general.author=Author
+APOC.profilewnd.general.modified=Last Modified
+APOC.profilewnd.general.new_profile_instructions=You are about to create a new profile. This is basically a three step process:<br><br>1. Define a unique name for the profile (see below).<br>2. Configure several default and/or mandatory (enforced) settings (see "Configuration Settings" tab).<br>3. Assign the new profile to the desired {0} and/or {1} (see "Assigned Elements" tab).
+APOC.profilewnd.lc_domains=domains
+APOC.profilewnd.lc_hosts=hosts
+APOC.profilewnd.lc_orgs=organizations
+APOC.profilewnd.lc_users=users
+APOC.profilewnd.creating_new=Creating a new profile
+
+# Assignees Tab
+APOC.profilewnd.assignees.tab=Assigned Elements
+APOC.profilewnd.assignees.title=Assigned Elements
+APOC.profilewnd.assignees.help=Assign elements to this profile.
+APOC.profilewnd.assignees.noorgs=No elements assigned.
+APOC.profilewnd.assignees.assign=Assign Element...
+APOC.profilewnd.assignees.unassign=Unassign Element
+APOC.profilewnd.assignees.nameColumn=Name
+
+# Configuration Settings Tab
+APOC.profilewnd.settings.tab=Configuration Settings
+APOC.profilewnd.settings.title=Configuration Settings
+APOC.profilewnd.settings.Enable=Enable
+APOC.profilewnd.settings.Disable=Disable
+APOC.profilewnd.settings.Edit=Edit Values...
+APOC.profilewnd.settings.title.help=Select one of the categories listed below.
+APOC.profilewnd.settings.Actions=Advanced...
+APOC.profilewnd.settings.more=&#8212;&nbsp;More Actions&nbsp;&#8212;
+APOC.profilewnd.settings.enforce=Enforce
+APOC.profilewnd.settings.unenforce=Reset enforcement
+APOC.profilewnd.settings.undo=Undo Pending Changes
+APOC.profilewnd.settings.default=Restore Default
+APOC.profilewnd.settings.nameColumn=Name
+APOC.profilewnd.settings.valueColumn=Value
+APOC.profilewnd.settings.enabledColumn=Enabled
+APOC.profilewnd.settings.enforcedColumn=Enforced
+APOC.profilewnd.settings.pendingColumn=Pending Changes
+APOC.profilewnd.settings.overwrite=Users May Overwrite
+APOC.profilewnd.settings.defaultLabel=Default:
+APOC.profilewnd.settings.setToDefaultLabel=Set to Default
+
+# Configuration Tree
+APOC.profilewnd.tree.view.all=All
+APOC.profilewnd.tree.view.pending=Pending Changes
+APOC.profilewnd.advanced.tab=Advanced Options
+APOC.profilewnd.advanced.pagetitle_help=Specify advanced options such as merge order for profiles.
+APOC.profilewnd.advanced.merge_order=Merge Order:
+APOC.profilewnd.buttons.save.help=Saves the changes.
+APOC.profilewnd.buttons.close.help=Closes this window.
+APOC.profilewnd.buttons.ok_assign.help=Assigns the selected profile(s) to the current element.
+
+APOC.profilewnd.js.alert1=Unsaved changes exist in this page. Save the changes and close this window?
+APOC.profilewnd.js.alert2=Unsaved changes exist on this tab. Save the changes and proceed?
+APOC.profilewnd.js.alert3=Unsaved changes exist in this category. Save the changes and proceed?
+APOC.profilewnd.js.alert4=Unsaved changes exist in this page. Save changes and add new entry?
+APOC.profilewnd.js.alert5=Please enter a new list item:
+
+#Settings Summary
+APOC.profilewnd.summary.help=View the settings configured for this profile.
+
+# Add Context Wizard
+APOC.wiz.title=New Configuration Repository Wizard
+APOC.wiz.edit.title=Edit Configuration Respository Wizard
+APOC.wiz.steptext.2=Repository Details
+APOC.wiz.steptext.3=LDAP Details
+APOC.wiz.steptext.4=LDAP Credentials
+APOC.wiz.steptext.5=LDAP Server Type
+APOC.wiz.steptext.6=LDAP Metaconfiguration Options
+APOC.wiz.steptext.7=LDAP Metaconfiguration Editor
+APOC.wiz.steptext.8=Base DN Selection
+APOC.wiz.steptext.9=Base DN
+APOC.wiz.steptext.10=Review
+APOC.wiz.steptext.11=Results
+APOC.wiz.steptext.12=Data Directory Selection
+APOC.wiz.steptext.13=Existing Installation Options
+APOC.wiz.steptext.14=Migrate Profile Information
+APOC.wiz.steptext.15=LDAP Administrator Credentials
+APOC.wiz.help.2=<p>Choose the name of the repository and the hierarchy and storage type to use for the Domain and Organization elements in the repository, either a pure LDAP based configuration repository, pure File-Based or Hybrid.</p><p>In a pure LDAP configuration repository all information regarding organizational hierarchy, profile settings and profile assignments is stored on an LDAP server, similarly for a pure File-Based configuration repository all information is stored in a user-specified directory on the machine where the Sun Java Web Console is installed.<br>In a Hybrid configuration repository the organizational hierarchy information is taken from the LDAP server but all profile settings and profile assignments are stored as in a File-Based repository.</p>
+APOC.wiz.help.3=<p>Type the hostname and port of the LDAP server that you want to use for your LDAP configuration repository.</p><p>If you want to configure an LDAP server that is using SSL then check the "Use SSL" checkbox.</p>
+APOC.wiz.help.4=<p>If Anonymous Access cannot be used to read from the LDAP server then a password and fully qualified DN for a user with read access should be entered in the "User DN" and "User Password" fields.<br>This information is retained and is needed to allow users login to this configuration repository using their uid rather than fully qualified DNs.</p>
+APOC.wiz.help.5=<p>Choose the type of LDAP server being configured. This information is needed to decide the default metaconfiguration to provide for the server.</p><p>The metaconfiguration defines the attributes and objectclasses used to identify LDAP elements - Users, Roles, Organizations, Domains and Hosts.</p>
+APOC.wiz.help.6=<p>Choose whether or not you want to edit the default metaconfiguration.</p><p>The metaconfiguration defines the attributes and objectclasses used to identify LDAP entities - Users, Roles, Organizations, Domains and Hosts.</p>
+APOC.wiz.help.7=<p>Edit the metaconfiguration in the text area provided.</p><p>The metaconfiguration defines the attributes and objectclasses used to identify LDAP elements - Users, Roles, Organizations, Domains and Hosts.</p>
+APOC.wiz.help.8=<p>Choose the base DN you want to use for this configuration repository from the list provided.</p>
+APOC.wiz.help.9=<p>Choose the base DN you want to use for this configuration repository.</p>
+APOC.wiz.help.10=<p>Review the settings provided and press "Finish" to complete the creation of the new configuration repository.</p><p>Note that in the case of a pure LDAP installation pressing the "Finish" button will begin updating the LDAP server schema and adding a "services" branch to the LDAP hierarchy.</p>
+APOC.wiz.help.edit.10=<p>Review the settings provided and press "Finish" to complete the update of the existing configuration repository.</p><p>Note that in the case of a pure LDAP installation pressing the "Finish" button will begin updating the LDAP server schema and adding a "services" branch to the LDAP hierarchy.</p>
+APOC.wiz.help.11=<p>The results of the installation are shown in the area provided.</p>
+APOC.wiz.help.12=<p>Choose the directory in which you want to store the Profile and Assignment data for your configuration repository. The installation procedure will create directories for storing profile and assignment information called "profiles" and "assignments". In the case of a pure file-based repository, the hierarchy information is stored in an editable file called "entities.txt.". In the case of a hybrid repository, the metaconfigration which defines the attributes and objectclasses used to identify LDAP entities is stored in editable files called "OrganizationMapping.properties" and "UserProfileMapping.properties". </p>
+APOC.wiz.help.13=<p>An existing Desktop Manager configuration repository is installed in the specified directory. This repository may contain hierarchy, profile and assignment information which you want to keep, if so, choose to retain the existing installation data. Otherwise, to create a whole new repository, choose to overwrite the existing installation.</p>
+APOC.wiz.help.14=<p>The profile and assignment information is stored in a different location in LDAP in version 2.0 of the Desktop Manager from previous versions. Choose whether to migrate the profiles and assignments stored using the previous version of the Desktop Manager to the new location for this version. </p><p>Note that profiles stored using previous versions will still be visible through the Desktop Manager but the storage location in LDAP will remain unchanged - migrating the profiles helps maintain a cleaner LDAP server by not having version 1.x profile information stored in one location and version 2.0 profile information stored in different location.</p>
+APOC.wiz.help.15=<p>Enter the DN and password of a user with read/write access to the LDAP server in the "Administrator DN" and "Administrator Password" fields.<br>These credentials are used only for the installation of the required schema, attributes, objectclasses and entities required on an LDAP server by the Desktop Manager. They are not retained.</p>
+APOC.wiz.help.15a=<p>Enter the DN and password of a user with read/write access to the LDAP server in the "Administrator DN" and "Administrator Password" fields.<br>These credentials are used only for migrating the profiles and assignment information on the LDAP server. They are not retained.</p>
+APOC.wiz.instruction.2=Choose the name of the repository and select the hierarchy and storage options to use for the Domain and Organization elements.
+APOC.wiz.instruction.3=Enter the details of the LDAP server that you want to configure for this repository. The Hostname and Port on which the server runs are required. You can also choose whether or not to connect to this server using SSL.
+APOC.wiz.instruction.4=In order to allow users to login to the repository using their uid instead of fully qualified DN you must either have Anonymous Access enabled or else a password and fully qualified DN for a user with read access should be entered in the appropiate "User DN" and "User Password" fields.
+APOC.wiz.instruction.5=Different brands of LDAP server require different installation procedures. Select the LDAP server type to be used for the new configuration repository.
+APOC.wiz.instruction.6=The metaconfiguration defines the attributes and objectclasses used to identify LDAP entities i.e. Users, Roles, Organizations, Domains and Hosts. Suitable values are provided by default but users are free to add their own values if they wish. Choose whether or not you want to edit the default metaconfiguration used for this type of LDAP server.
+APOC.wiz.instruction.7=Edit the default metaconfiguration in the textarea below.
+APOC.wiz.instruction.8=The list below contains all the Base DNs available on the specified LDAP Server. Select the Base DN to be used for this Configuration Repository.
+APOC.wiz.instruction.9=A valid Base DN on the specified LDAP server is required to install a Configuration Repository. Enter the Base DN to be used for this Configuration Repository.
+APOC.wiz.instruction.10=Review the settings entered. Click Finish to complete the creation of the new configuration repository.
+APOC.wiz.instruction.edit.10=Review the settings entered. Click Finish to complete the update of the existing configuration repository.
+APOC.wiz.instruction.11=
+APOC.wiz.instruction.12=Select the directory in which to store the Profile and Assignment data for this configuration repository.
+APOC.wiz.instruction.13=An existing Desktop Manager configuration repository has been found in the specified directory. Choose whether to use the existing data in this directory for this installation or to delete all information and create a fresh repository.
+APOC.wiz.instruction.14=A previous version of the Desktop Manager has been found on this LDAP server. Choose whether to migrate the profile and assignment information stored using this previous version to the new location used for storage in this installation.
+APOC.wiz.instruction.15=The configuration procedure will require extension of the LDAP schema and the addition of a new branch in the LDAP tree. Therefore, the DN and password of a user with suitable access rights to the LDAP server must be provided in the "Administrator DN" and "Administrator Password" fields.
+APOC.wiz.instruction.15a=Migrating the storage location of profiles requires modifications of the existing LDAP tree. Therefore, the DN and password of a user with suitable access rights to the LDAP server must be provided in the "Administrator DN" and "Administrator Password" fields
+APOC.wiz.placeholder=[Steps determined by choice(s) in preceding step.]
+
+APOC.wiz.2.name=Repository Name:
+APOC.wiz.2.type=Repository Type:
+APOC.wiz.2.ldap=LDAP: LDAP Hierarchy and Storage
+APOC.wiz.2.file=File-Based: File-Based Hierarchy and Storage
+APOC.wiz.2.hybrid=Hybrid: LDAP Hierarchy and File-Based Storage
+APOC.wiz.2.alert=Please enter a name for the new configuration repository.
+APOC.wiz.3.host=Host:
+APOC.wiz.3.port=Port:
+APOC.wiz.3.ssl=Use SSL
+APOC.wiz.3.alert1={0} is an invalid LDAP port number! The port number must be an integer between 0 and 65535.
+APOC.wiz.3.alert2=Unable to connect to an LDAP server on {0}!
+APOC.wiz.4.admin.dn=Administrator DN:
+APOC.wiz.4.admin.pw=Administrator Password:
+APOC.wiz.4.anon=Use Anonymous Access
+APOC.wiz.4.user.dn=User DN:
+APOC.wiz.4.user.pw=User Password:
+APOC.wiz.4.alert1=Unable to authenticate as {0} to {1} using the specified password!
+APOC.wiz.4.alert3={0} does not have the necessary permissions to read from {1}! Please provide the credentials for a user with read permissions for the server.
+APOC.wiz.5.type=Type of LDAP Server:
+APOC.wiz.5.sun=Sun ONE Directory Server
+APOC.wiz.5.openldap=OpenLDAP
+APOC.wiz.5.ad=Active Directory
+APOC.wiz.5.other=Other
+APOC.wiz.6.question=Do you want to adapt the metaconfiguration:
+APOC.wiz.6.no=No
+APOC.wiz.6.yes=Yes
+APOC.wiz.7.adapt=Adapt the metaconfiguration below:
+APOC.wiz.8.basedn=Select BaseDN:
+APOC.wiz.8.alert=The base DN {0} does not exist on the server {1}! The LDAP server is misconfigured. Reconfigure the server and restart the wizard!
+APOC.wiz.9.basedn=Enter the BaseDN of the LDAP Server:
+APOC.wiz.9.alert=The base DN {0} does not exist on the server {1}! Please check your LDAP server and enter an existing base DN.
+APOC.wiz.10.anonymous=Anonymous
+APOC.wiz.10.vendor=Vendor Name:
+APOC.wiz.10.metaconfig=MetaConfiguration:
+APOC.wiz.10.basedn=Base DN:
+APOC.wiz.10.path=File-Based Data Directory:
+APOC.wiz.10.migrate=Migrate Profiles:
+APOC.wiz.10.orgdom.section=Domain and Organization Information:
+APOC.wiz.10.general.section=General Information:
+APOC.wiz.10.noaction=The existing server at {0} is already configured for the Desktop Manager. No further action is required for it. Click the Finish button to complete the Configuration Repository creation and add this entry to the Configuration Repositories table.
+APOC.wiz.10.edit.noaction=The existing server at {0} is already configured for the Desktop Manager. No further action is required for it. Click the Finish button to complete updating the details for this Configuration Repository.
+APOC.wiz.10.alert=The schema for an {0} server must be manually extended with the Desktop Manager schema before continuing!
+APOC.wiz.10.fail1= - Error updating the schema attributes and objectclasses for the specified LDAP Server.
+APOC.wiz.10.fail2= - Error creating the services branch in the specified LDAP server.
+APOC.wiz.10.fail3= - Error writing the metaconfiguration attributes in the specified LDAP server.
+APOC.wiz.10.fail4= - Unable to add the {0} attribute to the entry {1}.
+APOC.wiz.10.fail5= - Error deleting the existing installation.
+APOC.wiz.10.fail6= - Error updating the configuration file of the configuration repository: {0}.
+APOC.wiz.10.fail7=Please ensure that {0} can authenticate and has write access to {1}.
+APOC.wiz.10.fail8= - Error creating default hierarchy structure file.
+APOC.wiz.10.fail9= - Error creating the metaconfiguration files.
+APOC.wiz.10.fail10= - Error migrating the profile for the element {0}.
+APOC.wiz.11.title=New Configuration Repository Successfully Created
+APOC.wiz.11.text=The new configuration repository you have just created will now be available to you. To access this new configuration repository, click on its name in the Configuration Repositories table. If the currently logged in user is not an administrator for this configuration repository then you will be prompted to login with valid administrator credentials.
+APOC.wiz.11.alert.title=New Configuration Repository Creation Failed
+APOC.wiz.11.edit.title=Configuration Repository Successfully Updated
+APOC.wiz.11.edit.text=The configuration repository you have just updated will now be available to you. To access this configuration repository, click on its name in the Configuration Repositories table. If the currently logged in user is not an administrator for this configuration repository then you will be prompted to login with valid administrator credentials.
+APOC.wiz.11.alert.edit.title=Configuration Repository Update Failed
+APOC.wiz.12.alert1={0} does not exist!
+APOC.wiz.12.alert2={0} is not a directory!
+APOC.wiz.12.alert3=Cannot write to directory {0}!
+APOC.wiz.13.existing=Choose an action:
+APOC.wiz.13.overwrite=Overwrite the existing data and create a new installation
+APOC.wiz.13.update=Retain the existing installation data
+APOC.wiz.14.existing=Migrate profile and assignment information:
+APOC.wiz.14.username=Username (of user with write access):
+APOC.wiz.14.password=Password:
+APOC.wiz.ldap.err.nosuchattr=LDAPException (16): The specified attribute could not be found.
+APOC.wiz.ldap.err.valueexists=LDAPException (20): The value that you are adding to an attribute already exists in the attribute.
+APOC.wiz.ldap.err.attrsyntax=LDAPException (21): The request contains invalid syntax.
+APOC.wiz.ldap.err.nosuchobj=LDAPException (32): The entry specified in the request does not exist.
+APOC.wiz.ldap.err.invaliddn=LDAPException (34): The specified distinguished name (DN) uses invalid syntax.
+APOC.wiz.ldap.err.invalidcred=LDAPException (49): The credentials presented to the server for authentication are not valid.
+APOC.wiz.ldap.err.noaccessrights=LDAPException (50): The client is authenticated as a user who does not have the access privileges to perform this operation.
+APOC.wiz.ldap.err.entryexists=LDAPException (68): The specified entry already exists.
+APOC.wiz.ldap.err.serverdown=LDAPException (81): The LDAP server cannot be contacted.
+APOC.wiz.ldap.err.timeout=LDAPException (85): The operation could not be completed within the maximum time limit.
+APOC.wiz.ldap.err.connecterror=LDAPException (91): Your LDAP client failed to connect to the LDAP server.
+
+#Copy Move Wizard
+APOC.wiz.copy.copymove=Copy and Move...
+APOC.wiz.copy.copymove.tooltip=Copy or Move a Profile.
+APOC.wiz.copy.copymove.disabled.tooltip=Copy or Move a Profile (Unavailable).
+APOC.wiz.copy.title=Copy and Move Wizard
+APOC.wiz.copy.steptext.1=Choose a source profile
+APOC.wiz.copy.steptext.2=Choose action
+APOC.wiz.copy.steptext.3=Choose a target element
+APOC.wiz.copy.instruction.1=Choose a source configuration repository and a source profile from within this configuration repository to copy or move.
+APOC.wiz.copy.instruction.2=Select the action to take on the specified profile. Choose whether or not to ignore assignments for this profile.
+APOC.wiz.copy.instruction.3=Choose a target configuration repository and a target element from within this configuration repository to copy or move to.
+APOC.wiz.copy.instruction.4=Review the settings entered. Click Finish to copy/move the profile.
+APOC.wiz.copy.help.1=<p>Choose the configuration repository that contains the profile you want to copy/move by clicking the 'Change...' button and selecting the required configuration repository from the list.</p><p>Similarly choose the profile you want to copy/move by clicking the 'Change...' button and selecting the required profile from the list.</p>
+APOC.wiz.copy.help.2=<p>Choose which action to perform on the selected profile.</p><p>Choose whether or not to ignore the existing assignments that this profile has when performing the specified action.</p>
+APOC.wiz.copy.help.3=<p>Choose the configuration repository that you want to copy/move to by clicking the 'Change...' button and selecting the required configuration repository from the list.</p><p>Similarly choose the element you want to copy/move to by clicking the 'Change...' button and selecting the required element from the list.</p>
+APOC.wiz.copy.source.context=Source Repository:
+APOC.wiz.copy.source.profile=Source Profile:
+APOC.wiz.copy.1.alert=A source profile must be selected!
+APOC.wiz.copy.2.alert=The authenticated user {0} does not have the required permissions to move the source profile {1}!
+APOC.wiz.copy.select.action=Select Action:
+APOC.wiz.copy.copy=Copy
+APOC.wiz.copy.move=Move
+APOC.wiz.copy.assignments=Include Assignments
+APOC.wiz.copy.target.context=Target Repository:
+APOC.wiz.copy.target.entity=Target Element:
+APOC.wiz.copy.3.alert=A target element must be selected!
+APOC.wiz.copy.action=Action:
+APOC.wiz.copy.assignments.assignments=Include Assignments:
+APOC.wiz.copy.3.alert1=Cannot move a profile if the source and target element are the same!
+APOC.wiz.copy.3.alert2=The profile {0} cannot be {1}! A profile with the same name already exists at the target element {2}.
+APOC.wiz.copy.3.alert3=The authenticated user {0} does not have the required permissions to {1} the profile {2} to the element {3}!
+APOC.wiz.copy.4.alert=The profile {0} cannot be {1}! The profile is assigned to at least one element which is located above the target element {2}.
+APOC.wiz.copy.copyof=Copy {0} of {1}
+APOC.wiz.copy.overview.title=Copy and Move Wizard Overview
+APOC.wiz.copy.overview.text=<p>Profiles can be stored at any element within your organizational hierarchy, the Copy and Move Wizard will guide you through the steps necessary for either creating a copy of a profile which is stored under one element in a new storage location under a different element or moving the storage location of a profile from one element to another. There are certain restrictions to be aware of when using the Include Assignments option in your copy/move action, namely that a profile is only allowed to be assigned to an element which is located at or below the storage location of that profile. You will be asked to provide:</p><p><ul><li>A Source Configuration Repository and Source Profile.</li><li>An Action to perform and whether to also include profile assignments when executing this Action.</li><li>A Target Configuration Repository and Target Element</li></ul></p><p>Once you have provided the above information the wizard will perform the requested action on the selected profile.</p>
+APOC.wiz.copy.steptext.overview=Overview
+APOC.wiz.copy.results.text.assigned=The profile {0} has been {1} to a new storage location at the element {2} and has been assigned to this element.
+APOC.wiz.copy.results.text.unassigned=The profile {0} has been {1} to a new storage location at the element {2}.
+APOC.wiz.copy.results.title=Profile {0} Successfully
+APOC.wiz.copy.results.alert.title=Profile {0} Failed
+APOC.wiz.copy.results.copied=Copied
+APOC.wiz.copy.results.moved=Moved
+APOC.wiz.copy.results.copied.lc=copied
+APOC.wiz.copy.results.moved.lc=moved
+APOC.wiz.copy.4.fail1=Error copying profile.
+APOC.wiz.copy.4.fail2=Error deleting profile.
+APOC.wiz.copy.4.fail3=Error setting new profile display name.
+APOC.wiz.copy.4.fail4=Error assigning new profile to target element.
+
+# Browse Tree
+APOC.browse.title.org=Select an Organization
+APOC.browse.title.dom=Select a Domain
+APOC.browse.title=Select an Element
+APOC.browse.title.text=Navigate the tree and select the desired element. Click on the 'OK' button to confirm your selection.
+APOC.browse.cancel.help=Cancel the selection and close the window.
+APOC.browse.ok.help=Confirm the selection and close the window.
+APOC.browse.tree.nav=Tree Navigation
+
+#*******************************************************************************
+# Syncronization
+#*******************************************************************************
+APOC.sync.title=Synchronization
+APOC.sync.help=This page allows you to synchronize two Configuration Repositories.
+APOC.sync.sourcerep.label=Source Configuration Repository:
+APOC.sync.sourcerep.help=Menu of available configuration repositories.
+APOC.sync.sourcepath.label=Source Starting Point:
+APOC.sync.sourcepath.button=Change...
+APOC.sync.sourcepath.help=Opens a window that lets you change the source context path.
+APOC.sync.targetrep.label=Target Configuration Repository:
+APOC.sync.targetrep.help=Menu of available configuration repositories.
+APOC.sync.targetpath.label=Target Starting Point:
+APOC.sync.targetpath.button=Change...
+APOC.sync.targetpath.help=Opens a window that lets you change the target context path.
+APOC.sync.sync.button=Synchronize
+APOC.sync.sync.help=Synchronizes the listed profiles according to the selected actions.
+APOC.sync.reset.button=Reset
+APOC.sync.reset.help=Resets the actions to the default actions suggested by the Configuration Manager.
+APOC.sync.cancel.help=Closes this window.
+APOC.sync.login.title=Context Login
+APOC.sync.login.pagetitle=Login - Source Configuration Repository
+APOC.sync.login.pagetitle2=Login - Target Configuration Repository
+APOC.sync.login.pagehelp=The Configuration Manager allows you to administrate multiple configuration repositories which may require individual logins. The credentials you used to log in to the Java Web Console are defaulted if they can be reused. This login page is not shown if you successfully authenticated to the configuration repository already during this session. If you want to login with different credentials to a configuration repository you need to log out from the Java Web Console which ends the session.
+APOC.sync.compare.button=Compare
+APOC.sync.compare.help=Compares the source with the target.
+APOC.sync.result.empty=No differences found.
+APOC.sync.result.summary=This table lists the differences between the source and the target configuration repository.
+APOC.sync.result.title=Profiles
+APOC.sync.result.title2=Different Profile(s)
+APOC.sync.result.help0=About the Synchronization
+APOC.sync.result.help1=This window allows you to synchronize two configuration repositories.
+APOC.sync.result.help2=You can change the source repository which serves as source for the changes. This repository is not changed. Optionally you can restrict the source repository by specifying an element other than the root as starting point for the synchronization.
+APOC.sync.result.help3=You can change the target repository which serves as target for the changes. This repository is changed. Optionally you can restrict the target repository by specifying an element other than the root as starting point for the synchronization.
+APOC.sync.result.help4=After you have specified the source and target trees click the "Compare" button. The two trees are compared and all differences are listed in a table. Tick the table rows containing the profiles you want to synchronize and press the "Synchronize" button.
+APOC.sync.result.help5=When the synchronization is finished the target repository matches the source repository regarding the selected profiles.
+APOC.sync.busymsg.text=Processing...
+APOC.sync.result.column1=Profile
+APOC.sync.result.column2=Actions on Target Repository
+APOC.sync.action.copycontent=Copy contents.
+APOC.sync.action.copycomment=Copy comments.
+APOC.sync.action.alignassign=Align assignments.
+APOC.sync.action.changeprios=Change priorities.
+APOC.sync.action.create=Create the profile with content and assignments.
+APOC.sync.action.delete=Delete the profile.
+APOC.sync.msg.orgdomcomapre=You cannot compare an organization tree with a domain tree.
+APOC.sync.msg.noprofiles=No profiles found.
+APOC.sync.msg.allequal=All compared profiles are equal, a synchronization is not necessary.
+APOC.sync.msg.nocompare=Profiles have been found but none of them could be compared.
+APOC.sync.msg.partialcompare=At least one profile found couldn't be compared.
+APOC.sync.msg.compare.detail=For a profile to be compared the relative path from the starting point to its storage location must exist in the other repository.
+APOC.sync.waitmsg.prepare=Preparing
+APOC.sync.waitmsg.retsource=Retrieving source profiles
+APOC.sync.waitmsg.rettarget=Retrieving target profiles
+APOC.sync.waitmsg.prepx=Preparing profile comparison ({0} profiles prepared)
+APOC.sync.waitmsg.compx=Comparing profiles ({0} of {1} profiles compared)
+APOC.sync.waitmsg.sync=Synchronizing profiles ({0} of {1} profiles synchronized)
+APOC.sync.waitmsg.time=Elapsed Time: {0}:{1}.{2}
+
+APOC.tabs.tree.title=Profiles - Tree View
+APOC.tabs.tree.help=Shows the assigned profiles in the organization and domain tree.
+APOC.tabs.all.title=Profiles - All
+APOC.tabs.all.help=Shows a list of all profiles.
+
+APOC.find.title=Find
+APOC.find.button=Find
+
+#*******************************************************************************
+# Contexts
+#*******************************************************************************
+APOC.contexts.title=Configuration Repositories
+APOC.contexts.details.title=Configuration Repository Details
+APOC.contexts.details.name=Repository Name
+APOC.contexts.details.domorg.info=Location of the Domain/Organization Information
+APOC.contexts.details.domorg.profile.info=Storage Location of the Domain/Organization Data
+APOC.contexts.details.property=Property
+APOC.contexts.details.view=View Details
+APOC.contexts.help=The configuration repository is the storage location for the configuration data that you need to configure your applications.
+APOC.contexts.table.title=Configuration Repositories
+APOC.contexts.config.error=Unable to access the selected repository. There is a syntax error in the configuration file {0}.
+APOC.contexts.table.summary=This table lists all available Configuration Repositories. The 'Type' column lists the type of the repository. The 'Location of Organization Data' column lists URLs pointing to the storage location which provides the organizational data. The 'Location of Profile Data' column lists URLs pointing to the storage location which provides the profile data. Click on the name link to use that Configuration Repository.
+APOC.contexts.details.table.summary=This table lists the properties of the selected Configuration Repository. The name, location of hierarchy information and the location of storage information are listed.
+APOC.contexts.table.empty=No configuration repository available. Use the 'New...' button to create a new configuration repository.
+APOC.contexts.menu.create=Create...
+APOC.contexts.menu.remove=Remove...
+APOC.contexts.menu.rename=Rename...
+APOC.contexts.menu.synchronize=Synchronize...
+APOC.contexts.column.name=Name
+APOC.contexts.column.type=Type
+APOC.contexts.column.locorg=Location of Organization Data
+APOC.contexts.column.locpro=Location of Profile Data
+APOC.contexts.hybrid.text=hybrid
+APOC.contexts.create.button=Create a Configuration Repository
+APOC.contexts.login.context=Configuration Repository:
+APOC.contexts.login.title=Configuration Repositories - Login
+APOC.contexts.login.help=The Configuration Manager allows you to administrate multiple configuration repositories which may require individual logins. The credentials you used to log in to the Java Web Console are defaulted if they can be reused. This login page is not shown if you successfully authenticated to the configuration repository already during this session. If you want to login with different credentials to a configuration repository you need to log out from the Java Web Console which ends the session.
+APOC.select.contexts.login.help=In order to select a new configuration repository you must provide new login credentials. The credentials previously used to log in to the chosen repository are defaulted if they are available.
+APOC.relocate.error.summary=Operation cancelled!
+APOC.relocate.error.detail=At least one organization or domain this profile is assigned to would be located above the new location of the profile.
+APOC.relocate.trace.text=No stacktrace available.
+
diff --git a/src/com/sun/apoc/manager/resource/apoc_manager_de.properties b/src/com/sun/apoc/manager/resource/apoc_manager_de.properties
new file mode 100644
index 0000000..6e7fe50
--- /dev/null
+++ b/src/com/sun/apoc/manager/resource/apoc_manager_de.properties
@@ -0,0 +1,998 @@
+#*******************************************************************************
+#
+# $RCSfile: apoc_manager_de.properties,v $
+#
+# Description: Resource bundle for the Sun Java(tm) Desktop System
+# Configuration Manager
+#
+# Last change: $Date: 2007/05/18 14:41:02 $ $Revision: 1.16 $
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use of this
+# product is subject to license terms.
+#
+#*******************************************************************************
+
+#*******************************************************************************
+# Common
+#
+#*******************************************************************************
+
+APOC.framelongdesc=Diese Anwendung besteht aus drei Rahmen. Der Titelrahmen befindet sich oben auf der Seite. Der Navigationsrahmen befindet sich auf der linken Seite. Hier können Sie durch die Benutzer und Hosts navigieren. Das Anklicken eines Elements im Navigationsrahmen führt zu einem erneuten Laden des Inhaltsrahmens, bzw. des Inhaltsrahmens und des Navigationsrahmens. Der Inhaltsbereich befindet sich auf der rechten Seite und zeigt Informationen zum aktuell ausgewählten Element an.
+APOC.so7=StarOffice 7
+APOC.button.remove=Entfernen
+APOC.button.close=Schließen
+APOC.button.OK=OK
+APOC.button.cancel=Abbrechen
+APOC.button.browse=Ändern...
+APOC.headings.name=Name
+APOC.login.username=Benutzername:
+APOC.login.password=Passwort:
+APOC.infoAlert.success=Die Aktion wurde erfolgreich beendet.
+APOC.noframes=Für diese Anwendung werden Frames benötigt.
+APOC.settings.notset=-- Nicht festgelegt --
+APOC.profiles.profile=Profil
+APOC.help.more.on=>> Mehr zu {0}
+APOC.help.more=>> Mehr
+APOC.pool.renameContextMessage=Geben Sie den neuen Namen der Datensammlung ein:
+APOC.pool.removeContextMessage=Möchten Sie die ausgewählte Konfigurationsdatensammlung wirklich löschen?
+APOC.helpwindow.tooltip=Hilfe (in neuem Fenster)
+
+#*******************************************************************************
+# Masthead
+#
+#*******************************************************************************
+
+APOC.frame.masthead=Impressum Rahmen
+APOC.masthead.altTextVer=Sun Desktop Manager 1.0.1
+APOC.masthead.altText=Sun Desktop Manager 1.0.1
+APOC.masthead.altTextForSub={0}
+APOC.masthead.packages.alt=Richtlinienpakete (öffnet ein neues Fenster)
+APOC.masthead.path.link=Datensammlungen
+APOC.masthead.path.help=Zurück zur Seite der Konfigurationsdatensammlung
+
+#*******************************************************************************
+# Packages Dialog Strings
+#
+#*******************************************************************************
+
+APOC.packages.title=Richtlinienpakete
+APOC.packages.introtext=Sie können hier Richtlinienpakete (de)installieren. Richtlinienpakete werden von Sun Microsystems oder Drittanbietern angeboten und enthalten Zusatzrichtlinen für die Verwendung in {0}.
+APOC.packages.tabletitle=Installierte Richtlinienpakete
+APOC.packages.headings.adddate=Installationsdatum
+APOC.packages.action.file=Von Server installieren...
+APOC.packages.action.url=Von Client installieren...
+APOC.packages.action.uninstall=Deinstallieren
+APOC.packages.uninstall.confirm=Sind Sie sicher, dass Sie das ausgewählte Paket deinstallieren wollen?
+APOC.packages.filechooser.addfile=Installieren eines Richtlinienpaketes von einer serverseitigen Datei
+APOC.packages.filechooser.button=Datei auswählen
+APOC.packages.localchooser.title=Installieren eines Richtlinienpaketes von einer lokalen Datei
+APOC.packages.localchooser.upload=Hochladen
+APOC.packages.localchooser.choosetext=Datei zum Hochladen:
+
+#*******************************************************************************
+# Users Page Tab
+#
+#*******************************************************************************
+
+APOC.users.title=Benutzer
+APOC.users.introtext=Diese Registerkarte listet die Benutzer auf, die Mitglieder in der ausgewählten Rolle sind. Die 'Pfad'-Spalte listet die absoluten Pfade auf.
+APOC.users.tableSummary=Diese Tabelle listet die Benutzer auf, die Mitglieder der ausgewählten Rolle sind. Die 'Pfad'-Spalte listet die absoluten Pfade auf. Klicken Sie auf einen Benutzernamen, um diesen Benutzer im linken Rahmen auszuwählen.
+
+#*******************************************************************************
+# Roles Page Tab
+#
+#*******************************************************************************
+
+APOC.roles.title=Rollen
+APOC.roles.introtext=Diese Registerseite listet die Rollen auf, welche den ausgewählten Benutzer als Mitglied haben. Die 'Pfad'-Spalte listet die absoluten Pfade auf.
+APOC.roles.tableSummary=Diese Tabelle listet die Rollen auf, welche den ausgewählten Benutzer als Mitglied haben. Die 'Pfad'-Spalte listet die absoluten Pfade auf. Klicken Sie auf einen Rollennamen, um diese Rolle im linken Rahmen auszuwählen.
+
+#*******************************************************************************
+# Assignees Page Tab
+#
+#*******************************************************************************
+
+APOC.assignees.title=Assoziierte Entitäten
+APOC.assignees.introtext=Diese Registerseite listet die Entitäten auf, denen das ausgewählte Profil zugewiesen ist. Die 'Pfad'-Spalte listet die absoluten Pfade auf.
+APOC.assignees.tableSummary=Diese Tabelle listet die Entitäten auf, denen das ausgewählte Profil zugewiesen ist. Die 'Pfad'-Spalte listet die absoluten Pfade auf. Klicken Sie auf den Namen eines Elements, um es im linken Rahmen auszuwählen.
+
+#*******************************************************************************
+# Profiles Tab page
+#
+#*******************************************************************************
+
+APOC.policysets.title=Zugewiesene Profile
+APOC.policysets.label=Profile:
+APOC.policysets.introtext=Auf dieser Registerseite können Sie dem ausgewählten Element Profile zuweisen.
+APOC.policysets.save=Speichern
+APOC.policysets.infoAlert.saveSuccess=Die Änderungen in den Profilzuweisungen wurden gespeichert.
+
+#*******************************************************************************
+# Policies Tab page
+#
+#*******************************************************************************
+
+APOC.policies.title=Zugeordnete Richtlinien
+APOC.policies.subcategories=Untergruppen
+APOC.policies.nameCol=Name
+APOC.policies.commentCol=Kommentar
+APOC.policies.actionCol=Aktion
+APOC.policies.toggle.button=Aktion umschalten
+APOC.policies.introtext=Diese Seite beinhaltet den Konfigurationsrichtlinienbaum und die Einstellungen für das ausgewählte Element.
+APOC.policies.tableSummary=In dieser Tabelle sind die verfügbaren Richtlinien aufgeführt. Jede Zeile enthält den Namen der Richtlinie und eine kurze Beschreibung. Klicken Sie auf einen Namen, um die nächsttiefere Ebene von Richtlinien anzuzeigen.
+APOC.properties.tableSummary=Diese Tabelle zeigt die Konfigurationseinstellungen. Jede Zeile enthält den Status, Namen und Wert der Eigenschaft.
+APOC.policies.stateCol=Status
+APOC.policies.value=Wert
+APOC.policies.value.notconfig=Nicht konfiguriert
+APOC.policies.value.config=Konfiguriert
+APOC.policies.status=Status
+APOC.policies.root=Richtlinien
+APOC.policies.actions=&#8212;&nbsp;Richtlinien Aktionen&nbsp;&#8212;
+APOC.policies.actions.protect=Schützen
+APOC.policies.actions.unprotect=Schutz aufheben
+APOC.policies.actions.default=Anwendungsvorgabe übernehmen
+APOC.policies.actions.clear=Löschen
+APOC.policies.enable=Aktivieren
+APOC.policies.enabled=aktiviert
+APOC.policies.disabled=deaktiviert
+APOC.policies.clear.button=Einstellungen löschen
+APOC.policies.createrep.button=Bericht erstellen...
+APOC.policies.createrep.tooltip=Bericht erstellen (öffnet ein neues Fenster)
+APOC.policies.clear.confirmation=Durch diese Aktion werden alle Einstellungen in dieser Ebene und allen Ebenen darunter gelöscht. Möchten Sie wirklich fortfahren?
+APOC.policies.backToTop=Zurück zum Anfang
+APOC.policies.backToTop.tooltip=Zurück zum Anfang
+APOC.policies.jumpDown.tooltip={0} (Springt zu diesem Abschnitt)
+APOC.policies.save.button=Speichern
+APOC.policies.reset.button=Zurücksetzen
+APOC.policies.navigation.table.empty=Es sind keine Richtlinien zugewiesen.
+APOC.policies.set.table.empty=Es wurden keine Einträge gefunden.
+APOC.policies.new.button=Neu...
+APOC.policies.delete.button=Löschen
+APOC.policies.name.question=Geben Sie einen Namen für den neuen Eintrag ein.
+APOC.policies.rename.set=Geben Sie einen neuen Namen für den Eintrag ein.
+APOC.policies.status.defined_here=Der Eintrag ist in dieser Ebene definiert.
+APOC.policies.status.defined_above=Der Eintrag ist in einer darüberliegenden Ebene definiert.
+APOC.policies.status.noprotection=Kein Schutzstatus.
+APOC.policies.status.nodefinition=Kein Definitionsstatus.
+APOC.policies.status.jumpto=Klicken Sie auf diese Verknüpfung, um zu {0} zu gelangen.
+APOC.policies.status.protected_here=Der Eintrag ist in dieser Ebene geschützt.
+APOC.policies.status.protected_above=Der Eintrag ist in einer darüberliegenden Ebene geschützt.
+APOC.policies.status.policygroup=Profil {0}
+APOC.policies.info.general=Die Aktion wurde erfolgreich beendet.
+APOC.policies.info.stored=Alle Einstellungen wurden gesichert.
+APOC.policies.info.removed=Alle Einstellungen wurden gelöscht.
+APOC.policies.error.general=Es ist ein Fehler aufgetreten.
+APOC.policies.error.removing=Während des Löschens von Einstellungen ist ein Fehler aufgetreten: {0}
+APOC.policies.error.storing=Während des Speicherns von Einstellungen ist ein Fehler aufgetreten: {0}
+APOC.policies.confirmation.storechanges=Sie haben mehrere Einstellungen geändert. Möchten Sie Ihre Änderungen jetzt speichern?
+APOC.policies.info.readonly.access=Diese Seite kann nicht bearbeitet werden, da Sie nicht über die notwendigen Zugriffsrechte verfügen.
+APOC.policies.info.readonly.maybe=Mindestens eines der angezeigten Profile ist schreibgeschützt, da Sie nicht über die erforderlichen Zugriffsrechte für das Vornehmen von Änderungen verfügen.
+APOC.policies.info.readonly.roles=Diese Seite kann nicht bearbeitet werden, da lokale Richtlinien nicht Rollen zugeordnet werden können.
+APOC.policies.edit.button=Bearbeiten...
+APOC.policies.include_in=Einschließen in
+APOC.policies.exclude_from=Ausschließen aus
+APOC.policies.footnote=* Gibt Standardwerte an, die von der Anwendung automatisch verwendet werden, wenn nicht ausdrücklich andere Einstellungen definiert wurden.
+APOC.policies.settings_title=Einstellungen (Profil {0})
+
+#*******************************************************************************
+# Content Area
+#
+#*******************************************************************************
+
+APOC.frame.contentarea=Inhalts-Rahmen
+APOC.catabs.policy.des=Richtlinien (öffnet die Registerseite)
+APOC.catabs.policysets.des=Zugewiesene Profile (öffnet die Registerseite)
+APOC.catabs.users.des=Benutzer (öffnet die Registerseite)
+APOC.catabs.roles.des=Rollen (öffnet die Registerseite)
+APOC.catabs.assignees.des=Assoziierte Entität (öffnet die Registerseite)
+APOC.ca.backtop=Zurück zum Anfang
+APOC.ca.locale=Gebietsschema
+APOC.ca.path=Pfad
+
+#*******************************************************************************
+# Help
+#
+#*******************************************************************************
+
+APOC.help.helpTooltip=Hilfe (öffnet ein neues Fenster)
+APOC.help.windowTitle=Hilfe
+
+#*******************************************************************************
+# Navigation Area Common
+#
+#*******************************************************************************
+
+APOC.navigation.search=Suchen
+APOC.navigation.reset=Zurücksetzen
+APOC.navigation.search.help=Öffnet ein Fenster, in dem Sie eine Suche starten können.
+APOC.navigation.edit.help=Geben Sie die Suchzeichenkette ein.
+APOC.navigation.close=Schließen
+APOC.navigation.organization=Organisation
+APOC.navigation.organization.with=Organisation mit Zuweisungen
+APOC.navigation.organizations=Organisationen
+APOC.navigation.organizations.help=Wurzel des Organisationsbaums.
+APOC.navigation.user=Benutzer
+APOC.navigation.user.with=Benutzer mit Zuweisungen
+APOC.navigation.users=Benutzer
+APOC.navigation.role=Rolle
+APOC.navigation.role.with=Rolle mit Zuweisungen
+APOC.navigation.roles=Rollen
+APOC.navigation.domain=Domäne
+APOC.navigation.domain.with=Domäne mit Zuweisungen
+APOC.navigation.domains=Domäne
+APOC.navigation.domains.help=Wurzel des Domänenbaums.
+APOC.navigation.host=Rechner
+APOC.navigation.host.with=Rechner (Host) mit Zuweisungen
+APOC.navigation.hosts=Rechner
+APOC.navigation.name=Name
+APOC.navigation.actions=Aktionen
+APOC.navigation.view=Ansicht
+APOC.navigation.view.tooltip=Zeigt dieses Element im rechten Rahmen
+APOC.navigation.area=Navigationsbereich
+APOC.navigation.empty=Es sind keine Entitäten vorhanden.
+APOC.navigation.name.label=Name:
+APOC.navigation.type=Typ
+APOC.navigation.userTooltip=Benutzer (öffnet eine Benutzer-Registerseite)
+APOC.navigation.hostTooltip=Rechner (öffnet eine Rechner-Registerseite)
+APOC.navigation.breadcrumb.tooltip=Zurück zu {0}
+APOC.navigation.show=Anzeigen:
+APOC.navigation.showDirsOnly=Nur Verzeichnisse
+APOC.navigation.showAll=Alle
+APOC.navigation.ellipsis=... einige Elemente nicht angezeigt
+APOC.navigation.openfind=Öffnet das Suchfenster
+APOC.navigation.search.target.alert1=Das Zielfenster für die Auswahl konnte nicht festgestellt werden.\\nSchließen Sie das Suchfenster und öffnen Sie es im gewünschten Zielfenster erneut.
+
+#*******************************************************************************
+# Navigation Area User Tree Tab
+#
+#*******************************************************************************
+
+APOC.usertree.title=Organisationsbaum
+APOC.usertree.tooltip=Organisationsbaum (Öffnet die Organisationsbaum-Registerseite)
+APOC.usertree.tableSummary=In dieser Tabelle sind Kinder der aktuellen Organisation aufgeführt. Jede Zeile enthält den Namen des Kindes, seinen Typ (Organisation, Benutzer oder Rolle) und eine Verknüpfung. Klicken Sie auf die Verknüpfung, um den Inhalt der Organisation im rechten Rahmen anzuzeigen.
+
+#*******************************************************************************
+# Navigation Area Host Tree Tab
+#
+#*******************************************************************************
+
+APOC.hosttree.title=Domänenbaum
+APOC.hosttree.tooltip=Domänenbaum (öffnet die Domänenbaum-Registerseite)
+APOC.hosttree.tableSummary=In dieser Tabelle sind Kinder der aktuellen Domäne aufgeführt. Jede Zeile enthält den Namen des Kindes, seinen Typ (Domäne oder Benutzer) und einen Verweis zum Anzeigen des Inhalts im rechten Rahmen.
+
+#*******************************************************************************
+# Navigation Area Entities Table Filter
+#
+#*******************************************************************************
+
+APOC.entityfilter.titleUsers=Erweiterter Filter - Benutzer
+APOC.entityfilter.titleHosts=Erweiterter Filter - Rechner
+APOC.entityfilter.help.title=Hilfe
+APOC.entityfilter.type.label=Typ:
+APOC.entityfilter.filter=Filtern
+APOC.entityfilter.placeholder=<name to filter on>
+
+#*******************************************************************************
+# Set Color Dialog
+#
+#*******************************************************************************
+
+APOC.setcolor.edit.alt=Palette bearbeiten (öffnet ein neues Fenster)
+APOC.setcolor.title=Palette bearbeiten
+APOC.setcolor.introtext=Die aktuelle Farbe wird in der mittleren Spalte angezeigt. Über die Schaltflächen zum Hinzufügen oder Ersetzen von Farben lässt sich diese Farbe der Palette hinzufügen. Sie können den Farben Namen zuordnen, indem Sie die gewünschten Namen in das Feld "Name" eingeben. Wenn Sie fertig sind, klicken Sie zum Speichern Ihrer Änderungen an der Palette auf "OK".
+APOC.setcolor.palette.heading=Farbpalette:
+APOC.setcolor.color.heading=Farbe:
+APOC.setcolor.color.alt=Aktuelle Farbe ist {0}
+APOC.setcolor.red.heading=Rot:
+APOC.setcolor.red.increase=Mehr Rot
+APOC.setcolor.red.decrease=Weniger Rot
+APOC.setcolor.green.heading=Grün:
+APOC.setcolor.green.increase=Mehr Grün
+APOC.setcolor.green.decrease=Weniger Grün
+APOC.setcolor.blue.heading=Blau:
+APOC.setcolor.blue.increase=Mehr Blau
+APOC.setcolor.blue.decrease=Weniger Blau
+APOC.setcolor.hue.heading=Farbton:
+APOC.setcolor.hue.increase=Farbton verstärken
+APOC.setcolor.hue.decrease=Farbton abschwächen
+APOC.setcolor.sat.heading=Sättigung:
+APOC.setcolor.sat.increase=Sättigung erhöhen
+APOC.setcolor.sat.decrease=Sättigung verringern
+APOC.setcolor.lum.heading=Helligkeit:
+APOC.setcolor.lum.increase=Helligkeit erhöhen
+APOC.setcolor.lum.decrease=Helligkeit verringern
+APOC.setcolor.html.heading=Hex-Wert:
+APOC.setcolor.original.heading=Originalfarbe:
+APOC.setcolor.original.alt=Originalfarbe ist {0}.
+APOC.setcolor.wheel.heading=Farbspektrum:
+APOC.setcolor.wheel.alt=Klicken Sie auf das Bild und wählen Sie eine Farbe aus dem Spektrum, einen Farbton auf der x-Achse und eine Sättigung auf der y-Achse. Die Farbe, auf die Sie im Spektrum klicken, wird in der mittleren Spalte angezeigt.
+APOC.setcolor.slider.summary=Klicken Sie auf eine beliebige Stelle in dieser Tabelle, um die Helligkeit der aktuellen Farbe anzupassen. Die Helligkeit nimmt von rechts nach links ab.
+APOC.setcolor.add.button=Farbe hinzufügen >
+APOC.setcolor.replace.button=Farbe ersetzen >
+APOC.setcolor.remove.button=Farbe löschen
+APOC.setcolor.remove.alert=Das ausgewählte Kästchen enthält keine gespeicherte Palettenfarbe und kann deshalb nicht entfernt werden.
+APOC.setcolor.name.alert=Der angegebene Farbname wird bereits verwendet. Wählen Sie einen anderen Farbnamen aus.
+APOC.setcolor.restoreorigcolor.button=Farbe wiederherstellen
+APOC.setcolor.restore.button=Standardfarben wiederherstellen
+APOC.setcolor.restore.confirm=Möchten Sie wirklich die Standardfarben wiederherstellen?
+APOC.setcolor.increase.tooltip=Mehr
+APOC.setcolor.decrease.tooltip=Weniger
+APOC.setcolor.tooltip=Dialogfeld zum Bearbeiten von Farben (wird in einem neuen Fenster geöffnet)
+APOC.setcolor.replace.alert=Zum Hinzufügen einer neuen Farbe verwenden Sie die Schaltfläche "Farbe hinzufügen".
+APOC.setcolor.add.alert=Zum Ersetzen einer vorhandenen Farbe verwenden Sie die Schaltfläche "Farbe ersetzen".
+APOC.setcolor.noname=Kein Name
+APOC.setcolor.invalid.hex=Der Hex-Wert ist ungültig. Geben Sie einen gültigen Namen ein.
+
+#*******************************************************************************
+# Chooser
+#
+#*******************************************************************************
+
+APOC.page.chooser.list.editor=Liste bearbeiten
+APOC.page.chooser.list.help=Bearbeiten Sie diese Liste, um dem Dropdown-Menü im Inhaltsbereich weitere Elemente hinzuzufügen oder Elemente daraus zu löschen. Durch Klicken auf die Schaltfläche "Standardwerte wiederherstellen" werden alle Änderungen an der Liste entfernt. Zum Speichern der Änderungen an der Liste klicken Sie auf die Schaltfläche "OK".
+APOC.chooser.add=Hinzufügen
+APOC.chooser.system_added=(*) Kennzeichnet vom System in die Liste eingefügte Elemente. Bei einem der Liste vom System hinzugefügten Element handelt es sich entweder um einen Standardwert oder um den gespeicherten Wert für die aktuell angezeigte Eigenschaft.
+APOC.chooser.protected.alert=Dieses Element kann nicht aus der Liste entfernt werden, da es entweder ein Standardwert oder der gespeicherte Wert für eine Einstellung auf dieser Seite ist.
+APOC.chooser.selected.alert=Dieses Element kann nicht aus der Liste entfernt werden, da es der aktuell ausgewählte Wert für eine Eigenschaft auf dieser Seite ist.
+APOC.chooser.edit.alt=Liste bearbeiten (öffnet ein neues Fenster)
+APOC.font.chooser.title=Schriftenliste bearbeiten
+APOC.window.border.chooser.title=Liste der Fensterrand-Motive bearbeiten
+APOC.window.controls.chooser.title=Liste der Bedienelement-Motive bearbeiten
+APOC.window.icon.chooser.title=Liste der Symbol-Motive bearbeiten
+
+#*******************************************************************************
+# Navigation Area Repository Tab
+#
+#*******************************************************************************
+
+APOC.pool.title=Richtliniensammlung
+APOC.pool.all_profiles=Alle Profile
+APOC.pool.all_profiles.help=Diese Registerseite listet alle Profile auf.
+APOC.pool.all_domain_profiles=Alle Domänenprofile
+APOC.pool.all_org_profiles=Alle Organisationsprofile
+APOC.pool.tooltip=Richtliniensammlung (öffnet die Richtliniensammlung-Registerseite)
+APOC.pool.sets=Zugewiesene Profile
+APOC.pool.setsHost=Rechnerprofile
+APOC.pool.priority=Priorität
+APOC.pool.actions=&#8212;&nbsp;Profilaktionen&nbsp;&#8212;
+APOC.pool.new=Neu...
+APOC.pool.delete=Löschen.
+APOC.pool.import=Importieren...
+APOC.pool.export=Exportieren...
+APOC.pool.rename=Umbenennen...
+APOC.pool.edit=Priorität bearbeiten...
+APOC.pool.add_assignment=Profil zuweisen
+APOC.pool.available_profiles=Verfügbare Profile
+APOC.pool.add_assignment_help=Verwenden Sie dieses Fenster zum Zuweisen von Profilen.
+APOC.pool.new_button.help=Erstellt ein neues Profil.
+APOC.pool.delete_button.help=Löscht ein Profil.
+APOC.pool.assign_button.help=Öffnet ein neues Fenster, in dem ein Profil für die Zuweisung ausgewählt werden kann.
+APOC.pool.unassign_button.help=Widerruft die Zuweisung der ausgewählten Profile zur aktuellen Organisation.
+APOC.pool.report_button.help=Öffnet ein Fenster, das den Bericht enthält.
+APOC.pool.tableSummary=Diese Tabelle enthält die globalen Profile. Jede Zeile enthält den Namen des Profils, dessen Priorität und eine Verknüpfung. Klicken Sie auf die Verknüpfung, um den Inhalt des Profils im rechten Rahmen anzuzeigen.
+APOC.pool.empty=Es sind keine Profile verfügbar.
+APOC.pool.deleteMessage=Möchten Sie die ausgewählten Profile wirklich löschen?
+APOC.pool.tableSummary=Diese Tabelle enthält eine Profilliste. Jede Zeile enthält den Namen des Profils, dessen Autor und das Datum der letzten Änderung. Klicken Sie auf den Namen, um den Profilinhalt anzuzeigen.
+APOC.pool.empty=Es sind keine Profile verfügbar.
+APOC.pool.deleteMessage=Möchten Sie das ausgewählte Profil wirklich löschen?
+APOC.pool.newMessage=Geben Sie einen Namen für das neue Profil ein:
+APOC.pool.newDefault=Neue Richtliniengruppe
+APOC.pool.renameMessage=Geben Sie den neuen Namen des Profils ein:
+APOC.pool.help.title=Hilfe zur Richtliniensammlung
+APOC.pool.help.text1=Die Richtliniensammlung dient zum Speichern Ihrer Profile. Ein Profil ist ein benannter Behälter für Richtlinien. Der Name eines Profils muss eindeutig sein.
+APOC.pool.help.text2=Nach dem Erzeugen eines neuen Profils können Sie Konfigurationseinstellungen darin ablegen und dieses Profil jeder Organisation, jedem Benutzer, jeder Rolle, jeder Domäne und jedem Host hinzufügen. Dies geschieht, indem Sie das Element im Navigationsbereich anzeigen und die Registerseite "Profile" im Inhaltsbereich auswählen.
+APOC.pool.help.text3=Obwohl die Verwendung von Profilen für die Konfigurationsverwaltung nicht erforderlich ist, erlauben Profile eine flexiblere Verwaltung Ihrer Konfiguration. So können Sie z. B. ein Profil "Anfänger" erstellen, ihm Konfigurationseinstellungen für Anfänger zuweisen und dieses Profil zu jedem Mitglied des Organisations- oder Domänenbaums hinzufügen.
+APOC.pool.import.tooltip=Ein Profil in die Datensammlung importieren.
+APOC.pool.export.tooltip=Ein Profil exportieren.
+APOC.pool.rename.tooltip=Ein Profil umbenennen.
+APOC.pool.import.disabled.tooltip=Ein Profil in die Datensammlung importieren (nicht verfügbar).
+APOC.pool.export.disabled.tooltip=Ein Profil exportieren (nicht verfügbar).
+APOC.pool.rename.disabled.tooltip=Ein Profil umbenennen (nicht verfügbar).
+
+#*******************************************************************************
+# Navigation Area Priorities
+#
+#*******************************************************************************
+
+APOC.prios.title=Profilprioritäten
+APOC.prios.help=Auf dieser Registerseite können Sie die Profilprioritäten ändern. Die Prioritäten definieren die Reihenfolge der Zusammenführung, wenn einem Element mehr als ein Profil mit der gleichen Anwendbarkeit zugewiesen wird.
+APOC.prios.up=Nach oben
+APOC.prios.down=Nach unten
+
+#*******************************************************************************
+# Navigation Area Profile Import
+#
+#*******************************************************************************
+
+APOC.groupimport.title=Profil aus lokaler Datei importieren
+APOC.groupimport.help=Wählen Sie eine lokale Datei zum Import in die aktuelle Konfigurationsdatensammlung aus
+APOC.groupimport.choosetext=Zu importierende Datei:
+APOC.groupimport.defaulttext=<Dateiname>
+APOC.groupimport.import=Importieren
+APOC.groupimport.error.zip=Fehler: Die Datei muss im Zip-Format vorliegen.
+APOC.importwnd.js.overwrite_alert=Ein Profil mit diesem Namen ist bereits vorhanden. Überschreiben?
+APOC.groupimport.importing=Importieren von Profilen
+
+#*******************************************************************************
+# Navigation Area Search
+#
+#*******************************************************************************
+
+APOC.search.search=Suchen
+APOC.search.param.help=Diese Suche deckt den gesamten Entitätenbaum ab.
+APOC.search.userid.label=Benutzer ID:
+APOC.search.firstname.label=Vorname:
+APOC.search.lastname.label=Nachname:
+APOC.search.point.label=Startpunkt:
+APOC.search.perpage.label=Angezeigte Ergebnisse pro Seite:
+APOC.search.results=Ergebnisse
+APOC.search.result.help=Diese Seite führt die Suchergebnisse auf. Die Pfad-Spalte listet den relativen Pfad zum Startpunkt auf.
+APOC.search.entitiesFound=Elemente gefunden
+APOC.search.param.title.help=Legen Sie die Suchparameter fest.
+APOC.search.usersFound=Gefundene Benutzer
+APOC.search.rolesFound=Gefundene Rollen
+APOC.search.organizationsFound=Gefundene Organisationen
+APOC.search.domainsFound=Gefundene Domänen
+APOC.search.hostsFound=Gefundene Rechner
+APOC.search.all=Alles suchen
+APOC.search.users=Benutzer suchen
+APOC.search.roles=Rollen suchen
+APOC.search.organizations=Organisationen suchen
+APOC.search.domains=Domänen suchen
+APOC.search.hosts=Rechner suchen
+APOC.search.tableSummary=Diese Tabelle enthält die Suchergebnisse. Jede Zeile enthält den Namen des Elements, dessen Typ (Organisation, Benutzer oder Rolle) und den absoluten Pfad. Klicken Sie auf einen Namen, um das entsprechende Element im linken Rahmen des Anwendungsfensters auszuwählen.
+APOC.search.path=Pfad
+APOC.search.userid=Benutzerkennung
+APOC.search.title.text=Suchen
+APOC.search.search.help=Durchsucht die Datensammlung.
+APOC.search.reset.help=Setzt die Suchparameter auf die Standardwerte zurück.
+APOC.search.cancel.help=Schließt dieses Fenster.
+APOC.search.advanced.show.button=Erweiterte Optionen anzeigen
+APOC.search.advanced.show.help=Zeigt die erweiterten Optionen an.
+APOC.search.advanced.hide.button=Erweiterte Optionen ausblenden
+APOC.search.advanced.hide.help=Blendet die erweiterten Optionen aus.
+APOC.search.advanced.start.label=Suchbereich:
+APOC.search.advanced.restrict.label=Beschränken auf:
+APOC.search.advanced.browse.help=Öffnet ein Fenster, in dem Sie den Pfad zur Festlegung des Suchstartpunktes ändern können.
+APOC.search.advanced.start.label=Suchbereich:
+APOC.search.help.title=Hilfe zur Suche
+APOC.search.help.text1=Die Suche unterscheidet nicht nach Groß- und Kleinschreibung und ist nicht auf die eingegebenen Zeichen beschränkt. Die Suchzeichenkette "bc" erbringt also die Ergebnisse "ABC" und "bcd".
+APOC.search.help.text2=Ein Asterisk (*) kennzeichnet eine beliebige Abfolge von Zeichen in einer Suchzeichenkette. Sie können mehrere Asteriske an beliebigen Stellen in der Suchzeichenkette verwenden.
+APOC.search.help.text3=Ein leeres Feld entspricht einem Feld mit der Suchzeichenkette "*". Standardmäßig ist die maximale Ergebniszahl 100. Dieser Parameter kann jedoch konfiguriert werden. Weitere Einzelheiten finden Sie im Installationshandbuch.
+APOC.search.help.inline=Geben Sie den Namen ein. Sie können * als Platzhalter verwenden.
+APOC.search.help.inlineUser=Geben Sie die Benutzerkennung ein. Sie können * als Platzhalter verwenden.
+
+#*******************************************************************************
+# Content Area - Profiles
+#*******************************************************************************
+APOC.profile.inherited.table=Übernommene Profile
+APOC.profile.page.title=Diese Registerseite führt den Inhalt des ausgewählten Elements auf.
+APOC.profile.name.text=(Profil {0})
+APOC.profilemgr.assigned=Zugewiesen
+APOC.profilemgr.assign=Profil zuweisen...
+APOC.profilemgr.pending=Ändert Vorhandene
+APOC.profilemgr.author=Autor
+APOC.profilemgr.lastMod=Letzte Änderung am
+APOC.profilemgr.delete=Löschen
+APOC.profilemgr.moreActions=&#8212;&nbsp;Weitere Aktionen&nbsp;&#8212;
+APOC.profilemgr.yes=Ja
+APOC.profileassi.unassign=Profilzuweisung aufheben
+APOC.profileassi.manage=Profile verwalten...
+APOC.profileassi.release=Versionsänderungen...
+APOC.profileassi.releaseNow=Version
+APOC.profileassi.showResults=Geltende Einstellungen...
+APOC.profileassi.title=Versionsänderungen
+APOC.profileassi.table.empty=Es sind keine Profile zugewiesen.
+APOC.profileavail.title=Verfügbare Profile
+APOC.profileavail.help=Verwenden Sie dieses Fenster zum Zuweisen von Profilen.
+APOC.profileavail.assigning=Zuweisen von Profilen
+APOC.profileall.title=Alle Profile
+APOC.profileall.help=Diese Registerseite listet alle Profile auf.
+APOC.profileall.domtable.title=Alle Domänenprofile
+APOC.profileall.orgtable.title=Alle Organisationsprofile
+APOC.profile.search.profile=Profil suchen
+APOC.profile.error.storing=Fehler beim Speichern des Profils.
+APOC.profile.assigned.delete=Die von Ihnen ausgewählten Profile sind mindestens einem Element zugewiesen. \\n \\n Möchten Sie diese Profile wirklich löschen?
+APOC.profile.unassigned.delete=Alle Profildaten für die ausgewählten Profile werden gelöscht. Möchten Sie fortfahren?
+APOC.profiles.default.msg=Gibt Standardwert an
+
+#*******************************************************************************
+# Configure Report
+#
+#*******************************************************************************
+
+APOC.configrep.title=Parameter für geltende Einstellungen ändern
+APOC.configrep.help=Geben Sie die Parameter zum Generieren von geltenden Einstellungen an. Die Elemente für die Generierung der geltenden Einstellungen können in der folgenden Liste definiert werden. Ein Element jedes Typs kann ausgewählt werden. Die geltenden Einstellungen sind das Ergebnis einer Zusammenführung der Richtlinieneinstellungen in den Profilen, die den ausgewählten Elementen zugewiesen sind.
+APOC.configrep.effective.settings=Geltende Einstellungen
+APOC.configrep.columns=In der Einstellungsübersicht anzeigen:
+APOC.configrep.statepath=Statuspfad
+APOC.configrep.des=Beschreibung
+APOC.configrep.reptype=Zusammenführungsreihenfolge der ausgewählten Profilquellen
+APOC.configrep.orgtree=Wählen Sie ein Element aus dem Organisationsbaum aus:
+APOC.configrep.domtree=Wählen Sie ein Element aus dem Domänenbaum aus:
+APOC.configrep.typeorg=Einstellungen im Organisationsbaum
+APOC.configrep.typedom=Einstellungen im Domänenbaum
+APOC.configrep.typeboth=Einstellungen in beiden Bäumen
+APOC.configrep.button.report=Geltende Einstellungen generieren
+
+#*******************************************************************************
+# Report
+#
+#*******************************************************************************
+APOC.report.button.tooltip=Öffnet ein Fenster, das den Bericht enthält.
+APOC.report.onetree.title=Geltende Einstellungen für {0} "{1}" auf Host "{2}"
+APOC.report.twotree.title=Geltende Einstellungen für {0} "{1}" und {2} "{3}" auf Host "{4}"
+APOC.report.multipletree.title=Geltende Einstellungen für {0} auf Host "{1}"
+APOC.report.involved.profiles.entity={0} Profile
+APOC.report.locorg={0} ist eine Organisation unter {1}.
+APOC.report.locrole={0} ist eine Rolle unter {1}.
+APOC.report.locuserid={0} ist ein Benutzer unter {1}.
+APOC.report.lochost={0} ist ein Host unter {1}.
+APOC.report.locdomain={0} ist eine Domäne unter {1}.
+APOC.report.rootlocorg={0} ist eine Organisation.
+APOC.report.rootlocuserid={0} ist ein Benutzer.
+APOC.report.rootlocrole={0} ist eine Rolle.
+APOC.report.rootlochost={0} ist ein Host.
+APOC.report.rootlocdomain={0} ist eine Domäne.
+APOC.report.policygrouploc={0} ist ein Profil.
+APOC.report.bothand=und
+APOC.report.creator=Der Urheber ist {0} auf {1}.
+APOC.report.createdate=Erstellungsdatum ist {0}.
+APOC.report.backendtype=Der Typ der Datenquelle ist {0}.
+APOC.report.backendhost=Der Host der Datenquelle ist {0}.
+APOC.report.unknown=Unbekannt
+APOC.report.startcat=Die erste Kategorie ist {0}.
+APOC.report.contitle=Inhaltsverzeichnis
+APOC.report.isbelow=ist unter {0}
+APOC.report.table.summary=Diese Tabelle zeigt die Konfigurationseinstellungen. Jede Zeile enthält den Status, Namen und Wert der Eigenschaft.
+APOC.report.table.nameheading=Name
+APOC.report.table.valueheading=Wert
+APOC.report.table.statusheading=Status
+APOC.report.table.statuspheading=Statuspfad
+APOC.report.table.desheading=Beschreibung
+APOC.report.table.defined=Definiert
+APOC.report.table.protected=Erzwungen
+APOC.report.table.readonly=Schreibgeschützt
+APOC.report.table.defined.in=Definiert in
+APOC.report.table.protected.in=Benutzer sind nicht zum Überschreiben berechtigt
+APOC.report.table.readonly.in=Schreibgeschützt in
+APOC.report.table.pathPG=Profil:
+APOC.report.table.empty={0} enthält/enthalten keine Werte
+APOC.report.buttons.print=Drucken
+APOC.report.assigned.profiles.title=Betroffene Profile
+APOC.report.settings.summary.title=Einstellungsübersicht
+APOC.report.addremove.elements=Betroffene Elemente:
+APOC.report.elements.table.heading=Betroffene Elemente
+APOC.report.elements.table.summary=Diese Tabelle gibt die Elemente für die Generierung der geltenden Einstellungsergebnisse an.
+APOC.report.elements.table.title=Die Liste kann zum Angeben der Elemente für die Generierung der geltenden Einstellungsergebnisse verwendet werden.
+APOC.report.add.element=Element hinzufügen
+APOC.report.remove.element=Element entfernen
+APOC.report.novalues=Die betroffenen Elemente enthalten keine Werte.
+APOC.report.xml.parsing.error=XML-Parse-Fehler beim Lesen der Profildaten!
+
+#*******************************************************************************
+# Full-Page Error Alert
+#
+#*******************************************************************************
+
+APOC.pageerror.title=Operation fehlgeschlagen
+APOC.pageerror.comment=Ein Aufruf-Pfad von diesem Fehler befindet sich als HTML-Kommentar auf dieser Seite.
+
+#*******************************************************************************
+# PolicyMgr Error Messages
+#
+#*******************************************************************************
+
+APOC.error.occurred=Es ist ein Fehler aufgetreten.
+APOC.error.open.connection=Die Verbindung für den Benutzer konnte nicht aufgebaut werden.
+APOC.error.close.connection=Es ist ein Fehler beim Verbindungsabbau aufgetreten.
+APOC.error.user.invalid=Der Benutzername ist ungültig.
+APOC.error.unsupported.datastore=Der in den Startinformationen angegebene Datenspeichertyp wird nicht unterstützt.
+APOC.error.application.initialize=Die Anwendung kann nicht initialisiert werden.
+APOC.error.bootstrap.incomplete=Die Starteinstellungen sind unvollständig.
+APOC.error.bootstrap.unavailable=Die Starteinstellungen sind nicht verfügbar.
+APOC.error.ldap.bootstrap=Die Startinformationen des LDAP-Servers sind unvollständig.
+APOC.error.org.settings=Die Organisationsabbildung in der Metakonfiguration ist ungültig.
+APOC.error.role.settings=Die Rollenabbildung in der Metakonfiguration ist ungültig.
+APOC.error.user.settings=Die Benutzerabbildung in der Metakonfiguration ist ungültig.
+APOC.error.create.parser=Der XML-Parser kann nicht erzeugt werden.
+APOC.error.filter=Der Filter ist syntaktisch falsch.
+APOC.error.policy.read=Die Richtliniendaten können nicht gelesen werden.
+APOC.error.policy.data.invalid=Die Richtliniendaten sind ungültig.
+APOC.error.policy.invalid=Die Richtlinie ist ungültig.
+APOC.error.path.invalid=Der Pfad ist ungültig.
+APOC.error.userprofile.attribute=Das Attribut gehört nicht zum Benutzerprofil.
+APOC.error.locale.support=Dieses Gebietsschema wird nicht unterstützt.
+APOC.error.ldap.read=Ein LDAP-Lesefehler ist aufgetreten.
+APOC.error.ldap.write=Ein LDAP-Schreibfehler ist aufgetreten.
+APOC.error.ldap.search=Ein LDAP-Fehler ist während der Suche aufgetreten.
+APOC.error.ldap.results.size=Ein LDAP-Fehler ist während der Suche aufgetreten, da die Anzahl der Ergebnisse größer ist als der Grenzwert des LDAP-Servers.
+APOC.error.ldap.policygroup.creation=Während der Profilerstellung ist ein LDAP-Fehler aufgetreten.
+APOC.error.ldap.policygroup.deletion=Beim Löschen des Profils ist ein LDAP-Fehler aufgetreten.
+APOC.error.ldap.policygroup.rename=Beim Umbenennen des Profils ist ein LDAP-Fehler aufgetreten.
+APOC.error.unprotect.item=Der Eintrag kann nicht zum Ändern freigeben werden, da der Vaterknoten geschützt ist.
+APOC.error.readonly.item=Ein schreibgeschützter Eintrag kann nicht bearbeitet werden.
+APOC.error.mandatory.remove=Ein vorgeschriebener Eintrag kann nicht entfernt werden.
+APOC.error.comply.constraints=Der Wert entspricht nicht dem vorgegebenen Wertebereich.
+APOC.error.nillable=Der Eintrag ist nicht 'nillable'.
+APOC.error.mandatory.setting=Die vorgeschriebene Einstellung für diesen Eintrag kann nicht geändert werden.
+APOC.error.policygroup.priority.exists=Ein Profil mit dieser Priorität ist bereits vorhanden.
+APOC.error.policygroup.name.exists=Ein Profil mit diesem Namen ist bereits vorhanden.
+APOC.error.policygroup.not.exists=Das Profil ist nicht vorhanden.
+APOC.error.priorities.incorrect=Die Profilprioritäten sind nicht korrekt.
+APOC.error.policygroup.invalid=Das Profil ist ungültig.
+APOC.error.host.invalid=Der Hostname ist ungültig.
+APOC.error.domain.settings=Die Einstellungen für die Domäne sind in der Metakonfiguration ungültig.
+APOC.error.host.settings=Die Einstellungen für den Host sind in der Metakonfiguration ungültig.
+APOC.error.export.policygroup=Beim Exportieren des Profils ist ein Fehler aufgetreten.
+APOC.error.import.policygroup=Beim Importieren des Profils ist ein Fehler aufgetreten.
+APOC.error.export.policygroup_data=Es sind keine Profildaten für den Export vorhanden.
+APOC.error.import.policygroup_data=Es sind keine Profildaten für den Export vorhanden.
+
+#*******************************************************************************
+# Profile Window Profile
+#
+#*******************************************************************************
+
+APOC.profilewnd.buttons.save=Speichern
+APOC.profilewnd.buttons.close=Schließen
+
+# General Settings Tab
+APOC.profilewnd.general.tab=Allgemeine Eigenschaften
+APOC.profilewnd.general.title=Allgemeine Einstellungen
+APOC.profilewnd.general.help=Legen Sie die allgemeinen Eigenschaften für dieses Profil fest.
+APOC.profilewnd.general.name=Name
+APOC.profilewnd.general.namecol=Name:
+APOC.profilewnd.general.comment=Kommentar
+APOC.profilewnd.general.commentcol=Kommentar:
+APOC.profilewnd.general.applicable=Anwendbar von
+APOC.profilewnd.general.browse=Ändern...
+APOC.profilewnd.general.pending=Ausstehende Änderungen
+APOC.profilewnd.general.author=Autor
+APOC.profilewnd.general.modified=Letzte Änderung am
+APOC.profilewnd.general.new_profile_instructions=Sie erstellen jetzt ein neues Profil. Der Vorgang besteht im Wesentlichen aus drei Schritten:<br><br>1. Definieren Sie einen eindeutigen Namen für das Profil (siehe unten).<br>2. Konfigurieren Sie mehrere Standardeinstellungen und/oder obligatorische (erzwungene) Einstellungen (siehe Registerkarte "Konfigurationseinstellungen").<br>3. Weisen Sie das neue Profil dem gewünschten {0} und/oder {1} zu (siehe Registerkarte "Zugewiesene Elemente").
+APOC.profilewnd.lc_domains=Domänen
+APOC.profilewnd.lc_hosts=Hosts
+APOC.profilewnd.lc_orgs=Organisationen
+APOC.profilewnd.lc_users=Benutzer
+APOC.profilewnd.creating_new=Erstellen eines neuen Profils
+
+# Assignees Tab
+APOC.profilewnd.assignees.tab=Zugewiesene Elemente
+APOC.profilewnd.assignees.title=Zugewiesene Elemente
+APOC.profilewnd.assignees.help=Weisen Sie diesem Profil Elemente zu.
+APOC.profilewnd.assignees.noorgs=Keine Elemente zugewiesen.
+APOC.profilewnd.assignees.assign=Element zuweisen...
+APOC.profilewnd.assignees.unassign=Elementzuweisung aufheben
+APOC.profilewnd.assignees.nameColumn=Name
+
+# Configuration Settings Tab
+APOC.profilewnd.settings.tab=Konfigurationseinstellungen
+APOC.profilewnd.settings.title=Konfigurationseinstellungen
+APOC.profilewnd.settings.Enable=Aktivieren
+APOC.profilewnd.settings.Disable=Deaktivieren
+APOC.profilewnd.settings.Edit=Werte bearbeiten...
+APOC.profilewnd.settings.title.help=Wählen Sie eine der unten aufgeführten Kategorien aus.
+APOC.profilewnd.settings.Actions=Weitere Optionen...
+APOC.profilewnd.settings.more=&#8212;&nbsp;Weitere Aktionen&nbsp;&#8212;
+APOC.profilewnd.settings.enforce=Erzwingen
+APOC.profilewnd.settings.unenforce=Erzwingung zurücksetzen
+APOC.profilewnd.settings.undo=Ausstehende Änderungen rückgängig machen
+APOC.profilewnd.settings.default=Standard wiederherstellen
+APOC.profilewnd.settings.nameColumn=Name
+APOC.profilewnd.settings.valueColumn=Wert
+APOC.profilewnd.settings.enabledColumn=aktiviert
+APOC.profilewnd.settings.enforcedColumn=Erzwungen
+APOC.profilewnd.settings.pendingColumn=Ausstehende Änderungen
+APOC.profilewnd.settings.overwrite=Benutzer können überschreiben
+APOC.profilewnd.settings.defaultLabel=Standard:
+APOC.profilewnd.settings.setToDefaultLabel=Auf Standard einstellen
+
+# Configuration Tree
+APOC.profilewnd.tree.view.all=Alle
+APOC.profilewnd.tree.view.pending=Ausstehende Änderungen
+APOC.profilewnd.advanced.tab=Erweiterte Optionen
+APOC.profilewnd.advanced.pagetitle_help=Legen Sie erweiterte Optionen fest, wie die Reihenfolge der Zusammenführung für Profile.
+APOC.profilewnd.advanced.merge_order=Zusammenführungsreihenfolge:
+APOC.profilewnd.buttons.save.help=Speichert die Änderungen.
+APOC.profilewnd.buttons.close.help=Schließt dieses Fenster.
+APOC.profilewnd.buttons.ok_assign.help=Weist die ausgewählten Profile dem aktuellen Element zu
+
+APOC.profilewnd.js.alert1=Diese Seite enthält nicht gespeicherte Änderungen. Möchten Sie die Änderungen speichern und das Fenster schließen?
+APOC.profilewnd.js.alert2=Diese Registerkarte enthält nicht gespeicherte Änderungen. Möchten Sie die Änderungen speichern und fortfahren?
+APOC.profilewnd.js.alert3=Diese Kategorie enthält nicht gespeicherte Änderungen. Möchten Sie die Änderungen speichern und fortfahren?
+APOC.profilewnd.js.alert4=Diese Seite enthält nicht gespeicherte Änderungen. Möchten Sie die Änderungen speichern und einen neuen Eintrag hinzufügen?
+APOC.profilewnd.js.alert5=Geben Sie ein neues Listenelement ein:
+
+#Settings Summary
+APOC.profilewnd.summary.help=Zeigen Sie die für dieses Profil konfigurierten Einstellungen an.
+
+# Add Context Wizard
+APOC.wiz.title=Assistent für neue Konfigurationsdatensammlung
+APOC.wiz.edit.title=Assistent für die Bearbeitung der Konfigurationsdatensammlung
+APOC.wiz.steptext.2=Datensammlungsdetails
+APOC.wiz.steptext.3=LDAP-Details
+APOC.wiz.steptext.4=LDAP-Anmeldeinformationen
+APOC.wiz.steptext.5=LDAP-Servertyp
+APOC.wiz.steptext.6=LDAP-Metakonfigurationsoptionen
+APOC.wiz.steptext.7=LDAP-Metakonfigurations-Editor
+APOC.wiz.steptext.8=Basis-DN-Auswahl
+APOC.wiz.steptext.9=Basis-DN
+APOC.wiz.steptext.10=Überprüfen
+APOC.wiz.steptext.11=Ergebnisse
+APOC.wiz.steptext.12=Datenverzeichnisauswahl
+APOC.wiz.steptext.13=Vorhandene Installationsoptionen
+APOC.wiz.steptext.14=Profilinformationen migrieren
+APOC.wiz.steptext.15=LDAP-Administrator-Anmeldeinformationen
+APOC.wiz.help.2=<p>Wählen Sie den Namen der Datensammlung und den Hierarchie- und Speichertyp, der für die Domänen- und Organisationselemente in der Datensammlung verwendet werden sollen: entweder eine rein LDAP-basierte, eine rein dateibasierte oder eine kombinierte Konfigurationsdatensammlung.</p><p>In einer reinen LDAP-Konfigurationsdatensammlung werden alle Informationen bezüglich der Organisationshierarchie, Profileinstellungen und Profilzuweisungen auf einem LDAP-Server gespeichert. Auf einer rein dateibasierten Konfigurationsdatensammlung werden alle Informationen in einem benutzerdefinierten Verzeichnis auf dem Rechner gespeichert, auf dem die Sun Java Web-Konsole installiert ist.<br>In einer kombinierten Konfigurationsdatensammlung werden die Informationen zur Organisationshierarchie vom LDAP-Server abgerufen, alle Profileinstellungen und Profilzuweisungen werden jedoch in einer dateibasierten Datensammlung gespeichert.</p>
+APOC.wiz.help.3=<p>Geben Sie den Hostnamen und den Port des LDAP-Servers ein, den Sie für die LDAP-Konfigurationsdatensammlung verwenden möchten.</p><p>Wenn Sie einen LDAP-Server konfigurieren möchten, der SSL verwendet, aktivieren Sie das Kontrollkästchen "SSL verwenden".</p>
+APOC.wiz.help.4=<p>Wenn für das Abrufen vom LDAP-Server kein anonymer Zugriff verwendet werden kann, dann müssen ein Passwort und ein voll qualifizierter DN für einen Benutzer mit Lesezugriff in die Felder "Benutzer-DN" und "Benutzerpasswort" eingegeben werden.<br>Diese Informationen werden gespeichert und sind erforderlich, damit die Benutzer sich bei dieser Konfigurationsdatensammlung mit ihrer Benutzerkennung anstelle der voll qualifizierten DNs anmelden können.</p>
+APOC.wiz.help.5=<p>Wählen Sie den Typ des LDAP-Servers, der konfiguriert werden soll. Diese Informationen sind erforderlich, um festzustellen, welche Standard-Metakonfiguration für den Server bereitgestellt wird.</p><p>Die Metakonfiguration definiert die Attribute und Objektklassen, die zur Identifizierung von LDAP-Entitäten (Benutzer, Rollen, Organisationen, Domänen und Hosts) verwendet werden.</p>
+APOC.wiz.help.6=<p>Wählen Sie, ob Sie die Standard-Metakonfiguration bearbeiten möchten.</p><p>Die Metakonfiguration definiert die Attribute und Objektklassen, die zur Identifizierung von LDAP-Entitäten (Benutzer, Rollen, Organisationen und Hosts) verwendet werden.</p>
+APOC.wiz.help.7=<p>Bearbeiten Sie die Metakonfiguration im vorhandenen Textfeld.</p><p>Die Metakonfiguration definiert die Attribute und Objektklassen, die zur Identifizierung von LDAP-Entitäten (Benutzern, Rollen, Organisationen, Domänen und Hosts) verwendet werden.</p>
+APOC.wiz.help.8=<p>Wählen Sie den Basis-DN, den Sie für diese Konfigurationsdatensammlung verwenden möchten, aus der bereitgestellten Liste.</p>
+APOC.wiz.help.9=<p>Wählen Sie den Basis-DN, der für diese Konfigurationsdatensammlung verwendet werden soll.</p>
+APOC.wiz.help.10=<p>Prüfen Sie die bereitgestellten Einstellungen und klicken Sie auf "Fertig stellen", um die Erstellung der neuen Konfigurationsdatensammlung zu beenden.</p><p>Beachten Sie, dass im Fall einer reinen LDAP-Installation bei Klicken auf die Schaltfläche "Fertig stellen" die Aktualisierung des LDAP-Serverschemas beginnt und der LDAP-Hierarchie ein "Dienste"-Zweig hinzugefügt wird.</p>
+APOC.wiz.help.edit.10=<p>Prüfen Sie die bereitgestellten Einstellungen und klicken Sie auf "Fertig stellen", um die Aktualisierung der vorhandenen Konfigurationsdatensammlung zu beenden.</p><p>Beachten Sie, dass im Fall einer reinen LDAP-Installation bei Klicken auf die Schaltfläche "Fertig stellen" die Aktualisierung des LDAP-Serverschemas beginnt und der LDAP-Hierarchie ein "Dienste"-Zweig hinzugefügt wird.</p>
+APOC.wiz.help.11=<p>Das Installationsergebnis wird im entsprechenden Bereich angezeigt.</p>
+APOC.wiz.help.12=<p>Wählen Sie das Verzeichnis, in den die Profil- und Zuweisungsdaten für die Konfigurationsdatensammlung gespeichert werden sollen. Das Installationsverfahren erstellt Verzeichnisse zum Speichern der Profil- und Zuweisungsinformationen mit den Namen "Profile" und "Zuweisungen". Im Fall einer rein dateibasierten Datensammlung werden die Hierarchieinformationen in einer bearbeitbaren Datei mit dem Namen "entities.txt" gespeichert. Bei einer kombinierten Datensammlung wird die Metakonfiguration, die die Attribute und Objektklassen für die Identifizierung der LDAP-Entitäten definiert, in bearbeitbaren Dateien mit dem Namen "OrganizationMapping.Properties" und "UserProfileMapping.properties". gespeichert. </p>
+APOC.wiz.help.13=<p>Eine vorhandene Desktop Manager-Konfigurationsdatensammlung wird im angegebenen Verzeichnis installiert. Diese Datensammlung kann Hierarchie-, Profil- und Zuweisungsinformationen enthalten, die Sie beibehalten möchten. Wählen Sie in diesem Fall, dass die vorhandenen Installationsdaten beibehalten werden. Andernfalls wählen Sie das Überschreiben der vorhandenen Installation, um eine vollständig neue Datensammlung zu erstellen.</p>
+APOC.wiz.help.14=<p>Die Profil- und Zuweisungsinformationen werden in der Version 2.0 von Desktop Manager an einem anderen Speicherort in LDAP als in früheren Versionen gespeichert. Wählen Sie, ob die Profile und Zuweisungen, die bei Verwendung der früheren Version von Desktop Manager gespeichert wurden, zum neuen Speicherort für diese Version migriert werden sollen. </p><p>Beachten Sie, dass die unter früheren Versionen gespeicherten Profile über Desktop Manager noch sichtbar sind, der Speicherort in LDAP jedoch nicht geändert wird. Durch die Migration von Profilen wird der LDAP-Server übersichtlicher gestaltet, da die Profilinformationen für Version 1.x nicht an einem anderen Speicherort als diejenigen für Version 2.0 gespeichert sind.</p>
+APOC.wiz.help.15=<p>Geben Sie den DN und das Passwort eines Benutzers mit Lese-/Schreibzugriff auf den LDAP-Server in die Felder "Administrator-DN" und "Administratorpasswort" ein.<br>Diese Anmeldeinformationen werden nur für die Installation des erforderlichen Schemas, der Attribute, Objektklassen und Entitäten verwendet, die von Desktop Manager auf einem LDAP-Server benötigt werden. Sie werden nicht gespeichert.</p>
+APOC.wiz.help.15a=<p>Geben Sie den DN und das Passwort eines Benutzers mit Lese-/Schreibzugriff auf den LDAP-Server in die Felder "Administrator-DN" und "Administratorpasswort" ein.<br>Diese Anmeldeinformationen werden nur für die Migration der Profil- und Zuweisungsinformationen auf dem LDAP-Server verwendet. Sie werden nicht gespeichert.</p>
+APOC.wiz.instruction.2=Wählen Sie den Namen der Datensammlung und die Hierarchie- und Speicheroptionen, die für die Domänen- und Organisationselemente verwendet werden sollen.
+APOC.wiz.instruction.3=Geben Sie die Details des LDAP-Servers ein, der für diese Datensammlung konfiguriert werden soll. Der Hostname und Port, auf dem der Server ausgeführt wird, sind obligatorisch. Sie können auch wählen, ob Sie die Verbindung zu diesem Server über SSL herstellen möchten.
+APOC.wiz.instruction.4=Damit die Benutzer sich bei der Datensammlung mit ihrer Benutzerkennung anstelle des voll qualifizierten DN anmelden können, müssen Sie entweder den anonymen Zugriff aktivieren oder ein Passwort und einen voll qualifizierten DN für einen Benutzer mit Lesezugriff in die entsprechenden Felder "Benutzerkennung" und "Benutzerpasswort" eingeben.
+APOC.wiz.instruction.5=Verschiedene Arten von LDAP-Servern erfordern unterschiedliche Installationsverfahren. Wählen Sie den LDAP-Servertyp aus, der für die neue Konfigurationsdatensammlung verwendet werden soll.
+APOC.wiz.instruction.6=Die Metakonfiguration definiert die Attribute und Objektklassen, die zur Identifizierung von LDAP-Entitäten verwendet werden (Benutzer, Rollen, Organisationen, Domänen und Hosts). Es werden geeignete Standardwerte bereitgestellt; die Benutzer können jedoch eigene Werte hinzufügen. Wählen Sie, ob Sie die Standard-Metakonfiguration für diesen LDAP-Servertyp bearbeiten möchten.
+APOC.wiz.instruction.7=Bearbeiten Sie die Standard-Metakonfiguration im Textbereich unten.
+APOC.wiz.instruction.8=Die untenstehende Liste enthält alle Basis-DNs, die auf dem angegebenen LDAP-Server verfügbar sind. Wählen Sie die Basis-DN aus, die für diese Konfigurationsdatensammlung verwendet werden soll.
+APOC.wiz.instruction.9=Für die Installation einer Konfigurationsdatensammlung ist ein gültiger Basis-DN auf dem angegebenen LDAP-Server erforderlich. Geben Sie die Basis-DN ein, die für diese Konfigurationsdatensammlung verwendet werden soll.
+APOC.wiz.instruction.10=Prüfen Sie die eingegebenen Einstellungen. Klicken Sie auf "Fertig stellen", um die Erstellung der neuen Konfigurationsdatensammlung zu beenden.
+APOC.wiz.instruction.edit.10=Prüfen Sie die eingegebenen Einstellungen. Klicken Sie auf "Fertig stellen", um die Aktualisierung der vorhandenen Konfigurationsdatensammlung zu beenden.
+APOC.wiz.instruction.11=
+APOC.wiz.instruction.12=Wählen Sie das Verzeichnis, in den die Profil- und Zuweisungsdaten für die Konfigurationsdatensammlung gespeichert werden sollen.
+APOC.wiz.instruction.13=Eine vorhandene Desktop Manager-Konfigurationsdatensammlung wurde im angegebenen Verzeichnis gefunden. Wählen Sie, ob die vorhandenen Daten in diesem Verzeichnis für die Installation verwendet werden sollen, oder ob alle Informationen gelöscht und eine völlig neue Datensammlung erstellt werden sollen.
+APOC.wiz.instruction.14=Auf diesem LDAP-Server wurde eine frühere Version von Desktop Manager gefunden. Wählen Sie, ob die mit dieser Version gespeicherten Profil- und Zuweisungsinformationen zum neuen Speicherort für diese Installation migriert werden sollen.
+APOC.wiz.instruction.15=Das Konfigurationsverfahren erfordert die Erweiterung des LDAP-Schemas und das Hinzufügen eines neuen Zweigs im LDAP-Baum. Daher müssen in den Feldern "Administrator-DN" und "Administratorpasswort" der DN und das Passwort eines Benutzers mit geeigneten Zugriffsrechten auf den LDAP-Server eingegeben werden.
+APOC.wiz.instruction.15a=Zum Migrieren des Profilspeicherorts müssen Änderungen am vorhandenen LDAP-Baum vorgenommen werden. Daher müssen in den Feldern "Administrator-DN" und "Administratorpasswort" der DN und das Passwort eines Benutzers mit geeigneten Zugriffsrechten auf den LDAP-Server eingegeben werden.
+APOC.wiz.placeholder=[Durch die Auswahl in vorherigen Schritten bestimmte Schritte]
+
+APOC.wiz.2.name=Name der Datensammlung:
+APOC.wiz.2.type=Typ der Datensammlung:
+APOC.wiz.2.ldap=LDAP: LDAP-Hierarchie und -Speicherung
+APOC.wiz.2.file=Dateibasiert: Dateibasierte Hierarchie und Speicherung
+APOC.wiz.2.hybrid=Kombiniert: LDAP-Hierarchie und dateibasierte Speicherung
+APOC.wiz.2.alert=Geben Sie einen Namen für die neue Konfigurationsdatensammlung ein.
+APOC.wiz.3.host=Host:
+APOC.wiz.3.port=Anschluss:
+APOC.wiz.3.ssl=SSL verwenden
+APOC.wiz.3.alert1={0} ist eine ungültige LDAP-Portnummer! Die Portnummer muss eine Ganzzahl zwischen 0 und 65535 sein.
+APOC.wiz.3.alert2=An {0} kann keine Verbindung zu einem LDAP-Server hergestellt werden!
+APOC.wiz.4.admin.dn=Administrator-DN:
+APOC.wiz.4.admin.pw=Administratorpasswort:
+APOC.wiz.4.anon=Anonymen Zugriff verwenden
+APOC.wiz.4.user.dn=Benutzer-DN:
+APOC.wiz.4.user.pw=Benutzerpasswort:
+APOC.wiz.4.alert1=Keine Authentifizierung als {0} bei {1} mit dem angegebenen Passwort möglich!
+APOC.wiz.4.alert3={0} verfügt nicht über die erforderlichen Berechtigungen zum Lesen in {1}! Geben Sie die Anmeldeinformationen für einen Benutzer mit Leseberechtigungen für diesen Server ein.
+APOC.wiz.5.type=LDAP-Servertyp:
+APOC.wiz.5.sun=Sun ONE Directory Server
+APOC.wiz.5.openldap=LDAP öffnen
+APOC.wiz.5.ad=Active Directory
+APOC.wiz.5.other=Weitere
+APOC.wiz.6.question=Möchten Sie die Metakonfiguration anpassen:
+APOC.wiz.6.no=Nein
+APOC.wiz.6.yes=Ja
+APOC.wiz.7.adapt=Passen Sie die Metakonfiguration unten an:
+APOC.wiz.8.basedn=Basis-DN auswählen:
+APOC.wiz.8.alert=Der Basis-DN {0} ist auf dem Server {1} nicht vorhanden! Der LDAP-Server ist falsch konfiguriert. Konfigurieren Sie den Server neu und starten Sie den Assistenten erneut.
+APOC.wiz.9.basedn=Geben Sie den Basis-DN des LDAP-Servers ein:
+APOC.wiz.9.alert=Der Basis-DN {0} ist auf dem Server {1} nicht vorhanden! Prüfen Sie den LDAP-Server und geben Sie einen vorhandenen Basis-DN ein.
+APOC.wiz.10.anonymous=Anonymous
+APOC.wiz.10.vendor=Herstellername:
+APOC.wiz.10.metaconfig=Metakonfiguration:
+APOC.wiz.10.basedn=Basis-DN:
+APOC.wiz.10.path=Dateibasiertes Datenverzeichnis:
+APOC.wiz.10.migrate=Profile migrieren:
+APOC.wiz.10.orgdom.section=Domänen- und Organisationsinformationen:
+APOC.wiz.10.general.section=Allgemeine Informationen:
+APOC.wiz.10.noaction=Der vorhandene Server auf {0} ist bereits für Desktop Manager konfiguriert. Es ist keine weitere Aktion mehr erforderlich. Klicken Sie auf "Fertig stellen", um die Erstellung der Konfigurationsdatensammlung abzuschließen und diesen Eintrag der Tabelle der Konfigurationsdatensammlungen hinzuzufügen.
+APOC.wiz.10.edit.noaction=Der vorhandene Server auf {0} ist bereits für Desktop Manager konfiguriert. Es ist keine weitere Aktion mehr erforderlich. Klicken Sie auf die Schaltfläche "Fertig stellen", um die Aktualisierung der Details für diese Konfigurationsdatensammlung zu beenden.
+APOC.wiz.10.alert=Das Schema für einen {0}-Server muss manuell mit dem Desktop Manager-Schema erweitert werden, bevor Sie fortfahren.
+APOC.wiz.10.fail1= - Fehler beim Aktualisieren der Schemaattribute und -objektklassen für den angegebenen LDAP-Server.
+APOC.wiz.10.fail2= - Fehler beim Erstellen des Dienste-Zweigs auf dem angegebenen LDAP-Server.
+APOC.wiz.10.fail3= - Fehler beim Schreiben der Metakonfigurationsattribute auf dem angegebenen LDAP-Server.
+APOC.wiz.10.fail4= - Das Attribut {0} kann dem Eintrag {1} nicht hinzugefügt werden.
+APOC.wiz.10.fail5= - Fehler beim Löschen der vorhandenen Installation.
+APOC.wiz.10.fail6= - Fehler beim Aktualisieren der Konfigurationsdatei der Konfigurationsdatensammlung: {0}.
+APOC.wiz.10.fail7=Vergewissern Sie sich, dass {0} authentifizieren kann und Schreibzugriff auf {1} hat.
+APOC.wiz.10.fail8= - Fehler beim Erstellen der Standard-Hierarchiestrukturdatei.
+APOC.wiz.10.fail9= - Fehler beim Erstellen der Metakonfigurationsdateien.
+APOC.wiz.10.fail10= - Fehler beim Migrieren des Profils für Element {0}.
+APOC.wiz.11.title=Die neue Konfigurationsdatensammlung wurde erfolgreich erstellt
+APOC.wiz.11.text=Die neu erstellte Konfigurationsdatensammlung steht Ihnen nun zur Verfügung. Um darauf zuzugreifen, klicken Sie auf den Namen in der Tabelle der Konfigurationsdatensammlungen. Wenn der aktuell angemeldete Benutzer kein Administrator für diese Konfigurationsdatensammlung ist, werden Sie aufgefordert, sich mit gültigen Administrator-Anmeldeinformationen anzumelden.
+APOC.wiz.11.alert.title=Erstellung der neuen Konfigurationsdatensammlung fehlgeschlagen
+APOC.wiz.11.edit.title=Die Konfigurationsdatensammlung wurde erfolgreich aktualisiert
+APOC.wiz.11.edit.text=Die soeben aktualisierte Konfigurationsdatensammlung steht Ihnen nun zur Verfügung. Um darauf zuzugreifen, klicken Sie auf den Namen in der Tabelle der Konfigurationsdatensammlungen. Wenn der aktuell angemeldete Benutzer kein Administrator für diese Konfigurationsdatensammlung ist, werden Sie aufgefordert, sich mit gültigen Administrator-Anmeldeinformationen anzumelden.
+APOC.wiz.11.alert.edit.title=Aktualisierung der Konfigurationsdatensammlung fehlgeschlagen
+APOC.wiz.12.alert1={0} ist nicht vorhanden!
+APOC.wiz.12.alert2={0} ist kein Verzeichnis!
+APOC.wiz.12.alert3=Schreiben in Verzeichnis {0} nicht möglich!
+APOC.wiz.13.existing=Wählen Sie eine Aktion:
+APOC.wiz.13.overwrite=Vorhandene Daten überschreiben und eine neue Installation erstellen
+APOC.wiz.13.update=Vorhandene Installationsdaten beibehalten
+APOC.wiz.14.existing=Profil- und Zuweisungsinformationen migrieren:
+APOC.wiz.14.username=Benutzername (für Benutzer mit Schreibzugriff):
+APOC.wiz.14.password=Passwort:
+APOC.wiz.ldap.err.nosuchattr=LDAPException (16): Das angegebene Attribut wurde nicht gefunden.
+APOC.wiz.ldap.err.valueexists=LDAPException (20): Der Wert, den Sie zum Attribut hinzufügen, ist in diesem Attribut bereits enthalten.
+APOC.wiz.ldap.err.attrsyntax=LDAPException (21): Die Anforderung enthält ungültige Syntax.
+APOC.wiz.ldap.err.nosuchobj=LDAPException (32): Der in der Anforderung angegebene Eintrag ist nicht vorhanden.
+APOC.wiz.ldap.err.invaliddn=LDAPException (34): Der angegebene Distinguished Name (DN) verwendet eine ungültige Syntax.
+APOC.wiz.ldap.err.invalidcred=LDAPException (49): Die dem Server vorgelegten Anmeldeinformationen für die Authentifizierung sind ungültig.
+APOC.wiz.ldap.err.noaccessrights=LDAPException (50): Der Client wird als Benutzer authentifiziert, der nicht über die Berechtigungen zum Durchführen dieses Vorgangs verfügt.
+APOC.wiz.ldap.err.entryexists=LDAPException (68): Der angegebene Eintrag ist bereits vorhanden.
+APOC.wiz.ldap.err.serverdown=LDAPException (81): Es ist kein Kontakt zum LDAP-Server möglich.
+APOC.wiz.ldap.err.timeout=LDAPException (85): Der Vorgang konnte nicht innerhalb des maximal vorgegebenen Zeitraums abgeschlossen werden.
+APOC.wiz.ldap.err.connecterror=LDAPException (91): Der LDAP-Client konnte keine Verbindung zum LDAP-Server herstellen.
+
+#Copy Move Wizard
+APOC.wiz.copy.copymove=Kopieren und verschieben...
+APOC.wiz.copy.copymove.tooltip=Kopieren oder Verschieben von Profilen.
+APOC.wiz.copy.copymove.disabled.tooltip=Kopieren oder Verschieben von Profilen (nicht verfügbar).
+APOC.wiz.copy.title=Assistent für Kopieren und Verschieben
+APOC.wiz.copy.steptext.1=Quellprofil auswählen
+APOC.wiz.copy.steptext.2=Aktion auswählen
+APOC.wiz.copy.steptext.3=Zielelement auswählen
+APOC.wiz.copy.instruction.1=Wählen Sie innerhalb dieser Konfigurationsdatensammlung eine Quellkonfigurationsdatensammlung und ein Quellprofil aus, die kopiert bzw. verschoben werden sollen.
+APOC.wiz.copy.instruction.2=Wählen Sie die Aktion für das angegebene Profil aus. Wählen Sie, ob die Zuweisungen für dieses Profil ignoriert werden sollen oder nicht.
+APOC.wiz.copy.instruction.3=Wählen Sie in dieser Konfigurationsdatensammlung eine Zielkonfigurationsdatensammlung und ein Zielelement aus, zu dem kopiert oder verschoben werden soll.
+APOC.wiz.copy.instruction.4=Prüfen Sie die eingegebenen Einstellungen. Klicken Sie auf "Fertig stellen", um das Profil zu kopieren/ verschieben.
+APOC.wiz.copy.help.1=<p>Wählen Sie die Konfigurationsdatensammlung, die das zu kopierende/verschiebende Profil enthält, indem Sie auf die Schaltfläche "Ändern" klicken und die gewünschte Konfigurationsdatensammlung aus der Liste auswählen.</p><p>Wählen Sie ebenso das Profil, das kopiert/verschoben werden soll, indem Sie auf die Schaltfläche "Ändern" klicken und das gewünschte Profil aus der Liste auswählen.</p>
+APOC.wiz.copy.help.2=<p>Wählen Sie die Aktion, die an dem ausgewählten Profil ausgeführt werden soll.</p><p>Wählen Sie, ob beim Ausführen der festgelegten Aktion die für das Profil vorhandenen Zuweisungen ignoriert werden sollen oder nicht.</p>
+APOC.wiz.copy.help.3=<p>Wählen Sie die Konfigurationsdatensammlung, die kopiert/verschoben werden soll, indem Sie auf die Schaltfläche "Ändern" klicken und die gewünschte Konfigurationsdatensammlung aus der Liste auswählen.</p><p>Wählen Sie ebenso das Element, auf das kopiert/verschoben werden soll, indem Sie auf die Schaltfläche "Ändern" klicken und das gewünschte Element aus der Liste auswählen.</p>
+APOC.wiz.copy.source.context=Quelldatensammlung:
+APOC.wiz.copy.source.profile=Quellprofil:
+APOC.wiz.copy.1.alert=Es muss ein Quellprofil ausgewählt sein!
+APOC.wiz.copy.2.alert=Der authentifizierte Benutzer {0} verfügt nicht über die erforderlichen Berechtigungen zum Verschieben des Quellprofils {1}!
+APOC.wiz.copy.select.action=Aktion auswählen:
+APOC.wiz.copy.copy=Kopieren
+APOC.wiz.copy.move=Verschieben
+APOC.wiz.copy.assignments=Zuweisungen einschließen
+APOC.wiz.copy.target.context=Zieldatensammlung:
+APOC.wiz.copy.target.entity=Zielelement:
+APOC.wiz.copy.3.alert=Es muss ein Zielelement ausgewählt sein!
+APOC.wiz.copy.action=Aktion:
+APOC.wiz.copy.assignments.assignments=Zuweisungen einschließen:
+APOC.wiz.copy.3.alert1=Ein Profil kann nicht verschoben werden, wenn das Quellelement und das Zielelement gleich sind!
+APOC.wiz.copy.3.alert2=Das Profil {0} darf nicht {1} sein! Ein Profil mit dem gleichen Namen ist bereits beim Zielelement {2} vorhanden.
+APOC.wiz.copy.3.alert3=Der authentifizierte Benutzer {0} verfügt nicht über die erforderlichen Berechtigungen zum {1} des Profils {2} zu Element {3}!
+APOC.wiz.copy.4.alert=Das Profil {0} darf nicht {1} sein! Das Profil ist mindestens einem Element zugewiesen, das sich auf einer höheren Ebene als das Zielelement {2} befindet.
+APOC.wiz.copy.copyof=Kopie {0} von {1}
+APOC.wiz.copy.overview.title=Übersicht Assistent für Kopieren und Verschieben
+APOC.wiz.copy.overview.text=<p>Profile können bei jedem Element innerhalb Ihrer Organisationshierarchie gespeichert werden. Der Assistent für Kopieren und Verschieben führt Sie durch die erforderlichen Schritte zum Erstellen einer Kopie eines Profils, das unter einem Element gespeichert ist, in einem neuen Speicherort unter einem anderen Element bzw. zum Verschieben des Speicherorts eines Profils von einem Element zu einem anderen. Bei der Verwendung der Option "Zuweisungen einschließen" während der Aktion Kopieren/Verschieben sind bestimmte Einschränkungen zu beachten. Ein Profil darf nur einem Element zugewiesen werden, das sich auf der gleichen bzw. unterhalb der Speicherebene dieses Profils befindet. Sie müssen folgende Angaben machen:</p><p><ul><li>Eine Quellkonfigurationsdatensammlung und ein Quellprofil.</li><li>Eine auszuführende Aktion und ob die Profilzuweisungen bei Ausführen der Aktion eingeschlossen werden sollen.</li><li>Eine Zielkonfigurationsdatensammlung und ein Zielelement</li></ul></p><p>Nach Eingabe der obigen Informationen führt der Assistent die angeforderte Aktion für das ausgewählte Profil aus.</p>
+APOC.wiz.copy.steptext.overview=Überblick
+APOC.wiz.copy.results.text.assigned=Das Profil {0} wurde zu einem neuen Speicherort bei Element {1} {2} und wurde diesem Element zugewiesen.
+APOC.wiz.copy.results.text.unassigned=Das Profil {0} wurde zu einem neuen Speicherort bei Element {2} {1}.
+APOC.wiz.copy.results.title=Profil {0} erfolgreich
+APOC.wiz.copy.results.alert.title=Profil {0} fehlgeschlagen
+APOC.wiz.copy.results.copied=Kopiert
+APOC.wiz.copy.results.moved=Verschoben
+APOC.wiz.copy.results.copied.lc=kopiert
+APOC.wiz.copy.results.moved.lc=verschoben
+APOC.wiz.copy.4.fail1=Fehler beim Kopieren des Profils.
+APOC.wiz.copy.4.fail2=Fehler beim Löschen des Profils.
+APOC.wiz.copy.4.fail3=Fehler beim Einrichten des Anzeigenamens für das neue Profil.
+APOC.wiz.copy.4.fail4=Fehler beim Zuweisen eines neuen Profils zum Zielelement.
+
+# Browse Tree
+APOC.browse.title.org=Wählen Sie eine Organisation aus.
+APOC.browse.title.dom=Wählen Sie eine Domäne aus.
+APOC.browse.title=Wählen Sie ein Element aus.
+APOC.browse.title.text=Navigieren Sie durch den Baum und wählen Sie das gewünschte Element aus. Klicken Sie auf die Schaltfläche "OK", um die Auswahl zu bestätigen.
+APOC.browse.cancel.help=Brechen Sie die Auswahl ab und schließen Sie das Fenster.
+APOC.browse.ok.help=Bestätigen Sie die Auswahl und schließen Sie das Fenster.
+APOC.browse.tree.nav=Baumnavigation
+
+#*******************************************************************************
+# Syncronization
+#*******************************************************************************
+APOC.sync.title=Synchronisation
+APOC.sync.help=Auf dieser Seite können Sie zwei Konfigurationsdatensammlungen synchronisieren.
+APOC.sync.sourcerep.label=Quellkonfigurationsdatensammlung:
+APOC.sync.sourcerep.help=Menü der verfügbaren Konfigurationsdatensammlungen.
+APOC.sync.sourcepath.label=Quellstartpunkt:
+APOC.sync.sourcepath.button=Ändern...
+APOC.sync.sourcepath.help=Öffnet ein Fenster, in dem Sie den Quellkontextpfad ändern können.
+APOC.sync.targetrep.label=Zielkonfigurationsdatensammlung:
+APOC.sync.targetrep.help=Menü der verfügbaren Konfigurationsdatensammlungen.
+APOC.sync.targetpath.label=Zielstartpunkt:
+APOC.sync.targetpath.button=Ändern...
+APOC.sync.targetpath.help=Öffnet ein Fenster, in dem Sie den Zielkontextpfad ändern können.
+APOC.sync.sync.button=Synchronisieren
+APOC.sync.sync.help=Synchronisiert die aufgelisteten Profile entsprechend den ausgewählten Aktionen.
+APOC.sync.reset.button=Zurücksetzen
+APOC.sync.reset.help=Setzt die Aktionen auf die von Configuration Manager vorgegebenen Standardaktionen zurück.
+APOC.sync.cancel.help=Schließt dieses Fenster.
+APOC.sync.login.title=Kontextanmeldung
+APOC.sync.login.pagetitle=Anmeldung - Quellkonfigurationsdatensammlung
+APOC.sync.login.pagetitle2=Anmeldung - Zielkonfigurationsdatensammlung
+APOC.sync.login.pagehelp=Mit Configuration Manager können Sie mehrere Konfigurationsdatensammlungen verwalten, für die möglicherweise individuelle Anmeldungen erforderlich sind. Wenn die Anmeldeinformationen für die Anmeldung bei der Java Web-Konsole wiederverwendet werden können, werden sie als Standard vorgegeben. Diese Anmeldeseite wird nicht angezeigt, wenn Sie sich während der Sitzung bereits erfolgreich bei der Konfigurationsdatensammlung angemeldet haben. Wenn Sie sich mit anderen Anmeldeinformationen bei einer Konfigurationsdatensammlung anmelden möchten, müssen Sie sich bei der Java Web-Konsole abmelden.
+APOC.sync.compare.button=Vergleichen
+APOC.sync.compare.help=Vergleicht die Quelle mit dem Ziel.
+APOC.sync.result.empty=Keine Unterschiede gefunden.
+APOC.sync.result.summary=Diese Tabelle führt die Unterschiede zwischen der Quell- und der Zielkonfigurationsdatensammlung auf.
+APOC.sync.result.title=Profile
+APOC.sync.result.title2=Unterschiedliche Profile
+APOC.sync.result.help0=Über die Synchronisation
+APOC.sync.result.help1=In diesem Fenster können Sie zwei Konfigurationsdatensammlungen synchronisieren.
+APOC.sync.result.help2=Sie können die Quelldatensammlung ändern, die als Quelle für die Änderungen dient. Diese Datensammlung wird nicht geändert. Optional können Sie die Quelldatensammlung einschränken, indem Sie ein anderes Element als die Root als Startpunkt für die Synchronisation angeben.
+APOC.sync.result.help3=Sie können die Zieldatensammlung ändern, die als Ziel für die Änderungen dient. Diese Datensammlung wird geändert. Optional können Sie die Zieldatensammlung einschränken, indem Sie ein anderes Element als die Root als Startpunkt für die Synchronisation angeben.
+APOC.sync.result.help4=Klicken Sie nach Angabe des Quell- und des Zielbaums auf die Schaltfläche "Vergleichen". Die beiden Bäume werden verglichen, und alle Unterschiede werden in einer Tabelle aufgelistet. Markieren Sie die Tabellenzeilen mit den Profilen, die synchronisiert werden sollen, und klicken Sie auf die Schaltfläche "Synchronisieren".
+APOC.sync.result.help5=Nach Abschluss der Synchronisation entspricht die Zieldatensammlung der Quelldatensammlung für die ausgewählten Profile.
+APOC.sync.busymsg.text=Verarbeitung ...
+APOC.sync.result.column1=Profil
+APOC.sync.result.column2=Aktionen an der Zieldatensammlung
+APOC.sync.action.copycontent=Inhalt kopieren.
+APOC.sync.action.copycomment=Kommentare kopieren.
+APOC.sync.action.alignassign=Zuweisungen ausrichten.
+APOC.sync.action.changeprios=Prioritäten ändern.
+APOC.sync.action.create=Profil mit Inhalt und Zuweisungen erstellen.
+APOC.sync.action.delete=Profil löschen.
+APOC.sync.msg.orgdomcomapre=Sie können einen Organisationsbaum nicht mit einem Domänenbaum vergleichen.
+APOC.sync.msg.noprofiles=Keine Profile gefunden.
+APOC.sync.msg.allequal=Alle verglichenen Profile sind gleich. Es ist keine Synchronisation erforderlich.
+APOC.sync.msg.nocompare=Es wurden Profile gefunden; es konnte jedoch kein Profil verglichen werden.
+APOC.sync.msg.partialcompare=Mindestens ein Profil konnte nicht verglichen werden.
+APOC.sync.msg.compare.detail=Damit ein Profil verglichen werden kann, muss der relative Pfad vom Startpunkt zum Speicherort in der anderen Datensammlung vorhanden sein.
+APOC.sync.waitmsg.prepare=Vorbereitung läuft
+APOC.sync.waitmsg.retsource=Quellprofile werden abgerufen
+APOC.sync.waitmsg.rettarget=Zielprofile werden abgerufen
+APOC.sync.waitmsg.prepx=Profilvergleich wird vorbereitet ({0} Profile vorbereitet)
+APOC.sync.waitmsg.compx=Profile werden verglichen ({0} von {1} Profilen verglichen)
+APOC.sync.waitmsg.sync=Profile werden synchronisiert ({0} von {1} Profilen synchronisiert)
+APOC.sync.waitmsg.time=Verstrichene Zeit: {0}:{1}.{2}
+
+APOC.tabs.tree.title=Profile - Baumansicht
+APOC.tabs.tree.help=Zeigt die zugewiesenen Profile im Organisations- und Domänenbaum.
+APOC.tabs.all.title=Profile - Alle
+APOC.tabs.all.help=Zeigt eine Liste aller Profile an.
+
+APOC.find.title=Suchen
+APOC.find.button=Suchen
+
+#*******************************************************************************
+# Contexts
+#*******************************************************************************
+APOC.contexts.title=Konfigurationsdatensammlungen
+APOC.contexts.details.title=Konfigurationsdatensammlungsdetails
+APOC.contexts.details.name=Name der Datensammlung
+APOC.contexts.details.domorg.info=Speicherort der Domänen-/Organisationsinformationen
+APOC.contexts.details.domorg.profile.info=Speicherort der Domänen-/Organisationsinformationen
+APOC.contexts.details.property=Eigenschaft
+APOC.contexts.details.view=Details anzeigen
+APOC.contexts.help=Die Konfigurationsdatensammlung ist der Speicherort für die Konfigurationsdaten, die Sie zum Konfigurieren Ihrer Anwendungen benötigen.
+APOC.contexts.table.title=Konfigurationsdatensammlungen
+APOC.contexts.config.error=Auf die ausgewählte Datensammlung kann nicht zugegriffen werden. Die Konfigurationsdatei {0} enthält einen Syntaxfehler.
+APOC.contexts.table.summary=In dieser Tabelle sind alle verfügbaren Konfigurationsdatensammlungen aufgeführt. Die 'Typ'-Spalte führt den Typ der Datensammlung auf. Die Spalte 'Speicherort Organisationsdaten' führt die URLs auf, die zum Speicherort zeigen, der die Organisationsdaten bereitstellt. Die Spalte 'Speicherort Profildaten' listet die URLs auf, die zum Speicherort zeigen, der die Profildaten bereitstellt. Klicken Sie auf den Namenslink, um die entsprechende Konfigurationsdatensammlung zu verwenden.
+APOC.contexts.details.table.summary=Diese Tabelle listet die Eigenschaften der ausgewählten Konfigurationsdatensammlung auf. Der Name, der Speicherort der Hierarchieinformationen und der Speicherort der Speicherinformationen werden aufgelistet.
+APOC.contexts.table.empty=Keine Konfigurationsdatensammlung verfügbar. Verwenden Sie die Schaltfläche 'Neu...', um eine neue Konfigurationsdatensammlung zu erstellen.
+APOC.contexts.menu.create=Erstellen...
+APOC.contexts.menu.remove=Entfernen...
+APOC.contexts.menu.rename=Umbenennen...
+APOC.contexts.menu.synchronize=Synchronisieren...
+APOC.contexts.column.name=Name
+APOC.contexts.column.type=Typ
+APOC.contexts.column.locorg=Speicherort Organisationsdaten
+APOC.contexts.column.locpro=Speicherort Profildaten
+APOC.contexts.hybrid.text=Kombiniert
+APOC.contexts.create.button=Konfigurationsdatensammlung erstellen
+APOC.contexts.login.context=Konfigurationsdatensammlung:
+APOC.contexts.login.title=Konfigurationsdatensammlung - Anmeldung
+APOC.contexts.login.help=Mit Configuration Manager können Sie mehrere Konfigurationsdatensammlungen verwalten, für die möglicherweise individuelle Anmeldungen erforderlich sind. Wenn die Anmeldeinformationen für die Anmeldung bei der Java Web-Konsole wiederverwendet werden können, werden sie als Standard vorgegeben. Diese Anmeldeseite wird nicht angezeigt, wenn Sie sich während der Sitzung bereits erfolgreich bei der Konfigurationsdatensammlung angemeldet haben. Wenn Sie sich mit anderen Anmeldeinformationen bei einer Konfigurationsdatensammlung anmelden möchten, müssen Sie sich bei der Java Web-Konsole abmelden.
+APOC.select.contexts.login.help=Zum Auswählen einer neuen Konfigurationsdatensammlung müssen Sie neue Anmeldeinformationen eingeben. Falls verfügbar, werden die Anmeldeinformationen, die vorher für die Anmeldung der ausgewählten Datensammlung verwendet wurden, als Standard vorgegeben.
+APOC.relocate.error.summary=Vorgang abgebrochen!
+APOC.relocate.error.detail=Mindestens eine Organisation oder Domäne, der dieses Profil zugewiesen ist, befindet sich auf einer höheren Speicherebene als der neue Profilspeicherort.
+APOC.relocate.trace.text=Kein Aufruf-Pfad verfügbar.
+
diff --git a/src/com/sun/apoc/manager/resource/apoc_manager_en.properties b/src/com/sun/apoc/manager/resource/apoc_manager_en.properties
new file mode 100644
index 0000000..f1ac465
--- /dev/null
+++ b/src/com/sun/apoc/manager/resource/apoc_manager_en.properties
@@ -0,0 +1,998 @@
+#*******************************************************************************
+#
+# $RCSfile: apoc_manager_en.properties,v $
+#
+# Description: Resource bundle for the Sun Java(tm) Desktop System
+# Configuration Manager
+#
+# Last change: $Date: 2007/03/06 11:54:38 $ $Revision: 1.80 $
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use of this
+# product is subject to license terms.
+#
+#*******************************************************************************
+
+#*******************************************************************************
+# Common
+#
+#*******************************************************************************
+
+APOC.framelongdesc=This application has a three frame structure. The Masthead Frame is across the top of the page. The Navigation Frame is on the left side and allows you to navigate through the Users and Hosts. Selecting an element in the Navigation Frame causes an update to the Content Frame, or both the Content Frame and the Navigation Frame. The Content Area is on the right and it displays information on the currently selected element.
+APOC.so7=StarOffice 7
+APOC.button.remove=Remove
+APOC.button.close=Close
+APOC.button.OK=OK
+APOC.button.cancel=Cancel
+APOC.button.browse=Change...
+APOC.headings.name=Name
+APOC.login.username=User Name:
+APOC.login.password=Password:
+APOC.infoAlert.success=The action has been completed successfully.
+APOC.noframes=Frames are required to use this application.
+APOC.settings.notset=-- Not Set --
+APOC.profiles.profile=Profile
+APOC.help.more.on=>> More on {0}
+APOC.help.more=>> More
+APOC.pool.renameContextMessage=Enter the new name of the repository:
+APOC.pool.removeContextMessage=Do you want to delete the selected configuration repository?
+APOC.helpwindow.tooltip=Help (Opens a New Window)
+
+#*******************************************************************************
+# Masthead
+#
+#*******************************************************************************
+
+APOC.frame.masthead=Masthead Frame
+APOC.masthead.altTextVer=Sun Desktop Manager 1.0.1
+APOC.masthead.altText=Sun Desktop Manager 1.0.1
+APOC.masthead.altTextForSub={0}
+APOC.masthead.packages.alt=Policy Packages (Opens a New Window)
+APOC.masthead.path.link=Repositories
+APOC.masthead.path.help=Return to Configuration Repository Page
+
+#*******************************************************************************
+# Packages Dialog Strings
+#
+#*******************************************************************************
+
+APOC.packages.title=Policy Packages
+APOC.packages.introtext=You can install or uninstall policy packages here. Policy packages are provided by Sun Microsystems or 3rd-party vendors and contain additional policies to be used within the {0}.
+APOC.packages.tabletitle=Installed Policy Packages
+APOC.packages.headings.adddate=Add Date
+APOC.packages.action.file=Install from Server...
+APOC.packages.action.url=Install from Client...
+APOC.packages.action.uninstall=Uninstall
+APOC.packages.uninstall.confirm=Are you sure you want to uninstall the selected package?
+APOC.packages.filechooser.addfile=Install Policy Package from Server File
+APOC.packages.filechooser.button=Choose File
+APOC.packages.localchooser.title=Install Policy Package from Local File
+APOC.packages.localchooser.upload=Upload
+APOC.packages.localchooser.choosetext=File to Upload:
+
+#*******************************************************************************
+# Users Page Tab
+#
+#*******************************************************************************
+
+APOC.users.title=Users
+APOC.users.introtext=This tab page lists the users which are members of the selected role. The 'path' column lists the absolute paths.
+APOC.users.tableSummary=This table lists the users which are members of the selected role. The 'path' column lists the absolute paths. Click a user name to select that user in the left frame.
+
+#*******************************************************************************
+# Roles Page Tab
+#
+#*******************************************************************************
+
+APOC.roles.title=Roles
+APOC.roles.introtext=This tab page lists the roles of which the selected user is a member. The 'path' column lists the absolute paths.
+APOC.roles.tableSummary=This table lists the roles of which the selected user is a member. The 'path' column lists the absolute paths. Click a role name to select that role in the left frame.
+
+#*******************************************************************************
+# Assignees Page Tab
+#
+#*******************************************************************************
+
+APOC.assignees.title=Assignees
+APOC.assignees.introtext=This tab page lists the entities to which the selected profile has been assigned. The 'path' column lists the absolute paths.
+APOC.assignees.tableSummary=This table lists the entities to which the selected profile has been assigned. The 'path' column lists the absolute paths. Click an element's name to select that element in the left frame.
+
+#*******************************************************************************
+# Profiles Tab page
+#
+#*******************************************************************************
+
+APOC.policysets.title=Assigned Profiles
+APOC.policysets.label=Profiles:
+APOC.policysets.introtext=On this tab page, you can assign profiles to the element you have selected.
+APOC.policysets.save=Save
+APOC.policysets.infoAlert.saveSuccess=The changes in profile assignments have been saved.
+
+#*******************************************************************************
+# Policies Tab page
+#
+#*******************************************************************************
+
+APOC.policies.title=Assigned Policies
+APOC.policies.subcategories=Subcategories
+APOC.policies.nameCol=Name
+APOC.policies.commentCol=Comment
+APOC.policies.actionCol=Action
+APOC.policies.toggle.button=Toggle Action
+APOC.policies.introtext=This page lists the configuration policy tree and the configured settings for the seleted element.
+APOC.policies.tableSummary=This table lists the available policies. Every row contains the name of the policy and a short description. Click a name to drill-down to its subpolicies.
+APOC.properties.tableSummary=This table lists the configuration settings. Every row contains the property status, name and value.
+APOC.policies.stateCol=State
+APOC.policies.value=Value
+APOC.policies.value.notconfig=Not Configured
+APOC.policies.value.config=Configured
+APOC.policies.status=Status
+APOC.policies.root=Policies
+APOC.policies.actions=&#8212;&nbsp;Policy Actions&nbsp;&#8212;
+APOC.policies.actions.protect=Protect
+APOC.policies.actions.unprotect=Unprotect
+APOC.policies.actions.default=Apply Default
+APOC.policies.actions.clear=Clear
+APOC.policies.enable=Enable
+APOC.policies.enabled=Enabled
+APOC.policies.disabled=Disabled
+APOC.policies.clear.button=Clear Settings
+APOC.policies.createrep.button=Create Report...
+APOC.policies.createrep.tooltip=Create Report (Opens a New Window)
+APOC.policies.clear.confirmation=This action will delete all setttings in this layer and all layers below it. Do you really want to continue?
+APOC.policies.backToTop=Back to top
+APOC.policies.backToTop.tooltip=Back to Top
+APOC.policies.jumpDown.tooltip={0} (Jumps down to this section)
+APOC.policies.save.button=Save
+APOC.policies.reset.button=Reset
+APOC.policies.navigation.table.empty=No policies are assigned.
+APOC.policies.set.table.empty=No entries were found.
+APOC.policies.new.button=New...
+APOC.policies.delete.button=Delete
+APOC.policies.name.question=Please enter a name for the new entry.
+APOC.policies.rename.set=Please enter the new name for the entry.
+APOC.policies.status.defined_here=The item is defined in this layer.
+APOC.policies.status.defined_above=The item is defined in a layer above.
+APOC.policies.status.noprotection=No protection status.
+APOC.policies.status.nodefinition=No definition status.
+APOC.policies.status.jumpto=Click this link to go to {0}.
+APOC.policies.status.protected_here=The item is protected in this layer.
+APOC.policies.status.protected_above=The item is protected in a layer above.
+APOC.policies.status.policygroup=Profile {0}
+APOC.policies.info.general=The action has been completed successfully.
+APOC.policies.info.stored=All settings have been stored.
+APOC.policies.info.removed=All settings have been removed.
+APOC.policies.error.general=An error occurred.
+APOC.policies.error.removing=Error removing settings: {0}
+APOC.policies.error.storing=Error storing settings: {0}
+APOC.policies.confirmation.storechanges=You have made several changes. Would you like to store your changes now?
+APOC.policies.info.readonly.access=This page is read-only, because you do not have the necessary access rights to make any modifications.
+APOC.policies.info.readonly.maybe=At least one of the displayed profiles is read-only, because you do not have the necessary access rights to make any modifications.
+APOC.policies.info.readonly.roles=This page is read-only because local policies cannot be assigned to roles.
+APOC.policies.edit.button=Edit...
+APOC.policies.include_in=Include in
+APOC.policies.exclude_from=Exclude from
+APOC.policies.footnote=* Indicates default values automatically used by the application if no other setting is explicitly defined.
+APOC.policies.settings_title=Settings (Profile {0})
+
+#*******************************************************************************
+# Content Area
+#
+#*******************************************************************************
+
+APOC.frame.contentarea=Content Area Frame
+APOC.catabs.policy.des=Policies (Opens Tab Page)
+APOC.catabs.policysets.des=Assigned Profiles (Opens Tab Page)
+APOC.catabs.users.des=Users (Opens Tab Page)
+APOC.catabs.roles.des=Roles (Opens Tab Page)
+APOC.catabs.assignees.des=Assignees (Opens Tab Page)
+APOC.ca.backtop=Back to top
+APOC.ca.locale=Locale
+APOC.ca.path=Path
+
+#*******************************************************************************
+# Help
+#
+#*******************************************************************************
+
+APOC.help.helpTooltip=Help (Opens a New Window)
+APOC.help.windowTitle=Help
+
+#*******************************************************************************
+# Navigation Area Common
+#
+#*******************************************************************************
+
+APOC.navigation.search=Search
+APOC.navigation.reset=Reset
+APOC.navigation.search.help=Opens a window that lets you issue a search.
+APOC.navigation.edit.help=Enter your search string.
+APOC.navigation.close=Close
+APOC.navigation.organization=Organization
+APOC.navigation.organization.with=Organization with assignments
+APOC.navigation.organizations=Organizations
+APOC.navigation.organizations.help=Root of the organization tree.
+APOC.navigation.user=User
+APOC.navigation.user.with=User with assignments
+APOC.navigation.users=Users
+APOC.navigation.role=Role
+APOC.navigation.role.with=Role with assignments
+APOC.navigation.roles=Roles
+APOC.navigation.domain=Domain
+APOC.navigation.domain.with=Domain with assignments
+APOC.navigation.domains=Domains
+APOC.navigation.domains.help=Root of the domain tree.
+APOC.navigation.host=Host
+APOC.navigation.host.with=Host with assignments
+APOC.navigation.hosts=Hosts
+APOC.navigation.name=Name
+APOC.navigation.actions=Actions
+APOC.navigation.view=View
+APOC.navigation.view.tooltip=Shows this Element in the Right Frame
+APOC.navigation.area=Navigation Pane
+APOC.navigation.empty=No entities are available.
+APOC.navigation.name.label=Name:
+APOC.navigation.type=Type
+APOC.navigation.userTooltip=Users (Opens Users Tab Page)
+APOC.navigation.hostTooltip=Hosts (Opens Hosts Tab Page)
+APOC.navigation.breadcrumb.tooltip=Back to {0}
+APOC.navigation.show=Show:
+APOC.navigation.showDirsOnly=Directories Only
+APOC.navigation.showAll=All
+APOC.navigation.ellipsis=... some elements not displayed
+APOC.navigation.openfind=Opens the find window
+APOC.navigation.search.target.alert1=The target window for the selection could not be determined.\\nPlease close the search window and reopen it again from the intended target window.
+
+#*******************************************************************************
+# Navigation Area User Tree Tab
+#
+#*******************************************************************************
+
+APOC.usertree.title=Organization Tree
+APOC.usertree.tooltip=Organization Tree (Opens Organization Tree Tab Page)
+APOC.usertree.tableSummary=This table provides a list of the children of the current organisation. Every row contains the name of the child, its type (organization, user or role) and a link. Click the link to display the content of the organization in the frame on the right.
+
+#*******************************************************************************
+# Navigation Area Host Tree Tab
+#
+#*******************************************************************************
+
+APOC.hosttree.title=Domain Tree
+APOC.hosttree.tooltip=Domain Tree (Opens Domain Tree Tab Page)
+APOC.hosttree.tableSummary=This table provides a list of the children of the current domain. Every row contains the name of the child, its type (can be domain or user) and a view link to show its content in the right frame.
+
+#*******************************************************************************
+# Navigation Area Entities Table Filter
+#
+#*******************************************************************************
+
+APOC.entityfilter.titleUsers=Advanced Filter - Users
+APOC.entityfilter.titleHosts=Advanced Filter - Hosts
+APOC.entityfilter.help.title=Help
+APOC.entityfilter.type.label=Type:
+APOC.entityfilter.filter=Filter
+APOC.entityfilter.placeholder=<name to filter on>
+
+#*******************************************************************************
+# Set Color Dialog
+#
+#*******************************************************************************
+
+APOC.setcolor.edit.alt=Edit Palette (Opens a New Window)
+APOC.setcolor.title=Edit Palette
+APOC.setcolor.introtext=The current color is listed in the central column. This color may then be added to the palette using the add or replace color buttons. Names may be associated with colors by entering a name in the "Name" field. Save your changes to the palette by clicking "OK" when you are finished.
+APOC.setcolor.palette.heading=Color Palette:
+APOC.setcolor.color.heading=Color:
+APOC.setcolor.color.alt=Current Color is {0}
+APOC.setcolor.red.heading=Red:
+APOC.setcolor.red.increase=Increase Red
+APOC.setcolor.red.decrease=Decrease Red
+APOC.setcolor.green.heading=Green:
+APOC.setcolor.green.increase=Increase Green
+APOC.setcolor.green.decrease=Decrease Green
+APOC.setcolor.blue.heading=Blue:
+APOC.setcolor.blue.increase=Increase Blue
+APOC.setcolor.blue.decrease=Decrease Blue
+APOC.setcolor.hue.heading=Hue:
+APOC.setcolor.hue.increase=Increase Hue
+APOC.setcolor.hue.decrease=Decrease Hue
+APOC.setcolor.sat.heading=Sat:
+APOC.setcolor.sat.increase=Increase Saturation
+APOC.setcolor.sat.decrease=Decrease Saturation
+APOC.setcolor.lum.heading=Lum:
+APOC.setcolor.lum.increase=Increase Luminance
+APOC.setcolor.lum.decrease=Decrease Luminance
+APOC.setcolor.html.heading=Hex Value:
+APOC.setcolor.original.heading=Original Color:
+APOC.setcolor.original.alt=Original Color is {0}.
+APOC.setcolor.wheel.heading=Color Spectrum:
+APOC.setcolor.wheel.alt=Click on image to select color from spectrum, hue on the x-axis and saturation on the y-axis. Clicking on a particular color in the spectrum will update the central column to contain that color.
+APOC.setcolor.slider.summary=Click anywhere in this table to adjust the luminance of the current color. The luminance decreases from right to left.
+APOC.setcolor.add.button=Add Color >
+APOC.setcolor.replace.button=Replace Color >
+APOC.setcolor.remove.button=Delete Color
+APOC.setcolor.remove.alert=The selected tile does not contain a stored palette color and thus cannot be removed.
+APOC.setcolor.name.alert=The specified color name is already in use, please choose a different color name.
+APOC.setcolor.restoreorigcolor.button=Restore Color
+APOC.setcolor.restore.button=Restore Defaults
+APOC.setcolor.restore.confirm=Do you really want to restore the default colors?
+APOC.setcolor.increase.tooltip=Increase
+APOC.setcolor.decrease.tooltip=Decrease
+APOC.setcolor.tooltip=Edit Colors dialog (opens in a new window)
+APOC.setcolor.replace.alert=Use the Add Color button if you wish to add an additional color.
+APOC.setcolor.add.alert=Use the Replace Color button if you wish to replace an existing color.
+APOC.setcolor.noname=No Name
+APOC.setcolor.invalid.hex=The hex value is invalid please enter a valid value
+
+#*******************************************************************************
+# Chooser
+#
+#*******************************************************************************
+
+APOC.page.chooser.list.editor=Edit List
+APOC.page.chooser.list.help=Add or remove elements that are shown in the drop-down menu in the content pane by editing the list below. Remove all user changes from the list by clicking the 'Restore Defaults' button. Save the changes to the list by clicking the 'OK' button.
+APOC.chooser.add=Add
+APOC.chooser.system_added=(*) Denotes an element added to the list by the system. Elements are added to the list by the system if they are a default value or the element is the stored value for a currently displayed property
+APOC.chooser.protected.alert=This element cannot be removed from the list because it is either a default value or it is the stored value for a setting on this page
+APOC.chooser.selected.alert=This element cannot be removed from the list because it is the currently selected value for a property on this page
+APOC.chooser.edit.alt=Edit List (Opens a New Window)
+APOC.font.chooser.title=Edit Font List
+APOC.window.border.chooser.title=Edit Windows Border Theme List
+APOC.window.controls.chooser.title=Edit Controls Theme List
+APOC.window.icon.chooser.title=Edit Icon Theme List
+
+#*******************************************************************************
+# Navigation Area Repository Tab
+#
+#*******************************************************************************
+
+APOC.pool.title=Policy Repository
+APOC.pool.all_profiles=All Profiles
+APOC.pool.all_profiles.help=This tab page lists all profiles.
+APOC.pool.all_domain_profiles=All Domain Profiles
+APOC.pool.all_org_profiles=All Organization Profiles
+APOC.pool.tooltip=Policy Repository (Opens Policy Repository Tab Page)
+APOC.pool.sets=Assigned Profiles
+APOC.pool.setsHost=Host Profiles
+APOC.pool.priority=Priority
+APOC.pool.actions=&#8212;&nbsp;Profile Actions&nbsp;&#8212;
+APOC.pool.new=New...
+APOC.pool.delete=Delete...
+APOC.pool.import=Import...
+APOC.pool.export=Export...
+APOC.pool.rename=Rename...
+APOC.pool.edit=Edit Priorities...
+APOC.pool.add_assignment=Assign Profile
+APOC.pool.available_profiles=Available Profiles
+APOC.pool.add_assignment_help=You can use this window to assign profiles.
+APOC.pool.new_button.help=Creates a new profile.
+APOC.pool.delete_button.help=Deletes a profile.
+APOC.pool.assign_button.help=Opens a new windows that lets you select the profile to be assigned.
+APOC.pool.unassign_button.help=Revokes the assignment of the selected profile(s) with the current Organization.
+APOC.pool.report_button.help=Opens a window which contains the report.
+APOC.pool.tableSummary=This table provides a list of the global profiles. Every row contains the name of the profile, its priority and a link. Click the link to display the content of the profile in the frame on the right.
+APOC.pool.empty=No profiles are available.
+APOC.pool.deleteMessage=Do you really want to delete the selected profiles?
+APOC.pool.tableSummary=This table provides a list of profiles. Every row contains the name of the profile, its author and the date of its last modification. Click on the name to display the content of the profile.
+APOC.pool.empty=No profiles are available.
+APOC.pool.deleteMessage=Do you really want to delete the selected profile?
+APOC.pool.newMessage=Enter the name of the new profile:
+APOC.pool.newDefault=NewPolicyGroup
+APOC.pool.renameMessage=Enter the new name of the profile:
+APOC.pool.help.title=Policy Repository Help
+APOC.pool.help.text1=The policy repository is used to store your profiles. A profile is a named container for policies. The name of a profile has to be unique.
+APOC.pool.help.text2=After creating a new profile you can store configuration settings in it and add this profile to any organization, user, role, domain or host. This is done by viewing the element in the navigation pane and selecting the "Profiles" tab page in the content pane.
+APOC.pool.help.text3=Although the use of profiles is not necessary for configuration management, profiles allow you to manage configuration settings in a more flexible way. For example, you can create the profile "Novice", store configuration settings suitable for novices in that profile and add that profile to any member of the organization or domain tree.
+APOC.pool.import.tooltip=Import a Profile into the Repository.
+APOC.pool.export.tooltip=Export a Profile.
+APOC.pool.rename.tooltip=Rename a Profile.
+APOC.pool.import.disabled.tooltip=Import a Profile into the Repository (Unavailable).
+APOC.pool.export.disabled.tooltip=Export a Profile (Unavailable).
+APOC.pool.rename.disabled.tooltip=Rename a Profile (Unavailable).
+
+#*******************************************************************************
+# Navigation Area Priorities
+#
+#*******************************************************************************
+
+APOC.prios.title=Profile Priorities
+APOC.prios.help=This tab page allows you to change the priorities of the profiles. The priorities define the merge order of the profiles when more than one profile with the same applicability is assigned to an element.
+APOC.prios.up=Move Up
+APOC.prios.down=Move Down
+
+#*******************************************************************************
+# Navigation Area Profile Import
+#
+#*******************************************************************************
+
+APOC.groupimport.title=Import Profile from Local File
+APOC.groupimport.help=Select a local profile file to import into the current configuration repository
+APOC.groupimport.choosetext=File to Import:
+APOC.groupimport.defaulttext=<filename>
+APOC.groupimport.import=Import
+APOC.groupimport.error.zip=Error: The file must be in Zip format.
+APOC.importwnd.js.overwrite_alert=A profile with this name already exists. Overwrite this profile?
+APOC.groupimport.importing=Importing Profiles
+
+#*******************************************************************************
+# Navigation Area Search
+#
+#*******************************************************************************
+
+APOC.search.search=Search
+APOC.search.param.help=This search covers the entire tree.
+APOC.search.userid.label=User ID:
+APOC.search.firstname.label=First Name:
+APOC.search.lastname.label=Last Name:
+APOC.search.point.label=Starting Point:
+APOC.search.perpage.label=Results displayed per page:
+APOC.search.results=Results
+APOC.search.result.help=This page lists the search results. The path column lists the path relative to the starting point.
+APOC.search.entitiesFound=Elements Found
+APOC.search.param.title.help=Specify the parameters for the search.
+APOC.search.usersFound=Users Found
+APOC.search.rolesFound=Roles Found
+APOC.search.organizationsFound=Organizations Found
+APOC.search.domainsFound=Domains Found
+APOC.search.hostsFound=Hosts Found
+APOC.search.all=Search All
+APOC.search.users=Search Users
+APOC.search.roles=Search Roles
+APOC.search.organizations=Search Organizations
+APOC.search.domains=Search Domains
+APOC.search.hosts=Search Hosts
+APOC.search.tableSummary=This table provides a list of search results. Every row contains the name of the element, its type (organization, user or role) and its full path. Click a name to select that element in the left frame of the main application window.
+APOC.search.path=Path
+APOC.search.userid=User ID
+APOC.search.title.text=Search
+APOC.search.search.help=Searches the repository.
+APOC.search.reset.help=Resets the search parameters to the defaults.
+APOC.search.cancel.help=Closes this window.
+APOC.search.advanced.show.button=Show Advanced Options
+APOC.search.advanced.show.help=Shows the advanced options.
+APOC.search.advanced.hide.button=Hide Advanced Options
+APOC.search.advanced.hide.help=Hides the advanced options.
+APOC.search.advanced.start.label=Search Area:
+APOC.search.advanced.restrict.label=Restrict to:
+APOC.search.advanced.browse.help=Opens a window that lets you change the path which determines the starting point for the search.
+APOC.search.advanced.start.label=Search Area:
+APOC.search.help.title=About the Search
+APOC.search.help.text1=The search is not case-sensitive and not strict, e.g. the search string "bc" will match "ABC" and "bcd".
+APOC.search.help.text2=An asterisk (*) denotes an arbitrary sequence of characters within a search string. You can use more than one asterisk at any location in the search string.
+APOC.search.help.text3=An empty field is equivalent to a field with the search string "*". By default the maximum number of results returned is 100, however, this parameter is configurable. Please consult the Installation Guide for more details.
+APOC.search.help.inline=Enter the name. You can specify * as wildcard.
+APOC.search.help.inlineUser=Enter the user id. You can specify * as wildcard.
+
+#*******************************************************************************
+# Content Area - Profiles
+#*******************************************************************************
+APOC.profile.inherited.table=Inherited Profiles
+APOC.profile.page.title=This tab page lists the content of the selected element.
+APOC.profile.name.text=(Profile {0})
+APOC.profilemgr.assigned=Assigned
+APOC.profilemgr.assign=Assign Profile...
+APOC.profilemgr.pending=Changes Present
+APOC.profilemgr.author=Author
+APOC.profilemgr.lastMod=Last Modified
+APOC.profilemgr.delete=Delete
+APOC.profilemgr.moreActions=&#8212;&nbsp;More Actions&nbsp;&#8212;
+APOC.profilemgr.yes=Yes
+APOC.profileassi.unassign=Unassign Profile
+APOC.profileassi.manage=Manage Profiles...
+APOC.profileassi.release=Release Changes...
+APOC.profileassi.releaseNow=Release
+APOC.profileassi.showResults=Effective Settings...
+APOC.profileassi.title=Release Changes
+APOC.profileassi.table.empty=There are no profiles assigned.
+APOC.profileavail.title=Available Profiles
+APOC.profileavail.help=You can use this window to assign profiles.
+APOC.profileavail.assigning=Assigning Profiles
+APOC.profileall.title=All Profiles
+APOC.profileall.help=This tab page lists all profiles.
+APOC.profileall.domtable.title=All Domain Profiles
+APOC.profileall.orgtable.title=All Organization Profiles
+APOC.profile.search.profile=Search Profile
+APOC.profile.error.storing=Error storing profile.
+APOC.profile.assigned.delete=The profiles you selected are assigned to at least one element. \\n \\n Do you really want to delete these profiles?
+APOC.profile.unassigned.delete=All profile data for the selected profiles will be deleted. Do you want to proceed?
+APOC.profiles.default.msg=Indicates default value
+
+#*******************************************************************************
+# Configure Report
+#
+#*******************************************************************************
+
+APOC.configrep.title=Modify the Effective Settings Parameters
+APOC.configrep.help=Specify the parameters for generating effective settings. The elements involved in the generation of the effective settings can be defined using the list below. One element of each type can be chosen and the effective settings are the result of a merging of the policy settings contained in the assigned profiles for the chosen elements.
+APOC.configrep.effective.settings=Effective Settings
+APOC.configrep.columns=Show in the Settings Summary:
+APOC.configrep.statepath=Status Path
+APOC.configrep.des=Description
+APOC.configrep.reptype=Selected Profile Sources Merge Order
+APOC.configrep.orgtree=Select an Element from the Organization Tree:
+APOC.configrep.domtree=Select an Element from the Domain Tree:
+APOC.configrep.typeorg=Settings in the Organization Tree
+APOC.configrep.typedom=Settings in the Domain Tree
+APOC.configrep.typeboth=Settings in Both Trees
+APOC.configrep.button.report=Generate Effective Settings
+
+#*******************************************************************************
+# Report
+#
+#*******************************************************************************
+APOC.report.button.tooltip=Opens a window which contains the report.
+APOC.report.onetree.title=Effective Settings for the {0} "{1}" on host "{2}"
+APOC.report.twotree.title=Effective Settings for the {0} "{1}" & the {2} "{3}" on host "{4}"
+APOC.report.multipletree.title=Effective Settings for the {0} on host "{1}"
+APOC.report.involved.profiles.entity={0} Profiles
+APOC.report.locorg={0} is an Organization below {1}.
+APOC.report.locrole={0} is a Role below {1}.
+APOC.report.locuserid={0} is a User below {1}.
+APOC.report.lochost={0} is a Host below {1} .
+APOC.report.locdomain={0} is a Domain below {1}.
+APOC.report.rootlocorg={0} is an Organization.
+APOC.report.rootlocuserid={0} is a User.
+APOC.report.rootlocrole={0} is a Role.
+APOC.report.rootlochost={0} is a Host.
+APOC.report.rootlocdomain={0} is a Domain.
+APOC.report.policygrouploc={0} is a Profile.
+APOC.report.bothand=and
+APOC.report.creator=Creator is {0} on {1}.
+APOC.report.createdate=Creation date is {0}.
+APOC.report.backendtype=Backend type is {0}.
+APOC.report.backendhost=Backend host is {0}.
+APOC.report.unknown=Unknown
+APOC.report.startcat=Start category is {0}.
+APOC.report.contitle=Table of Contents
+APOC.report.isbelow=is below {0}
+APOC.report.table.summary=This table lists the configuration settings. Each row contains the property status, name and value.
+APOC.report.table.nameheading=Name
+APOC.report.table.valueheading=Value
+APOC.report.table.statusheading=Status
+APOC.report.table.statuspheading=Status Path
+APOC.report.table.desheading=Description
+APOC.report.table.defined=Defined
+APOC.report.table.protected=Enforced
+APOC.report.table.readonly=Read-only
+APOC.report.table.defined.in=Defined in
+APOC.report.table.protected.in=Users May Not Overwrite
+APOC.report.table.readonly.in=Read-only In
+APOC.report.table.pathPG=Profile:
+APOC.report.table.empty={0} contain(s) no values.
+APOC.report.buttons.print=Print
+APOC.report.assigned.profiles.title=Profiles Involved
+APOC.report.settings.summary.title=Settings Summary
+APOC.report.addremove.elements=Elements Involved:
+APOC.report.elements.table.heading=Elements Involved
+APOC.report.elements.table.summary=This table specifies the elements involved in the generation of the effective settings results.
+APOC.report.elements.table.title=This list can be used to specify the elements involved in the generation of the effective settings.
+APOC.report.add.element=Add Element
+APOC.report.remove.element=Remove Element
+APOC.report.novalues=The elements involved contain no values.
+APOC.report.xml.parsing.error=XML parsing error while reading profile data!
+
+#*******************************************************************************
+# Full-Page Error Alert
+#
+#*******************************************************************************
+
+APOC.pageerror.title=Operation Failed
+APOC.pageerror.comment=You can find a stacktrace of this error as an HTML comment on this page.
+
+#*******************************************************************************
+# PolicyMgr Error Messages
+#
+#*******************************************************************************
+
+APOC.error.occurred=An error occurred.
+APOC.error.open.connection=The connection for the user could not be established.
+APOC.error.close.connection=An error occurred while closing the connetion.
+APOC.error.user.invalid=The username is invalid.
+APOC.error.unsupported.datastore=The datastore type specified in the bootstrapping information is not supported.
+APOC.error.application.initialize=The application cannot be initialized.
+APOC.error.bootstrap.incomplete=The bootstrapping information is incomplete.
+APOC.error.bootstrap.unavailable=The bootstrapping information is unavailable.
+APOC.error.ldap.bootstrap=The bootstrapping information for the LDAP directory server is incomplete.
+APOC.error.org.settings=The organization settings are invalid in the metaconfiguration.
+APOC.error.role.settings=The role settings are invalid in the metaconfiguration.
+APOC.error.user.settings=The user settings are invalid in the metaconfiguration.
+APOC.error.create.parser=The XML parser cannot be created.
+APOC.error.filter=The filter is syntactically incorrect.
+APOC.error.policy.read=The policy data cannot be read.
+APOC.error.policy.data.invalid=The policy data is invalid.
+APOC.error.policy.invalid=The policy is invalid.
+APOC.error.path.invalid=The path is invalid.
+APOC.error.userprofile.attribute=The attribute is not part of the user profile.
+APOC.error.locale.support=This locale is not supported.
+APOC.error.ldap.read=An LDAP read error occurred.
+APOC.error.ldap.write=An LDAP write error occurred.
+APOC.error.ldap.search=An LDAP error occurred during the search.
+APOC.error.ldap.results.size=An LDAP error occurred during the search because the number of resulting entries was larger than the limit set by the LDAP server.
+APOC.error.ldap.policygroup.creation=An LDAP error occurred during the creation of the profile.
+APOC.error.ldap.policygroup.deletion=An LDAP error occurred during the deletion of the profile.
+APOC.error.ldap.policygroup.rename=An LDAP error occurred during the renaming of the profile.
+APOC.error.unprotect.item=The item cannot be unprotected because the parent item is protected.
+APOC.error.readonly.item=A read-only item cannot be edited.
+APOC.error.mandatory.remove=A mandatory item cannot be removed.
+APOC.error.comply.constraints=The value does not comply with property constraints.
+APOC.error.nillable=The item is not nillable.
+APOC.error.mandatory.setting=The mandatory setting cannot be changed for this item.
+APOC.error.policygroup.priority.exists=A profile with this priority already exists.
+APOC.error.policygroup.name.exists=A profile with this name already exists.
+APOC.error.policygroup.not.exists=The profile does not exist.
+APOC.error.priorities.incorrect=The profile priorities are incorrect.
+APOC.error.policygroup.invalid=The profile is invalid.
+APOC.error.host.invalid=The host name is invalid.
+APOC.error.domain.settings=The domain settings are invalid in the metaconfiguration.
+APOC.error.host.settings=The host settings are invalid in the metaconfiguration.
+APOC.error.export.policygroup=An error occurred while exporting the profile.
+APOC.error.import.policygroup=An error occurred while importing the profile.
+APOC.error.export.policygroup_data=There is no profile data available for export.
+APOC.error.import.policygroup_data=There is no profile data available for import.
+
+#*******************************************************************************
+# Profile Window Profile
+#
+#*******************************************************************************
+
+APOC.profilewnd.buttons.save=Save
+APOC.profilewnd.buttons.close=Close
+
+# General Settings Tab
+APOC.profilewnd.general.tab=General Properties
+APOC.profilewnd.general.title=General Settings
+APOC.profilewnd.general.help=Specify the general properties for this profile.
+APOC.profilewnd.general.name=Name
+APOC.profilewnd.general.namecol=Name:
+APOC.profilewnd.general.comment=Comment
+APOC.profilewnd.general.commentcol=Comment:
+APOC.profilewnd.general.applicable=Applicable from
+APOC.profilewnd.general.browse=Change...
+APOC.profilewnd.general.pending=Pending Changes
+APOC.profilewnd.general.author=Author
+APOC.profilewnd.general.modified=Last Modified
+APOC.profilewnd.general.new_profile_instructions=You are about to create a new profile. This is basically a three step process:<br><br>1. Define a unique name for the profile (see below).<br>2. Configure several default and/or mandatory (enforced) settings (see "Configuration Settings" tab).<br>3. Assign the new profile to the desired {0} and/or {1} (see "Assigned Elements" tab).
+APOC.profilewnd.lc_domains=domains
+APOC.profilewnd.lc_hosts=hosts
+APOC.profilewnd.lc_orgs=organizations
+APOC.profilewnd.lc_users=users
+APOC.profilewnd.creating_new=Creating a new profile
+
+# Assignees Tab
+APOC.profilewnd.assignees.tab=Assigned Elements
+APOC.profilewnd.assignees.title=Assigned Elements
+APOC.profilewnd.assignees.help=Assign elements to this profile.
+APOC.profilewnd.assignees.noorgs=No elements assigned.
+APOC.profilewnd.assignees.assign=Assign Element...
+APOC.profilewnd.assignees.unassign=Unassign Element
+APOC.profilewnd.assignees.nameColumn=Name
+
+# Configuration Settings Tab
+APOC.profilewnd.settings.tab=Configuration Settings
+APOC.profilewnd.settings.title=Configuration Settings
+APOC.profilewnd.settings.Enable=Enable
+APOC.profilewnd.settings.Disable=Disable
+APOC.profilewnd.settings.Edit=Edit Values...
+APOC.profilewnd.settings.title.help=Select one of the categories listed below.
+APOC.profilewnd.settings.Actions=Advanced...
+APOC.profilewnd.settings.more=&#8212;&nbsp;More Actions&nbsp;&#8212;
+APOC.profilewnd.settings.enforce=Enforce
+APOC.profilewnd.settings.unenforce=Reset enforcement
+APOC.profilewnd.settings.undo=Undo Pending Changes
+APOC.profilewnd.settings.default=Restore Default
+APOC.profilewnd.settings.nameColumn=Name
+APOC.profilewnd.settings.valueColumn=Value
+APOC.profilewnd.settings.enabledColumn=Enabled
+APOC.profilewnd.settings.enforcedColumn=Enforced
+APOC.profilewnd.settings.pendingColumn=Pending Changes
+APOC.profilewnd.settings.overwrite=Users May Overwrite
+APOC.profilewnd.settings.defaultLabel=Default:
+APOC.profilewnd.settings.setToDefaultLabel=Set to Default
+
+# Configuration Tree
+APOC.profilewnd.tree.view.all=All
+APOC.profilewnd.tree.view.pending=Pending Changes
+APOC.profilewnd.advanced.tab=Advanced Options
+APOC.profilewnd.advanced.pagetitle_help=Specify advanced options such as merge order for profiles.
+APOC.profilewnd.advanced.merge_order=Merge Order:
+APOC.profilewnd.buttons.save.help=Saves the changes.
+APOC.profilewnd.buttons.close.help=Closes this window.
+APOC.profilewnd.buttons.ok_assign.help=Assigns the selected profile(s) to the current element.
+
+APOC.profilewnd.js.alert1=Unsaved changes exist in this page. Save the changes and close this window?
+APOC.profilewnd.js.alert2=Unsaved changes exist on this tab. Save the changes and proceed?
+APOC.profilewnd.js.alert3=Unsaved changes exist in this category. Save the changes and proceed?
+APOC.profilewnd.js.alert4=Unsaved changes exist in this page. Save changes and add new entry?
+APOC.profilewnd.js.alert5=Please enter a new list item:
+
+#Settings Summary
+APOC.profilewnd.summary.help=View the settings configured for this profile.
+
+# Add Context Wizard
+APOC.wiz.title=New Configuration Repository Wizard
+APOC.wiz.edit.title=Edit Configuration Respository Wizard
+APOC.wiz.steptext.2=Repository Details
+APOC.wiz.steptext.3=LDAP Details
+APOC.wiz.steptext.4=LDAP Credentials
+APOC.wiz.steptext.5=LDAP Server Type
+APOC.wiz.steptext.6=LDAP Metaconfiguration Options
+APOC.wiz.steptext.7=LDAP Metaconfiguration Editor
+APOC.wiz.steptext.8=Base DN Selection
+APOC.wiz.steptext.9=Base DN
+APOC.wiz.steptext.10=Review
+APOC.wiz.steptext.11=Results
+APOC.wiz.steptext.12=Data Directory Selection
+APOC.wiz.steptext.13=Existing Installation Options
+APOC.wiz.steptext.14=Migrate Profile Information
+APOC.wiz.steptext.15=LDAP Administrator Credentials
+APOC.wiz.help.2=<p>Choose the name of the repository and the hierarchy and storage type to use for the Domain and Organization elements in the repository, either a pure LDAP based configuration repository, pure File-Based or Hybrid.</p><p>In a pure LDAP configuration repository all information regarding organizational hierarchy, profile settings and profile assignments is stored on an LDAP server, similarly for a pure File-Based configuration repository all information is stored in a user-specified directory on the machine where the Sun Java Web Console is installed.<br>In a Hybrid configuration repository the organizational hierarchy information is taken from the LDAP server but all profile settings and profile assignments are stored as in a File-Based repository.</p>
+APOC.wiz.help.3=<p>Type the hostname and port of the LDAP server that you want to use for your LDAP configuration repository.</p><p>If you want to configure an LDAP server that is using SSL then check the "Use SSL" checkbox.</p>
+APOC.wiz.help.4=<p>If Anonymous Access cannot be used to read from the LDAP server then a password and fully qualified DN for a user with read access should be entered in the "User DN" and "User Password" fields.<br>This information is retained and is needed to allow users login to this configuration repository using their uid rather than fully qualified DNs.</p>
+APOC.wiz.help.5=<p>Choose the type of LDAP server being configured. This information is needed to decide the default metaconfiguration to provide for the server.</p><p>The metaconfiguration defines the attributes and objectclasses used to identify LDAP elements - Users, Roles, Organizations, Domains and Hosts.</p>
+APOC.wiz.help.6=<p>Choose whether or not you want to edit the default metaconfiguration.</p><p>The metaconfiguration defines the attributes and objectclasses used to identify LDAP entities - Users, Roles, Organizations, Domains and Hosts.</p>
+APOC.wiz.help.7=<p>Edit the metaconfiguration in the text area provided.</p><p>The metaconfiguration defines the attributes and objectclasses used to identify LDAP elements - Users, Roles, Organizations, Domains and Hosts.</p>
+APOC.wiz.help.8=<p>Choose the base DN you want to use for this configuration repository from the list provided.</p>
+APOC.wiz.help.9=<p>Choose the base DN you want to use for this configuration repository.</p>
+APOC.wiz.help.10=<p>Review the settings provided and press "Finish" to complete the creation of the new configuration repository.</p><p>Note that in the case of a pure LDAP installation pressing the "Finish" button will begin updating the LDAP server schema and adding a "services" branch to the LDAP hierarchy.</p>
+APOC.wiz.help.edit.10=<p>Review the settings provided and press "Finish" to complete the update of the existing configuration repository.</p><p>Note that in the case of a pure LDAP installation pressing the "Finish" button will begin updating the LDAP server schema and adding a "services" branch to the LDAP hierarchy.</p>
+APOC.wiz.help.11=<p>The results of the installation are shown in the area provided.</p>
+APOC.wiz.help.12=<p>Choose the directory in which you want to store the Profile and Assignment data for your configuration repository. The installation procedure will create directories for storing profile and assignment information called "profiles" and "assignments". In the case of a pure file-based repository, the hierarchy information is stored in an editable file called "entities.txt.". In the case of a hybrid repository, the metaconfigration which defines the attributes and objectclasses used to identify LDAP entities is stored in editable files called "OrganizationMapping.properties" and "UserProfileMapping.properties". </p>
+APOC.wiz.help.13=<p>An existing Desktop Manager configuration repository is installed in the specified directory. This repository may contain hierarchy, profile and assignment information which you want to keep, if so, choose to retain the existing installation data. Otherwise, to create a whole new repository, choose to overwrite the existing installation.</p>
+APOC.wiz.help.14=<p>The profile and assignment information is stored in a different location in LDAP in version 2.0 of the Desktop Manager from previous versions. Choose whether to migrate the profiles and assignments stored using the previous version of the Desktop Manager to the new location for this version. </p><p>Note that profiles stored using previous versions will still be visible through the Desktop Manager but the storage location in LDAP will remain unchanged - migrating the profiles helps maintain a cleaner LDAP server by not having version 1.x profile information stored in one location and version 2.0 profile information stored in different location.</p>
+APOC.wiz.help.15=<p>Enter the DN and password of a user with read/write access to the LDAP server in the "Administrator DN" and "Administrator Password" fields.<br>These credentials are used only for the installation of the required schema, attributes, objectclasses and entities required on an LDAP server by the Desktop Manager. They are not retained.</p>
+APOC.wiz.help.15a=<p>Enter the DN and password of a user with read/write access to the LDAP server in the "Administrator DN" and "Administrator Password" fields.<br>These credentials are used only for migrating the profiles and assignment information on the LDAP server. They are not retained.</p>
+APOC.wiz.instruction.2=Choose the name of the repository and select the hierarchy and storage options to use for the Domain and Organization elements.
+APOC.wiz.instruction.3=Enter the details of the LDAP server that you want to configure for this repository. The Hostname and Port on which the server runs are required. You can also choose whether or not to connect to this server using SSL.
+APOC.wiz.instruction.4=In order to allow users to login to the repository using their uid instead of fully qualified DN you must either have Anonymous Access enabled or else a password and fully qualified DN for a user with read access should be entered in the appropiate "User DN" and "User Password" fields.
+APOC.wiz.instruction.5=Different brands of LDAP server require different installation procedures. Select the LDAP server type to be used for the new configuration repository.
+APOC.wiz.instruction.6=The metaconfiguration defines the attributes and objectclasses used to identify LDAP entities i.e. Users, Roles, Organizations, Domains and Hosts. Suitable values are provided by default but users are free to add their own values if they wish. Choose whether or not you want to edit the default metaconfiguration used for this type of LDAP server.
+APOC.wiz.instruction.7=Edit the default metaconfiguration in the textarea below.
+APOC.wiz.instruction.8=The list below contains all the Base DNs available on the specified LDAP Server. Select the Base DN to be used for this Configuration Repository.
+APOC.wiz.instruction.9=A valid Base DN on the specified LDAP server is required to install a Configuration Repository. Enter the Base DN to be used for this Configuration Repository.
+APOC.wiz.instruction.10=Review the settings entered. Click Finish to complete the creation of the new configuration repository.
+APOC.wiz.instruction.edit.10=Review the settings entered. Click Finish to complete the update of the existing configuration repository.
+APOC.wiz.instruction.11=
+APOC.wiz.instruction.12=Select the directory in which to store the Profile and Assignment data for this configuration repository.
+APOC.wiz.instruction.13=An existing Desktop Manager configuration repository has been found in the specified directory. Choose whether to use the existing data in this directory for this installation or to delete all information and create a fresh repository.
+APOC.wiz.instruction.14=A previous version of the Desktop Manager has been found on this LDAP server. Choose whether to migrate the profile and assignment information stored using this previous version to the new location used for storage in this installation.
+APOC.wiz.instruction.15=The configuration procedure will require extension of the LDAP schema and the addition of a new branch in the LDAP tree. Therefore, the DN and password of a user with suitable access rights to the LDAP server must be provided in the "Administrator DN" and "Administrator Password" fields.
+APOC.wiz.instruction.15a=Migrating the storage location of profiles requires modifications of the existing LDAP tree. Therefore, the DN and password of a user with suitable access rights to the LDAP server must be provided in the "Administrator DN" and "Administrator Password" fields
+APOC.wiz.placeholder=[Steps determined by choice(s) in preceding step.]
+
+APOC.wiz.2.name=Repository Name:
+APOC.wiz.2.type=Repository Type:
+APOC.wiz.2.ldap=LDAP: LDAP Hierarchy and Storage
+APOC.wiz.2.file=File-Based: File-Based Hierarchy and Storage
+APOC.wiz.2.hybrid=Hybrid: LDAP Hierarchy and File-Based Storage
+APOC.wiz.2.alert=Please enter a name for the new configuration repository.
+APOC.wiz.3.host=Host:
+APOC.wiz.3.port=Port:
+APOC.wiz.3.ssl=Use SSL
+APOC.wiz.3.alert1={0} is an invalid LDAP port number! The port number must be an integer between 0 and 65535.
+APOC.wiz.3.alert2=Unable to connect to an LDAP server on {0}!
+APOC.wiz.4.admin.dn=Administrator DN:
+APOC.wiz.4.admin.pw=Administrator Password:
+APOC.wiz.4.anon=Use Anonymous Access
+APOC.wiz.4.user.dn=User DN:
+APOC.wiz.4.user.pw=User Password:
+APOC.wiz.4.alert1=Unable to authenticate as {0} to {1} using the specified password!
+APOC.wiz.4.alert3={0} does not have the necessary permissions to read from {1}! Please provide the credentials for a user with read permissions for the server.
+APOC.wiz.5.type=Type of LDAP Server:
+APOC.wiz.5.sun=Sun ONE Directory Server
+APOC.wiz.5.openldap=OpenLDAP
+APOC.wiz.5.ad=Active Directory
+APOC.wiz.5.other=Other
+APOC.wiz.6.question=Do you want to adapt the metaconfiguration:
+APOC.wiz.6.no=No
+APOC.wiz.6.yes=Yes
+APOC.wiz.7.adapt=Adapt the metaconfiguration below:
+APOC.wiz.8.basedn=Select BaseDN:
+APOC.wiz.8.alert=The base DN {0} does not exist on the server {1}! The LDAP server is misconfigured. Reconfigure the server and restart the wizard!
+APOC.wiz.9.basedn=Enter the BaseDN of the LDAP Server:
+APOC.wiz.9.alert=The base DN {0} does not exist on the server {1}! Please check your LDAP server and enter an existing base DN.
+APOC.wiz.10.anonymous=Anonymous
+APOC.wiz.10.vendor=Vendor Name:
+APOC.wiz.10.metaconfig=MetaConfiguration:
+APOC.wiz.10.basedn=Base DN:
+APOC.wiz.10.path=File-Based Data Directory:
+APOC.wiz.10.migrate=Migrate Profiles:
+APOC.wiz.10.orgdom.section=Domain and Organization Information:
+APOC.wiz.10.general.section=General Information:
+APOC.wiz.10.noaction=The existing server at {0} is already configured for the Desktop Manager. No further action is required for it. Click the Finish button to complete the Configuration Repository creation and add this entry to the Configuration Repositories table.
+APOC.wiz.10.edit.noaction=The existing server at {0} is already configured for the Desktop Manager. No further action is required for it. Click the Finish button to complete updating the details for this Configuration Repository.
+APOC.wiz.10.alert=The schema for an {0} server must be manually extended with the Desktop Manager schema before continuing!
+APOC.wiz.10.fail1= - Error updating the schema attributes and objectclasses for the specified LDAP Server.
+APOC.wiz.10.fail2= - Error creating the services branch in the specified LDAP server.
+APOC.wiz.10.fail3= - Error writing the metaconfiguration attributes in the specified LDAP server.
+APOC.wiz.10.fail4= - Unable to add the {0} attribute to the entry {1}.
+APOC.wiz.10.fail5= - Error deleting the existing installation.
+APOC.wiz.10.fail6= - Error updating the configuration file of the configuration repository: {0}.
+APOC.wiz.10.fail7=Please ensure that {0} can authenticate and has write access to {1}.
+APOC.wiz.10.fail8= - Error creating default hierarchy structure file.
+APOC.wiz.10.fail9= - Error creating the metaconfiguration files.
+APOC.wiz.10.fail10= - Error migrating the profile for the element {0}.
+APOC.wiz.11.title=New Configuration Repository Successfully Created
+APOC.wiz.11.text=The new configuration repository you have just created will now be available to you. To access this new configuration repository, click on its name in the Configuration Repositories table. If the currently logged in user is not an administrator for this configuration repository then you will be prompted to login with valid administrator credentials.
+APOC.wiz.11.alert.title=New Configuration Repository Creation Failed
+APOC.wiz.11.edit.title=Configuration Repository Successfully Updated
+APOC.wiz.11.edit.text=The configuration repository you have just updated will now be available to you. To access this configuration repository, click on its name in the Configuration Repositories table. If the currently logged in user is not an administrator for this configuration repository then you will be prompted to login with valid administrator credentials.
+APOC.wiz.11.alert.edit.title=Configuration Repository Update Failed
+APOC.wiz.12.alert1={0} does not exist!
+APOC.wiz.12.alert2={0} is not a directory!
+APOC.wiz.12.alert3=Cannot write to directory {0}!
+APOC.wiz.13.existing=Choose an action:
+APOC.wiz.13.overwrite=Overwrite the existing data and create a new installation
+APOC.wiz.13.update=Retain the existing installation data
+APOC.wiz.14.existing=Migrate profile and assignment information:
+APOC.wiz.14.username=Username (of user with write access):
+APOC.wiz.14.password=Password:
+APOC.wiz.ldap.err.nosuchattr=LDAPException (16): The specified attribute could not be found.
+APOC.wiz.ldap.err.valueexists=LDAPException (20): The value that you are adding to an attribute already exists in the attribute.
+APOC.wiz.ldap.err.attrsyntax=LDAPException (21): The request contains invalid syntax.
+APOC.wiz.ldap.err.nosuchobj=LDAPException (32): The entry specified in the request does not exist.
+APOC.wiz.ldap.err.invaliddn=LDAPException (34): The specified distinguished name (DN) uses invalid syntax.
+APOC.wiz.ldap.err.invalidcred=LDAPException (49): The credentials presented to the server for authentication are not valid.
+APOC.wiz.ldap.err.noaccessrights=LDAPException (50): The client is authenticated as a user who does not have the access privileges to perform this operation.
+APOC.wiz.ldap.err.entryexists=LDAPException (68): The specified entry already exists.
+APOC.wiz.ldap.err.serverdown=LDAPException (81): The LDAP server cannot be contacted.
+APOC.wiz.ldap.err.timeout=LDAPException (85): The operation could not be completed within the maximum time limit.
+APOC.wiz.ldap.err.connecterror=LDAPException (91): Your LDAP client failed to connect to the LDAP server.
+
+#Copy Move Wizard
+APOC.wiz.copy.copymove=Copy and Move...
+APOC.wiz.copy.copymove.tooltip=Copy or Move a Profile.
+APOC.wiz.copy.copymove.disabled.tooltip=Copy or Move a Profile (Unavailable).
+APOC.wiz.copy.title=Copy and Move Wizard
+APOC.wiz.copy.steptext.1=Choose a source profile
+APOC.wiz.copy.steptext.2=Choose action
+APOC.wiz.copy.steptext.3=Choose a target element
+APOC.wiz.copy.instruction.1=Choose a source configuration repository and a source profile from within this configuration repository to copy or move.
+APOC.wiz.copy.instruction.2=Select the action to take on the specified profile. Choose whether or not to ignore assignments for this profile.
+APOC.wiz.copy.instruction.3=Choose a target configuration repository and a target element from within this configuration repository to copy or move to.
+APOC.wiz.copy.instruction.4=Review the settings entered. Click Finish to copy/move the profile.
+APOC.wiz.copy.help.1=<p>Choose the configuration repository that contains the profile you want to copy/move by clicking the 'Change...' button and selecting the required configuration repository from the list.</p><p>Similarly choose the profile you want to copy/move by clicking the 'Change...' button and selecting the required profile from the list.</p>
+APOC.wiz.copy.help.2=<p>Choose which action to perform on the selected profile.</p><p>Choose whether or not to ignore the existing assignments that this profile has when performing the specified action.</p>
+APOC.wiz.copy.help.3=<p>Choose the configuration repository that you want to copy/move to by clicking the 'Change...' button and selecting the required configuration repository from the list.</p><p>Similarly choose the element you want to copy/move to by clicking the 'Change...' button and selecting the required element from the list.</p>
+APOC.wiz.copy.source.context=Source Repository:
+APOC.wiz.copy.source.profile=Source Profile:
+APOC.wiz.copy.1.alert=A source profile must be selected!
+APOC.wiz.copy.2.alert=The authenticated user {0} does not have the required permissions to move the source profile {1}!
+APOC.wiz.copy.select.action=Select Action:
+APOC.wiz.copy.copy=Copy
+APOC.wiz.copy.move=Move
+APOC.wiz.copy.assignments=Include Assignments
+APOC.wiz.copy.target.context=Target Repository:
+APOC.wiz.copy.target.entity=Target Element:
+APOC.wiz.copy.3.alert=A target element must be selected!
+APOC.wiz.copy.action=Action:
+APOC.wiz.copy.assignments.assignments=Include Assignments:
+APOC.wiz.copy.3.alert1=Cannot move a profile if the source and target element are the same!
+APOC.wiz.copy.3.alert2=The profile {0} cannot be {1}! A profile with the same name already exists at the target element {2}.
+APOC.wiz.copy.3.alert3=The authenticated user {0} does not have the required permissions to {1} the profile {2} to the element {3}!
+APOC.wiz.copy.4.alert=The profile {0} cannot be {1}! The profile is assigned to at least one element which is located above the target element {2}.
+APOC.wiz.copy.copyof=Copy {0} of {1}
+APOC.wiz.copy.overview.title=Copy and Move Wizard Overview
+APOC.wiz.copy.overview.text=<p>Profiles can be stored at any element within your organizational hierarchy, the Copy and Move Wizard will guide you through the steps necessary for either creating a copy of a profile which is stored under one element in a new storage location under a different element or moving the storage location of a profile from one element to another. There are certain restrictions to be aware of when using the Include Assignments option in your copy/move action, namely that a profile is only allowed to be assigned to an element which is located at or below the storage location of that profile. You will be asked to provide:</p><p><ul><li>A Source Configuration Repository and Source Profile.</li><li>An Action to perform and whether to also include profile assignments when executing this Action.</li><li>A Target Configuration Repository and Target Element</li></ul></p><p>Once you have provided the above information the wizard will perform the requested action on the selected profile.</p>
+APOC.wiz.copy.steptext.overview=Overview
+APOC.wiz.copy.results.text.assigned=The profile {0} has been {1} to a new storage location at the element {2} and has been assigned to this element.
+APOC.wiz.copy.results.text.unassigned=The profile {0} has been {1} to a new storage location at the element {2}.
+APOC.wiz.copy.results.title=Profile {0} Successfully
+APOC.wiz.copy.results.alert.title=Profile {0} Failed
+APOC.wiz.copy.results.copied=Copied
+APOC.wiz.copy.results.moved=Moved
+APOC.wiz.copy.results.copied.lc=copied
+APOC.wiz.copy.results.moved.lc=moved
+APOC.wiz.copy.4.fail1=Error copying profile.
+APOC.wiz.copy.4.fail2=Error deleting profile.
+APOC.wiz.copy.4.fail3=Error setting new profile display name.
+APOC.wiz.copy.4.fail4=Error assigning new profile to target element.
+
+# Browse Tree
+APOC.browse.title.org=Select an Organization
+APOC.browse.title.dom=Select a Domain
+APOC.browse.title=Select an Element
+APOC.browse.title.text=Navigate the tree and select the desired element. Click on the 'OK' button to confirm your selection.
+APOC.browse.cancel.help=Cancel the selection and close the window.
+APOC.browse.ok.help=Confirm the selection and close the window.
+APOC.browse.tree.nav=Tree Navigation
+
+#*******************************************************************************
+# Syncronization
+#*******************************************************************************
+APOC.sync.title=Synchronization
+APOC.sync.help=This page allows you to synchronize two Configuration Repositories.
+APOC.sync.sourcerep.label=Source Configuration Repository:
+APOC.sync.sourcerep.help=Menu of available configuration repositories.
+APOC.sync.sourcepath.label=Source Starting Point:
+APOC.sync.sourcepath.button=Change...
+APOC.sync.sourcepath.help=Opens a window that lets you change the source context path.
+APOC.sync.targetrep.label=Target Configuration Repository:
+APOC.sync.targetrep.help=Menu of available configuration repositories.
+APOC.sync.targetpath.label=Target Starting Point:
+APOC.sync.targetpath.button=Change...
+APOC.sync.targetpath.help=Opens a window that lets you change the target context path.
+APOC.sync.sync.button=Synchronize
+APOC.sync.sync.help=Synchronizes the listed profiles according to the selected actions.
+APOC.sync.reset.button=Reset
+APOC.sync.reset.help=Resets the actions to the default actions suggested by the Configuration Manager.
+APOC.sync.cancel.help=Closes this window.
+APOC.sync.login.title=Context Login
+APOC.sync.login.pagetitle=Login - Source Configuration Repository
+APOC.sync.login.pagetitle2=Login - Target Configuration Repository
+APOC.sync.login.pagehelp=The Configuration Manager allows you to administrate multiple configuration repositories which may require individual logins. The credentials you used to log in to the Java Web Console are defaulted if they can be reused. This login page is not shown if you successfully authenticated to the configuration repository already during this session. If you want to login with different credentials to a configuration repository you need to log out from the Java Web Console which ends the session.
+APOC.sync.compare.button=Compare
+APOC.sync.compare.help=Compares the source with the target.
+APOC.sync.result.empty=No differences found.
+APOC.sync.result.summary=This table lists the differences between the source and the target configuration repository.
+APOC.sync.result.title=Profiles
+APOC.sync.result.title2=Different Profile(s)
+APOC.sync.result.help0=About the Synchronization
+APOC.sync.result.help1=This window allows you to synchronize two configuration repositories.
+APOC.sync.result.help2=You can change the source repository which serves as source for the changes. This repository is not changed. Optionally you can restrict the source repository by specifying an element other than the root as starting point for the synchronization.
+APOC.sync.result.help3=You can change the target repository which serves as target for the changes. This repository is changed. Optionally you can restrict the target repository by specifying an element other than the root as starting point for the synchronization.
+APOC.sync.result.help4=After you have specified the source and target trees click the "Compare" button. The two trees are compared and all differences are listed in a table. Tick the table rows containing the profiles you want to synchronize and press the "Synchronize" button.
+APOC.sync.result.help5=When the synchronization is finished the target repository matches the source repository regarding the selected profiles.
+APOC.sync.busymsg.text=Processing...
+APOC.sync.result.column1=Profile
+APOC.sync.result.column2=Actions on Target Repository
+APOC.sync.action.copycontent=Copy contents.
+APOC.sync.action.copycomment=Copy comments.
+APOC.sync.action.alignassign=Align assignments.
+APOC.sync.action.changeprios=Change priorities.
+APOC.sync.action.create=Create the profile with content and assignments.
+APOC.sync.action.delete=Delete the profile.
+APOC.sync.msg.orgdomcomapre=You cannot compare an organization tree with a domain tree.
+APOC.sync.msg.noprofiles=No profiles found.
+APOC.sync.msg.allequal=All compared profiles are equal, a synchronization is not necessary.
+APOC.sync.msg.nocompare=Profiles have been found but none of them could be compared.
+APOC.sync.msg.partialcompare=At least one profile found couldn't be compared.
+APOC.sync.msg.compare.detail=For a profile to be compared the relative path from the starting point to its storage location must exist in the other repository.
+APOC.sync.waitmsg.prepare=Preparing
+APOC.sync.waitmsg.retsource=Retrieving source profiles
+APOC.sync.waitmsg.rettarget=Retrieving target profiles
+APOC.sync.waitmsg.prepx=Preparing profile comparison ({0} profiles prepared)
+APOC.sync.waitmsg.compx=Comparing profiles ({0} of {1} profiles compared)
+APOC.sync.waitmsg.sync=Synchronizing profiles ({0} of {1} profiles synchronized)
+APOC.sync.waitmsg.time=Elapsed Time: {0}:{1}.{2}
+
+APOC.tabs.tree.title=Profiles - Tree View
+APOC.tabs.tree.help=Shows the assigned profiles in the organization and domain tree.
+APOC.tabs.all.title=Profiles - All
+APOC.tabs.all.help=Shows a list of all profiles.
+
+APOC.find.title=Find
+APOC.find.button=Find
+
+#*******************************************************************************
+# Contexts
+#*******************************************************************************
+APOC.contexts.title=Configuration Repositories
+APOC.contexts.details.title=Configuration Repository Details
+APOC.contexts.details.name=Repository Name
+APOC.contexts.details.domorg.info=Location of the Domain/Organization Information
+APOC.contexts.details.domorg.profile.info=Storage Location of the Domain/Organization Data
+APOC.contexts.details.property=Property
+APOC.contexts.details.view=View Details
+APOC.contexts.help=The configuration repository is the storage location for the configuration data that you need to configure your applications.
+APOC.contexts.table.title=Configuration Repositories
+APOC.contexts.config.error=Unable to access the selected repository. There is a syntax error in the configuration file {0}.
+APOC.contexts.table.summary=This table lists all available Configuration Repositories. The 'Type' column lists the type of the repository. The 'Location of Organization Data' column lists URLs pointing to the storage location which provides the organizational data. The 'Location of Profile Data' column lists URLs pointing to the storage location which provides the profile data. Click on the name link to use that Configuration Repository.
+APOC.contexts.details.table.summary=This table lists the properties of the selected Configuration Repository. The name, location of hierarchy information and the location of storage information are listed.
+APOC.contexts.table.empty=No configuration repository available. Use the 'New...' button to create a new configuration repository.
+APOC.contexts.menu.create=Create...
+APOC.contexts.menu.remove=Remove...
+APOC.contexts.menu.rename=Rename...
+APOC.contexts.menu.synchronize=Synchronize...
+APOC.contexts.column.name=Name
+APOC.contexts.column.type=Type
+APOC.contexts.column.locorg=Location of Organization Data
+APOC.contexts.column.locpro=Location of Profile Data
+APOC.contexts.hybrid.text=hybrid
+APOC.contexts.create.button=Create a Configuration Repository
+APOC.contexts.login.context=Configuration Repository:
+APOC.contexts.login.title=Configuration Repositories - Login
+APOC.contexts.login.help=The Configuration Manager allows you to administrate multiple configuration repositories which may require individual logins. The credentials you used to log in to the Java Web Console are defaulted if they can be reused. This login page is not shown if you successfully authenticated to the configuration repository already during this session. If you want to login with different credentials to a configuration repository you need to log out from the Java Web Console which ends the session.
+APOC.select.contexts.login.help=In order to select a new configuration repository you must provide new login credentials. The credentials previously used to log in to the chosen repository are defaulted if they are available.
+APOC.relocate.error.summary=Operation cancelled!
+APOC.relocate.error.detail=At least one organization or domain this profile is assigned to would be located above the new location of the profile.
+APOC.relocate.trace.text=No stacktrace available.
+
diff --git a/src/com/sun/apoc/manager/resource/apoc_manager_en_US.properties b/src/com/sun/apoc/manager/resource/apoc_manager_en_US.properties
new file mode 100644
index 0000000..b0407f1
--- /dev/null
+++ b/src/com/sun/apoc/manager/resource/apoc_manager_en_US.properties
@@ -0,0 +1,998 @@
+#*******************************************************************************
+#
+# $RCSfile: apoc_manager_en_US.properties,v $
+#
+# Description: Resource bundle for the Sun Java(tm) Desktop System
+# Configuration Manager
+#
+# Last change: $Date: 2007/03/06 11:54:39 $ $Revision: 1.82 $
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use of this
+# product is subject to license terms.
+#
+#*******************************************************************************
+
+#*******************************************************************************
+# Common
+#
+#*******************************************************************************
+
+APOC.framelongdesc=This application has a three frame structure. The Masthead Frame is across the top of the page. The Navigation Frame is on the left side and allows you to navigate through the Users and Hosts. Selecting an element in the Navigation Frame causes an update to the Content Frame, or both the Content Frame and the Navigation Frame. The Content Area is on the right and it displays information on the currently selected element.
+APOC.so7=StarOffice 7
+APOC.button.remove=Remove
+APOC.button.close=Close
+APOC.button.OK=OK
+APOC.button.cancel=Cancel
+APOC.button.browse=Change...
+APOC.headings.name=Name
+APOC.login.username=User Name:
+APOC.login.password=Password:
+APOC.infoAlert.success=The action has been completed successfully.
+APOC.noframes=Frames are required to use this application.
+APOC.settings.notset=-- Not Set --
+APOC.profiles.profile=Profile
+APOC.help.more.on=>> More on {0}
+APOC.help.more=>> More
+APOC.pool.renameContextMessage=Enter the new name of the repository:
+APOC.pool.removeContextMessage=Do you want to delete the selected configuration repository?
+APOC.helpwindow.tooltip=Help (Opens a New Window)
+
+#*******************************************************************************
+# Masthead
+#
+#*******************************************************************************
+
+APOC.frame.masthead=Masthead Frame
+APOC.masthead.altTextVer=Sun Desktop Manager 1.0.1
+APOC.masthead.altText=Sun Desktop Manager 1.0.1
+APOC.masthead.altTextForSub={0}
+APOC.masthead.packages.alt=Policy Packages (Opens a New Window)
+APOC.masthead.path.link=Repositories
+APOC.masthead.path.help=Return to Configuration Repository Page
+
+#*******************************************************************************
+# Packages Dialog Strings
+#
+#*******************************************************************************
+
+APOC.packages.title=Policy Packages
+APOC.packages.introtext=You can install or uninstall policy packages here. Policy packages are provided by Sun Microsystems or 3rd-party vendors and contain additional policies to be used within the {0}.
+APOC.packages.tabletitle=Installed Policy Packages
+APOC.packages.headings.adddate=Add Date
+APOC.packages.action.file=Install from Server...
+APOC.packages.action.url=Install from Client...
+APOC.packages.action.uninstall=Uninstall
+APOC.packages.uninstall.confirm=Are you sure you want to uninstall the selected package?
+APOC.packages.filechooser.addfile=Install Policy Package from Server File
+APOC.packages.filechooser.button=Choose File
+APOC.packages.localchooser.title=Install Policy Package from Local File
+APOC.packages.localchooser.upload=Upload
+APOC.packages.localchooser.choosetext=File to Upload:
+
+#*******************************************************************************
+# Users Page Tab
+#
+#*******************************************************************************
+
+APOC.users.title=Users
+APOC.users.introtext=This tab page lists the users which are members of the selected role. The 'path' column lists the absolute paths.
+APOC.users.tableSummary=This table lists the users which are members of the selected role. The 'path' column lists the absolute paths. Click a user name to select that user in the left frame.
+
+#*******************************************************************************
+# Roles Page Tab
+#
+#*******************************************************************************
+
+APOC.roles.title=Roles
+APOC.roles.introtext=This tab page lists the roles of which the selected user is a member. The 'path' column lists the absolute paths.
+APOC.roles.tableSummary=This table lists the roles of which the selected user is a member. The 'path' column lists the absolute paths. Click a role name to select that role in the left frame.
+
+#*******************************************************************************
+# Assignees Page Tab
+#
+#*******************************************************************************
+
+APOC.assignees.title=Assignees
+APOC.assignees.introtext=This tab page lists the entities to which the selected profile has been assigned. The 'path' column lists the absolute paths.
+APOC.assignees.tableSummary=This table lists the entities to which the selected profile has been assigned. The 'path' column lists the absolute paths. Click an element's name to select that element in the left frame.
+
+#*******************************************************************************
+# Profiles Tab page
+#
+#*******************************************************************************
+
+APOC.policysets.title=Assigned Profiles
+APOC.policysets.label=Profiles:
+APOC.policysets.introtext=On this tab page, you can assign profiles to the element you have selected.
+APOC.policysets.save=Save
+APOC.policysets.infoAlert.saveSuccess=The changes in profile assignments have been saved.
+
+#*******************************************************************************
+# Policies Tab page
+#
+#*******************************************************************************
+
+APOC.policies.title=Assigned Policies
+APOC.policies.subcategories=Subcategories
+APOC.policies.nameCol=Name
+APOC.policies.commentCol=Comment
+APOC.policies.actionCol=Action
+APOC.policies.toggle.button=Toggle Action
+APOC.policies.introtext=This page lists the configuration policy tree and the configured settings for the seleted element.
+APOC.policies.tableSummary=This table lists the available policies. Every row contains the name of the policy and a short description. Click a name to drill-down to its subpolicies.
+APOC.properties.tableSummary=This table lists the configuration settings. Every row contains the property status, name and value.
+APOC.policies.stateCol=State
+APOC.policies.value=Value
+APOC.policies.value.notconfig=Not Configured
+APOC.policies.value.config=Configured
+APOC.policies.status=Status
+APOC.policies.root=Policies
+APOC.policies.actions=&#8212;&nbsp;Policy Actions&nbsp;&#8212;
+APOC.policies.actions.protect=Protect
+APOC.policies.actions.unprotect=Unprotect
+APOC.policies.actions.default=Apply Default
+APOC.policies.actions.clear=Clear
+APOC.policies.enable=Enable
+APOC.policies.enabled=Enabled
+APOC.policies.disabled=Disabled
+APOC.policies.clear.button=Clear Settings
+APOC.policies.createrep.button=Create Report...
+APOC.policies.createrep.tooltip=Create Report (Opens a New Window)
+APOC.policies.clear.confirmation=This action will delete all setttings in this layer and all layers below it. Do you really want to continue?
+APOC.policies.backToTop=Back to top
+APOC.policies.backToTop.tooltip=Back to Top
+APOC.policies.jumpDown.tooltip={0} (Jumps down to this section)
+APOC.policies.save.button=Save
+APOC.policies.reset.button=Reset
+APOC.policies.navigation.table.empty=No policies are assigned.
+APOC.policies.set.table.empty=No entries were found.
+APOC.policies.new.button=New...
+APOC.policies.delete.button=Delete
+APOC.policies.name.question=Please enter a name for the new entry.
+APOC.policies.rename.set=Please enter the new name for the entry.
+APOC.policies.status.defined_here=The item is defined in this layer.
+APOC.policies.status.defined_above=The item is defined in a layer above.
+APOC.policies.status.noprotection=No protection status.
+APOC.policies.status.nodefinition=No definition status.
+APOC.policies.status.jumpto=Click this link to go to {0}.
+APOC.policies.status.protected_here=The item is protected in this layer.
+APOC.policies.status.protected_above=The item is protected in a layer above.
+APOC.policies.status.policygroup=Profile {0}
+APOC.policies.info.general=The action has been completed successfully.
+APOC.policies.info.stored=All settings have been stored.
+APOC.policies.info.removed=All settings have been removed.
+APOC.policies.error.general=An error occurred.
+APOC.policies.error.removing=Error removing settings: {0}
+APOC.policies.error.storing=Error storing settings: {0}
+APOC.policies.confirmation.storechanges=You have made several changes. Would you like to store your changes now?
+APOC.policies.info.readonly.access=This page is read-only, because you do not have the necessary access rights to make any modifications.
+APOC.policies.info.readonly.maybe=At least one of the displayed profiles is read-only, because you do not have the necessary access rights to make any modifications.
+APOC.policies.info.readonly.roles=This page is read-only because local policies cannot be assigned to roles.
+APOC.policies.edit.button=Edit...
+APOC.policies.include_in=Include in
+APOC.policies.exclude_from=Exclude from
+APOC.policies.footnote=* Indicates default values automatically used by the application if no other setting is explicitly defined.
+APOC.policies.settings_title=Settings (Profile {0})
+
+#*******************************************************************************
+# Content Area
+#
+#*******************************************************************************
+
+APOC.frame.contentarea=Content Area Frame
+APOC.catabs.policy.des=Policies (Opens Tab Page)
+APOC.catabs.policysets.des=Assigned Profiles (Opens Tab Page)
+APOC.catabs.users.des=Users (Opens Tab Page)
+APOC.catabs.roles.des=Roles (Opens Tab Page)
+APOC.catabs.assignees.des=Assignees (Opens Tab Page)
+APOC.ca.backtop=Back to top
+APOC.ca.locale=Locale
+APOC.ca.path=Path
+
+#*******************************************************************************
+# Help
+#
+#*******************************************************************************
+
+APOC.help.helpTooltip=Help (Opens a New Window)
+APOC.help.windowTitle=Help
+
+#*******************************************************************************
+# Navigation Area Common
+#
+#*******************************************************************************
+
+APOC.navigation.search=Search
+APOC.navigation.reset=Reset
+APOC.navigation.search.help=Opens a window that lets you issue a search.
+APOC.navigation.edit.help=Enter your search string.
+APOC.navigation.close=Close
+APOC.navigation.organization=Organization
+APOC.navigation.organization.with=Organization with assignments
+APOC.navigation.organizations=Organizations
+APOC.navigation.organizations.help=Root of the organization tree.
+APOC.navigation.user=User
+APOC.navigation.user.with=User with assignments
+APOC.navigation.users=Users
+APOC.navigation.role=Role
+APOC.navigation.role.with=Role with assignments
+APOC.navigation.roles=Roles
+APOC.navigation.domain=Domain
+APOC.navigation.domain.with=Domain with assignments
+APOC.navigation.domains=Domains
+APOC.navigation.domains.help=Root of the domain tree.
+APOC.navigation.host=Host
+APOC.navigation.host.with=Host with assignments
+APOC.navigation.hosts=Hosts
+APOC.navigation.name=Name
+APOC.navigation.actions=Actions
+APOC.navigation.view=View
+APOC.navigation.view.tooltip=Shows this Element in the Right Frame
+APOC.navigation.area=Navigation Pane
+APOC.navigation.empty=No entities are available.
+APOC.navigation.name.label=Name:
+APOC.navigation.type=Type
+APOC.navigation.userTooltip=Users (Opens Users Tab Page)
+APOC.navigation.hostTooltip=Hosts (Opens Hosts Tab Page)
+APOC.navigation.breadcrumb.tooltip=Back to {0}
+APOC.navigation.show=Show:
+APOC.navigation.showDirsOnly=Directories Only
+APOC.navigation.showAll=All
+APOC.navigation.ellipsis=... some elements not displayed
+APOC.navigation.openfind=Opens the find window
+APOC.navigation.search.target.alert1=The target window for the selection could not be determined.\\nPlease close the search window and reopen it again from the intended target window.
+
+#*******************************************************************************
+# Navigation Area User Tree Tab
+#
+#*******************************************************************************
+
+APOC.usertree.title=Organization Tree
+APOC.usertree.tooltip=Organization Tree (Opens Organization Tree Tab Page)
+APOC.usertree.tableSummary=This table provides a list of the children of the current organisation. Every row contains the name of the child, its type (organization, user or role) and a link. Click the link to display the content of the organization in the frame on the right.
+
+#*******************************************************************************
+# Navigation Area Host Tree Tab
+#
+#*******************************************************************************
+
+APOC.hosttree.title=Domain Tree
+APOC.hosttree.tooltip=Domain Tree (Opens Domain Tree Tab Page)
+APOC.hosttree.tableSummary=This table provides a list of the children of the current domain. Every row contains the name of the child, its type (can be domain or user) and a view link to show its content in the right frame.
+
+#*******************************************************************************
+# Navigation Area Entities Table Filter
+#
+#*******************************************************************************
+
+APOC.entityfilter.titleUsers=Advanced Filter - Users
+APOC.entityfilter.titleHosts=Advanced Filter - Hosts
+APOC.entityfilter.help.title=Help
+APOC.entityfilter.type.label=Type:
+APOC.entityfilter.filter=Filter
+APOC.entityfilter.placeholder=<name to filter on>
+
+#*******************************************************************************
+# Set Color Dialog
+#
+#*******************************************************************************
+
+APOC.setcolor.edit.alt=Edit Palette (Opens a New Window)
+APOC.setcolor.title=Edit Palette
+APOC.setcolor.introtext=The current color is listed in the central column. This color may then be added to the palette using the add or replace color buttons. Names may be associated with colors by entering a name in the "Name" field. Save your changes to the palette by clicking "OK" when you are finished.
+APOC.setcolor.palette.heading=Color Palette:
+APOC.setcolor.color.heading=Color:
+APOC.setcolor.color.alt=Current Color is {0}
+APOC.setcolor.red.heading=Red:
+APOC.setcolor.red.increase=Increase Red
+APOC.setcolor.red.decrease=Decrease Red
+APOC.setcolor.green.heading=Green:
+APOC.setcolor.green.increase=Increase Green
+APOC.setcolor.green.decrease=Decrease Green
+APOC.setcolor.blue.heading=Blue:
+APOC.setcolor.blue.increase=Increase Blue
+APOC.setcolor.blue.decrease=Decrease Blue
+APOC.setcolor.hue.heading=Hue:
+APOC.setcolor.hue.increase=Increase Hue
+APOC.setcolor.hue.decrease=Decrease Hue
+APOC.setcolor.sat.heading=Sat:
+APOC.setcolor.sat.increase=Increase Saturation
+APOC.setcolor.sat.decrease=Decrease Saturation
+APOC.setcolor.lum.heading=Lum:
+APOC.setcolor.lum.increase=Increase Luminance
+APOC.setcolor.lum.decrease=Decrease Luminance
+APOC.setcolor.html.heading=Hex Value:
+APOC.setcolor.original.heading=Original Color:
+APOC.setcolor.original.alt=Original Color is {0}.
+APOC.setcolor.wheel.heading=Color Spectrum:
+APOC.setcolor.wheel.alt=Click on image to select color from spectrum, hue on the x-axis and saturation on the y-axis. Clicking on a particular color in the spectrum will update the central column to contain that color.
+APOC.setcolor.slider.summary=Click anywhere in this table to adjust the luminance of the current color. The luminance decreases from right to left.
+APOC.setcolor.add.button=Add Color >
+APOC.setcolor.replace.button=Replace Color >
+APOC.setcolor.remove.button=Delete Color
+APOC.setcolor.remove.alert=The selected tile does not contain a stored palette color and thus cannot be removed.
+APOC.setcolor.name.alert=The specified color name is already in use, please choose a different color name.
+APOC.setcolor.restoreorigcolor.button=Restore Color
+APOC.setcolor.restore.button=Restore Defaults
+APOC.setcolor.restore.confirm=Do you really want to restore the default colors?
+APOC.setcolor.increase.tooltip=Increase
+APOC.setcolor.decrease.tooltip=Decrease
+APOC.setcolor.tooltip=Edit Colors dialog (opens in a new window)
+APOC.setcolor.replace.alert=Use the Add Color button if you wish to add an additional color.
+APOC.setcolor.add.alert=Use the Replace Color button if you wish to replace an existing color.
+APOC.setcolor.noname=No Name
+APOC.setcolor.invalid.hex=The hex value is invalid please enter a valid value
+
+#*******************************************************************************
+# Chooser
+#
+#*******************************************************************************
+
+APOC.page.chooser.list.editor=Edit List
+APOC.page.chooser.list.help=Add or remove elements that are shown in the drop-down menu in the content pane by editing the list below. Remove all user changes from the list by clicking the 'Restore Defaults' button. Save the changes to the list by clicking the 'OK' button.
+APOC.chooser.add=Add
+APOC.chooser.system_added=(*) Denotes an element added to the list by the system. Elements are added to the list by the system if they are a default value or the element is the stored value for a currently displayed property
+APOC.chooser.protected.alert=This element cannot be removed from the list because it is either a default value or it is the stored value for a setting on this page
+APOC.chooser.selected.alert=This element cannot be removed from the list because it is the currently selected value for a property on this page
+APOC.chooser.edit.alt=Edit List (Opens a New Window)
+APOC.font.chooser.title=Edit Font List
+APOC.window.border.chooser.title=Edit Windows Border Theme List
+APOC.window.controls.chooser.title=Edit Controls Theme List
+APOC.window.icon.chooser.title=Edit Icon Theme List
+
+#*******************************************************************************
+# Navigation Area Repository Tab
+#
+#*******************************************************************************
+
+APOC.pool.title=Policy Repository
+APOC.pool.all_profiles=All Profiles
+APOC.pool.all_profiles.help=This tab page lists all profiles.
+APOC.pool.all_domain_profiles=All Domain Profiles
+APOC.pool.all_org_profiles=All Organization Profiles
+APOC.pool.tooltip=Policy Repository (Opens Policy Repository Tab Page)
+APOC.pool.sets=Assigned Profiles
+APOC.pool.setsHost=Host Profiles
+APOC.pool.priority=Priority
+APOC.pool.actions=&#8212;&nbsp;Profile Actions&nbsp;&#8212;
+APOC.pool.new=New...
+APOC.pool.delete=Delete...
+APOC.pool.import=Import...
+APOC.pool.export=Export...
+APOC.pool.rename=Rename...
+APOC.pool.edit=Edit Priorities...
+APOC.pool.add_assignment=Assign Profile
+APOC.pool.available_profiles=Available Profiles
+APOC.pool.add_assignment_help=You can use this window to assign profiles.
+APOC.pool.new_button.help=Creates a new profile.
+APOC.pool.delete_button.help=Deletes a profile.
+APOC.pool.assign_button.help=Opens a new windows that lets you select the profile to be assigned.
+APOC.pool.unassign_button.help=Revokes the assignment of the selected profile(s) with the current Organization.
+APOC.pool.report_button.help=Opens a window which contains the report.
+APOC.pool.tableSummary=This table provides a list of the global profiles. Every row contains the name of the profile, its priority and a link. Click the link to display the content of the profile in the frame on the right.
+APOC.pool.empty=No profiles are available.
+APOC.pool.deleteMessage=Do you really want to delete the selected profiles?
+APOC.pool.tableSummary=This table provides a list of profiles. Every row contains the name of the profile, its author and the date of its last modification. Click on the name to display the content of the profile.
+APOC.pool.empty=No profiles are available.
+APOC.pool.deleteMessage=Do you really want to delete the selected profile?
+APOC.pool.newMessage=Enter the name of the new profile:
+APOC.pool.newDefault=NewPolicyGroup
+APOC.pool.renameMessage=Enter the new name of the profile:
+APOC.pool.help.title=Policy Repository Help
+APOC.pool.help.text1=The policy repository is used to store your profiles. A profile is a named container for policies. The name of a profile has to be unique.
+APOC.pool.help.text2=After creating a new profile you can store configuration settings in it and add this profile to any organization, user, role, domain or host. This is done by viewing the element in the navigation pane and selecting the "Profiles" tab page in the content pane.
+APOC.pool.help.text3=Although the use of profiles is not necessary for configuration management, profiles allow you to manage configuration settings in a more flexible way. For example, you can create the profile "Novice", store configuration settings suitable for novices in that profile and add that profile to any member of the organization or domain tree.
+APOC.pool.import.tooltip=Import a Profile into the Repository.
+APOC.pool.export.tooltip=Export a Profile.
+APOC.pool.rename.tooltip=Rename a Profile.
+APOC.pool.import.disabled.tooltip=Import a Profile into the Repository (Unavailable).
+APOC.pool.export.disabled.tooltip=Export a Profile (Unavailable).
+APOC.pool.rename.disabled.tooltip=Rename a Profile (Unavailable).
+
+#*******************************************************************************
+# Navigation Area Priorities
+#
+#*******************************************************************************
+
+APOC.prios.title=Profile Priorities
+APOC.prios.help=This tab page allows you to change the priorities of the profiles. The priorities define the merge order of the profiles when more than one profile with the same applicability is assigned to an element.
+APOC.prios.up=Move Up
+APOC.prios.down=Move Down
+
+#*******************************************************************************
+# Navigation Area Profile Import
+#
+#*******************************************************************************
+
+APOC.groupimport.title=Import Profile from Local File
+APOC.groupimport.help=Select a local profile file to import into the current configuration repository
+APOC.groupimport.choosetext=File to Import:
+APOC.groupimport.defaulttext=<filename>
+APOC.groupimport.import=Import
+APOC.groupimport.error.zip=Error: The file must be in Zip format.
+APOC.importwnd.js.overwrite_alert=A profile with this name already exists. Overwrite this profile?
+APOC.groupimport.importing=Importing Profiles
+
+#*******************************************************************************
+# Navigation Area Search
+#
+#*******************************************************************************
+
+APOC.search.search=Search
+APOC.search.param.help=This search covers the entire tree.
+APOC.search.userid.label=User ID:
+APOC.search.firstname.label=First Name:
+APOC.search.lastname.label=Last Name:
+APOC.search.point.label=Starting Point:
+APOC.search.perpage.label=Results displayed per page:
+APOC.search.results=Results
+APOC.search.result.help=This page lists the search results. The path column lists the path relative to the starting point.
+APOC.search.entitiesFound=Elements Found
+APOC.search.param.title.help=Specify the parameters for the search.
+APOC.search.usersFound=Users Found
+APOC.search.rolesFound=Roles Found
+APOC.search.organizationsFound=Organizations Found
+APOC.search.domainsFound=Domains Found
+APOC.search.hostsFound=Hosts Found
+APOC.search.all=Search All
+APOC.search.users=Search Users
+APOC.search.roles=Search Roles
+APOC.search.organizations=Search Organizations
+APOC.search.domains=Search Domains
+APOC.search.hosts=Search Hosts
+APOC.search.tableSummary=This table provides a list of search results. Every row contains the name of the element, its type (organization, user or role) and its full path. Click a name to select that element in the left frame of the main application window.
+APOC.search.path=Path
+APOC.search.userid=User ID
+APOC.search.title.text=Search
+APOC.search.search.help=Searches the repository.
+APOC.search.reset.help=Resets the search parameters to the defaults.
+APOC.search.cancel.help=Closes this window.
+APOC.search.advanced.show.button=Show Advanced Options
+APOC.search.advanced.show.help=Shows the advanced options.
+APOC.search.advanced.hide.button=Hide Advanced Options
+APOC.search.advanced.hide.help=Hides the advanced options.
+APOC.search.advanced.start.label=Search Area:
+APOC.search.advanced.restrict.label=Restrict to:
+APOC.search.advanced.browse.help=Opens a window that lets you change the path which determines the starting point for the search.
+APOC.search.advanced.start.label=Search Area:
+APOC.search.help.title=About the Search
+APOC.search.help.text1=The search is not case-sensitive and not strict, e.g. the search string "bc" will match "ABC" and "bcd".
+APOC.search.help.text2=An asterisk (*) denotes an arbitrary sequence of characters within a search string. You can use more than one asterisk at any location in the search string.
+APOC.search.help.text3=An empty field is equivalent to a field with the search string "*". By default the maximum number of results returned is 100, however, this parameter is configurable. Please consult the Installation Guide for more details.
+APOC.search.help.inline=Enter the name. You can specify * as wildcard.
+APOC.search.help.inlineUser=Enter the user id. You can specify * as wildcard.
+
+#*******************************************************************************
+# Content Area - Profiles
+#*******************************************************************************
+APOC.profile.inherited.table=Inherited Profiles
+APOC.profile.page.title=This tab page lists the content of the selected element.
+APOC.profile.name.text=(Profile {0})
+APOC.profilemgr.assigned=Assigned
+APOC.profilemgr.assign=Assign Profile...
+APOC.profilemgr.pending=Changes Present
+APOC.profilemgr.author=Author
+APOC.profilemgr.lastMod=Last Modified
+APOC.profilemgr.delete=Delete
+APOC.profilemgr.moreActions=&#8212;&nbsp;More Actions&nbsp;&#8212;
+APOC.profilemgr.yes=Yes
+APOC.profileassi.unassign=Unassign Profile
+APOC.profileassi.manage=Manage Profiles...
+APOC.profileassi.release=Release Changes...
+APOC.profileassi.releaseNow=Release
+APOC.profileassi.showResults=Effective Settings...
+APOC.profileassi.title=Release Changes
+APOC.profileassi.table.empty=There are no profiles assigned.
+APOC.profileavail.title=Available Profiles
+APOC.profileavail.help=You can use this window to assign profiles.
+APOC.profileavail.assigning=Assigning Profiles
+APOC.profileall.title=All Profiles
+APOC.profileall.help=This tab page lists all profiles.
+APOC.profileall.domtable.title=All Domain Profiles
+APOC.profileall.orgtable.title=All Organization Profiles
+APOC.profile.search.profile=Search Profile
+APOC.profile.error.storing=Error storing profile.
+APOC.profile.assigned.delete=The profiles you selected are assigned to at least one element. \\n \\n Do you really want to delete these profiles?
+APOC.profile.unassigned.delete=All profile data for the selected profiles will be deleted. Do you want to proceed?
+APOC.profiles.default.msg=Indicates default value
+
+#*******************************************************************************
+# Configure Report
+#
+#*******************************************************************************
+
+APOC.configrep.title=Modify the Effective Settings Parameters
+APOC.configrep.help=Specify the parameters for generating effective settings. The elements involved in the generation of the effective settings can be defined using the list below. One element of each type can be chosen and the effective settings are the result of a merging of the policy settings contained in the assigned profiles for the chosen elements.
+APOC.configrep.effective.settings=Effective Settings
+APOC.configrep.columns=Show in the Settings Summary:
+APOC.configrep.statepath=Status Path
+APOC.configrep.des=Description
+APOC.configrep.reptype=Selected Profile Sources Merge Order
+APOC.configrep.orgtree=Select an Element from the Organization Tree:
+APOC.configrep.domtree=Select an Element from the Domain Tree:
+APOC.configrep.typeorg=Settings in the Organization Tree
+APOC.configrep.typedom=Settings in the Domain Tree
+APOC.configrep.typeboth=Settings in Both Trees
+APOC.configrep.button.report=Generate Effective Settings
+
+#*******************************************************************************
+# Report
+#
+#*******************************************************************************
+APOC.report.button.tooltip=Opens a window which contains the report.
+APOC.report.onetree.title=Effective Settings for the {0} "{1}" on host "{2}"
+APOC.report.twotree.title=Effective Settings for the {0} "{1}" & the {2} "{3}" on host "{4}"
+APOC.report.multipletree.title=Effective Settings for the {0} on host "{1}"
+APOC.report.involved.profiles.entity={0} Profiles
+APOC.report.locorg={0} is an Organization below {1}.
+APOC.report.locrole={0} is a Role below {1}.
+APOC.report.locuserid={0} is a User below {1}.
+APOC.report.lochost={0} is a Host below {1} .
+APOC.report.locdomain={0} is a Domain below {1}.
+APOC.report.rootlocorg={0} is an Organization.
+APOC.report.rootlocuserid={0} is a User.
+APOC.report.rootlocrole={0} is a Role.
+APOC.report.rootlochost={0} is a Host.
+APOC.report.rootlocdomain={0} is a Domain.
+APOC.report.policygrouploc={0} is a Profile.
+APOC.report.bothand=and
+APOC.report.creator=Creator is {0} on {1}.
+APOC.report.createdate=Creation date is {0}.
+APOC.report.backendtype=Backend type is {0}.
+APOC.report.backendhost=Backend host is {0}.
+APOC.report.unknown=Unknown
+APOC.report.startcat=Start category is {0}.
+APOC.report.contitle=Table of Contents
+APOC.report.isbelow=is below {0}
+APOC.report.table.summary=This table lists the configuration settings. Each row contains the property status, name and value.
+APOC.report.table.nameheading=Name
+APOC.report.table.valueheading=Value
+APOC.report.table.statusheading=Status
+APOC.report.table.statuspheading=Status Path
+APOC.report.table.desheading=Description
+APOC.report.table.defined=Defined
+APOC.report.table.protected=Enforced
+APOC.report.table.readonly=Read-only
+APOC.report.table.defined.in=Defined in
+APOC.report.table.protected.in=Users May Not Overwrite
+APOC.report.table.readonly.in=Read-only In
+APOC.report.table.pathPG=Profile:
+APOC.report.table.empty={0} contain(s) no values.
+APOC.report.buttons.print=Print
+APOC.report.assigned.profiles.title=Profiles Involved
+APOC.report.settings.summary.title=Settings Summary
+APOC.report.addremove.elements=Elements Involved:
+APOC.report.elements.table.heading=Elements Involved
+APOC.report.elements.table.summary=This table specifies the elements involved in the generation of the effective settings results.
+APOC.report.elements.table.title=This list can be used to specify the elements involved in the generation of the effective settings.
+APOC.report.add.element=Add Element
+APOC.report.remove.element=Remove Element
+APOC.report.novalues=The elements involved contain no values.
+APOC.report.xml.parsing.error=XML parsing error while reading profile data!
+
+#*******************************************************************************
+# Full-Page Error Alert
+#
+#*******************************************************************************
+
+APOC.pageerror.title=Operation Failed
+APOC.pageerror.comment=You can find a stacktrace of this error as an HTML comment on this page.
+
+#*******************************************************************************
+# PolicyMgr Error Messages
+#
+#*******************************************************************************
+
+APOC.error.occurred=An error occurred.
+APOC.error.open.connection=The connection for the user could not be established.
+APOC.error.close.connection=An error occurred while closing the connetion.
+APOC.error.user.invalid=The username is invalid.
+APOC.error.unsupported.datastore=The datastore type specified in the bootstrapping information is not supported.
+APOC.error.application.initialize=The application cannot be initialized.
+APOC.error.bootstrap.incomplete=The bootstrapping information is incomplete.
+APOC.error.bootstrap.unavailable=The bootstrapping information is unavailable.
+APOC.error.ldap.bootstrap=The bootstrapping information for the LDAP directory server is incomplete.
+APOC.error.org.settings=The organization settings are invalid in the metaconfiguration.
+APOC.error.role.settings=The role settings are invalid in the metaconfiguration.
+APOC.error.user.settings=The user settings are invalid in the metaconfiguration.
+APOC.error.create.parser=The XML parser cannot be created.
+APOC.error.filter=The filter is syntactically incorrect.
+APOC.error.policy.read=The policy data cannot be read.
+APOC.error.policy.data.invalid=The policy data is invalid.
+APOC.error.policy.invalid=The policy is invalid.
+APOC.error.path.invalid=The path is invalid.
+APOC.error.userprofile.attribute=The attribute is not part of the user profile.
+APOC.error.locale.support=This locale is not supported.
+APOC.error.ldap.read=An LDAP read error occurred.
+APOC.error.ldap.write=An LDAP write error occurred.
+APOC.error.ldap.search=An LDAP error occurred during the search.
+APOC.error.ldap.results.size=An LDAP error occurred during the search because the number of resulting entries was larger than the limit set by the LDAP server.
+APOC.error.ldap.policygroup.creation=An LDAP error occurred during the creation of the profile.
+APOC.error.ldap.policygroup.deletion=An LDAP error occurred during the deletion of the profile.
+APOC.error.ldap.policygroup.rename=An LDAP error occurred during the renaming of the profile.
+APOC.error.unprotect.item=The item cannot be unprotected because the parent item is protected.
+APOC.error.readonly.item=A read-only item cannot be edited.
+APOC.error.mandatory.remove=A mandatory item cannot be removed.
+APOC.error.comply.constraints=The value does not comply with property constraints.
+APOC.error.nillable=The item is not nillable.
+APOC.error.mandatory.setting=The mandatory setting cannot be changed for this item.
+APOC.error.policygroup.priority.exists=A profile with this priority already exists.
+APOC.error.policygroup.name.exists=A profile with this name already exists.
+APOC.error.policygroup.not.exists=The profile does not exist.
+APOC.error.priorities.incorrect=The profile priorities are incorrect.
+APOC.error.policygroup.invalid=The profile is invalid.
+APOC.error.host.invalid=The host name is invalid.
+APOC.error.domain.settings=The domain settings are invalid in the metaconfiguration.
+APOC.error.host.settings=The host settings are invalid in the metaconfiguration.
+APOC.error.export.policygroup=An error occurred while exporting the profile.
+APOC.error.import.policygroup=An error occurred while importing the profile.
+APOC.error.export.policygroup_data=There is no profile data available for export.
+APOC.error.import.policygroup_data=There is no profile data available for import.
+
+#*******************************************************************************
+# Profile Window Profile
+#
+#*******************************************************************************
+
+APOC.profilewnd.buttons.save=Save
+APOC.profilewnd.buttons.close=Close
+
+# General Settings Tab
+APOC.profilewnd.general.tab=General Properties
+APOC.profilewnd.general.title=General Settings
+APOC.profilewnd.general.help=Specify the general properties for this profile.
+APOC.profilewnd.general.name=Name
+APOC.profilewnd.general.namecol=Name:
+APOC.profilewnd.general.comment=Comment
+APOC.profilewnd.general.commentcol=Comment:
+APOC.profilewnd.general.applicable=Applicable from
+APOC.profilewnd.general.browse=Change...
+APOC.profilewnd.general.pending=Pending Changes
+APOC.profilewnd.general.author=Author
+APOC.profilewnd.general.modified=Last Modified
+APOC.profilewnd.general.new_profile_instructions=You are about to create a new profile. This is basically a three step process:<br><br>1. Define a unique name for the profile (see below).<br>2. Configure several default and/or mandatory (enforced) settings (see "Configuration Settings" tab).<br>3. Assign the new profile to the desired {0} and/or {1} (see "Assigned Elements" tab).
+APOC.profilewnd.lc_domains=domains
+APOC.profilewnd.lc_hosts=hosts
+APOC.profilewnd.lc_orgs=organizations
+APOC.profilewnd.lc_users=users
+APOC.profilewnd.creating_new=Creating a new profile
+
+# Assignees Tab
+APOC.profilewnd.assignees.tab=Assigned Elements
+APOC.profilewnd.assignees.title=Assigned Elements
+APOC.profilewnd.assignees.help=Assign elements to this profile.
+APOC.profilewnd.assignees.noorgs=No elements assigned.
+APOC.profilewnd.assignees.assign=Assign Element...
+APOC.profilewnd.assignees.unassign=Unassign Element
+APOC.profilewnd.assignees.nameColumn=Name
+
+# Configuration Settings Tab
+APOC.profilewnd.settings.tab=Configuration Settings
+APOC.profilewnd.settings.title=Configuration Settings
+APOC.profilewnd.settings.Enable=Enable
+APOC.profilewnd.settings.Disable=Disable
+APOC.profilewnd.settings.Edit=Edit Values...
+APOC.profilewnd.settings.title.help=Select one of the categories listed below.
+APOC.profilewnd.settings.Actions=Advanced...
+APOC.profilewnd.settings.more=&#8212;&nbsp;More Actions&nbsp;&#8212;
+APOC.profilewnd.settings.enforce=Enforce
+APOC.profilewnd.settings.unenforce=Reset enforcement
+APOC.profilewnd.settings.undo=Undo Pending Changes
+APOC.profilewnd.settings.default=Restore Default
+APOC.profilewnd.settings.nameColumn=Name
+APOC.profilewnd.settings.valueColumn=Value
+APOC.profilewnd.settings.enabledColumn=Enabled
+APOC.profilewnd.settings.enforcedColumn=Enforced
+APOC.profilewnd.settings.pendingColumn=Pending Changes
+APOC.profilewnd.settings.overwrite=Users May Overwrite
+APOC.profilewnd.settings.defaultLabel=Default:
+APOC.profilewnd.settings.setToDefaultLabel=Set to Default
+
+# Configuration Tree
+APOC.profilewnd.tree.view.all=All
+APOC.profilewnd.tree.view.pending=Pending Changes
+APOC.profilewnd.advanced.tab=Advanced Options
+APOC.profilewnd.advanced.pagetitle_help=Specify advanced options such as merge order for profiles.
+APOC.profilewnd.advanced.merge_order=Merge Order:
+APOC.profilewnd.buttons.save.help=Saves the changes.
+APOC.profilewnd.buttons.close.help=Closes this window.
+APOC.profilewnd.buttons.ok_assign.help=Assigns the selected profile(s) to the current element.
+
+APOC.profilewnd.js.alert1=Unsaved changes exist in this page. Save the changes and close this window?
+APOC.profilewnd.js.alert2=Unsaved changes exist on this tab. Save the changes and proceed?
+APOC.profilewnd.js.alert3=Unsaved changes exist in this category. Save the changes and proceed?
+APOC.profilewnd.js.alert4=Unsaved changes exist in this page. Save changes and add new entry?
+APOC.profilewnd.js.alert5=Please enter a new list item:
+
+#Settings Summary
+APOC.profilewnd.summary.help=View the settings configured for this profile.
+
+# Add Context Wizard
+APOC.wiz.title=New Configuration Repository Wizard
+APOC.wiz.edit.title=Edit Configuration Respository Wizard
+APOC.wiz.steptext.2=Repository Details
+APOC.wiz.steptext.3=LDAP Details
+APOC.wiz.steptext.4=LDAP Credentials
+APOC.wiz.steptext.5=LDAP Server Type
+APOC.wiz.steptext.6=LDAP Metaconfiguration Options
+APOC.wiz.steptext.7=LDAP Metaconfiguration Editor
+APOC.wiz.steptext.8=Base DN Selection
+APOC.wiz.steptext.9=Base DN
+APOC.wiz.steptext.10=Review
+APOC.wiz.steptext.11=Results
+APOC.wiz.steptext.12=Data Directory Selection
+APOC.wiz.steptext.13=Existing Installation Options
+APOC.wiz.steptext.14=Migrate Profile Information
+APOC.wiz.steptext.15=LDAP Administrator Credentials
+APOC.wiz.help.2=<p>Choose the name of the repository and the hierarchy and storage type to use for the Domain and Organization elements in the repository, either a pure LDAP based configuration repository, pure File-Based or Hybrid.</p><p>In a pure LDAP configuration repository all information regarding organizational hierarchy, profile settings and profile assignments is stored on an LDAP server, similarly for a pure File-Based configuration repository all information is stored in a user-specified directory on the machine where the Sun Java Web Console is installed.<br>In a Hybrid configuration repository the organizational hierarchy information is taken from the LDAP server but all profile settings and profile assignments are stored as in a File-Based repository.</p>
+APOC.wiz.help.3=<p>Type the hostname and port of the LDAP server that you want to use for your LDAP configuration repository.</p><p>If you want to configure an LDAP server that is using SSL then check the "Use SSL" checkbox.</p>
+APOC.wiz.help.4=<p>If Anonymous Access cannot be used to read from the LDAP server then a password and fully qualified DN for a user with read access should be entered in the "User DN" and "User Password" fields.<br>This information is retained and is needed to allow users login to this configuration repository using their uid rather than fully qualified DNs.</p>
+APOC.wiz.help.5=<p>Choose the type of LDAP server being configured. This information is needed to decide the default metaconfiguration to provide for the server.</p><p>The metaconfiguration defines the attributes and objectclasses used to identify LDAP elements - Users, Roles, Organizations, Domains and Hosts.</p>
+APOC.wiz.help.6=<p>Choose whether or not you want to edit the default metaconfiguration.</p><p>The metaconfiguration defines the attributes and objectclasses used to identify LDAP entities - Users, Roles, Organizations, Domains and Hosts.</p>
+APOC.wiz.help.7=<p>Edit the metaconfiguration in the text area provided.</p><p>The metaconfiguration defines the attributes and objectclasses used to identify LDAP elements - Users, Roles, Organizations, Domains and Hosts.</p>
+APOC.wiz.help.8=<p>Choose the base DN you want to use for this configuration repository from the list provided.</p>
+APOC.wiz.help.9=<p>Choose the base DN you want to use for this configuration repository.</p>
+APOC.wiz.help.10=<p>Review the settings provided and press "Finish" to complete the creation of the new configuration repository.</p><p>Note that in the case of a pure LDAP installation pressing the "Finish" button will begin updating the LDAP server schema and adding a "services" branch to the LDAP hierarchy.</p>
+APOC.wiz.help.edit.10=<p>Review the settings provided and press "Finish" to complete the update of the existing configuration repository.</p><p>Note that in the case of a pure LDAP installation pressing the "Finish" button will begin updating the LDAP server schema and adding a "services" branch to the LDAP hierarchy.</p>
+APOC.wiz.help.11=<p>The results of the installation are shown in the area provided.</p>
+APOC.wiz.help.12=<p>Choose the directory in which you want to store the Profile and Assignment data for your configuration repository. The installation procedure will create directories for storing profile and assignment information called "profiles" and "assignments". In the case of a pure file-based repository, the hierarchy information is stored in an editable file called "entities.txt.". In the case of a hybrid repository, the metaconfigration which defines the attributes and objectclasses used to identify LDAP entities is stored in editable files called "OrganizationMapping.properties" and "UserProfileMapping.properties". </p>
+APOC.wiz.help.13=<p>An existing Desktop Manager configuration repository is installed in the specified directory. This repository may contain hierarchy, profile and assignment information which you want to keep, if so, choose to retain the existing installation data. Otherwise, to create a whole new repository, choose to overwrite the existing installation.</p>
+APOC.wiz.help.14=<p>The profile and assignment information is stored in a different location in LDAP in version 2.0 of the Desktop Manager from previous versions. Choose whether to migrate the profiles and assignments stored using the previous version of the Desktop Manager to the new location for this version. </p><p>Note that profiles stored using previous versions will still be visible through the Desktop Manager but the storage location in LDAP will remain unchanged - migrating the profiles helps maintain a cleaner LDAP server by not having version 1.x profile information stored in one location and version 2.0 profile information stored in different location.</p>
+APOC.wiz.help.15=<p>Enter the DN and password of a user with read/write access to the LDAP server in the "Administrator DN" and "Administrator Password" fields.<br>These credentials are used only for the installation of the required schema, attributes, objectclasses and entities required on an LDAP server by the Desktop Manager. They are not retained.</p>
+APOC.wiz.help.15a=<p>Enter the DN and password of a user with read/write access to the LDAP server in the "Administrator DN" and "Administrator Password" fields.<br>These credentials are used only for migrating the profiles and assignment information on the LDAP server. They are not retained.</p>
+APOC.wiz.instruction.2=Choose the name of the repository and select the hierarchy and storage options to use for the Domain and Organization elements.
+APOC.wiz.instruction.3=Enter the details of the LDAP server that you want to configure for this repository. The Hostname and Port on which the server runs are required. You can also choose whether or not to connect to this server using SSL.
+APOC.wiz.instruction.4=In order to allow users to login to the repository using their uid instead of fully qualified DN you must either have Anonymous Access enabled or else a password and fully qualified DN for a user with read access should be entered in the appropiate "User DN" and "User Password" fields.
+APOC.wiz.instruction.5=Different brands of LDAP server require different installation procedures. Select the LDAP server type to be used for the new configuration repository.
+APOC.wiz.instruction.6=The metaconfiguration defines the attributes and objectclasses used to identify LDAP entities i.e. Users, Roles, Organizations, Domains and Hosts. Suitable values are provided by default but users are free to add their own values if they wish. Choose whether or not you want to edit the default metaconfiguration used for this type of LDAP server.
+APOC.wiz.instruction.7=Edit the default metaconfiguration in the textarea below.
+APOC.wiz.instruction.8=The list below contains all the Base DNs available on the specified LDAP Server. Select the Base DN to be used for this Configuration Repository.
+APOC.wiz.instruction.9=A valid Base DN on the specified LDAP server is required to install a Configuration Repository. Enter the Base DN to be used for this Configuration Repository.
+APOC.wiz.instruction.10=Review the settings entered. Click Finish to complete the creation of the new configuration repository.
+APOC.wiz.instruction.edit.10=Review the settings entered. Click Finish to complete the update of the existing configuration repository.
+APOC.wiz.instruction.11=
+APOC.wiz.instruction.12=Select the directory in which to store the Profile and Assignment data for this configuration repository.
+APOC.wiz.instruction.13=An existing Desktop Manager configuration repository has been found in the specified directory. Choose whether to use the existing data in this directory for this installation or to delete all information and create a fresh repository.
+APOC.wiz.instruction.14=A previous version of the Desktop Manager has been found on this LDAP server. Choose whether to migrate the profile and assignment information stored using this previous version to the new location used for storage in this installation.
+APOC.wiz.instruction.15=The configuration procedure will require extension of the LDAP schema and the addition of a new branch in the LDAP tree. Therefore, the DN and password of a user with suitable access rights to the LDAP server must be provided in the "Administrator DN" and "Administrator Password" fields.
+APOC.wiz.instruction.15a=Migrating the storage location of profiles requires modifications of the existing LDAP tree. Therefore, the DN and password of a user with suitable access rights to the LDAP server must be provided in the "Administrator DN" and "Administrator Password" fields
+APOC.wiz.placeholder=[Steps determined by choice(s) in preceding step.]
+
+APOC.wiz.2.name=Repository Name:
+APOC.wiz.2.type=Repository Type:
+APOC.wiz.2.ldap=LDAP: LDAP Hierarchy and Storage
+APOC.wiz.2.file=File-Based: File-Based Hierarchy and Storage
+APOC.wiz.2.hybrid=Hybrid: LDAP Hierarchy and File-Based Storage
+APOC.wiz.2.alert=Please enter a name for the new configuration repository.
+APOC.wiz.3.host=Host:
+APOC.wiz.3.port=Port:
+APOC.wiz.3.ssl=Use SSL
+APOC.wiz.3.alert1={0} is an invalid LDAP port number! The port number must be an integer between 0 and 65535.
+APOC.wiz.3.alert2=Unable to connect to an LDAP server on {0}!
+APOC.wiz.4.admin.dn=Administrator DN:
+APOC.wiz.4.admin.pw=Administrator Password:
+APOC.wiz.4.anon=Use Anonymous Access
+APOC.wiz.4.user.dn=User DN:
+APOC.wiz.4.user.pw=User Password:
+APOC.wiz.4.alert1=Unable to authenticate as {0} to {1} using the specified password!
+APOC.wiz.4.alert3={0} does not have the necessary permissions to read from {1}! Please provide the credentials for a user with read permissions for the server.
+APOC.wiz.5.type=Type of LDAP Server:
+APOC.wiz.5.sun=Sun ONE Directory Server
+APOC.wiz.5.openldap=OpenLDAP
+APOC.wiz.5.ad=Active Directory
+APOC.wiz.5.other=Other
+APOC.wiz.6.question=Do you want to adapt the metaconfiguration:
+APOC.wiz.6.no=No
+APOC.wiz.6.yes=Yes
+APOC.wiz.7.adapt=Adapt the metaconfiguration below:
+APOC.wiz.8.basedn=Select BaseDN:
+APOC.wiz.8.alert=The base DN {0} does not exist on the server {1}! The LDAP server is misconfigured. Reconfigure the server and restart the wizard!
+APOC.wiz.9.basedn=Enter the BaseDN of the LDAP Server:
+APOC.wiz.9.alert=The base DN {0} does not exist on the server {1}! Please check your LDAP server and enter an existing base DN.
+APOC.wiz.10.anonymous=Anonymous
+APOC.wiz.10.vendor=Vendor Name:
+APOC.wiz.10.metaconfig=MetaConfiguration:
+APOC.wiz.10.basedn=Base DN:
+APOC.wiz.10.path=File-Based Data Directory:
+APOC.wiz.10.migrate=Migrate Profiles:
+APOC.wiz.10.orgdom.section=Domain and Organization Information:
+APOC.wiz.10.general.section=General Information:
+APOC.wiz.10.noaction=The existing server at {0} is already configured for the Desktop Manager. No further action is required for it. Click the Finish button to complete the Configuration Repository creation and add this entry to the Configuration Repositories table.
+APOC.wiz.10.edit.noaction=The existing server at {0} is already configured for the Desktop Manager. No further action is required for it. Click the Finish button to complete updating the details for this Configuration Repository.
+APOC.wiz.10.alert=The schema for an {0} server must be manually extended with the Desktop Manager schema before continuing!
+APOC.wiz.10.fail1= - Error updating the schema attributes and objectclasses for the specified LDAP Server.
+APOC.wiz.10.fail2= - Error creating the services branch in the specified LDAP server.
+APOC.wiz.10.fail3= - Error writing the metaconfiguration attributes in the specified LDAP server.
+APOC.wiz.10.fail4= - Unable to add the {0} attribute to the entry {1}.
+APOC.wiz.10.fail5= - Error deleting the existing installation.
+APOC.wiz.10.fail6= - Error updating the configuration file of the configuration repository: {0}.
+APOC.wiz.10.fail7=Please ensure that {0} can authenticate and has write access to {1}.
+APOC.wiz.10.fail8= - Error creating default hierarchy structure file.
+APOC.wiz.10.fail9= - Error creating the metaconfiguration files.
+APOC.wiz.10.fail10= - Error migrating the profile for the element {0}.
+APOC.wiz.11.title=New Configuration Repository Successfully Created
+APOC.wiz.11.text=The new configuration repository you have just created will now be available to you. To access this new configuration repository, click on its name in the Configuration Repositories table. If the currently logged in user is not an administrator for this configuration repository then you will be prompted to login with valid administrator credentials.
+APOC.wiz.11.alert.title=New Configuration Repository Creation Failed
+APOC.wiz.11.edit.title=Configuration Repository Successfully Updated
+APOC.wiz.11.edit.text=The configuration repository you have just updated will now be available to you. To access this configuration repository, click on its name in the Configuration Repositories table. If the currently logged in user is not an administrator for this configuration repository then you will be prompted to login with valid administrator credentials.
+APOC.wiz.11.alert.edit.title=Configuration Repository Update Failed
+APOC.wiz.12.alert1={0} does not exist!
+APOC.wiz.12.alert2={0} is not a directory!
+APOC.wiz.12.alert3=Cannot write to directory {0}!
+APOC.wiz.13.existing=Choose an action:
+APOC.wiz.13.overwrite=Overwrite the existing data and create a new installation
+APOC.wiz.13.update=Retain the existing installation data
+APOC.wiz.14.existing=Migrate profile and assignment information:
+APOC.wiz.14.username=Username (of user with write access):
+APOC.wiz.14.password=Password:
+APOC.wiz.ldap.err.nosuchattr=LDAPException (16): The specified attribute could not be found.
+APOC.wiz.ldap.err.valueexists=LDAPException (20): The value that you are adding to an attribute already exists in the attribute.
+APOC.wiz.ldap.err.attrsyntax=LDAPException (21): The request contains invalid syntax.
+APOC.wiz.ldap.err.nosuchobj=LDAPException (32): The entry specified in the request does not exist.
+APOC.wiz.ldap.err.invaliddn=LDAPException (34): The specified distinguished name (DN) uses invalid syntax.
+APOC.wiz.ldap.err.invalidcred=LDAPException (49): The credentials presented to the server for authentication are not valid.
+APOC.wiz.ldap.err.noaccessrights=LDAPException (50): The client is authenticated as a user who does not have the access privileges to perform this operation.
+APOC.wiz.ldap.err.entryexists=LDAPException (68): The specified entry already exists.
+APOC.wiz.ldap.err.serverdown=LDAPException (81): The LDAP server cannot be contacted.
+APOC.wiz.ldap.err.timeout=LDAPException (85): The operation could not be completed within the maximum time limit.
+APOC.wiz.ldap.err.connecterror=LDAPException (91): Your LDAP client failed to connect to the LDAP server.
+
+#Copy Move Wizard
+APOC.wiz.copy.copymove=Copy and Move...
+APOC.wiz.copy.copymove.tooltip=Copy or Move a Profile.
+APOC.wiz.copy.copymove.disabled.tooltip=Copy or Move a Profile (Unavailable).
+APOC.wiz.copy.title=Copy and Move Wizard
+APOC.wiz.copy.steptext.1=Choose a source profile
+APOC.wiz.copy.steptext.2=Choose action
+APOC.wiz.copy.steptext.3=Choose a target element
+APOC.wiz.copy.instruction.1=Choose a source configuration repository and a source profile from within this configuration repository to copy or move.
+APOC.wiz.copy.instruction.2=Select the action to take on the specified profile. Choose whether or not to ignore assignments for this profile.
+APOC.wiz.copy.instruction.3=Choose a target configuration repository and a target element from within this configuration repository to copy or move to.
+APOC.wiz.copy.instruction.4=Review the settings entered. Click Finish to copy/move the profile.
+APOC.wiz.copy.help.1=<p>Choose the configuration repository that contains the profile you want to copy/move by clicking the 'Change...' button and selecting the required configuration repository from the list.</p><p>Similarly choose the profile you want to copy/move by clicking the 'Change...' button and selecting the required profile from the list.</p>
+APOC.wiz.copy.help.2=<p>Choose which action to perform on the selected profile.</p><p>Choose whether or not to ignore the existing assignments that this profile has when performing the specified action.</p>
+APOC.wiz.copy.help.3=<p>Choose the configuration repository that you want to copy/move to by clicking the 'Change...' button and selecting the required configuration repository from the list.</p><p>Similarly choose the element you want to copy/move to by clicking the 'Change...' button and selecting the required element from the list.</p>
+APOC.wiz.copy.source.context=Source Repository:
+APOC.wiz.copy.source.profile=Source Profile:
+APOC.wiz.copy.1.alert=A source profile must be selected!
+APOC.wiz.copy.2.alert=The authenticated user {0} does not have the required permissions to move the source profile {1}!
+APOC.wiz.copy.select.action=Select Action:
+APOC.wiz.copy.copy=Copy
+APOC.wiz.copy.move=Move
+APOC.wiz.copy.assignments=Include Assignments
+APOC.wiz.copy.target.context=Target Repository:
+APOC.wiz.copy.target.entity=Target Element:
+APOC.wiz.copy.3.alert=A target element must be selected!
+APOC.wiz.copy.action=Action:
+APOC.wiz.copy.assignments.assignments=Include Assignments:
+APOC.wiz.copy.3.alert1=Cannot move a profile if the source and target element are the same!
+APOC.wiz.copy.3.alert2=The profile {0} cannot be {1}! A profile with the same name already exists at the target element {2}.
+APOC.wiz.copy.3.alert3=The authenticated user {0} does not have the required permissions to {1} the profile {2} to the element {3}!
+APOC.wiz.copy.4.alert=The profile {0} cannot be {1}! The profile is assigned to at least one element which is located above the target element {2}.
+APOC.wiz.copy.copyof=Copy {0} of {1}
+APOC.wiz.copy.overview.title=Copy and Move Wizard Overview
+APOC.wiz.copy.overview.text=<p>Profiles can be stored at any element within your organizational hierarchy, the Copy and Move Wizard will guide you through the steps necessary for either creating a copy of a profile which is stored under one element in a new storage location under a different element or moving the storage location of a profile from one element to another. There are certain restrictions to be aware of when using the Include Assignments option in your copy/move action, namely that a profile is only allowed to be assigned to an element which is located at or below the storage location of that profile. You will be asked to provide:</p><p><ul><li>A Source Configuration Repository and Source Profile.</li><li>An Action to perform and whether to also include profile assignments when executing this Action.</li><li>A Target Configuration Repository and Target Element</li></ul></p><p>Once you have provided the above information the wizard will perform the requested action on the selected profile.</p>
+APOC.wiz.copy.steptext.overview=Overview
+APOC.wiz.copy.results.text.assigned=The profile {0} has been {1} to a new storage location at the element {2} and has been assigned to this element.
+APOC.wiz.copy.results.text.unassigned=The profile {0} has been {1} to a new storage location at the element {2}.
+APOC.wiz.copy.results.title=Profile {0} Successfully
+APOC.wiz.copy.results.alert.title=Profile {0} Failed
+APOC.wiz.copy.results.copied=Copied
+APOC.wiz.copy.results.moved=Moved
+APOC.wiz.copy.results.copied.lc=copied
+APOC.wiz.copy.results.moved.lc=moved
+APOC.wiz.copy.4.fail1=Error copying profile.
+APOC.wiz.copy.4.fail2=Error deleting profile.
+APOC.wiz.copy.4.fail3=Error setting new profile display name.
+APOC.wiz.copy.4.fail4=Error assigning new profile to target element.
+
+# Browse Tree
+APOC.browse.title.org=Select an Organization
+APOC.browse.title.dom=Select a Domain
+APOC.browse.title=Select an Element
+APOC.browse.title.text=Navigate the tree and select the desired element. Click on the 'OK' button to confirm your selection.
+APOC.browse.cancel.help=Cancel the selection and close the window.
+APOC.browse.ok.help=Confirm the selection and close the window.
+APOC.browse.tree.nav=Tree Navigation
+
+#*******************************************************************************
+# Syncronization
+#*******************************************************************************
+APOC.sync.title=Synchronization
+APOC.sync.help=This page allows you to synchronize two Configuration Repositories.
+APOC.sync.sourcerep.label=Source Configuration Repository:
+APOC.sync.sourcerep.help=Menu of available configuration repositories.
+APOC.sync.sourcepath.label=Source Starting Point:
+APOC.sync.sourcepath.button=Change...
+APOC.sync.sourcepath.help=Opens a window that lets you change the source context path.
+APOC.sync.targetrep.label=Target Configuration Repository:
+APOC.sync.targetrep.help=Menu of available configuration repositories.
+APOC.sync.targetpath.label=Target Starting Point:
+APOC.sync.targetpath.button=Change...
+APOC.sync.targetpath.help=Opens a window that lets you change the target context path.
+APOC.sync.sync.button=Synchronize
+APOC.sync.sync.help=Synchronizes the listed profiles according to the selected actions.
+APOC.sync.reset.button=Reset
+APOC.sync.reset.help=Resets the actions to the default actions suggested by the Configuration Manager.
+APOC.sync.cancel.help=Closes this window.
+APOC.sync.login.title=Context Login
+APOC.sync.login.pagetitle=Login - Source Configuration Repository
+APOC.sync.login.pagetitle2=Login - Target Configuration Repository
+APOC.sync.login.pagehelp=The Configuration Manager allows you to administrate multiple configuration repositories which may require individual logins. The credentials you used to log in to the Java Web Console are defaulted if they can be reused. This login page is not shown if you successfully authenticated to the configuration repository already during this session. If you want to login with different credentials to a configuration repository you need to log out from the Java Web Console which ends the session.
+APOC.sync.compare.button=Compare
+APOC.sync.compare.help=Compares the source with the target.
+APOC.sync.result.empty=No differences found.
+APOC.sync.result.summary=This table lists the differences between the source and the target configuration repository.
+APOC.sync.result.title=Profiles
+APOC.sync.result.title2=Different Profile(s)
+APOC.sync.result.help0=About the Synchronization
+APOC.sync.result.help1=This window allows you to synchronize two configuration repositories.
+APOC.sync.result.help2=You can change the source repository which serves as source for the changes. This repository is not changed. Optionally you can restrict the source repository by specifying an element other than the root as starting point for the synchronization.
+APOC.sync.result.help3=You can change the target repository which serves as target for the changes. This repository is changed. Optionally you can restrict the target repository by specifying an element other than the root as starting point for the synchronization.
+APOC.sync.result.help4=After you have specified the source and target trees click the "Compare" button. The two trees are compared and all differences are listed in a table. Tick the table rows containing the profiles you want to synchronize and press the "Synchronize" button.
+APOC.sync.result.help5=When the synchronization is finished the target repository matches the source repository regarding the selected profiles.
+APOC.sync.busymsg.text=Processing...
+APOC.sync.result.column1=Profile
+APOC.sync.result.column2=Actions on Target Repository
+APOC.sync.action.copycontent=Copy contents.
+APOC.sync.action.copycomment=Copy comments.
+APOC.sync.action.alignassign=Align assignments.
+APOC.sync.action.changeprios=Change priorities.
+APOC.sync.action.create=Create the profile with content and assignments.
+APOC.sync.action.delete=Delete the profile.
+APOC.sync.msg.orgdomcomapre=You cannot compare an organization tree with a domain tree.
+APOC.sync.msg.noprofiles=No profiles found.
+APOC.sync.msg.allequal=All compared profiles are equal, a synchronization is not necessary.
+APOC.sync.msg.nocompare=Profiles have been found but none of them could be compared.
+APOC.sync.msg.partialcompare=At least one profile found couldn't be compared.
+APOC.sync.msg.compare.detail=For a profile to be compared the relative path from the starting point to its storage location must exist in the other repository.
+APOC.sync.waitmsg.prepare=Preparing
+APOC.sync.waitmsg.retsource=Retrieving source profiles
+APOC.sync.waitmsg.rettarget=Retrieving target profiles
+APOC.sync.waitmsg.prepx=Preparing profile comparison ({0} profiles prepared)
+APOC.sync.waitmsg.compx=Comparing profiles ({0} of {1} profiles compared)
+APOC.sync.waitmsg.sync=Synchronizing profiles ({0} of {1} profiles synchronized)
+APOC.sync.waitmsg.time=Elapsed Time: {0}:{1}.{2}
+
+APOC.tabs.tree.title=Profiles - Tree View
+APOC.tabs.tree.help=Shows the assigned profiles in the organization and domain tree.
+APOC.tabs.all.title=Profiles - All
+APOC.tabs.all.help=Shows a list of all profiles.
+
+APOC.find.title=Find
+APOC.find.button=Find
+
+#*******************************************************************************
+# Contexts
+#*******************************************************************************
+APOC.contexts.title=Configuration Repositories
+APOC.contexts.details.title=Configuration Repository Details
+APOC.contexts.details.name=Repository Name
+APOC.contexts.details.domorg.info=Location of the Domain/Organization Information
+APOC.contexts.details.domorg.profile.info=Storage Location of the Domain/Organization Data
+APOC.contexts.details.property=Property
+APOC.contexts.details.view=View Details
+APOC.contexts.help=The configuration repository is the storage location for the configuration data that you need to configure your applications.
+APOC.contexts.table.title=Configuration Repositories
+APOC.contexts.config.error=Unable to access the selected repository. There is a syntax error in the configuration file {0}.
+APOC.contexts.table.summary=This table lists all available Configuration Repositories. The 'Type' column lists the type of the repository. The 'Location of Organization Data' column lists URLs pointing to the storage location which provides the organizational data. The 'Location of Profile Data' column lists URLs pointing to the storage location which provides the profile data. Click on the name link to use that Configuration Repository.
+APOC.contexts.details.table.summary=This table lists the properties of the selected Configuration Repository. The name, location of hierarchy information and the location of storage information are listed.
+APOC.contexts.table.empty=No configuration repository available. Use the 'New...' button to create a new configuration repository.
+APOC.contexts.menu.create=Create...
+APOC.contexts.menu.remove=Remove...
+APOC.contexts.menu.rename=Rename...
+APOC.contexts.menu.synchronize=Synchronize...
+APOC.contexts.column.name=Name
+APOC.contexts.column.type=Type
+APOC.contexts.column.locorg=Location of Organization Data
+APOC.contexts.column.locpro=Location of Profile Data
+APOC.contexts.hybrid.text=hybrid
+APOC.contexts.create.button=Create a Configuration Repository
+APOC.contexts.login.context=Configuration Repository:
+APOC.contexts.login.title=Configuration Repositories - Login
+APOC.contexts.login.help=The Configuration Manager allows you to administrate multiple configuration repositories which may require individual logins. The credentials you used to log in to the Java Web Console are defaulted if they can be reused. This login page is not shown if you successfully authenticated to the configuration repository already during this session. If you want to login with different credentials to a configuration repository you need to log out from the Java Web Console which ends the session.
+APOC.select.contexts.login.help=In order to select a new configuration repository you must provide new login credentials. The credentials previously used to log in to the chosen repository are defaulted if they are available.
+APOC.relocate.error.summary=Operation cancelled!
+APOC.relocate.error.detail=At least one organization or domain this profile is assigned to would be located above the new location of the profile.
+APOC.relocate.trace.text=No stacktrace available.
+
diff --git a/src/com/sun/apoc/manager/resource/apoc_manager_es.properties b/src/com/sun/apoc/manager/resource/apoc_manager_es.properties
new file mode 100644
index 0000000..0d31853
--- /dev/null
+++ b/src/com/sun/apoc/manager/resource/apoc_manager_es.properties
@@ -0,0 +1,998 @@
+#*******************************************************************************
+#
+# $RCSfile: apoc_manager_es.properties,v $
+#
+# Description: Resource bundle for the Sun Java(tm) Desktop System
+# Configuration Manager
+#
+# Last change: $Date: 2007/05/18 14:41:02 $ $Revision: 1.12 $
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use of this
+# product is subject to license terms.
+#
+#*******************************************************************************
+
+#*******************************************************************************
+# Common
+#
+#*******************************************************************************
+
+APOC.framelongdesc=Esta aplicación tiene una estructura de tres marcos. El marco del encabezado ocupa la parte superior de la página. El marco de navegación se encuentra en el lado izquierdo y permite navegar por los usuarios y los sistemas. La selección de un elemento en el marco de navegación actualiza el marco del contenido o los marcos del contenido y la navegación. El área de contenido se encuentra en la parte derecha y muestra la información relacionada con el elemento seleccionado.
+APOC.so7=StarOffice 7
+APOC.button.remove=Borrar
+APOC.button.close=Cerrar
+APOC.button.OK=Aceptar
+APOC.button.cancel=Cancelar
+APOC.button.browse=Cambiar...
+APOC.headings.name=Nombre
+APOC.login.username=Nombre de usuario:
+APOC.login.password=Contraseña:
+APOC.infoAlert.success=La acción se ha completado satisfactoriamente.
+APOC.noframes=Para usar esta aplicación se necesitan marcos.
+APOC.settings.notset=-- No definido --
+APOC.profiles.profile=Perfil
+APOC.help.more.on=>> Más en {0}
+APOC.help.more=>> Más
+APOC.pool.renameContextMessage=Escriba el nuevo nombre del depósito:
+APOC.pool.removeContextMessage=¿Desea borrar el depósito con la configuración seleccionada?
+APOC.helpwindow.tooltip=Ayuda (abre una nueva ventana)
+
+#*******************************************************************************
+# Masthead
+#
+#*******************************************************************************
+
+APOC.frame.masthead=Marco de encabezado
+APOC.masthead.altTextVer=Sun Desktop Manager 1.0.1
+APOC.masthead.altText=Sun Desktop Manager 1.0.1
+APOC.masthead.altTextForSub={0}
+APOC.masthead.packages.alt=Paquetes de normas (abre una nueva ventana)
+APOC.masthead.path.link=Depósitos
+APOC.masthead.path.help=Volver a la página de configuración de depósitos
+
+#*******************************************************************************
+# Packages Dialog Strings
+#
+#*******************************************************************************
+
+APOC.packages.title=Paquetes de normas
+APOC.packages.introtext=Aquí puede instalar o desinstalar los paquetes de las normas. Los paquetes de normas son proporcionados por Sun Microsystems o los proveedores de otras empresas y contienen normas adicionales que se pueden usar en {0}.
+APOC.packages.tabletitle=Paquetes de normas instalados
+APOC.packages.headings.adddate=Agregar fecha
+APOC.packages.action.file=Instalar desde servidor...
+APOC.packages.action.url=Instalar desde cliente...
+APOC.packages.action.uninstall=Desinstalar
+APOC.packages.uninstall.confirm=¿Desea desinstalar el paquete seleccionado?
+APOC.packages.filechooser.addfile=Instalar paquete de normas desde archivo de servidor
+APOC.packages.filechooser.button=Elegir archivo
+APOC.packages.localchooser.title=Instalar paquete de normas desde archivo local
+APOC.packages.localchooser.upload=Descargar
+APOC.packages.localchooser.choosetext=Archivo que descargar:
+
+#*******************************************************************************
+# Users Page Tab
+#
+#*******************************************************************************
+
+APOC.users.title=Usuarios
+APOC.users.introtext=En esta página se relacionan los usuarios que son miembros de un rol seleccionado. La columna 'ruta' muestra las rutas completas.
+APOC.users.tableSummary=En esta tabla se relacionan los usuarios que son miembros de un rol seleccionado. La columna 'ruta' muestra las rutas completas. Haga clic en el nombre de un usuario para seleccionarlo en el marco de la izquierda.
+
+#*******************************************************************************
+# Roles Page Tab
+#
+#*******************************************************************************
+
+APOC.roles.title=Roles
+APOC.roles.introtext=En esta página se relacionan los roles de los que el usuario es miembro. La columna 'ruta' muestra las rutas completas.
+APOC.roles.tableSummary=En esta tabla se relacionan los roles de los que el usuario es miembro. La columna 'ruta' muestra las rutas completas. Haga clic en el nombre de rol para seleccionarlo en el marco de la izquierda.
+
+#*******************************************************************************
+# Assignees Page Tab
+#
+#*******************************************************************************
+
+APOC.assignees.title=Asignados
+APOC.assignees.introtext=En esta página se relacionan las entidades que tienen asignado el perfil seleccionado. La columna 'ruta' muestra las rutas completas.
+APOC.assignees.tableSummary=En esta tabla se relacionan las entidades que tienen asignado el perfil seleccionado. La columna 'ruta' muestra las rutas completas. Haga clic en el nombre de un elemento para seleccionarlo en el marco de la izquierda.
+
+#*******************************************************************************
+# Profiles Tab page
+#
+#*******************************************************************************
+
+APOC.policysets.title=Perfiles asignados
+APOC.policysets.label=Perfiles
+APOC.policysets.introtext=En esta página se pueden asignar perfiles al elemento seleccionado.
+APOC.policysets.save=Guardar
+APOC.policysets.infoAlert.saveSuccess=Se han guardado los cambios de las asignaciones del perfil.
+
+#*******************************************************************************
+# Policies Tab page
+#
+#*******************************************************************************
+
+APOC.policies.title=Políticas asignadas
+APOC.policies.subcategories=Subcategorías
+APOC.policies.nameCol=Nombre
+APOC.policies.commentCol=Comentario
+APOC.policies.actionCol=Acción
+APOC.policies.toggle.button=Conmutar acción
+APOC.policies.introtext=En esta página se muestra el árbol de configuración de normas y los valores configurados para un elemento seleccionado.
+APOC.policies.tableSummary=Esta tabla muestra las normas disponibles. Cada fila contiene el nombre de la norma y una breve descripción. Haga clic en un nombre para consultar las subnormas.
+APOC.properties.tableSummary=Esta tabla muestra los valores de configuración. Cada fila contiene el estado, el nombre y el valor de la propiedad.
+APOC.policies.stateCol=Estado
+APOC.policies.value=Valor
+APOC.policies.value.notconfig=No configurado
+APOC.policies.value.config=Configurado
+APOC.policies.status=Estado
+APOC.policies.root=Normas
+APOC.policies.actions=&#8212;&nbsp;Acciones de las normas&nbsp;&#8212;
+APOC.policies.actions.protect=Proteger
+APOC.policies.actions.unprotect=Desproteger
+APOC.policies.actions.default=Aplicar valores predeterminados
+APOC.policies.actions.clear=Vaciar
+APOC.policies.enable=Activar
+APOC.policies.enabled=Activada
+APOC.policies.disabled=Desactivada
+APOC.policies.clear.button=Borrar valores de configuración...
+APOC.policies.createrep.button=Crear informe...
+APOC.policies.createrep.tooltip=Crear informe (abre una nueva ventana)
+APOC.policies.clear.confirmation=Esta acción eliminará todos los valores de esta capa y las capas por debajo de ella. ¿Desea continuar?
+APOC.policies.backToTop=Ir al principio
+APOC.policies.backToTop.tooltip=Volver al principio:
+APOC.policies.jumpDown.tooltip={0} (Pasa a esta sección)
+APOC.policies.save.button=Guardar
+APOC.policies.reset.button=Restablecer
+APOC.policies.navigation.table.empty=No hay normas asignadas.
+APOC.policies.set.table.empty=No se han encontrado entradas.
+APOC.policies.new.button=Nuevo...
+APOC.policies.delete.button=Borrar
+APOC.policies.name.question=Escriba un nombre para la nueva entrada.
+APOC.policies.rename.set=Escriba un nombre para la nueva entrada.
+APOC.policies.status.defined_here=El elemento se ha definido en esta capa.
+APOC.policies.status.defined_above=El elemento se ha definido en la capa superior.
+APOC.policies.status.noprotection=No hay estado de protección.
+APOC.policies.status.nodefinition=No hay estado de definición.
+APOC.policies.status.jumpto=Haga clic en este vínculo para ir a {0}.
+APOC.policies.status.protected_here=El elemento se ha protegido en esta capa.
+APOC.policies.status.protected_above=El elemento se ha protegido en la capa superior.
+APOC.policies.status.policygroup=Perfil {0}
+APOC.policies.info.general=La acción se ha completado satisfactoriamente.
+APOC.policies.info.stored=Se han almacenado todos los valores de configuración.
+APOC.policies.info.removed=Se han borrado todos los valores de configuración.
+APOC.policies.error.general=Se ha producido un error.
+APOC.policies.error.removing=Error al borrar valores de configuración: {0}
+APOC.policies.error.storing=Error al almacenar valores de configuración: {0}
+APOC.policies.confirmation.storechanges=Se han realizado varios cambios. ¿Desea almacenar los cambios ahora?
+APOC.policies.info.readonly.access=Esta página es de sólo lectura, ya que carece de los derechos de acceso necesarios para efectuar modificaciones.
+APOC.policies.info.readonly.maybe=Al menos uno de los perfiles mostrados es de sólo lectura, ya que carece de derechos de acceso necesarios para efectuar modificaciones.
+APOC.policies.info.readonly.roles=Esta página es de sólo lectura, ya que las normas locales no se pueden asignar a los roles.
+APOC.policies.edit.button=Editar...
+APOC.policies.include_in=Incluir en
+APOC.policies.exclude_from=Excluir de
+APOC.policies.footnote=* Indica los valores predeterminados utilizados de forma automática por la aplicación si no se define explícitamente otra configuración.
+APOC.policies.settings_title=Configuración (Perfil {0})
+
+#*******************************************************************************
+# Content Area
+#
+#*******************************************************************************
+
+APOC.frame.contentarea=Marco del área de contenido
+APOC.catabs.policy.des=Normas (abre la página)
+APOC.catabs.policysets.des=Perfiles asignados (abre la página)
+APOC.catabs.users.des=Usuarios (abre la página)
+APOC.catabs.roles.des=Roles (abre la página)
+APOC.catabs.assignees.des=Asignados (abre la página)
+APOC.ca.backtop=Ir al principio
+APOC.ca.locale=Configuración regional
+APOC.ca.path=Ruta
+
+#*******************************************************************************
+# Help
+#
+#*******************************************************************************
+
+APOC.help.helpTooltip=Ayuda (abre una nueva ventana)
+APOC.help.windowTitle=Ayuda
+
+#*******************************************************************************
+# Navigation Area Common
+#
+#*******************************************************************************
+
+APOC.navigation.search=Buscar
+APOC.navigation.reset=Restablecer
+APOC.navigation.search.help=Abre una ventana que permite efectuar una búsqueda.
+APOC.navigation.edit.help=Escriba la cadena de búsqueda.
+APOC.navigation.close=Cerrar
+APOC.navigation.organization=Organización
+APOC.navigation.organization.with=Organización con asignaciones
+APOC.navigation.organizations=Organizaciones
+APOC.navigation.organizations.help=Raíz del árbol de la organización
+APOC.navigation.user=Usuario
+APOC.navigation.user.with=Usuario con asignaciones
+APOC.navigation.users=Usuarios
+APOC.navigation.role=Rol
+APOC.navigation.role.with=Rol con asignaciones
+APOC.navigation.roles=Roles
+APOC.navigation.domain=Dominio
+APOC.navigation.domain.with=Dominio con asignaciones
+APOC.navigation.domains=Dominios
+APOC.navigation.domains.help=Raíz del árbol del dominio.
+APOC.navigation.host=Sistema
+APOC.navigation.host.with=Sistema con asignaciones
+APOC.navigation.hosts=Sistemas
+APOC.navigation.name=Nombre
+APOC.navigation.actions=Acciones
+APOC.navigation.view=Ver
+APOC.navigation.view.tooltip=Muestra este elemento en el marco derecho
+APOC.navigation.area=Panel de navegación
+APOC.navigation.empty=No hay entidades disponibles.
+APOC.navigation.name.label=Nombre:
+APOC.navigation.type=Tipo
+APOC.navigation.userTooltip=Usuarios (abre la página Usuarios)
+APOC.navigation.hostTooltip=Sistemas (abre la página Sistemas)
+APOC.navigation.breadcrumb.tooltip=Volver a {0}
+APOC.navigation.show=Mostrar:
+APOC.navigation.showDirsOnly=Sólo directorios
+APOC.navigation.showAll=Todos
+APOC.navigation.ellipsis=... no se muestran algunos elementos
+APOC.navigation.openfind=Se abre la ventana de búsqueda
+APOC.navigation.search.target.alert1=No se ha podido determinar la ventana de destino de la selección.\\nCierre la ventana de búsqueda y vuelva a abrirla desde la ventana de destino planificada.
+
+#*******************************************************************************
+# Navigation Area User Tree Tab
+#
+#*******************************************************************************
+
+APOC.usertree.title=Árbol de la organización
+APOC.usertree.tooltip=Árbol de la organización (abre la página Árbol de la organización)
+APOC.usertree.tableSummary=En esta tabla se proporciona una lista de los subordinados de la organización actual. Cada columna incluye el nombre, el tipo (organización, usuario o rol) y un vínculo del subordinado. Haga clic en el vínculo para ver el contenido de la organización en el marco de la derecha.
+
+#*******************************************************************************
+# Navigation Area Host Tree Tab
+#
+#*******************************************************************************
+
+APOC.hosttree.title=Árbol del dominio
+APOC.hosttree.tooltip=Árbol del dominio (abre la página Árbol del dominio)
+APOC.hosttree.tableSummary=En esta tabla se proporciona una lista de los subordinados del dominio actual. Cada columna incluye el nombre y el tipo (dominio o usuario) del subordinado y un vínculo de vista para mostrar el contenido en el marco de la derecha.
+
+#*******************************************************************************
+# Navigation Area Entities Table Filter
+#
+#*******************************************************************************
+
+APOC.entityfilter.titleUsers=Filtro avanzado - Usuarios
+APOC.entityfilter.titleHosts=Filtro avanzado - Sistemas
+APOC.entityfilter.help.title=Ayuda
+APOC.entityfilter.type.label=Tipo:
+APOC.entityfilter.filter=Filtro
+APOC.entityfilter.placeholder=<name to filter on>
+
+#*******************************************************************************
+# Set Color Dialog
+#
+#*******************************************************************************
+
+APOC.setcolor.edit.alt=Editar paleta (abre una nueva ventana)
+APOC.setcolor.title=Editar paleta
+APOC.setcolor.introtext=El color actual se muestra en la columna central. Este color se puede agregar a la paleta con los botones Agregar color o Reemplazar color. Para asociar un nombre a un color, escriba un nombre en el campo "Nombre". Para guardar los cambios en la paleta, haga clic en "Aceptar" al finalizar.
+APOC.setcolor.palette.heading=Paleta de colores:
+APOC.setcolor.color.heading=Color:
+APOC.setcolor.color.alt=El color actual es {0}
+APOC.setcolor.red.heading=Rojo:
+APOC.setcolor.red.increase=Aumentar rojo
+APOC.setcolor.red.decrease=Reducir rojo
+APOC.setcolor.green.heading=Verde:
+APOC.setcolor.green.increase=Aumentar verde
+APOC.setcolor.green.decrease=Reducir verde
+APOC.setcolor.blue.heading=Azul:
+APOC.setcolor.blue.increase=Aumentar azul
+APOC.setcolor.blue.decrease=Reducir azul
+APOC.setcolor.hue.heading=Tono:
+APOC.setcolor.hue.increase=Aumentar tono
+APOC.setcolor.hue.decrease=Reducir tono
+APOC.setcolor.sat.heading=Sat:
+APOC.setcolor.sat.increase=Aumentar saturación
+APOC.setcolor.sat.decrease=Reducir saturación
+APOC.setcolor.lum.heading=Lum:
+APOC.setcolor.lum.increase=Aumentar luminancia
+APOC.setcolor.lum.decrease=Reducir luminancia
+APOC.setcolor.html.heading=Valor hexadecimal:
+APOC.setcolor.original.heading=Color original:
+APOC.setcolor.original.alt=El color original es {0}.
+APOC.setcolor.wheel.heading=Espectro de color:
+APOC.setcolor.wheel.alt=Haga clic en la imagen para seleccionar el color en el espectro, el tono en el eje x y la saturación en el eje y. Al hacer clic en un color específico del espectro, el contenido de la columna central se actualizará y pasará a ser ese color.
+APOC.setcolor.slider.summary=Haga clic en cualquier lugar de la tabla para ajustar la luminancia del color actual. La luminancia disminuye de derecha a izquierda.
+APOC.setcolor.add.button=Agregar color >
+APOC.setcolor.replace.button=Reemplazar color >
+APOC.setcolor.remove.button=Suprimir color
+APOC.setcolor.remove.alert=El cuadro seleccionado no contiene un color almacenado de la paleta; por lo tanto, no se puede suprimir.
+APOC.setcolor.name.alert=El color especificado ya se utiliza, seleccione otro color.
+APOC.setcolor.restoreorigcolor.button=Restablecer color
+APOC.setcolor.restore.button=Restablecer valores predeterminados
+APOC.setcolor.restore.confirm=¿Desea restablecer los colores predeterminados?
+APOC.setcolor.increase.tooltip=Aumentar
+APOC.setcolor.decrease.tooltip=Reducir
+APOC.setcolor.tooltip=Cuadro de diálogo Editar colores (se abre en una ventana nueva)
+APOC.setcolor.replace.alert=Utilice el botón Agregar color para agregar colores adicionales.
+APOC.setcolor.add.alert=Utilice el botón Reemplazar color para reemplazar colores.
+APOC.setcolor.noname=Sin nombre
+APOC.setcolor.invalid.hex=El valor hexadecimal no es válido; introduzca un valor válido
+
+#*******************************************************************************
+# Chooser
+#
+#*******************************************************************************
+
+APOC.page.chooser.list.editor=Editar lista
+APOC.page.chooser.list.help=Edite la siguiente lista para agregar o quitar elementos del menú desplegable del panel de contenido. Haga clic en el botón 'Restablecer valores predeterminados' para suprimir todos los cambios del usuario. Haga clic en el botón 'Aceptar' para guardar los cambios efectuados en la lista.
+APOC.chooser.add=Agregar
+APOC.chooser.system_added=(*) Inicia un elemento que el sistema ha agregado a la lista. El sistema agrega elementos a la lista si se trata de un valor predeterminado o si es el valor almacenado para una propiedad actualmente visualizada
+APOC.chooser.protected.alert=Este elemento no se puede suprimir de la lista porque es un valor predeterminado o es el valor almacenado para un parámetro de esta página
+APOC.chooser.selected.alert=Este elemento no se puede suprimir de la lista porque es el valor actualmente seleccionado para una propiedad de esta página
+APOC.chooser.edit.alt=Editar lista (abre una nueva ventana)
+APOC.font.chooser.title=Editar lista de tipos de letra
+APOC.window.border.chooser.title=Editar lista de temas de bordes de ventana
+APOC.window.controls.chooser.title=Editar lista de temas de controles
+APOC.window.icon.chooser.title=Editar lista de temas de iconos
+
+#*******************************************************************************
+# Navigation Area Repository Tab
+#
+#*******************************************************************************
+
+APOC.pool.title=Depósito de normas
+APOC.pool.all_profiles=Todos los perfiles
+APOC.pool.all_profiles.help=Esta página enumera todos los perfiles.
+APOC.pool.all_domain_profiles=Todos los perfiles de dominios
+APOC.pool.all_org_profiles=Todos los perfiles de organización
+APOC.pool.tooltip=Depósito de normas (abre la página Depósito de normas)
+APOC.pool.sets=Perfiles asignados
+APOC.pool.setsHost=Perfiles de sistemas
+APOC.pool.priority=Prioridad
+APOC.pool.actions=&#8212;&nbsp;Acciones de perfiles&nbsp;&#8212;
+APOC.pool.new=Nuevo...
+APOC.pool.delete=Borrar...
+APOC.pool.import=Importar...
+APOC.pool.export=Exportar...
+APOC.pool.rename=Cambiar nombre...
+APOC.pool.edit=Editar prioridades...
+APOC.pool.add_assignment=Asignar perfil
+APOC.pool.available_profiles=Perfiles disponibles
+APOC.pool.add_assignment_help=Puede utilizar esta ventana para asignar perfiles.
+APOC.pool.new_button.help=Crea un perfil.
+APOC.pool.delete_button.help=Borra un perfil.
+APOC.pool.assign_button.help=Abre una nueva ventana que permite seleccionar el perfil que asignar.
+APOC.pool.unassign_button.help=Revoca la asignación de los perfiles seleccionados con la organización actual.
+APOC.pool.report_button.help=Abre una ventana que contiene el informe.
+APOC.pool.tableSummary=En esta tabla se proporciona una lista de los perfiles globales. Cada columna contiene el nombre, la prioridad y un vínculo del perfil. Haga clic en el vínculo para ver el contenido del perfil en el marco de la derecha.
+APOC.pool.empty=No hay perfiles disponibles.
+APOC.pool.deleteMessage=¿Desea borrar los perfiles seleccionados?
+APOC.pool.tableSummary=En esta tabla se proporciona una lista de los perfiles. Cada fila contiene el nombre del perfil, su autor y la fecha de la última modificación. Haga clic en el nombre para ver el contenido del perfil.
+APOC.pool.empty=No hay perfiles disponibles.
+APOC.pool.deleteMessage=¿Desea borrar el perfil seleccionado?
+APOC.pool.newMessage=Escriba el nombre del nuevo perfil.
+APOC.pool.newDefault=Nuevo grupo de normas
+APOC.pool.renameMessage=Escriba el nuevo nombre del perfil:
+APOC.pool.help.title=Ayuda para el depósito de normas
+APOC.pool.help.text1=El depósito de normas se utiliza para almacenar los perfiles. Un perfil es un contenedor de normas con un nombre asignado. El nombre de un perfil debe ser exclusivo.
+APOC.pool.help.text2=Después de crear un perfil se pueden almacenar en él los valores de configuración, así como agregarlo a cualquier organización, usuario, rol, dominio o sistema. Para ello, se debe visualizar el elemento en el panel de navegación y seleccionar la página "Perfiles" en el panel de contenido.
+APOC.pool.help.text3=Aunque el uso de los perfiles no es necesario para la administración de la configuración, la facilitan. Por ejemplo, se puede crear el perfil "Novato", almacenar en él los valores de configuración apropiados para los nuevos usuarios y agregar dicho perfil a cualquier miembro de un árbol de la organización o del dominio.
+APOC.pool.import.tooltip=Importación de un perfil al depósito.
+APOC.pool.export.tooltip=Exportación de un perfil.
+APOC.pool.rename.tooltip=Cambio de nombre de un perfil.
+APOC.pool.import.disabled.tooltip=Importación de un perfil al depósito (no disponible).
+APOC.pool.export.disabled.tooltip=Exportación de un perfil (no disponible).
+APOC.pool.rename.disabled.tooltip=Cambio de nombre de un perfil (no disponible).
+
+#*******************************************************************************
+# Navigation Area Priorities
+#
+#*******************************************************************************
+
+APOC.prios.title=Prioridades de los perfiles
+APOC.prios.help=Esta página permite cambiar las prioridades de los perfiles. Las prioridades definen el orden de combinación de los perfiles cuando existe más de un perfil con la misma aplicabilidad asignado a un elemento.
+APOC.prios.up=Desplazar hacia arriba
+APOC.prios.down=Desplazar hacia abajo
+
+#*******************************************************************************
+# Navigation Area Profile Import
+#
+#*******************************************************************************
+
+APOC.groupimport.title=Importar perfil desde archivo local
+APOC.groupimport.help=Seleccionar un archivo de perfil local que importar al depósito de configuración actual
+APOC.groupimport.choosetext=Archivo que importar:
+APOC.groupimport.defaulttext=<nombre_archivo>
+APOC.groupimport.import=Importar
+APOC.groupimport.error.zip=Error: El archivo debe estar en formato Zip.
+APOC.importwnd.js.overwrite_alert=Ya existe un perfil con este nombre. ¿Desea sobrescribir el perfil?
+APOC.groupimport.importing=Importando perfiles
+
+#*******************************************************************************
+# Navigation Area Search
+#
+#*******************************************************************************
+
+APOC.search.search=Buscar
+APOC.search.param.help=La búsqueda se realiza en todo el árbol.
+APOC.search.userid.label=Id de usuario:
+APOC.search.firstname.label=Nombre:
+APOC.search.lastname.label=Apellidos:
+APOC.search.point.label=Punto de inicio:
+APOC.search.perpage.label=Resultados mostrados por página:
+APOC.search.results=Resultados
+APOC.search.result.help=En esta página se muestran los resultados de la búsqueda. En la columna de la ruta se muestra la ruta relativa al punto de inicio.
+APOC.search.entitiesFound=Elementos encontrados
+APOC.search.param.title.help=Especifique los parámetros de la búsqueda.
+APOC.search.usersFound=Usuarios encontrados
+APOC.search.rolesFound=Roles encontrados
+APOC.search.organizationsFound=Organizaciones encontradas
+APOC.search.domainsFound=Dominios encontrados
+APOC.search.hostsFound=Sistemas encontrados
+APOC.search.all=Buscar todo
+APOC.search.users=Buscar usuarios
+APOC.search.roles=Buscar roles
+APOC.search.organizations=Buscar organizaciones
+APOC.search.domains=Buscar dominios
+APOC.search.hosts=Buscar sistemas
+APOC.search.tableSummary=En esta tabla se proporciona una lista con los resultados de búsqueda. Cada fila incluye el nombre del elemento, el tipo (organización, usuario o rol) y la ruta completa. Haga clic en un nombre para seleccionar ese elemento en el marco izquierdo de la ventana principal de la aplicación.
+APOC.search.path=Ruta
+APOC.search.userid=Id de usuario
+APOC.search.title.text=Buscar
+APOC.search.search.help=Busca el depósito.
+APOC.search.reset.help=Restablece los valores predeterminados de los parámetros de búsqueda.
+APOC.search.cancel.help=Cierra esta ventana.
+APOC.search.advanced.show.button=Mostrar opciones avanzadas
+APOC.search.advanced.show.help=Muestra las opciones avanzadas.
+APOC.search.advanced.hide.button=Ocultar opciones avanzadas
+APOC.search.advanced.hide.help=Oculta las opciones avanzadas.
+APOC.search.advanced.start.label=Área de búsqueda:
+APOC.search.advanced.restrict.label=Restringir a:
+APOC.search.advanced.browse.help=Abre una ventana que permite cambiar la ruta que determina el punto de inicio de la búsqueda.
+APOC.search.advanced.start.label=Área de búsqueda:
+APOC.search.help.title=Acerca de la búsqueda
+APOC.search.help.text1=La búsqueda no distingue mayúsculas de minúsculas y no es estricta: la cadena de búsqueda "bc" encontrará "ABC" y "bcd".
+APOC.search.help.text2=Un asterisco (*) denota una secuencia arbitraria de caracteres en una cadena de búsqueda. Puede utilizar más de un asterisco en cualquier posición de la cadena de búsqueda.
+APOC.search.help.text3=Un campo vacío equivale a un campo con la cadena de búsqueda "*". De forma predeterminada, el número máximo de resultados es 100. Sin embargo, este parámetro es configurable. Consulte la Guía de instalación para obtener más información.
+APOC.search.help.inline=Escriba el nombre. Puede especificar * como comodín.
+APOC.search.help.inlineUser=Escriba el id del usuario. Puede especificar * como comodín.
+
+#*******************************************************************************
+# Content Area - Profiles
+#*******************************************************************************
+APOC.profile.inherited.table=Perfiles heredados
+APOC.profile.page.title=Esta página muestra el contenido del elemento seleccionado.
+APOC.profile.name.text=(Perfil {0})
+APOC.profilemgr.assigned=Asignado
+APOC.profilemgr.assign=Asignar perfil...
+APOC.profilemgr.pending=Cambia el presente
+APOC.profilemgr.author=Autor
+APOC.profilemgr.lastMod=Última modificación
+APOC.profilemgr.delete=Borrar
+APOC.profilemgr.moreActions=&#8212;&nbsp;Más acciones&nbsp;&#8212;
+APOC.profilemgr.yes=Sí
+APOC.profileassi.unassign=Anular asignación de perfil
+APOC.profileassi.manage=Administrar perfiles...
+APOC.profileassi.release=Publicar cambios...
+APOC.profileassi.releaseNow=Versión
+APOC.profileassi.showResults=Configuración vigente...
+APOC.profileassi.title=Publicar cambios
+APOC.profileassi.table.empty=No hay perfiles asignados.
+APOC.profileavail.title=Perfiles disponibles
+APOC.profileavail.help=Puede utilizar esta ventana para asignar perfiles.
+APOC.profileavail.assigning=Asignando perfiles
+APOC.profileall.title=Todos los perfiles
+APOC.profileall.help=Esta página enumera todos los perfiles.
+APOC.profileall.domtable.title=Todos los perfiles de dominios
+APOC.profileall.orgtable.title=Todos los perfiles de organización
+APOC.profile.search.profile=Perfil de búsqueda
+APOC.profile.error.storing=Error al almacenar el perfil.
+APOC.profile.assigned.delete=Los perfiles seleccionados se asignan al menos a un elemento. \\n \\n ¿Desea borrar estos perfiles?
+APOC.profile.unassigned.delete=Se borrarán todos los datos de perfil de los perfiles seleccionados. ¿Desea continuar?
+APOC.profiles.default.msg=Indica un valor predeterminado
+
+#*******************************************************************************
+# Configure Report
+#
+#*******************************************************************************
+
+APOC.configrep.title=Modificar los parámetros de configuración vigentes
+APOC.configrep.help=Especifique los parámetros para generar la configuración que se aplicará. Los elementos relacionados con la generación de la configuración efectiva pueden definirse utilizando la lista siguiente. Se puede elegir un elemento de cada tipo y la configuración será el resultado de la combinación de las normas de los perfiles asignados para los elementos seleccionados.
+APOC.configrep.effective.settings=Configuración vigente
+APOC.configrep.columns=Mostrar en el resumen de configuración:
+APOC.configrep.statepath=Ruta de estado
+APOC.configrep.des=Descripción
+APOC.configrep.reptype=Orden de combinación de fuentes de perfil seleccionadas
+APOC.configrep.orgtree=Seleccionar un elemento del árbol de la organización:
+APOC.configrep.domtree=Seleccionar un elemento del árbol del dominio:
+APOC.configrep.typeorg=Configuración del árbol de la organización
+APOC.configrep.typedom=Configuración del árbol del dominio
+APOC.configrep.typeboth=Configuración de ambos árboles
+APOC.configrep.button.report=Generar configuración que se aplica
+
+#*******************************************************************************
+# Report
+#
+#*******************************************************************************
+APOC.report.button.tooltip=Abre una ventana que contiene el informe.
+APOC.report.onetree.title=Configuración que se aplica para {0} "{1}" en el sistema "{2}"
+APOC.report.twotree.title=Configuración que se aplica para {0} "{1}" y {2} "{3}" en el sistema "{4}"
+APOC.report.multipletree.title=Configuración que se aplica para {0} en el sistema "{1}"
+APOC.report.involved.profiles.entity={0} Perfiles
+APOC.report.locorg={0} es una organización debajo de {1}.
+APOC.report.locrole={0} es un rol debajo de {1}.
+APOC.report.locuserid={0} es un usuario debajo de {1}.
+APOC.report.lochost={0} es un sistema debajo de {1}.
+APOC.report.locdomain={0} es un dominio debajo de {1}.
+APOC.report.rootlocorg={0} es una organización.
+APOC.report.rootlocuserid={0} es un usuario.
+APOC.report.rootlocrole={0} es un rol.
+APOC.report.rootlochost={0} es un sistema.
+APOC.report.rootlocdomain={0} es un dominio.
+APOC.report.policygrouploc={0} es un perfil.
+APOC.report.bothand=y
+APOC.report.creator=El autor es {0} en {1}.
+APOC.report.createdate=La fecha de creación es {0}.
+APOC.report.backendtype=El tipo de componente trasero es {0}.
+APOC.report.backendhost=El sistema de componente trasero es {0}.
+APOC.report.unknown=Desconocido
+APOC.report.startcat=La categoría de inicio es {0}.
+APOC.report.contitle=Índice de contenido
+APOC.report.isbelow=está debajo de {0}
+APOC.report.table.summary=Esta tabla muestra los valores de configuración. Cada fila contiene el estado, el nombre y el valor de la propiedad.
+APOC.report.table.nameheading=Nombre
+APOC.report.table.valueheading=Valor
+APOC.report.table.statusheading=Estado
+APOC.report.table.statuspheading=Ruta de estado
+APOC.report.table.desheading=Descripción
+APOC.report.table.defined=Definido
+APOC.report.table.protected=Aplicado
+APOC.report.table.readonly=De sólo lectura
+APOC.report.table.defined.in=Definido en
+APOC.report.table.protected.in=Los usuarios no pueden sobrescribir
+APOC.report.table.readonly.in=Sólo lectura en
+APOC.report.table.pathPG=Perfil:
+APOC.report.table.empty={0} no contiene valores.
+APOC.report.buttons.print=Imprimir
+APOC.report.assigned.profiles.title=Perfiles implicados
+APOC.report.settings.summary.title=Resumen de configuración
+APOC.report.addremove.elements=Elementos relacionados:
+APOC.report.elements.table.heading=Elementos relacionados
+APOC.report.elements.table.summary=Esta tabla especifica los elementos relacionados con la generación de resultados de configuración.
+APOC.report.elements.table.title=Esta lista se puede utilizar para especificar los elementos relacionados con la generación de la configuración.
+APOC.report.add.element=Agregar elemento
+APOC.report.remove.element=Eliminar elemento
+APOC.report.novalues=Los elementos relacionados no contienen valores.
+APOC.report.xml.parsing.error=Error de análisis XML al leer datos de perfil.
+
+#*******************************************************************************
+# Full-Page Error Alert
+#
+#*******************************************************************************
+
+APOC.pageerror.title=Operación no satisfactoria
+APOC.pageerror.comment=Puede encontrar un seguimiento de la pila de este error como un comentario HTML en esta página.
+
+#*******************************************************************************
+# PolicyMgr Error Messages
+#
+#*******************************************************************************
+
+APOC.error.occurred=Se ha producido un error.
+APOC.error.open.connection=No se ha podido establecer la conexión con el usuario.
+APOC.error.close.connection=Se ha producido un error al cerrar la conexión.
+APOC.error.user.invalid=El nombre del usuario no es válido.
+APOC.error.unsupported.datastore=El tipo de almacén de datos especificado en la información de la rutina de carga no se admite.
+APOC.error.application.initialize=La aplicación no se puede inicializar.
+APOC.error.bootstrap.incomplete=La información de la rutina de carga está incompleta.
+APOC.error.bootstrap.unavailable=La información de la rutina de carga no está disponible.
+APOC.error.ldap.bootstrap=La información de la rutina de carga del servidor del directorio LDAP está incompleta.
+APOC.error.org.settings=Los valores de la configuración de la organización no son válidos en la metaconfiguración.
+APOC.error.role.settings=Los valores de la configuración del rol no son válidos en la metaconfiguración.
+APOC.error.user.settings=Los valores de la configuración del usuario no son válidos en la metaconfiguración.
+APOC.error.create.parser=No se ha podido crear el analizador XML.
+APOC.error.filter=El filtro no es sintácticamente correcto
+APOC.error.policy.read=No se pueden leer los datos de la norma.
+APOC.error.policy.data.invalid=Los datos de la norma no son válidos.
+APOC.error.policy.invalid=La norma no es válida.
+APOC.error.path.invalid=La ruta no es válida.
+APOC.error.userprofile.attribute=El atributo no forma parte del perfil del usuario.
+APOC.error.locale.support=Esta configuración regional no se admite.
+APOC.error.ldap.read=Se ha producido un error de lectura LDAP
+APOC.error.ldap.write=Se ha producido un error de escritura LDAP
+APOC.error.ldap.search=Se ha producido un error LDAP durante la búsqueda.
+APOC.error.ldap.results.size=Se ha producido un error LDAP durante la búsqueda, debido a que el número de entradas resultantes ha sido mayor que el límite establecido por el servidor LDAP.
+APOC.error.ldap.policygroup.creation=Se ha producido un error LDAP durante la creación del perfil.
+APOC.error.ldap.policygroup.deletion=Se ha producido un error LDAP durante la supresión del perfil.
+APOC.error.ldap.policygroup.rename=Se ha producido un error LDAP durante el cambio de nombre del perfil.
+APOC.error.unprotect.item=El elemento no se ha podido desproteger debido a que el elemento superior está protegido.
+APOC.error.readonly.item=Un elemento de sólo lectura no se puede editar.
+APOC.error.mandatory.remove=Un elemento obligatorio no se puede borrar.
+APOC.error.comply.constraints=El valor no cumple las restricciones de propiedad.
+APOC.error.nillable=El elemento no se puede anular
+APOC.error.mandatory.setting=Los valores de configuración obligatorios de este elemento no se pueden cambiar.
+APOC.error.policygroup.priority.exists=Ya existe un perfil con esta prioridad.
+APOC.error.policygroup.name.exists=Ya existe un perfil con este nombre.
+APOC.error.policygroup.not.exists=El perfil no existe.
+APOC.error.priorities.incorrect=Las prioridades del perfil son incorrectas.
+APOC.error.policygroup.invalid=El perfil no es válido.
+APOC.error.host.invalid=El nombre del sistema no es válido.
+APOC.error.domain.settings=Los valores de la configuración del dominio no son válidos en la metaconfiguración.
+APOC.error.host.settings=Los valores de la configuración del sistema no son válidos en la metaconfiguración.
+APOC.error.export.policygroup=Se ha producido un error al exportar el perfil.
+APOC.error.import.policygroup=Se ha producido un error al importar el perfil.
+APOC.error.export.policygroup_data=No hay datos del perfil disponibles para la exportación.
+APOC.error.import.policygroup_data=No hay datos del perfil disponibles para la importación.
+
+#*******************************************************************************
+# Profile Window Profile
+#
+#*******************************************************************************
+
+APOC.profilewnd.buttons.save=Guardar
+APOC.profilewnd.buttons.close=Cerrar
+
+# General Settings Tab
+APOC.profilewnd.general.tab=Propiedades generales
+APOC.profilewnd.general.title=Configuración general
+APOC.profilewnd.general.help=Especifique las propiedades generales de este perfil.
+APOC.profilewnd.general.name=Nombre
+APOC.profilewnd.general.namecol=Nombre:
+APOC.profilewnd.general.comment=Comentario
+APOC.profilewnd.general.commentcol=Comentario:
+APOC.profilewnd.general.applicable=Aplicable desde
+APOC.profilewnd.general.browse=Cambiar...
+APOC.profilewnd.general.pending=Cambios pendientes
+APOC.profilewnd.general.author=Autor
+APOC.profilewnd.general.modified=Última modificación
+APOC.profilewnd.general.new_profile_instructions=Se dispone a crear un perfil. Es un proceso de tres pasos principales:<br><br>1. Definir un nombre exclusivo para el perfil (véase a continuación).<br>2. Configurar varios valores predeterminados u obligatorios (aplicados). Consulte la página "Valores de configuración".<br>3. Asignar el nuevo perfil al {0} o {1} deseados (consulte la página "Elementos asignados").
+APOC.profilewnd.lc_domains=dominios
+APOC.profilewnd.lc_hosts=sistemas anfitriones
+APOC.profilewnd.lc_orgs=organizaciones
+APOC.profilewnd.lc_users=usuarios
+APOC.profilewnd.creating_new=Creación de un perfil
+
+# Assignees Tab
+APOC.profilewnd.assignees.tab=Elementos asignados
+APOC.profilewnd.assignees.title=Elementos asignados
+APOC.profilewnd.assignees.help=Asigne elementos a este perfil.
+APOC.profilewnd.assignees.noorgs=No hay elementos asignados.
+APOC.profilewnd.assignees.assign=Asignar elemento...
+APOC.profilewnd.assignees.unassign=Anular asignación de elemento
+APOC.profilewnd.assignees.nameColumn=Nombre
+
+# Configuration Settings Tab
+APOC.profilewnd.settings.tab=Valores de configuración
+APOC.profilewnd.settings.title=Valores de configuración
+APOC.profilewnd.settings.Enable=Activar
+APOC.profilewnd.settings.Disable=Inhabilitar
+APOC.profilewnd.settings.Edit=Editar valores...
+APOC.profilewnd.settings.title.help=Seleccione una de las categorías siguientes.
+APOC.profilewnd.settings.Actions=Avanzado...
+APOC.profilewnd.settings.more=&#8212;&nbsp;Más acciones&nbsp;&#8212;
+APOC.profilewnd.settings.enforce=Aplicar
+APOC.profilewnd.settings.unenforce=Restablecer aplicación
+APOC.profilewnd.settings.undo=Deshacer cambios pendientes
+APOC.profilewnd.settings.default=Restaurar valor predeterminado
+APOC.profilewnd.settings.nameColumn=Nombre
+APOC.profilewnd.settings.valueColumn=Valor
+APOC.profilewnd.settings.enabledColumn=Activada
+APOC.profilewnd.settings.enforcedColumn=Aplicado
+APOC.profilewnd.settings.pendingColumn=Cambios pendientes
+APOC.profilewnd.settings.overwrite=Los usuarios pueden sobrescribir
+APOC.profilewnd.settings.defaultLabel=Valor predeterminado:
+APOC.profilewnd.settings.setToDefaultLabel=Cambiar a valor predeterminado
+
+# Configuration Tree
+APOC.profilewnd.tree.view.all=Todos
+APOC.profilewnd.tree.view.pending=Cambios pendientes
+APOC.profilewnd.advanced.tab=Opciones avanzadas
+APOC.profilewnd.advanced.pagetitle_help=Especificar opciones avanzadas como el orden de combinación de los perfiles.
+APOC.profilewnd.advanced.merge_order=Orden de combinación:
+APOC.profilewnd.buttons.save.help=Guarda los cambios.
+APOC.profilewnd.buttons.close.help=Cierra esta ventana.
+APOC.profilewnd.buttons.ok_assign.help=Asigna los perfiles seleccionados al elemento actual
+
+APOC.profilewnd.js.alert1=Hay cambios sin guardar en esta página. ¿Desea guardar los cambios y cerrar esta ventana?
+APOC.profilewnd.js.alert2=Hay cambios sin guardar en esta página. ¿Desea guardarlos y continuar?
+APOC.profilewnd.js.alert3=Hay cambios sin guardar en esta categoría. ¿Desea guardarlos y continuar?
+APOC.profilewnd.js.alert4=Hay cambios sin guardar en esta página. ¿Desea guardarlos y añadir una entrada?
+APOC.profilewnd.js.alert5=Introduzca un nuevo elemento en la lista:
+
+#Settings Summary
+APOC.profilewnd.summary.help=Vea los valores configurados para este perfil.
+
+# Add Context Wizard
+APOC.wiz.title=Asistente para nuevo depósito de configuración
+APOC.wiz.edit.title=Asistente para la edición de configuración de depósitos
+APOC.wiz.steptext.2=Detalles de depósitos
+APOC.wiz.steptext.3=Detalles LDAP
+APOC.wiz.steptext.4=Credenciales LDAP
+APOC.wiz.steptext.5=Tipo de servidor LDAP
+APOC.wiz.steptext.6=Opciones de metaconfiguración LDAP
+APOC.wiz.steptext.7=Edición de metaconfiguración LDAP
+APOC.wiz.steptext.8=Selección DN base
+APOC.wiz.steptext.9=DN base
+APOC.wiz.steptext.10=Revisar
+APOC.wiz.steptext.11=Resultados
+APOC.wiz.steptext.12=Selección de dirección de datos
+APOC.wiz.steptext.13=Opciones de instalación existentes
+APOC.wiz.steptext.14=Información de migración de perfiles
+APOC.wiz.steptext.15=Credenciales de administrador LDAP
+APOC.wiz.help.2=<p>Seleccione el nombre del depósito y el tipo de jerarquía y almacenamiento que se va a utilizar para los elementos del dominio y la organización del depósito, ya sea un depósito de configuración basado en LDAP, basado en archivos o híbrido.</p><p>En un depósito de configuración basado en LDAP, toda la información relacionada con la estructura de organización, la configuración del perfil y las asignaciones del perfil se almacena en un servidor LDAP; asimismo en el caso de un depósito de configuración basado en archivos, toda la información se guarda en un directorio especificado por el usuario en la máquina en la que se ha instalado Sun Java Web Console.<br>En un depósito de configuración híbrido, la información de jerarquía de organización se toma del servidor LDAP, pero toda la configuración del perfil y las asignaciones del perfil se almacenan como en un depósito basado en archivos.</p>
+APOC.wiz.help.3=<p>Escriba el nombre del sistema y el puerto del servidor LDAP que desee utilizar para el depósito de configuración LDAP.</p><p>Si desea configurar un servidor LDAP que utilice SSL, marque la casilla de verificación "Utilizar SSL".</p>
+APOC.wiz.help.4=<p>Si no se puede utilizar el acceso anónimo para leer el servidor LDAP, se debe introducir una contraseña y un DN cualificado para un usuario con acceso de lectura en los campos "DN de usuario" y "Contraseña de usuario".<br>Esta información se conserva y se necesita para que los usuarios puedan iniciar la sesión en este depósito de configuración mediante el identificador de usuario en lugar del DN cualificados.</p>
+APOC.wiz.help.5=<p>Seleccione el tipo de servidor LDAP que se va a configurar. Estos datos se necesitan a fin de establecer la metaconfiguración predeterminada para el servidor.</p><p>La metaconfiguración define las clases de objetos y los atributos utilizados para identificar elementos LDAP: usuarios, roles, organizaciones, dominios y sistemas.</p>
+APOC.wiz.help.6=<p>Elija si desea editar la metaconfiguración predeterminada.</p><p>La metaconfiguración define los atributos y las clases de objetos utilizados para identificar las entidades LDAP: usuarios, roles, organizaciones, dominios y sistemas.</p>
+APOC.wiz.help.7=<p>Edite la metaconfiguración del área de texto proporcionada.</p><p>La metaconfiguración define los atributos y las clases de objeto utilizados para identificar elementos LDAP: usuarios, roles, organizaciones, dominios y sistemas.</p>
+APOC.wiz.help.8=<p>Seleccione el DN base que desee utilizar para este depósito de configuración desde la lista proporcionada.</p>
+APOC.wiz.help.9=<p>Seleccione el DN base que desee utilizar para este depósito de configuración.</p>
+APOC.wiz.help.10=<p>Revise la configuración proporcionada y pulse "Finalizar" para completar la creación del nuevo depósito de configuración.</p><p>En el caso de una instalación basada en LDAP, si se pulsa el botón "Finalizar" comenzará la actualización del esquema del servidor LDAP y la adición de una rama de servicios a la jerarquía de LDAP.</p>
+APOC.wiz.help.edit.10=<p>Revise la configuración proporcionada y pulse "Finalizar" para completar la actualización del nuevo depósito de configuración.</p><p>En el caso de una instalación basada en LDAP, si se pulsa el botón "Finalizar" comenzará la actualización del esquema del servidor LDAP y la adición de una rama de servicios a la jerarquía de LDAP.</p>
+APOC.wiz.help.11=<p>El resultado de la instalación aparece en el área proporcionada.</p>
+APOC.wiz.help.12=<p>Seleccione el directorio en el que desea almacenar los datos sobre el perfil y la asignación para el depósito de configuración. El procedimiento de instalación crea directorios para almacenar la información sobre el perfil y la asignación, denominados "perfiles" y "asignaciones". En el caso de un depósito basado en archivos, la información sobre la jerarquía se almacena en un archivo editable denominado "entities.txt". En el caso de un depósito híbrido, la metaconfiguración que define los atributos y las clases de objetos utilizados para identificar las entidades LDAP se almacenan en archivos editables llamados "OrganizationMapping.properties" y "UserProfileMapping.properties". </p>
+APOC.wiz.help.13=<p>Un depósito de configuración de Desktop Manager se instala en el directorio especificado. Este depósito quizá contenga información sobre la jerarquía, el perfil y la asignación que desee utilizar para este nuevo depósito. Si así fuera, seleccione conservar los datos de la instalación existente. Si desea crear un depósito totalmente nuevo, elija sobrescribir la instalación existente.</p>
+APOC.wiz.help.14=<p>La información sobre el perfil y la asignación se almacena en una ubicación diferente de LDAP en la versión 2.0 de la utilidad Desktop Manager de versiones anteriores. Elija si desea migrar los perfiles y las asignaciones almacenadas mediante la versión anterior de Desktop Manager a la nueva ubicación para esta versión. </p><p>Los perfiles almacenados con las versiones anteriores se seguirán viendo en Desktop Manager, pero la ubicación de almacenamiento de LDAP permanecerá sin cambios: la migración de los archivos ayuda a mantener un servidor LDAP más racionalizado, al no almacenar la información del perfil 1.x y la del perfil de la versión 2.0 en ubicaciones distintas.</p>
+APOC.wiz.help.15=<p>Indique el DN y la contraseña de un usuario con acceso de lectura/escritura al servidor LDAP en los campos "DN de administrador" y "Contraseña de administrador".<br>Estas credenciales sólo se utilizan para la instalación del esquema, los atributos, las clases de objetos y las entidades solicitados en un servidor LDAP por parte de Desktop Manager. No se conservan.</p>
+APOC.wiz.help.15a=<p>Indique el DN y la contraseña de un usuario con acceso de lectura/escritura al servidor LDAP en los campos "DN de administrador" y "Contraseña de administrador".<br>Estas credenciales sólo se utilizan para migrar la información sobre los perfiles y la asignación en el servidor LDAP. No se conservan.</p>
+APOC.wiz.instruction.2=Seleccione el nombre del depósito y el tipo de jerarquía y almacenamiento que se va a utilizar para los elementos del dominio y la organización.
+APOC.wiz.instruction.3=Indique los detalles del servidor LDAP que desee configurar para este depósito. Se necesita el nombre del sistema y el puerto donde el servidor se ejecuta. También puede decidir si conectarse a este servidor mediante SSL.
+APOC.wiz.instruction.4=Para que los usuarios puedan iniciar la sesión en el depósito mediante su identificador de usuario en lugar de un DN cualificado, debe tener activado el Acceso anónimo. También es posible introducir una contraseña y un DN cualificado para un usuario con acceso de lectura en los campos "DN de usuario" y "Contraseña de usuario".
+APOC.wiz.instruction.5=Diferentes marcas de servidor LDAP solicitan procedimientos de instalación diferentes. Seleccione el tipo de servidor LDAP que utilizar para el nuevo depósito de configuración.
+APOC.wiz.instruction.6=La metaconfiguración define los atributos y las clases de objetos utilizados para identificar entidades de LDAP: usuarios, roles, organizaciones, dominios y sistemas. Se ofrecen los pertinentes valores predeterminados, pero los usuarios pueden agregar sus propios valores si así lo desean. Seleccione si desea editar la metaconfiguración predeterminada para este tipo de servidor LDAP.
+APOC.wiz.instruction.7=Edite la metaconfiguración predeterminada en el área de texto siguiente.
+APOC.wiz.instruction.8=La siguiente lista contiene todos los DN base disponibles en el servidor LDAP especificado. Seleccione el DN base que utilizar en este depósito de configuración.
+APOC.wiz.instruction.9=Se necesita un DN base válido en el servidor LDAP especificado para instalar un depósito de configuración. Indique el DN base que utilizar en este depósito de configuración.
+APOC.wiz.instruction.10=Revise la configuración introducida. Haga clic en Finalizar para completar la creación del nuevo depósito de configuración.
+APOC.wiz.instruction.edit.10=Revise la configuración introducida. Haga clic en Finalizar para completar la actualización del nuevo depósito de configuración.
+APOC.wiz.instruction.11=
+APOC.wiz.instruction.12=Seleccione el directorio en el que desea almacenar los datos sobre el perfil y la asignación para el depósito de configuración.
+APOC.wiz.instruction.13=Se ha encontrado un depósito de configuración de Desktop Manager en el directorio especificado. Elija si desea utilizar los datos de este directorio para esta instalación, o borrar toda la información y crear un depósito nuevo.
+APOC.wiz.instruction.14=Se ha encontrado una versión anterior de Desktop Manager en este servidor LDAP. Elija si desea migrar el perfil y la información de la asignación almacenada mediante esta versión anterior en la nueva ubicación utilizada para el almacenamiento de esta instalación.
+APOC.wiz.instruction.15=El procedimiento de configuración solicita la ampliación del esquema LDAP y la adición de una rama en el árbol LDAP. Por este motivo, el DN y la contraseña de un usuario con derechos de acceso adecuados al servidor LDAP se deben incluir en los campos "DN de administrador" y "Contraseña de administrador".
+APOC.wiz.instruction.15a=La migración de la ubicación de almacenamiento de perfiles necesita modificaciones en el árbol LDAP. Por este motivo, el DN y la contraseña de un usuario con derechos de acceso adecuados al servidor LDAP se deben incluir en los campos "DN de administrador" y "Contraseña de administrador"
+APOC.wiz.placeholder=[Pasos determinados según lo que se haya seleccionado en el paso anterior.]
+
+APOC.wiz.2.name=Nombre de depósito:
+APOC.wiz.2.type=Tipo de depósito:
+APOC.wiz.2.ldap=LDAP: Almacenamiento y jerarquía LDAP
+APOC.wiz.2.file=Basado en archivos: Almacenamiento y jerarquía basados en archivos
+APOC.wiz.2.hybrid=Híbrido: Almacenamiento basado en archivos y jerarquía LDAP
+APOC.wiz.2.alert=Indique un nombre para el nuevo depósito de configuración.
+APOC.wiz.3.host=Host:
+APOC.wiz.3.port=Puerto:
+APOC.wiz.3.ssl=Utilizar SSL
+APOC.wiz.3.alert1={0} es un número de puerto LDAP no válido. El número de puerto debe ser un número íntegro entre 0 y 65535.
+APOC.wiz.3.alert2=No es posible la conexión con un servidor LDAP en {0}.
+APOC.wiz.4.admin.dn=DN de administrador:
+APOC.wiz.4.admin.pw=Contraseña de administrador:
+APOC.wiz.4.anon=Utilizar acceso anónimo
+APOC.wiz.4.user.dn=DN de usuario:
+APOC.wiz.4.user.pw=Contraseña de usuario:
+APOC.wiz.4.alert1=No es posible autenticar como {0} en {1} con la contraseña especificada.
+APOC.wiz.4.alert3={0} carece de los permisos necesarios para leer de {1}! Proporcione las credenciales para un usuario con permisos de lectura respecto al servidor.
+APOC.wiz.5.type=Tipo de servidor LDAP:
+APOC.wiz.5.sun=Sun ONE Directory Server
+APOC.wiz.5.openldap=Abrir LDAP
+APOC.wiz.5.ad=Active Directory
+APOC.wiz.5.other=Otro
+APOC.wiz.6.question=¿Desea adaptar la metaconfiguración?
+APOC.wiz.6.no=No
+APOC.wiz.6.yes=Sí
+APOC.wiz.7.adapt=Adapte la metaconfiguración siguiente:
+APOC.wiz.8.basedn=Seleccione DN base:
+APOC.wiz.8.alert=El DN base {0} no existe en el servidor {1}. El servidor LDAP tiene una configuración incorrecta. Vuelva a configurar el servidor y reinicie el asistente.
+APOC.wiz.9.basedn=Escriba el DN base del servidor LDAP.
+APOC.wiz.9.alert=El DN base {0} no existe en el servidor {1}. Compruebe el servidor LDAP e introduzca un DN base existente.
+APOC.wiz.10.anonymous=Anónimo
+APOC.wiz.10.vendor=Nombre del proveedor:
+APOC.wiz.10.metaconfig=Metaconfiguración:
+APOC.wiz.10.basedn=DN base:
+APOC.wiz.10.path=Directorio de datos basado en archivos.
+APOC.wiz.10.migrate=Migrar perfiles:
+APOC.wiz.10.orgdom.section=Información del dominio y la organización.
+APOC.wiz.10.general.section=Información general:
+APOC.wiz.10.noaction=El servidor en {0} ya está configurado para Desktop Manager. No se requiere ninguna otra acción. Haga clic en el botón Finalizar para completar la creación del depósito de configuración y agregar esta entrada a la tabla Depósitos de configuración.
+APOC.wiz.10.edit.noaction=El servidor en {0} ya está configurado para Desktop Manager. No se requiere ninguna otra acción. Haga clic en el botón Finalizar para completar la actualización de los detalles de este depósito de configuración.
+APOC.wiz.10.alert=El esquema de un servidor {0} se debe ampliar manualmente con el esquema de Desktop Manager antes de continuar.
+APOC.wiz.10.fail1= - Error al actualizar los atributos del esquema y las clases de objeto del servidor LDAP especificado.
+APOC.wiz.10.fail2= - Error al crear la rama de servicios en el servidor LDAP especificado.
+APOC.wiz.10.fail3= - Error al escribir los atributos de metaconfiguración en el servidor LDAP especificado.
+APOC.wiz.10.fail4= - No es posible agregar el atributo {0} a la entrada {1}.
+APOC.wiz.10.fail5= - Error al borrar la instalación.
+APOC.wiz.10.fail6= - Error al actualizar el archivo de configuración del depósito de configuración: {0}.
+APOC.wiz.10.fail7=Asegúrese de que {0} pueda autenticarse y de que tenga acceso de escritura a {1}.
+APOC.wiz.10.fail8= - Error al crear el archivo de estructura de jerarquía predeterminado.
+APOC.wiz.10.fail9= - Error al crear los archivos de metaconfiguración.
+APOC.wiz.10.fail10= - Error al migrar el perfil del elemento {0}.
+APOC.wiz.11.title=El nuevo depósito de configuración se ha creado correctamente
+APOC.wiz.11.text=El depósito de configuración que acaba de crear no estará disponible. Para acceder a él, haga clic en su nombre en la tabla de depósitos de configuración. Si el usuario que ha iniciado la sesión no es un administrador de este depósito de configuración, se le indicará que inicie la sesión con credenciales de administrador válidas.
+APOC.wiz.11.alert.title=La creación del nuevo depósito de configuración no es válida
+APOC.wiz.11.edit.title=El depósito de configuración se ha actualizado correctamente
+APOC.wiz.11.edit.text=El depósito de configuración que acaba de actualizar no estará disponible. Para acceder a él, haga clic en su nombre en la tabla de depósitos de configuración. Si el usuario que ha iniciado la sesión no es un administrador de este depósito de configuración, se le indicará que inicie la sesión con credenciales de administrador válidas.
+APOC.wiz.11.alert.edit.title=La actualización del depósito de configuración no es válida
+APOC.wiz.12.alert1={0} no existe.
+APOC.wiz.12.alert2={0} no es un directorio.
+APOC.wiz.12.alert3=No es posible escribir en el directorio {0}.
+APOC.wiz.13.existing=Elija una acción:
+APOC.wiz.13.overwrite=Sobrescriba los datos y cree otra instalación
+APOC.wiz.13.update=Conserve los datos de la instalación
+APOC.wiz.14.existing=Migre la información sobre el perfil y la asignación:
+APOC.wiz.14.username=Nombre de usuario (de usuario con acceso de escritura):
+APOC.wiz.14.password=Contraseña:
+APOC.wiz.ldap.err.nosuchattr=Excepción LDAP (16): no se ha encontrado el atributo especificado.
+APOC.wiz.ldap.err.valueexists=Excepción LDAP (20): el valor que se agrega a un atributo ya existe en el atributo.
+APOC.wiz.ldap.err.attrsyntax=Excepción LDAP (21): la solicitud contiene una sintaxis no válida.
+APOC.wiz.ldap.err.nosuchobj=Excepción LDAP (32): la entrada especificada en la solicitud no existe.
+APOC.wiz.ldap.err.invaliddn=Excepción LDAP (34): el nombre distinguido (DN) especificado utiliza una sintaxis no válida.
+APOC.wiz.ldap.err.invalidcred=Excepción LDAP (49): las credenciales presentadas al servidor para la autenticación no son válidas.
+APOC.wiz.ldap.err.noaccessrights=Excepción LDAP (50): el cliente se ha autenticado como usuario sin privilegios de acceso para realizar esta operación.
+APOC.wiz.ldap.err.entryexists=Excepción LDAP (68): la entrada especificada ya existe.
+APOC.wiz.ldap.err.serverdown=Excepción LDAP (81): no se puede establecer contacto con el servidor LDAP.
+APOC.wiz.ldap.err.timeout=Excepción LDAP (85): no se ha podido realizar la operación de búsqueda dentro del límite de tiempo máximo.
+APOC.wiz.ldap.err.connecterror=Excepción LDAP (91): su cliente LDAP no ha conseguido conectarse con el servidor LDAP.
+
+#Copy Move Wizard
+APOC.wiz.copy.copymove=Copiar y mover...
+APOC.wiz.copy.copymove.tooltip=Copiar o mover un perfil.
+APOC.wiz.copy.copymove.disabled.tooltip=Copiar o mover un perfil (no disponible).
+APOC.wiz.copy.title=Asistente para copiar y mover
+APOC.wiz.copy.steptext.1=Elija un perfil de origen
+APOC.wiz.copy.steptext.2=Elija acción
+APOC.wiz.copy.steptext.3=Elija un elemento de destino
+APOC.wiz.copy.instruction.1=Elija un depósito de configuración de origen y un perfil de origen desde este depósito de configuración para copiar o mover.
+APOC.wiz.copy.instruction.2=Seleccione la acción que realizar en el perfil especificado. Elija si va a omitir o no las asignaciones para este perfil.
+APOC.wiz.copy.instruction.3=Elija un depósito de configuración de destino y un elemento de destino desde este depósito de configuración para copiar o mover.
+APOC.wiz.copy.instruction.4=Revise la configuración introducida. Haga clic en Finalizar para copiar o mover el perfil.
+APOC.wiz.copy.help.1=<p>Elija el depósito de configuración que contiene el perfil que desea copiar/mover; para ello, haga clic en el botón 'Cambiar...' y seleccione el depósito de configuración pertinente de la lista.</p><p>Asimismo, seleccione el perfil que desee copiar/mover; para ello, haga clic en el botón 'Cambiar...' y seleccione el perfil solicitado de la lista.</p>
+APOC.wiz.copy.help.2=<p>Elija la acción que se debe ejecutar en el perfil seleccionado.</p><p>Decida si desea aceptar no las asignaciones de este perfil al ejecutar la acción especificada.</p>
+APOC.wiz.copy.help.3=<p>Elija el depósito de configuración al que desea copiar o mover; para ello, haga clic en el botón 'Cambiar...' y seleccione el depósito de configuración pertinente de la lista.</p><p>Asimismo, seleccione el elemento que desee copiar o mover; para ello, haga clic en el botón 'Cambiar...' y seleccione el elemento solicitado de la lista.</p>
+APOC.wiz.copy.source.context=Depósito de origen:
+APOC.wiz.copy.source.profile=Perfil de origen:
+APOC.wiz.copy.1.alert=Se debe seleccionar un perfil de origen.
+APOC.wiz.copy.2.alert=El usuario autenticado {0} carece de permisos para mover el perfil de origen {1}.
+APOC.wiz.copy.select.action=Seleccionar acción:
+APOC.wiz.copy.copy=Copiar
+APOC.wiz.copy.move=Mover
+APOC.wiz.copy.assignments=Incluir asignaciones
+APOC.wiz.copy.target.context=Depósito de destino:
+APOC.wiz.copy.target.entity=Elemento de destino:
+APOC.wiz.copy.3.alert=Se debe seleccionar un elemento de destino
+APOC.wiz.copy.action=Acción:
+APOC.wiz.copy.assignments.assignments=Incluir asignaciones:
+APOC.wiz.copy.3.alert1=No es posible mover un perfil si el elemento de origen y el de destino son el mismo.
+APOC.wiz.copy.3.alert2=El perfil {0} no puede ser {1}! Ya existe un perfil con este nombre en el elemento de destino {2}.
+APOC.wiz.copy.3.alert3=El usuario autenticado {0} carece de permisos para {1} el perfil {2} al elemento {3}.
+APOC.wiz.copy.4.alert=El perfil {0} no puede ser {1}! El perfil se asigna al menos a un elemento ubicado por encima del elemento de destino {2}.
+APOC.wiz.copy.copyof=Copia {0} de {1}
+APOC.wiz.copy.overview.title=Información general sobre el Asistente para copiar y mover
+APOC.wiz.copy.overview.text=<p>Los perfiles se pueden almacenar en cualquier elemento de la estructura de organización. El Asistente para copiar y mover guía por los pasos necesarios para crear una copia de un perfil que se almacene en un elemento en una nueva ubicación de almacenamiento en un elemento diferente, o para mover la ubicación de almacenamiento de un perfil de un elemento a otro. Hay algunas restricciones a la hora de utilizar la opción Incluir asignaciones en su acción de copiar/mover: concretamente, que un perfil sólo se puede asignar a un elemento que se encuentre en o bajo la ubicación de almacenamiento de ese perfil. Se le indicará que proporcione:</p><p><ul><li>un depósito de configuración de origen y un perfil de destino.</li><li>Una acción que ejecutar y se le preguntará si desea incluir también asignaciones de perfil al ejecutar esta acción.</li><li>Un depósito de configuración de destino y un elemento de destino.</li><li>Un depósito de configuración de destino y un elemento de destino.</li></ul></p><p>Una vez proporcionada la información anterior, el asistente ejecuta la acción solicitada en el perfil seleccionado.
+APOC.wiz.copy.steptext.overview=Información general
+APOC.wiz.copy.results.text.assigned=El perfil {0} se ha {1} en una nueva ubicación de almacenamiento en el elemento y se ha asignado a este elemento.
+APOC.wiz.copy.results.text.unassigned=El perfil {0} se ha {1} en una nueva ubicación de almacenamiento en el elemento {2}.
+APOC.wiz.copy.results.title=Perfil {0} correcto
+APOC.wiz.copy.results.alert.title=Perfil {0} incorrecto
+APOC.wiz.copy.results.copied=Copiado
+APOC.wiz.copy.results.moved=Movido
+APOC.wiz.copy.results.copied.lc=copiado
+APOC.wiz.copy.results.moved.lc=movido
+APOC.wiz.copy.4.fail1=Error al copiar el perfil.
+APOC.wiz.copy.4.fail2=Error al borrar el perfil.
+APOC.wiz.copy.4.fail3=Error al configurar un nuevo nombre de visualización del perfil.
+APOC.wiz.copy.4.fail4=Error al asignar un nuevo perfil al elemento de destino.
+
+# Browse Tree
+APOC.browse.title.org=Seleccione una organización
+APOC.browse.title.dom=Seleccione un dominio
+APOC.browse.title=Seleccione un elemento
+APOC.browse.title.text=Navegue por el árbol y seleccione el elemento. Haga clic en el botón 'Aceptar' para confirmar la selección.
+APOC.browse.cancel.help=Cancele la selección y cierre la ventana.
+APOC.browse.ok.help=Confirme la selección y cierre la ventana.
+APOC.browse.tree.nav=Navegación por el árbol
+
+#*******************************************************************************
+# Syncronization
+#*******************************************************************************
+APOC.sync.title=Sincronización
+APOC.sync.help=Esta página permite sincronizar dos depósitos de configuración.
+APOC.sync.sourcerep.label=Depósito de configuración de origen:
+APOC.sync.sourcerep.help=Menú de depósitos de configuración disponibles.
+APOC.sync.sourcepath.label=Punto de inicio de origen:
+APOC.sync.sourcepath.button=Cambiar...
+APOC.sync.sourcepath.help=Abre una ventana que permite cambiar la ruta contextual de origen.
+APOC.sync.targetrep.label=Depósito de configuración de destino:
+APOC.sync.targetrep.help=Menú de depósitos de configuración disponibles.
+APOC.sync.targetpath.label=Punto de inicio de destino:
+APOC.sync.targetpath.button=Cambiar...
+APOC.sync.targetpath.help=Abre una ventana que permite cambiar la ruta contextual de destino.
+APOC.sync.sync.button=Sincronizar
+APOC.sync.sync.help=Sincroniza los perfiles de la lista de acuerdo con las acciones seleccionadas.
+APOC.sync.reset.button=Restablecer
+APOC.sync.reset.help=Restablece las acciones predeterminadas sugeridas por el Administrador de configuraciones.
+APOC.sync.cancel.help=Cierra esta ventana.
+APOC.sync.login.title=Inicio de sesión de contexto
+APOC.sync.login.pagetitle=Inicio de sesión: depósito de configuración de origen
+APOC.sync.login.pagetitle2=Inicio de sesión: depósito de configuración de destino
+APOC.sync.login.pagehelp=El Administrador de configuraciones permite controlar varios depósitos de configuración que pueden necesitar inicios de sesión individuales. Las credenciales usadas para iniciar la sesión en Java Web Console se establecen como predeterminadas si se pueden volver a utilizar. Esta página de inicio de sesión no aparece si ya se ha autenticado en el depósito de configuración durante esta sesión. Si desea iniciar la sesión con otras credenciales en un depósito de configuración, debe terminar la sesión desde Java Web Console que termina la sesión.
+APOC.sync.compare.button=Comparar
+APOC.sync.compare.help=Compara el origen con el destino.
+APOC.sync.result.empty=No se han encontrado diferencias.
+APOC.sync.result.summary=Esta tabla enumera las diferencias entre el depósito de configuración de origen y el de destino.
+APOC.sync.result.title=Perfiles
+APOC.sync.result.title2=Perfiles diferentes
+APOC.sync.result.help0=Acerca de la sincronización
+APOC.sync.result.help1=Esta ventana permite sincronizar dos depósitos de configuración.
+APOC.sync.result.help2=Puede modificar el depósito de origen que sirve como origen para los cambios. Este depósito no se ha cambiado. Si lo desea, puede restringir el depósito de origen especificando un elemento diferente de la raíz como punto de inicio para la sincronización.
+APOC.sync.result.help3=Puede modificar el depósito de destino que sirve como destino para los cambios. Este depósito se ha cambiado. Si lo desea, puede restringir el depósito de destino especificando un elemento diferente de la raíz como punto de inicio para la sincronización.
+APOC.sync.result.help4=Tras haber especificado los árboles de origen y de destino, haga clic en el botón "Comparar". Los dos árboles se comparan y todas las diferencias se enumeran en una tabla. Marque las filas de la tabla con los perfiles que desee sincronizar y pulse el botón "Sincronizar".
+APOC.sync.result.help5=Después de la sincronización, el depósito de destino coincide con el de origen respecto a los perfiles seleccionados.
+APOC.sync.busymsg.text=En proceso...
+APOC.sync.result.column1=Perfil
+APOC.sync.result.column2=Acciones en el depósito de destino
+APOC.sync.action.copycontent=Copiar contenido.
+APOC.sync.action.copycomment=Copiar comentarios.
+APOC.sync.action.alignassign=Alinear asignaciones.
+APOC.sync.action.changeprios=Cambiar prioridades.
+APOC.sync.action.create=Crear el perfil con contenido y asignaciones.
+APOC.sync.action.delete=Borrar el perfil.
+APOC.sync.msg.orgdomcomapre=No puede comparar un árbol de la organización con un árbol del dominio.
+APOC.sync.msg.noprofiles=No se han encontrado perfiles.
+APOC.sync.msg.allequal=Todos los perfiles comparados son iguales, no es necesaria una sincronización.
+APOC.sync.msg.nocompare=Se han encontrado perfiles pero ninguno de ellos se ha podido comparar.
+APOC.sync.msg.partialcompare=Al menos uno de los perfiles encontrados no se ha podido comparar.
+APOC.sync.msg.compare.detail=Para que un perfil se pueda comparar, la ruta relativa desde el punto de inicio a su ubicación de almacenamiento debe existir en el otro depósito.
+APOC.sync.waitmsg.prepare=Preparando
+APOC.sync.waitmsg.retsource=Recuperando perfiles de origen
+APOC.sync.waitmsg.rettarget=Recuperando perfiles de destino
+APOC.sync.waitmsg.prepx=Preparando comparación de perfiles ({0} perfiles preparados)
+APOC.sync.waitmsg.compx=Comparando perfiles ({0} de {1} perfiles comparados)
+APOC.sync.waitmsg.sync=Sincronizando perfiles ({0} de {1} perfiles sincronizados)
+APOC.sync.waitmsg.time=Tiempo transcurrido: {0}:{1}.{2}
+
+APOC.tabs.tree.title=Perfiles - Vista de árbol
+APOC.tabs.tree.help=Muestra los perfiles asignados en el árbol de la organización y del dominio.
+APOC.tabs.all.title=Perfiles - Todos
+APOC.tabs.all.help=Muestra una lista de todos los perfiles.
+
+APOC.find.title=Buscar
+APOC.find.button=Buscar
+
+#*******************************************************************************
+# Contexts
+#*******************************************************************************
+APOC.contexts.title=Depósitos de configuración
+APOC.contexts.details.title=Detalles de depósito de configuración
+APOC.contexts.details.name=Nombre de depósito
+APOC.contexts.details.domorg.info=Ubicación del dominio/Información de la organización
+APOC.contexts.details.domorg.profile.info=Ubicación de almacenamiento del dominio/Información de la organización
+APOC.contexts.details.property=Propiedad
+APOC.contexts.details.view=Ver detalles
+APOC.contexts.help=El depósito de configuración es la ubicación de almacenamiento para los datos de configuración necesarios para configurar las aplicaciones.
+APOC.contexts.table.title=Depósitos de configuración
+APOC.contexts.config.error=No es posible acceder al depósito seleccionado. Hay un error de sintaxis en el archivo de configuración {0}.
+APOC.contexts.table.summary=Esta tabla muestra todos los depósitos de configuración disponibles. La columna 'Tipo' muestra el tipo de depósito. La columna 'Ubicación de datos de organización' muestra diversas URL que apuntan a la ubicación de almacenamiento que proporciona los datos de organización. La columna 'Ubicación de datos de perfil' muestra diversas URL que apuntan a la ubicación de almacenamiento que ofrece los datos de perfil.. Haga clic en el vínculo de nombre para utilizar el depósito de configuración.
+APOC.contexts.details.table.summary=Esta tabla muestra una lista de las propiedades del depósito de configuración seleccionado. En la lista aparece el nombre, la ubicación de la información de jerarquía y la información de almacenamiento.
+APOC.contexts.table.empty=No hay depósito de configuración disponible. Utilice el botón 'Nuevo...' para crear un depósito de configuración.
+APOC.contexts.menu.create=Crear...
+APOC.contexts.menu.remove=Eliminar...
+APOC.contexts.menu.rename=Cambiar nombre...
+APOC.contexts.menu.synchronize=Sincronizar...
+APOC.contexts.column.name=Nombre
+APOC.contexts.column.type=Tipo
+APOC.contexts.column.locorg=Ubicación de datos de organización
+APOC.contexts.column.locpro=Ubicación de datos de perfil
+APOC.contexts.hybrid.text=híbrido
+APOC.contexts.create.button=Crear un depósito de configuración
+APOC.contexts.login.context=Depósito de configuración
+APOC.contexts.login.title=Depósitos de configuración - Inicio de sesión
+APOC.contexts.login.help=El Administrador de configuraciones permite controlar varios depósitos de configuración que pueden necesitar inicios de sesión individuales. Las credenciales usadas para iniciar la sesión en Java Web Console se establecen como predeterminadas si se pueden volver a utilizar. Esta página de inicio de sesión no aparece si ya se ha autenticado en el depósito de configuración durante esta sesión. Si desea iniciar la sesión con otras credenciales en un depósito de configuración, debe terminar la sesión desde Java Web Console que termina la sesión.
+APOC.select.contexts.login.help=Con el fin de seleccionar un nuevo depósito de configuración, debe ofrecer nuevas credenciales de inicio de sesión. Las credenciales utilizadas previamente para iniciar la sesión en el depósito elegido son predeterminadas si están disponibles.
+APOC.relocate.error.summary=Operación cancelada
+APOC.relocate.error.detail=Al menos una organización o un dominio al que este perfil está asignado se encontraría por encima de la nueva ubicación del perfil.
+APOC.relocate.trace.text=No hay seguimiento de pila disponible.
+
diff --git a/src/com/sun/apoc/manager/resource/apoc_manager_fr.properties b/src/com/sun/apoc/manager/resource/apoc_manager_fr.properties
new file mode 100644
index 0000000..f304d45
--- /dev/null
+++ b/src/com/sun/apoc/manager/resource/apoc_manager_fr.properties
@@ -0,0 +1,998 @@
+#*******************************************************************************
+#
+# $RCSfile: apoc_manager_fr.properties,v $
+#
+# Description: Resource bundle for the Sun Java(tm) Desktop System
+# Configuration Manager
+#
+# Last change: $Date: 2007/05/30 12:23:48 $ $Revision: 1.14 $
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use of this
+# product is subject to license terms.
+#
+#*******************************************************************************
+
+#*******************************************************************************
+# Common
+#
+#*******************************************************************************
+
+APOC.framelongdesc=Cette application s'organise en trois volets. Le cadre masthead occupe le haut de la page. À gauche, le volet de navigation permet de parcourir les utilisateurs et les hôtes. Lorsque vous sélectionnez un élément dans le volet de navigation, le volet de contenu et éventuellement le volet de navigation sont mis à jour. À droite, la zone de contenu affiche des informations relatives à l'élément sélectionné.
+APOC.so7=StarOffice 7
+APOC.button.remove=Supprimer
+APOC.button.close=Fermer
+APOC.button.OK=OK
+APOC.button.cancel=Annuler
+APOC.button.browse=Modifier...
+APOC.headings.name=Nom
+APOC.login.username=Nom d'utilisateur :
+APOC.login.password=Mot de passe :
+APOC.infoAlert.success=L'opération a été correctement effectuée.
+APOC.noframes=Les cadres sont requis pour l'utilisation de cette application.
+APOC.settings.notset=-- Non défini --
+APOC.profiles.profile=Profil
+APOC.help.more.on=>> Plus sur {0}
+APOC.help.more=>> Plus
+APOC.pool.renameContextMessage=Entrez le nouveau nom du référentiel :
+APOC.pool.removeContextMessage=Voulez-vous supprimer les référentiels de configuration sélectionnés ?
+APOC.helpwindow.tooltip=Aide (ouvre une nouvelle fenêtre)
+
+#*******************************************************************************
+# Masthead
+#
+#*******************************************************************************
+
+APOC.frame.masthead=Cadre masthead
+APOC.masthead.altTextVer=Sun Desktop Manager 1.0.1
+APOC.masthead.altText=Sun Desktop Manager 1.0.1
+APOC.masthead.altTextForSub={0}
+APOC.masthead.packages.alt=Packages de stratégies (ouvre une nouvelle fenêtre)
+APOC.masthead.path.link=Référentiels
+APOC.masthead.path.help=Retour à la page Référentiel de configuration
+
+#*******************************************************************************
+# Packages Dialog Strings
+#
+#*******************************************************************************
+
+APOC.packages.title=Packages de stratégies
+APOC.packages.introtext=Cette fenêtre vous permet d''installer ou de désinstaller des packages de stratégies. Les packages de stratégies sont fournis par Sun Microsystems ou des fournisseurs tiers ; ils contiennent des stratégies supplémentaires à utiliser dans {0}.
+APOC.packages.tabletitle=Packages de stratégies installés
+APOC.packages.headings.adddate=Date d'ajout
+APOC.packages.action.file=Installer à partir du serveur...
+APOC.packages.action.url=Installer à partir du client...
+APOC.packages.action.uninstall=Désinstaller
+APOC.packages.uninstall.confirm=Voulez-vous vraiment désinstaller le package sélectionné ?
+APOC.packages.filechooser.addfile=Installer le package de stratégies à partir du fichier serveur
+APOC.packages.filechooser.button=Choisir un fichier
+APOC.packages.localchooser.title=Installer le package de stratégies à partir du fichier local
+APOC.packages.localchooser.upload=Télécharger
+APOC.packages.localchooser.choosetext=Fichier à télécharger :
+
+#*******************************************************************************
+# Users Page Tab
+#
+#*******************************************************************************
+
+APOC.users.title=Utilisateurs
+APOC.users.introtext=Cet onglet répertorie les utilisateurs qui sont membres du rôle sélectionné. La colonne Chemin d'accès répertorie les chemins d'accès absolus.
+APOC.users.tableSummary=Ce tableau répertorie les utilisateurs membres du rôle sélectionné. La colonne Chemin d'accès répertorie les chemins d'accès absolus. Cliquez sur le nom d'un utilisateur pour le sélectionner dans le volet de gauche.
+
+#*******************************************************************************
+# Roles Page Tab
+#
+#*******************************************************************************
+
+APOC.roles.title=Rôles
+APOC.roles.introtext=Cet onglet affiche la liste des rôles dont l'utilisateur sélectionné est membre. La colonne Chemin d'accès répertorie les chemins d'accès absolus.
+APOC.roles.tableSummary=Ce tableau affiche la liste des rôles dont l'utilisateur sélectionné est membre. La colonne Chemin d'accès répertorie les chemins d'accès absolus. Cliquez sur le nom d'un rôle pour le sélectionner dans le volet de gauche.
+
+#*******************************************************************************
+# Assignees Page Tab
+#
+#*******************************************************************************
+
+APOC.assignees.title=Entités assignées
+APOC.assignees.introtext=Cet onglet affiche la liste des entités auxquelles le profil sélectionné a été assigné. La colonne Chemin d'accès répertorie les chemins d'accès absolus.
+APOC.assignees.tableSummary=Ce tableau affiche la liste des entités auxquelles le profil sélectionné a été assigné. La colonne Chemin d'accès répertorie les chemins d'accès absolus. Cliquez sur le nom d'un élément pour le sélectionner dans le volet de gauche.
+
+#*******************************************************************************
+# Profiles Tab page
+#
+#*******************************************************************************
+
+APOC.policysets.title=Profils assignés
+APOC.policysets.label=Profils :
+APOC.policysets.introtext=Cet onglet permet d'assigner des profils à l'élément sélectionné.
+APOC.policysets.save=Enregistrer
+APOC.policysets.infoAlert.saveSuccess=Les modifications apportées aux assignations de profil ont été enregistrées.
+
+#*******************************************************************************
+# Policies Tab page
+#
+#*******************************************************************************
+
+APOC.policies.title=Stratégies assignées
+APOC.policies.subcategories=Sous-catégories
+APOC.policies.nameCol=Nom
+APOC.policies.commentCol=Commentaire
+APOC.policies.actionCol=Action
+APOC.policies.toggle.button=Basculer action
+APOC.policies.introtext=Cette page affiche l'arborescence des stratégies de configuration et les paramètres configurés pour l'élément sélectionné.
+APOC.policies.tableSummary=Ce tableau affiche la liste des stratégies disponibles. Chaque ligne contient le nom d'une stratégie ainsi qu'une description succincte de celle-ci. Cliquez sur un nom de stratégie pour afficher ses sous-stratégies.
+APOC.properties.tableSummary=Ce tableau affiche la liste des paramètres de configuration. Chaque ligne contient l'état, le nom et la valeur de la propriété.
+APOC.policies.stateCol=État
+APOC.policies.value=Valeur
+APOC.policies.value.notconfig=Non configurée
+APOC.policies.value.config=Configurée
+APOC.policies.status=État
+APOC.policies.root=Stratégies
+APOC.policies.actions=&#8212;&nbsp;Actions de stratégie&nbsp;&#8212;
+APOC.policies.actions.protect=Protéger
+APOC.policies.actions.unprotect=Annuler la protection
+APOC.policies.actions.default=Appliquer la valeur par défaut
+APOC.policies.actions.clear=Effacer
+APOC.policies.enable=Activer
+APOC.policies.enabled=Activé
+APOC.policies.disabled=Désactivé
+APOC.policies.clear.button=Effacer les paramètres...
+APOC.policies.createrep.button=Créer un rapport...
+APOC.policies.createrep.tooltip=Crée un rapport (ouvre une nouvelle fenêtre)
+APOC.policies.clear.confirmation=Cette opération va supprimer tous les paramètres de cette couche et des couches sous-jacentes. Voulez-vous vraiment continuer ?
+APOC.policies.backToTop=Retour au début
+APOC.policies.backToTop.tooltip=Retour au début
+APOC.policies.jumpDown.tooltip={0} (passe à cette section)
+APOC.policies.save.button=Enregistrer
+APOC.policies.reset.button=Réinitialiser
+APOC.policies.navigation.table.empty=Aucune stratégie n'a été assignée.
+APOC.policies.set.table.empty=Aucune entrée n'a été trouvée.
+APOC.policies.new.button=Nouveau...
+APOC.policies.delete.button=Supprimer
+APOC.policies.name.question=Saisissez le nom de la nouvelle entrée.
+APOC.policies.rename.set=Saisissez le nouveau nom de l'entrée.
+APOC.policies.status.defined_here=L'élément est défini dans cette couche.
+APOC.policies.status.defined_above=L'élément est défini dans une couche supérieure.
+APOC.policies.status.noprotection=Aucun état de protection.
+APOC.policies.status.nodefinition=Aucun état de définition.
+APOC.policies.status.jumpto=Cliquez sur ce lien pour aller à {0}.
+APOC.policies.status.protected_here=L'élément est protégé dans cette couche.
+APOC.policies.status.protected_above=L'élément est protégé dans une couche supérieure.
+APOC.policies.status.policygroup=Profil {0}
+APOC.policies.info.general=L'opération a été correctement effectuée.
+APOC.policies.info.stored=Tous les paramètres ont été enregistrés.
+APOC.policies.info.removed=Tous les paramètres ont été supprimés.
+APOC.policies.error.general=Une erreur s'est produite.
+APOC.policies.error.removing=Erreur lors de la suppression des paramètres : {0}
+APOC.policies.error.storing=Erreur lors de l''enregistrement des paramètres : {0}
+APOC.policies.confirmation.storechanges=Vous avez apporté plusieurs modifications. Voulez-vous les enregistrer maintenant ?
+APOC.policies.info.readonly.access=Cette page est en lecture seule, car vous ne disposez pas des droits d'accès nécessaires pour apporter des modifications.
+APOC.policies.info.readonly.maybe=Au moins un des profils affichés est en lecture seule, car vous ne disposez pas des droits d'accès nécessaires pour apporter des modifications.
+APOC.policies.info.readonly.roles=Cette page est en lecture seule, car les stratégies locales ne peuvent pas être assignées aux rôles.
+APOC.policies.edit.button=Éditer...
+APOC.policies.include_in=Inclure dans
+APOC.policies.exclude_from=Exclure de
+APOC.policies.footnote=* indique les valeurs par défaut utilisées si aucun autre paramètre n'est défini.
+APOC.policies.settings_title=Paramètres (profil {0})
+
+#*******************************************************************************
+# Content Area
+#
+#*******************************************************************************
+
+APOC.frame.contentarea=Cadre de zone de contenu
+APOC.catabs.policy.des=Stratégies (ouvre l'onglet)
+APOC.catabs.policysets.des=Profils assignés (ouvre l'onglet)
+APOC.catabs.users.des=Utilisateurs (ouvre l'onglet)
+APOC.catabs.roles.des=Rôles (ouvre l'onglet)
+APOC.catabs.assignees.des=Entités assignées (ouvre l'onglet)
+APOC.ca.backtop=Retour au début
+APOC.ca.locale=Environnement linguistique
+APOC.ca.path=Chemin d'accès
+
+#*******************************************************************************
+# Help
+#
+#*******************************************************************************
+
+APOC.help.helpTooltip=Aide (ouvre une nouvelle fenêtre)
+APOC.help.windowTitle=Aide
+
+#*******************************************************************************
+# Navigation Area Common
+#
+#*******************************************************************************
+
+APOC.navigation.search=Rechercher
+APOC.navigation.reset=Réinitialiser
+APOC.navigation.search.help=Ouvre une fenêtre qui permet de lancer une recherche.
+APOC.navigation.edit.help=Tapez la chaîne à rechercher.
+APOC.navigation.close=Fermer
+APOC.navigation.organization=Organisation
+APOC.navigation.organization.with=Organisation avec assignations
+APOC.navigation.organizations=Organisations
+APOC.navigation.organizations.help=Racine de l'arborescence de l'organisation.
+APOC.navigation.user=Utilisateur
+APOC.navigation.user.with=Utilisateur avec assignations
+APOC.navigation.users=Utilisateurs
+APOC.navigation.role=Rôle
+APOC.navigation.role.with=Rôle avec assignations
+APOC.navigation.roles=Rôles
+APOC.navigation.domain=Domaine
+APOC.navigation.domain.with=Domaine avec assignations
+APOC.navigation.domains=Domaines
+APOC.navigation.domains.help=Racine de l'arborescence du domaine
+APOC.navigation.host=Hôte
+APOC.navigation.host.with=Hôte avec assignations
+APOC.navigation.hosts=Hôtes
+APOC.navigation.name=Nom
+APOC.navigation.actions=Actions
+APOC.navigation.view=Affichage
+APOC.navigation.view.tooltip=Affiche cet élément dans le volet de droite.
+APOC.navigation.area=Volet de navigation
+APOC.navigation.empty=Aucune entité n'est disponible.
+APOC.navigation.name.label=Nom :
+APOC.navigation.type=Type
+APOC.navigation.userTooltip=Utilisateurs (ouvre l'onglet Utilisateurs)
+APOC.navigation.hostTooltip=Hôtes (ouvre l'onglet Hôtes)
+APOC.navigation.breadcrumb.tooltip=Retour à {0}
+APOC.navigation.show=Afficher :
+APOC.navigation.showDirsOnly=Répertoires uniquement
+APOC.navigation.showAll=Tous
+APOC.navigation.ellipsis=... certains éléments non affichés
+APOC.navigation.openfind=Ouvre la fenêtre de recherche
+APOC.navigation.search.target.alert1=Impossible de déterminer la fenêtre cible de la sélection.\\nFermez la fenêtre de recherche et ouvrez-la de nouveau à partir de la fenêtre cible souhaitée.
+
+#*******************************************************************************
+# Navigation Area User Tree Tab
+#
+#*******************************************************************************
+
+APOC.usertree.title=Arborescence de l'organisation
+APOC.usertree.tooltip=Arborescence de l'organisation (ouvre l'onglet Arborescence de l'organisation)
+APOC.usertree.tableSummary=Ce tableau fournit la liste des enfants de l'organisation active. Chaque ligne contient le nom d'un enfant, son type (organisation, utilisateur ou rôle) et le lien associé. Cliquez sur le lien pour afficher le contenu de l'organisation dans le volet de droite.
+
+#*******************************************************************************
+# Navigation Area Host Tree Tab
+#
+#*******************************************************************************
+
+APOC.hosttree.title=Arborescence du domaine
+APOC.hosttree.tooltip=Arborescence du domaine (ouvre l'onglet Arborescence du domaine)
+APOC.hosttree.tableSummary=Ce tableau fournit une liste des enfants du domaine actif. Chaque ligne contient le nom de l'enfant, son type (domaine ou utilisateur) ainsi qu'un lien permettant d'afficher son contenu dans le volet de droite.
+
+#*******************************************************************************
+# Navigation Area Entities Table Filter
+#
+#*******************************************************************************
+
+APOC.entityfilter.titleUsers=Filtre spécial - Utilisateurs
+APOC.entityfilter.titleHosts=Filtre spécial - Hôtes
+APOC.entityfilter.help.title=Aide
+APOC.entityfilter.type.label=Type :
+APOC.entityfilter.filter=Filtre
+APOC.entityfilter.placeholder=<name to filter on>
+
+#*******************************************************************************
+# Set Color Dialog
+#
+#*******************************************************************************
+
+APOC.setcolor.edit.alt=Palette d'édition (ouvre une nouvelle fenêtre)
+APOC.setcolor.title=Palette d'édition
+APOC.setcolor.introtext=La couleur actuelle est indiquée dans la colonne centrale. Cette couleur peut ensuite être ajoutée à la palette à l'aide des boutons d'ajout et de remplacement de couleur. Vous pouvez associer des noms aux couleurs en entrant un nom dans le champ Nom. Enregistrez les modifications apportées à la palette en cliquant sur OK lorsque vous avez terminé.
+APOC.setcolor.palette.heading=Palette de couleurs&#160;:
+APOC.setcolor.color.heading=Couleur&#160;:
+APOC.setcolor.color.alt=La couleur actuelle est {0}.
+APOC.setcolor.red.heading=Rouge&#160;:
+APOC.setcolor.red.increase=Augmenter le rouge
+APOC.setcolor.red.decrease=Diminuer le rouge
+APOC.setcolor.green.heading=Vert&#160;:
+APOC.setcolor.green.increase=Augmenter le vert
+APOC.setcolor.green.decrease=Diminuer le vert
+APOC.setcolor.blue.heading=Bleu&#160;:
+APOC.setcolor.blue.increase=Augmenter le bleu
+APOC.setcolor.blue.decrease=Diminuer le bleu
+APOC.setcolor.hue.heading=Teinte&#160;:
+APOC.setcolor.hue.increase=Augmenter la teinte
+APOC.setcolor.hue.decrease=Diminuer la teinte
+APOC.setcolor.sat.heading=Saturation&#160;:
+APOC.setcolor.sat.increase=Augmenter la saturation
+APOC.setcolor.sat.decrease=Diminuer la saturation
+APOC.setcolor.lum.heading=Luminance&#160;:
+APOC.setcolor.lum.increase=Augmenter la luminance
+APOC.setcolor.lum.decrease=Diminuer la luminance
+APOC.setcolor.html.heading=Valeur hex&#160;:
+APOC.setcolor.original.heading=Couleur d'origine&#160;:
+APOC.setcolor.original.alt=La couleur d''origine est {0}.
+APOC.setcolor.wheel.heading=Spectre de couleurs&#160;:
+APOC.setcolor.wheel.alt=Cliquez sur l'image pour sélectionner une couleur du spectre, une teinte sur l'axe des x et une saturation sur l'axe des y. Lorsque vous cliquez sur une couleur donnée du spectre, la colonne centrale est mise à jour pour indiquer cette couleur.
+APOC.setcolor.slider.summary=Cliquez à un emplacement quelconque de tableau pour régler la luminance de la couleur actuelle. La luminance diminue de la droite vers la gauche.
+APOC.setcolor.add.button=Ajouter une couleur >
+APOC.setcolor.replace.button=Remplacer la couleur >
+APOC.setcolor.remove.button=Supprimer la couleur
+APOC.setcolor.remove.alert=La mosaïque sélectionnée ne contient pas de couleur de palette stockée et ne peut par conséquent pas être supprimée.
+APOC.setcolor.name.alert=Le nom de couleur spécifié existe déjà. Choisissez-en un autre.
+APOC.setcolor.restoreorigcolor.button=Restaurer la couleur
+APOC.setcolor.restore.button=Restaurer les valeurs par défaut
+APOC.setcolor.restore.confirm=Voulez-vous vraiment restaurer les couleurs par défaut ?
+APOC.setcolor.increase.tooltip=Augmenter
+APOC.setcolor.decrease.tooltip=Diminuer
+APOC.setcolor.tooltip=Boîte de dialogue d'édition des couleurs (ouvre une nouvelle fenêtre)
+APOC.setcolor.replace.alert=Pour ajouter une couleur supplémentaire, cliquez sur Ajouter une couleur.
+APOC.setcolor.add.alert=Pour remplacer une couleur existante, cliquez sur Remplacer la couleur.
+APOC.setcolor.noname=Aucun nom
+APOC.setcolor.invalid.hex=La valeur hex est incorrecte. Entrez une valeur valide.
+
+#*******************************************************************************
+# Chooser
+#
+#*******************************************************************************
+
+APOC.page.chooser.list.editor=Éditer la liste
+APOC.page.chooser.list.help=Ajoutez des éléments au menu déroulant du volet de contenu ou supprimez les éléments qui s'y trouvent en éditant la liste ci-dessous. Supprimez de la liste toutes les modifications apportées par les utilisateurs en cliquant sur Restaurer les valeurs par défaut. Enregistrez les modifications apportées à la liste en cliquant sur OK.
+APOC.chooser.add=Ajouter
+APOC.chooser.system_added=(*) Indique un élément ajouté à la liste par le système. Des éléments sont automatiquement ajoutés à la liste s'il s'agit de valeurs par défaut ou si l'élément correspond à la valeur stockée d'une propriété actuellement affichée.
+APOC.chooser.protected.alert=Cet élément ne peut pas être supprimé de la liste, car il s'agit d'une valeur par défaut ou de la valeur stockée d'un paramètre de cette page.
+APOC.chooser.selected.alert=Cet élément ne peut pas être supprimé de la liste, car il s'agit de la valeur actuellement sélectionnée d'une propriété de cette page.
+APOC.chooser.edit.alt=Éditer la liste (ouvre une nouvelle fenêtre)
+APOC.font.chooser.title=Éditer la liste des polices
+APOC.window.border.chooser.title=Éditer la liste de thèmes des bordures de fenêtre
+APOC.window.controls.chooser.title=Éditer la liste de thèmes des contrôles
+APOC.window.icon.chooser.title=Éditer la liste de thèmes des icônes
+
+#*******************************************************************************
+# Navigation Area Repository Tab
+#
+#*******************************************************************************
+
+APOC.pool.title=Référentiel des stratégies
+APOC.pool.all_profiles=Tous les profils
+APOC.pool.all_profiles.help=Cet onglet affiche la liste des profils.
+APOC.pool.all_domain_profiles=Tous les profils de domaine
+APOC.pool.all_org_profiles=Tous les profils d'organisation
+APOC.pool.tooltip=Référentiel des stratégies (ouvre l'onglet Référentiel des stratégies)
+APOC.pool.sets=Profils assignés
+APOC.pool.setsHost=Profils d'hôte
+APOC.pool.priority=Priorité
+APOC.pool.actions=&#8212;&nbsp;Actions liées aux profils&nbsp;&#8212;
+APOC.pool.new=Nouveau...
+APOC.pool.delete=Supprimer...
+APOC.pool.import=Importer...
+APOC.pool.export=Exporter...
+APOC.pool.rename=Renommer...
+APOC.pool.edit=Éditer les priorités...
+APOC.pool.add_assignment=Assigner un profil
+APOC.pool.available_profiles=Profils disponibles
+APOC.pool.add_assignment_help=Cette fenêtre permet d'assigner les profils.
+APOC.pool.new_button.help=Crée un profil.
+APOC.pool.delete_button.help=Supprime un profil.
+APOC.pool.assign_button.help=Ouvre une fenêtre qui permet de sélectionner le profil à assigner.
+APOC.pool.unassign_button.help=Retire l'assignation des profils sélectionnés à l'organisation actuelle.
+APOC.pool.report_button.help=Ouvre une fenêtre contenant le rapport.
+APOC.pool.tableSummary=Ce tableau répertorie les profils globaux. Chaque ligne contient le nom d'un profil, sa priorité et le lien associé. Cliquez sur le lien pour afficher le contenu du profil dans le volet de droite.
+APOC.pool.empty=Aucun profil n'est disponible.
+APOC.pool.deleteMessage=Voulez-vous vraiment supprimer les profils sélectionnés ?
+APOC.pool.tableSummary=Ce tableau répertorie les profils. Chaque ligne contient le nom du profil, son auteur et la date de la dernière modification. Cliquez sur un nom de profil pour afficher son contenu.
+APOC.pool.empty=Aucun profil n'est disponible.
+APOC.pool.deleteMessage=Êtes-vous sûr de vouloir supprimer les profils sélectionnés ?
+APOC.pool.newMessage=Entrez le nom du nouveau profil :
+APOC.pool.newDefault=Nouveau groupe de stratégies
+APOC.pool.renameMessage=Entrez le nouveau nom du profil :
+APOC.pool.help.title=Aide sur le référentiel des stratégies
+APOC.pool.help.text1=Le référentiel des profils permet de stocker les profils. Un profil est un conteneur nommé réservé aux stratégies. Le nom d'un profil doit être unique.
+APOC.pool.help.text2=Une fois que vous avez créé un profil, vous pouvez y enregistrer des paramètres de configuration, puis l'ajouter à une organisation, un utilisateur, un rôle, un domaine ou un hôte quelconque. Pour ce faire, affichez l'élément dans le volet de navigation et sélectionnez l'onglet Profils dans le volet de contenu.
+APOC.pool.help.text3=Il est possible de gérer la configuration sans les profils, mais leur utilisation assure une plus grande souplesse. Vous pouvez par exemple créer le profil Novice, y enregistrer des paramètres de configuration adaptés aux novices, puis ajouter ce profil à un membre quelconque de l'arborescence de l'organisation ou du domaine.
+APOC.pool.import.tooltip=Importer un profil dans le référentiel.
+APOC.pool.export.tooltip=Exporter un profil.
+APOC.pool.rename.tooltip=Renommer un profil.
+APOC.pool.import.disabled.tooltip=Importer un profil dans le référentiel (non disponible).
+APOC.pool.export.disabled.tooltip=Exporter un profil (non disponible).
+APOC.pool.rename.disabled.tooltip=Renommer un profil (non disponible).
+
+#*******************************************************************************
+# Navigation Area Priorities
+#
+#*******************************************************************************
+
+APOC.prios.title=Priorités des profils
+APOC.prios.help=Cet onglet permet de modifier les priorités définissant l'ordre de fusion des profils lorsque plusieurs profils de mêmes conditions d'application sont assignés à un élément.
+APOC.prios.up=Monter
+APOC.prios.down=Descendre
+
+#*******************************************************************************
+# Navigation Area Profile Import
+#
+#*******************************************************************************
+
+APOC.groupimport.title=Importer un profil d'un fichier local
+APOC.groupimport.help=Sélectionnez un fichier de profil local à importer dans le référentiel de configuration actuel
+APOC.groupimport.choosetext=Fichier à importer :
+APOC.groupimport.defaulttext=<nom de fichier>
+APOC.groupimport.import=Importer
+APOC.groupimport.error.zip=Erreur : le fichier doit être au format ZIP.
+APOC.importwnd.js.overwrite_alert=Il existe déjà un profil portant ce nom. Voulez-vous le remplacer ?
+APOC.groupimport.importing=Importation de profils
+
+#*******************************************************************************
+# Navigation Area Search
+#
+#*******************************************************************************
+
+APOC.search.search=Rechercher
+APOC.search.param.help=Cette recherche porte sur l'arborescence entière.
+APOC.search.userid.label=ID d'utilisateur :
+APOC.search.firstname.label=Prénom :
+APOC.search.lastname.label=Nom :
+APOC.search.point.label=Point de départ :
+APOC.search.perpage.label=Résultats affichés par page :
+APOC.search.results=Résultats
+APOC.search.result.help=Cette page affiche les résultats de la recherche. La colonne Chemin d'accès indique le chemin d'accès par rapport au point de départ.
+APOC.search.entitiesFound=Élément trouvé
+APOC.search.param.title.help=Spécifiez les paramètres de recherche.
+APOC.search.usersFound=Utilisateurs trouvés
+APOC.search.rolesFound=Rôles trouvés
+APOC.search.organizationsFound=Organisations trouvées
+APOC.search.domainsFound=Domaines trouvés
+APOC.search.hostsFound=Hôtes trouvés
+APOC.search.all=Rechercher partout
+APOC.search.users=Rechercher des utilisateurs
+APOC.search.roles=Rechercher des rôles
+APOC.search.organizations=Rechercher des organisations
+APOC.search.domains=Rechercher des domaines
+APOC.search.hosts=Rechercher des hôtes
+APOC.search.tableSummary=Ce tableau répertorie les résultats de la recherche. Chaque ligne contient le nom d'un élément, son type (organisation, utilisateur ou rôle) ainsi que son chemin d'accès complet. Cliquez sur le nom d'un élément pour le sélectionner dans le volet de gauche de la fenêtre principale.
+APOC.search.path=Chemin d'accès
+APOC.search.userid=ID d'utilisateur
+APOC.search.title.text=Rechercher
+APOC.search.search.help=Recherche dans le référentiel.
+APOC.search.reset.help=Rétablit les paramètres de recherche par défaut.
+APOC.search.cancel.help=Ferme cette fenêtre.
+APOC.search.advanced.show.button=Afficher les options avancées
+APOC.search.advanced.show.help=Affiche les options avancées.
+APOC.search.advanced.hide.button=Masquer les options avancées
+APOC.search.advanced.hide.help=Masque les options avancées.
+APOC.search.advanced.start.label=Plage de recherche :
+APOC.search.advanced.restrict.label=Limiter à :
+APOC.search.advanced.browse.help=Ouvre une fenêtre qui permet de modifier le chemin d'accès déterminant le point de départ de la recherche.
+APOC.search.advanced.start.label=Plage de recherche :
+APOC.search.help.title=À propos de la recherche
+APOC.search.help.text1=La recherche n'est ni sensible à la casse ni limitative. Par exemple, si vous saisissez la chaîne "bc", les résultats de la recherche incluront "ABC" et "bcd".
+APOC.search.help.text2=Un astérisque (*) indique une séquence de caractères arbitraire dans une chaîne de recherche. Le nombre et l'emplacement des astérisques dans la chaîne de recherche ne font l'objet d'aucune restriction.
+APOC.search.help.text3=Un champ vide équivaut à un champ contenant la chaîne de recherche "*". Par défaut, le nombre maximal de résultats de recherche est limité à 100. Toutefois, vous pouvez configurer ce paramètre. Pour plus d'informations, reportez-vous au guide d'installation.
+APOC.search.help.inline=Saisissez le nom. Vous pouvez spécifier l'astérisque * comme caractère générique.
+APOC.search.help.inlineUser=Saisissez l'ID d'utilisateur. Vous pouvez spécifier l'astérisque * comme caractère générique.
+
+#*******************************************************************************
+# Content Area - Profiles
+#*******************************************************************************
+APOC.profile.inherited.table=Profils hérités
+APOC.profile.page.title=Cet onglet répertorie le contenu de l'élément sélectionné.
+APOC.profile.name.text=(Profil {0})
+APOC.profilemgr.assigned=Affecté
+APOC.profilemgr.assign=Assigner un profil...
+APOC.profilemgr.pending=Modifie le profil actuel
+APOC.profilemgr.author=Auteur
+APOC.profilemgr.lastMod=Dernière modification le
+APOC.profilemgr.delete=Supprimer
+APOC.profilemgr.moreActions=&#8212;&nbsp;Plus d'actions&nbsp;&#8212;
+APOC.profilemgr.yes=Oui
+APOC.profileassi.unassign=Annuler l'assignation d'un profil
+APOC.profileassi.manage=Gérer les profils...
+APOC.profileassi.release=Modifications de version...
+APOC.profileassi.releaseNow=Version
+APOC.profileassi.showResults=Paramètres effectifs...
+APOC.profileassi.title=Modifications de version
+APOC.profileassi.table.empty=Aucun profil n'a été assigné.
+APOC.profileavail.title=Profils disponibles
+APOC.profileavail.help=Cette fenêtre permet d'assigner les profils.
+APOC.profileavail.assigning=Assignation des profils
+APOC.profileall.title=Tous les profils
+APOC.profileall.help=Cet onglet affiche la liste des profils.
+APOC.profileall.domtable.title=Tous les profils de domaine
+APOC.profileall.orgtable.title=Tous les profils d'organisation
+APOC.profile.search.profile=Rechercher le profil
+APOC.profile.error.storing=Erreur lors du stockage du profil.
+APOC.profile.assigned.delete=Les profils sélectionnés sont assignés à au moins un élément. \\n \\n Voulez-vous vraiment supprimer ces profils ?
+APOC.profile.unassigned.delete=Toutes les données des profils sélectionnés seront supprimées. Voulez-vous continuer ?
+APOC.profiles.default.msg=Indique la valeur par défaut
+
+#*******************************************************************************
+# Configure Report
+#
+#*******************************************************************************
+
+APOC.configrep.title=Modifier les valeurs des paramètres effectifs
+APOC.configrep.help=Indiquez les valeurs de génération des paramètres effectifs La liste ci-dessous permet de définir les éléments impliqués pour la génération des paramètres effectifs. Vous pouvez sélectionner un élément pour chaque type. Les paramètres effectifs sont obtenus par la fusion des paramètres de stratégie contenus dans les profils assignés aux éléments sélectionnés.
+APOC.configrep.effective.settings=Paramètres effectifs
+APOC.configrep.columns=Afficher dans le résumé des paramètres :
+APOC.configrep.statepath=Chemin d'accès de l'état
+APOC.configrep.des=Description
+APOC.configrep.reptype=Ordre de fusion des sources des profils sélectionnés
+APOC.configrep.orgtree=Sélectionner un élément dans l'arborescence de l'organisation :
+APOC.configrep.domtree=Sélectionner un élément dans l'arborescence du domaine :
+APOC.configrep.typeorg=Paramètres de l'arborescence de l'organisation
+APOC.configrep.typedom=Paramètres de l'arborescence du domaine
+APOC.configrep.typeboth=Paramètres des deux arborescences
+APOC.configrep.button.report=Générer les paramètres effectifs
+
+#*******************************************************************************
+# Report
+#
+#*******************************************************************************
+APOC.report.button.tooltip=Ouvre une fenêtre contenant le rapport.
+APOC.report.onetree.title=Paramètres effectifs pour le {0} "{1}" sur l''hôte "{2}"
+APOC.report.twotree.title=Paramètres effectifs pour le {0} "{1}" et le {2} "{3}" sur l''hôte "{4}"
+APOC.report.multipletree.title=Paramètres effectifs pour le {0} sur l''hôte "{1}"
+APOC.report.involved.profiles.entity={0} Profils
+APOC.report.locorg={0} est une organisation sous {1}.
+APOC.report.locrole={0} est un rôle sous {1}.
+APOC.report.locuserid={0} est un utilisateur sous {1}.
+APOC.report.lochost={0} est un hôte sous {1}.
+APOC.report.locdomain={0} est un domaine sous {1}.
+APOC.report.rootlocorg={0} est une organisation.
+APOC.report.rootlocuserid={0} est un utilisateur.
+APOC.report.rootlocrole={0} est un rôle.
+APOC.report.rootlochost={0} est un hôte.
+APOC.report.rootlocdomain={0}est un domaine.
+APOC.report.policygrouploc={0} est un profil.
+APOC.report.bothand=et
+APOC.report.creator=Le créateur est {0} sur l''ordinateur {1}.
+APOC.report.createdate=La date de création est le {0}.
+APOC.report.backendtype=Le type de la source de données d''arrière-plan est {0}.
+APOC.report.backendhost=L''hôte d''arrière-plan est {0}.
+APOC.report.unknown=Inconnu
+APOC.report.startcat=La catégorie de départ est {0}.
+APOC.report.contitle=Table des matières
+APOC.report.isbelow=est sous {0}
+APOC.report.table.summary=Ce tableau affiche la liste des paramètres de configuration. Chaque ligne contient l'état, le nom et la valeur de la propriété.
+APOC.report.table.nameheading=Nom
+APOC.report.table.valueheading=Valeur
+APOC.report.table.statusheading=État
+APOC.report.table.statuspheading=Chemin d'accès de l'état
+APOC.report.table.desheading=Description
+APOC.report.table.defined=Défini
+APOC.report.table.protected=Appliqué
+APOC.report.table.readonly=En lecture seule
+APOC.report.table.defined.in=Défini dans
+APOC.report.table.protected.in=Les utilisateurs ne peuvent pas remplacer
+APOC.report.table.readonly.in=Lecture seule dans
+APOC.report.table.pathPG=Profil:
+APOC.report.table.empty= {0}ne contien(nen)t pas de valeur.
+APOC.report.buttons.print=Impression
+APOC.report.assigned.profiles.title=Profils impliqués
+APOC.report.settings.summary.title=Résumé des paramètres
+APOC.report.addremove.elements=Éléments impliqués :
+APOC.report.elements.table.heading=Éléments impliqués
+APOC.report.elements.table.summary=Ce tableau répertorie les éléments impliqués dans la génération des résultats des paramètres effectifs.
+APOC.report.elements.table.title=Cette liste permet de spécifier les éléments impliqués dans la génération des paramètres effectifs.
+APOC.report.add.element=Ajouter un élément
+APOC.report.remove.element=Supprimer un élément
+APOC.report.novalues=Les éléments impliqués ne contiennent aucune valeur.
+APOC.report.xml.parsing.error=Erreur d'analyse XML lors de la lecture des données de profil
+
+#*******************************************************************************
+# Full-Page Error Alert
+#
+#*******************************************************************************
+
+APOC.pageerror.title=Échec de l'opération
+APOC.pageerror.comment=Cette page contient un suivi de pile correspondant à cette erreur sous la forme d'un commentaire HTML.
+
+#*******************************************************************************
+# PolicyMgr Error Messages
+#
+#*******************************************************************************
+
+APOC.error.occurred=Une erreur s'est produite.
+APOC.error.open.connection=Impossible d'établir la connexion pour l'utilisateur.
+APOC.error.close.connection=Une erreur s'est produite lors de la fermeture de la connexion.
+APOC.error.user.invalid=Le nom d'utilisateur n'est pas valide.
+APOC.error.unsupported.datastore=Le type de magasin de données spécifié dans les informations d'initialisation n'est pas pris en charge.
+APOC.error.application.initialize=Impossible d'initialiser l'application.
+APOC.error.bootstrap.incomplete=Les informations d'initialisation sont incomplètes.
+APOC.error.bootstrap.unavailable=Les informations d'initialisation ne sont pas disponibles.
+APOC.error.ldap.bootstrap=Les informations d'initialisation du serveur d'annuaire LDAP sont incomplètes.
+APOC.error.org.settings=Les paramètres d'organisation ne sont pas valides dans la métaconfiguration.
+APOC.error.role.settings=Les paramètres de rôle ne sont pas valides dans la métaconfiguration.
+APOC.error.user.settings=Les paramètres d'utilisateur ne sont pas valides dans la métaconfiguration.
+APOC.error.create.parser=Impossible de créer l'analyseur XML.
+APOC.error.filter=La syntaxe du filtre n'est pas correcte.
+APOC.error.policy.read=Impossible de lire les données de stratégie.
+APOC.error.policy.data.invalid=Les données de stratégie ne sont pas valides.
+APOC.error.policy.invalid=La stratégie n'est pas valide.
+APOC.error.path.invalid=Le chemin d'accès n'est pas valide.
+APOC.error.userprofile.attribute=L'attribut ne fait pas partie du profil utilisateur.
+APOC.error.locale.support=Cet environnement linguistique n'est pas pris en charge.
+APOC.error.ldap.read=Une erreur de lecture LDAP s'est produite.
+APOC.error.ldap.write=Une erreur d'écriture LDAP s'est produite.
+APOC.error.ldap.search=Une erreur LDAP s'est produite au cours de la recherche.
+APOC.error.ldap.results.size=Une erreur LDAP s'est produite au cours de la recherche, car le nombre d'entrées obtenues est supérieur à la limite définie par le serveur LDAP.
+APOC.error.ldap.policygroup.creation=Une erreur LDAP s'est produite au cours de la création du profil.
+APOC.error.ldap.policygroup.deletion=Une erreur LDAP s'est produite au cours de la suppression du profil.
+APOC.error.ldap.policygroup.rename=Une erreur LDAP s'est produite au cours de l'attribution d'un nouveau nom au profil.
+APOC.error.unprotect.item=Il est impossible d'annuler la protection de l'élément, car l'élément parent est protégé.
+APOC.error.readonly.item=Il est impossible d'éditer un élément en lecture seule.
+APOC.error.mandatory.remove=Il est impossible de supprimer un élément obligatoire.
+APOC.error.comply.constraints=La valeur ne respecte pas les contraintes de propriété.
+APOC.error.nillable=L'élément ne peut pas être nul.
+APOC.error.mandatory.setting=Il est impossible de modifier le paramètre obligatoire de cet élément.
+APOC.error.policygroup.priority.exists=Il existe déjà un profil avec cette priorité.
+APOC.error.policygroup.name.exists=Il existe déjà un profil portant ce nom.
+APOC.error.policygroup.not.exists=Le profil n'existe pas.
+APOC.error.priorities.incorrect=Les priorités du profil sont incorrectes.
+APOC.error.policygroup.invalid=Le profil n'est pas valide.
+APOC.error.host.invalid=Le nom d'hôte n'est pas valide.
+APOC.error.domain.settings=Les paramètres de domaine ne sont pas valides dans la métaconfiguration.
+APOC.error.host.settings=Les paramètres d'hôte ne sont pas valides dans la métaconfiguration.
+APOC.error.export.policygroup=Une erreur s'est produite lors de l'exportation du profil.
+APOC.error.import.policygroup=Une erreur s'est produite lors de l'importation du profil.
+APOC.error.export.policygroup_data=Aucune donnée de profil n'est disponible pour l'exportation.
+APOC.error.import.policygroup_data=Aucune donnée de profil n'est disponible pour l'importation.
+
+#*******************************************************************************
+# Profile Window Profile
+#
+#*******************************************************************************
+
+APOC.profilewnd.buttons.save=Enregistrer
+APOC.profilewnd.buttons.close=Fermer
+
+# General Settings Tab
+APOC.profilewnd.general.tab=Propriétés générales
+APOC.profilewnd.general.title=Paramètres généraux
+APOC.profilewnd.general.help=Spécifiez les propriétés générales du profil.
+APOC.profilewnd.general.name=Nom
+APOC.profilewnd.general.namecol=Nom :
+APOC.profilewnd.general.comment=Commentaire
+APOC.profilewnd.general.commentcol=Commentaire :
+APOC.profilewnd.general.applicable=Applicable de
+APOC.profilewnd.general.browse=Modifier...
+APOC.profilewnd.general.pending=Modifications en attente
+APOC.profilewnd.general.author=Auteur
+APOC.profilewnd.general.modified=Dernière modification le
+APOC.profilewnd.general.new_profile_instructions=Vous allez créer un profil. Cette procédure comporte trois étapes :<br><br>1. Définition d''un nom unique pour le profil (voir ci-dessous)<br>2. Configuration de plusieurs paramètres par défaut et/ou obligatoires (voir l''onglet Paramètres de configuration).<br>3. Assignation du nouveau profil au {0} et/ou {1} de votre choix (voir l''onglet Éléments assignés).
+APOC.profilewnd.lc_domains=Domaines
+APOC.profilewnd.lc_hosts=hôtes
+APOC.profilewnd.lc_orgs=Organisations
+APOC.profilewnd.lc_users=utilisateurs
+APOC.profilewnd.creating_new=Création d'un profil
+
+# Assignees Tab
+APOC.profilewnd.assignees.tab=Éléments assignés
+APOC.profilewnd.assignees.title=Éléments assignés
+APOC.profilewnd.assignees.help=Assignez des éléments au profil.
+APOC.profilewnd.assignees.noorgs=Aucun élément n'est assigné.
+APOC.profilewnd.assignees.assign=Assigner un élément...
+APOC.profilewnd.assignees.unassign=Annuler l'assignation d'un élément
+APOC.profilewnd.assignees.nameColumn=Nom
+
+# Configuration Settings Tab
+APOC.profilewnd.settings.tab=Paramètres de configuration
+APOC.profilewnd.settings.title=Paramètres de configuration
+APOC.profilewnd.settings.Enable=Activer
+APOC.profilewnd.settings.Disable=Désactiver
+APOC.profilewnd.settings.Edit=Éditer les valeurs...
+APOC.profilewnd.settings.title.help=Sélectionnez une des catégories répertoriées ci-dessous.
+APOC.profilewnd.settings.Actions=Options avancées...
+APOC.profilewnd.settings.more=&#8212;&nbsp;Plus d'actions&nbsp;&#8212;
+APOC.profilewnd.settings.enforce=Appliquer
+APOC.profilewnd.settings.unenforce=Rétablir l'application
+APOC.profilewnd.settings.undo=Annuler les modifications en attente
+APOC.profilewnd.settings.default=Rétablir les valeurs par défaut
+APOC.profilewnd.settings.nameColumn=Nom
+APOC.profilewnd.settings.valueColumn=Valeur
+APOC.profilewnd.settings.enabledColumn=Activé
+APOC.profilewnd.settings.enforcedColumn=Appliqué
+APOC.profilewnd.settings.pendingColumn=Modifications en attente
+APOC.profilewnd.settings.overwrite=Les utilisateurs peuvent remplacer
+APOC.profilewnd.settings.defaultLabel=Valeur par défaut :
+APOC.profilewnd.settings.setToDefaultLabel=Utiliser les valeurs par défaut
+
+# Configuration Tree
+APOC.profilewnd.tree.view.all=Tous
+APOC.profilewnd.tree.view.pending=Modifications en attente
+APOC.profilewnd.advanced.tab=Options avancées
+APOC.profilewnd.advanced.pagetitle_help=Spécifiez les options avancées telles que l'ordre de fusion des profils.
+APOC.profilewnd.advanced.merge_order=Ordre de fusion :
+APOC.profilewnd.buttons.save.help=Enregistre les modifications.
+APOC.profilewnd.buttons.close.help=Ferme cette fenêtre.
+APOC.profilewnd.buttons.ok_assign.help=Assigne le ou les profils sélectionnés à l'élément actuel.
+
+APOC.profilewnd.js.alert1=Cette page contient des modifications non enregistrées. Voulez-vous les enregistrer avant de fermer la fenêtre ?
+APOC.profilewnd.js.alert2=Cet onglet contient des modifications qui n'ont pas été enregistrées. Voulez-vous les enregistrer avant de continuer ?
+APOC.profilewnd.js.alert3=Cette catégorie contient des modifications qui n'ont pas été enregistrées. Voulez-vous les enregistrer avant de continuer ?
+APOC.profilewnd.js.alert4=Cette page contient des modifications non enregistrées. Voulez-vous les enregistrer avant d'ajouter une entrée ?
+APOC.profilewnd.js.alert5=Ajouter un nouvel élément à la liste :
+
+#Settings Summary
+APOC.profilewnd.summary.help=Afficher les paramètres configurés pour ce profil.
+
+# Add Context Wizard
+APOC.wiz.title=Nouvel assistant référentiel de configuration
+APOC.wiz.edit.title=Modifier l'assistant référentiel de configuration
+APOC.wiz.steptext.2=Détails du référentiel
+APOC.wiz.steptext.3=Détails LDAP
+APOC.wiz.steptext.4=Informations d'identification LDAP
+APOC.wiz.steptext.5=Type de serveur LDAP
+APOC.wiz.steptext.6=Options de métaconfiguration LDAP
+APOC.wiz.steptext.7=Éditeur de métaconfiguration LDAP
+APOC.wiz.steptext.8=Sélection du DN de base
+APOC.wiz.steptext.9=DN base
+APOC.wiz.steptext.10=Vérification
+APOC.wiz.steptext.11=Résultats
+APOC.wiz.steptext.12=Sélection du répertoire de données
+APOC.wiz.steptext.13=Options d'installation existantes
+APOC.wiz.steptext.14=Migrer les informations sur les profils
+APOC.wiz.steptext.15=Informations d'identification d'administrateur LDAP
+APOC.wiz.help.2=<p>Choisissez le nom du référentiel de configuration et le type de hiérarchie et de stockage à utiliser pour les éléments Domaine et Organisation du référentiel : référentiel de configuration LDAP, de configuration fichier ou de configuration hybride.</p><p>Dans un référentiel de configuration LDAP, toutes les informations relatives à la hiérarchie de l'organisation ainsi que les paramètres et les assignations de profil sont stockés sur un serveur LDAP. Dans un référentiel de configuration fichier, ces informations, paramètres et assignations sont stockés dans un répertoire spécifié par l'utilisateur sur l'ordinateur équipé de Sun Java Web Console.<br>Enfin dans un référentiel de configuration hybride, les informations relatives à la hiérarchie de l'organisation sont extraites du serveur LDAP tandis que les paramètres et l'emplacement de stockage des assignations de profil est défini comme dans le cas d'un référentiel fichier.</p>
+APOC.wiz.help.3=<p>Entrez le nom d'hôte et le port du serveur LDAP à utiliser comme référentiel de configuration LDAP.</p><p>Pour qu'il puisse utiliser le protocole SSL, sélectionnez la case à cocher Utiliser SSL.</p>
+APOC.wiz.help.4=<p>Lorsque l'accès anonyme pour la lecture sur le serveur LDAP n'est pas autorisé, les utilisateurs disposant des droits de lecture doivent entrer un mot de passe et un DN complet dans les champs correspondants.<br>Ces informations sont conservées et les utilisateurs peuvent alors accéder au référentiel de configuration à l'aide de leur ID utilisateur au lieu de leur DN complet.</p>
+APOC.wiz.help.5=<p>Sélectionner le type de serveur LDAP en cours de configuration. Cette information détermine la métaconfiguration par défaut attribuée au serveur.</p><p>La métaconfiguration définit les attributs et les classes d'objets permettant d'identifier les éléments LDAP, notamment les utilisateurs, les rôles, les organisations, les domaines et les hôtes.</p>
+APOC.wiz.help.6=<p>Choisissez d'éditer ou non la métaconfiguration par défaut.</p><p>La métaconfiguration définit les attributs et les objets de classe identifiant les entités LDAP : utilisateurs, rôles, organisations, domaines et hôtes.</p>
+APOC.wiz.help.7=<p>Éditez la métaconfiguration dans la zone de texte consacrée à cet effet.</p><p>La métaconfiguration définit les attributs et les objets de classe identifiant les éléments LDAP : utilisateurs, rôles, organisations, domaines et hôtes.</p>
+APOC.wiz.help.8=<p>Choisissez le DN de base à utiliser pour ce référentiel de configuration dans la liste fournie à cet effet.</p>
+APOC.wiz.help.9=<p>Entrez le DN de base à utiliser pour ce référentiel de configuration.</p>
+APOC.wiz.help.10=<p>Vérifiez les paramètres avant de cliquer sur Terminer pour achever la création du référentiel de configuration.</p><p>Dans le cas d'une installation LDAP, le schéma du serveur LDAP se met à jour et une branche Services s'ajoute à la hiérarchie LDAP dès que vous cliquez sur Terminer.</p>
+APOC.wiz.help.edit.10=<p>Vérifiez les paramètres avant de cliquer sur Terminer pour achever la mise à jour du référentiel de configuration existant.</p><p>Dans le cas d'une installation LDAP, le schéma du serveur LDAP se met à jour et une branche Services s'ajoute à la hiérarchie LDAP dès que vous cliquez sur Terminer.</p>
+APOC.wiz.help.11=<p>Les résultats de l'installation s'affichent à l'écran.</p>
+APOC.wiz.help.12=<p>Choisissez le répertoire de stockage des données de profil et d'assignation du référentiel de configuration. Au cours de la procédure d'installation, les répertoires Profils et Assignations sont créés pour stocker respectivement les informations relatives aux profils et aux assignations. Si vous utilisez un référentiel fichier, les informations de hiérarchie sont stockées dans le fichier éditable entities.txt. Si vous utilisez un référentiel hybride, la métaconfiguration qui définit les attributs et les classes d'objet identifiant les entités LDAP est stockée dans les fichiers éditables OrganizationMapping.properties et UserProfileMapping.properties. </p>
+APOC.wiz.help.13=<p>Un référentiel de configuration Desktop Manager est déjà installé dans le répertoire spécifié. Pour conserver les informations de hiérarchie, de profil et d'assignation qu'il contient, conservez les données d'installation existantes. En cas contraire, remplacez l'installation existante pour créer un nouveau référentiel.</p>
+APOC.wiz.help.14=<p>Dans la version 2.0 de Desktop Manager, les informations de profil et d'assignation sont stockées à un emplacement différent du serveur LDAP. Vous pouvez migrer les profils et assignations stockés avec une version antérieure de Desktop Manager à l'emplacement défini pour cette nouvelle version. </p><p>Vous pourrez toujours afficher les profils stockés avec des versions antérieures à l'aide de Desktop Manager, mais l'emplacement de stockage sur le serveur LDAP ne sera pas modifié ; la migration des profils permet de disposer d'un serveur LDAP mieux ordonné puisque les informations de profil de la version 1.x sont stockées au même emplacement que celles de la version 2.0.</p>
+APOC.wiz.help.15=<p>Dans les champs DN administrateur et Mot de passe de l'administrateur, entrez le DN et le mot de passe d'un utilisateur possédant les droits d'accès en lecture/écriture au serveur LDAP.<br>Ces informations d'identification ne sont utilisées que pour l'installation du schéma, attributs, entités et objets de classe requis sur un serveur LDAP par Desktop Manager. Elles ne sont pas conservées.</p>
+APOC.wiz.help.15a=<p>Dans les champs DN administrateur et Mot de passe de l'administrateur, entrez le DN et le mot de passe d'un utilisateur possédant les droits d'accès en lecture/écriture au serveur LDAP.<br>Ces informations d'identification ne sont utilisées que pour la migration des profils et assignations sur le serveur LDAP. Elles ne sont pas conservées.</p>
+APOC.wiz.instruction.2=Choisissez le nom du référentiel et sélectionnez les options de hiérarchie et de stockage à utiliser pour les éléments Domaine et Organisation.
+APOC.wiz.instruction.3=Entrez les informations relatives au serveur LDAP à configurer pour ce référentiel. Un nom d'hôte et un port d'exécution sont requis pour le serveur. Indiquez également si vous souhaitez connecter le serveur via le protocole SSL.
+APOC.wiz.instruction.4=Pour autoriser les utilisateurs à se connecter au référentiel à l'aide de leur ID utilisateur, vous devez activer l'accès anonyme. En cas contraire, un lecteur possédant les droits en lecture devra entrer un DN complet et un mot de passe dans les champs DN utilisateur et Mot de passe de l'utilisateur respectivement.
+APOC.wiz.instruction.5=La procédure d'installation est fonction du type de serveur LDAP. Sélectionnez un type de serveur pour le nouveau référentiel de configuration.
+APOC.wiz.instruction.6=La métaconfiguration définit les attributs et objets de classe identifiant les entités LDAP telles que les utilisateurs, rôles, organisations, domaines et hôtes. Des valeurs appropriées sont fournies par défaut. Cependant, les utilisateurs ont la possibilité d'ajouter les valeurs de leur choix. Choisissez d'éditer ou non la métaconfiguration par défaut pour ce type de serveur LDAP.
+APOC.wiz.instruction.7=Éditez la métaconfiguration par défaut dans la zone de texte ci-dessous.
+APOC.wiz.instruction.8=La liste suivante contient l'ensemble des DN de base disponibles pour le serveur LDAP spécifié. Sélectionnez celui que vous souhaitez utiliser pour ce référentiel de configuration.
+APOC.wiz.instruction.9=Un DN de base valide est requis sur le serveur LDAP pour installer un référentiel de configuration. Entrez le DN de base à utiliser pour ce référentiel de configuration.
+APOC.wiz.instruction.10=Vérifiez les paramètres que vous avez définis, puis cliquez sur Terminer pour achever la création du référentiel de configuration.
+APOC.wiz.instruction.edit.10=Vérifiez les paramètres que vous avez définis, puis cliquez sur Terminer pour achever la mise à jour du référentiel de configuration existant.
+APOC.wiz.instruction.11=
+APOC.wiz.instruction.12=Sélectionnez le répertoire de stockage des données de profil et d'assignation du référentiel de configuration.
+APOC.wiz.instruction.13=Un référentiel de configuration Desktop Manager existe déjà dans le répertoire spécifié. Utilisez les données existantes pour l'installation ou supprimez toutes les informations et créez un nouveau référentiel.
+APOC.wiz.instruction.14=Une version antérieure de Desktop Manager existe déjà sur le serveur LDAP. Choisissez de migrer ou non les informations de profil et d'assignation stockées avec la version précédente vers le nouvel emplacement de stockage de cette installation.
+APOC.wiz.instruction.15=La procédure de configuration requiert l'extension du schéma LDAP et l'ajout d'une branche dans l'arborescence LDAP. Par conséquent, les champs DN administrateur et Mot de passe de l'administrateur doivent être renseignés avec le DN et le mot de passe d'un utilisateur disposant des droits d'accès appropriés au serveur LDAP.
+APOC.wiz.instruction.15a=La migration des profils vers un emplacement de stockage différent requiert la modification de l'arborescence LDAP existante. Par conséquent, les champs DN administrateur et Mot de passe de l'administrateur doivent être renseignés avec le DN et le mot de passe d'un utilisateur disposant des droits d'accès appropriés au serveur LDAP.
+APOC.wiz.placeholder=[Étapes déterminées par les choix effectués à l'étape précédente.]
+
+APOC.wiz.2.name=Nom du référentiel :
+APOC.wiz.2.type=Type du référentiel :
+APOC.wiz.2.ldap=LDAP : Hiérarchie et stockage LDAP
+APOC.wiz.2.file=Fichier : hiérarchie et stockage fichier
+APOC.wiz.2.hybrid=Hybride : hiérarchie LDAP et stockage fichier
+APOC.wiz.2.alert=Entrez le nom du nouveau référentiel de configuration.
+APOC.wiz.3.host=Hôte :
+APOC.wiz.3.port=Port :
+APOC.wiz.3.ssl=Utiliser SSL
+APOC.wiz.3.alert1=Le numéro de port LDAP {0} n''est pas valide. Le numéro de port doit être un entier compris entre 0 et 65 535.
+APOC.wiz.3.alert2=Connexion au serveur LDAP sur {0} impossible.
+APOC.wiz.4.admin.dn=DN administrateur :
+APOC.wiz.4.admin.pw=Mot de passe de l'administrateur :
+APOC.wiz.4.anon=Utiliser l'accès anonyme
+APOC.wiz.4.user.dn=DN utilisateur :
+APOC.wiz.4.user.pw=Mot de passe utilisateur :
+APOC.wiz.4.alert1=Authentification en tant que {0} à {1} avec le mot de passe spécifié impossible.
+APOC.wiz.4.alert3={0} ne dispose pas de l''autorisation de lecture sur {1}. Veuillez fournir les informations d''identification d''un utilisateur possédant les droits d''accès en lecture sur ce serveur.
+APOC.wiz.5.type=Type de serveur LDAP :
+APOC.wiz.5.sun=Sun ONE Directory Server
+APOC.wiz.5.openldap=OpenLDAP
+APOC.wiz.5.ad=Active Directory
+APOC.wiz.5.other=Autre
+APOC.wiz.6.question=Voulez-vous adapter la métaconfiguration :
+APOC.wiz.6.no=Non
+APOC.wiz.6.yes=Oui
+APOC.wiz.7.adapt=Adapter la métaconfiguration ci-dessous :
+APOC.wiz.8.basedn=Sélectionner un DN de base :
+APOC.wiz.8.alert=Le DN de base {0} n''existe pas sur le serveur {1}. Le serveur LDAP n''est pas configuré correctement. Reconfigurez le serveur, puis redémarrez l''assistant.
+APOC.wiz.9.basedn=Entrer le DN de base du serveur LDAP :
+APOC.wiz.9.alert=Le DN de base {0} n''existe pas sur le serveur {1}. Vérifiez le serveur LDAP et entrez un DN de base existant.
+APOC.wiz.10.anonymous=Anonyme
+APOC.wiz.10.vendor=Nom du fournisseur :
+APOC.wiz.10.metaconfig=Métaconfiguration :
+APOC.wiz.10.basedn=DN de base :
+APOC.wiz.10.path=Répertoire de données de fichier :
+APOC.wiz.10.migrate=Migrer les profils :
+APOC.wiz.10.orgdom.section=Informations de domaine et d'organisation :
+APOC.wiz.10.general.section=Informations générales :
+APOC.wiz.10.noaction=Le serveur existant dans {0} est déjà configuré pour Desktop Manager. Aucune action supplémentaire n''est requise. Cliquez sur Terminer pour achever la création du référentiel de configuration et ajouter cette entrée au tableau Référentiels de configuration.
+APOC.wiz.10.edit.noaction=Le serveur existant dans {0} est déjà configuré pour Desktop Manager. Aucune action supplémentaire n''est requise. Cliquez sur Terminer pour achever la mise à jour des informations du référentiel de configuration.
+APOC.wiz.10.alert=Pour poursuivre, vous devez étendre manuellement le schéma d''un serveur {0} à l''aide du schéma de Desktop Manager.
+APOC.wiz.10.fail1= - Erreur lors de la mise à jour des objets de classe et attributs de schéma pour le serveur LDAP spécifié.
+APOC.wiz.10.fail2= - Erreur lors de la création de la branche des services sur le serveur LDAP spécifié.
+APOC.wiz.10.fail3= - Erreur lors de l'écriture des attributs de métaconfiguration sur le serveur LDAP spécifié.
+APOC.wiz.10.fail4= - Impossible d''ajouter l''attribut {0} à l''entrée {1}.
+APOC.wiz.10.fail5= - Erreur lors de la suppression de l'installation existante.
+APOC.wiz.10.fail6= - Erreur lors de la mise à jour du fichier du référentiel de configuration : {0}.
+APOC.wiz.10.fail7=Assurez-vous que {0} peut s''authentifier et dispose des droits d''accès en écriture à {1}.
+APOC.wiz.10.fail8= - Erreur lors de la création du fichier de structure de hiérarchie par défaut.
+APOC.wiz.10.fail9= - Erreur lors de la création des fichiers de métaconfiguration.
+APOC.wiz.10.fail10= - Erreur lors de la migration du profil de l''élément {0}.
+APOC.wiz.11.title=Le nouveau référentiel de configuration a été créé.
+APOC.wiz.11.text=Le référentiel de configuration que vous venez de créer est désormais disponible. Pour y accéder, cliquez sur son nom dans le tableau Référentiels de configuration. Si vous n'êtes pas connecté en tant qu'administrateur du référentiel, vous êtes invité à saisir des informations d'identification d'administrateur valides.
+APOC.wiz.11.alert.title=Échec de la création du référentiel de configuration
+APOC.wiz.11.edit.title=Mise à jour du référentiel de configuration terminée
+APOC.wiz.11.edit.text=Le référentiel de configuration que vous venez de mettre à jour est désormais disponible. Pour y accéder, cliquez sur son nom dans le tableau Référentiels de configuration. Si vous n'êtes pas connecté en tant qu'administrateur du référentiel, vous êtes invité à saisir des informations d'identification d'administrateur valides.
+APOC.wiz.11.alert.edit.title=Échec de la mise à jour du référentiel de configuration
+APOC.wiz.12.alert1={0} n''existe pas.
+APOC.wiz.12.alert2={0} n''est pas un répertoire.
+APOC.wiz.12.alert3=Impossible d''écrire sur le répertoire {0}
+APOC.wiz.13.existing=Choisissez une action :
+APOC.wiz.13.overwrite=Remplacer les données existantes et créer une nouvelle installation
+APOC.wiz.13.update=Conserver les données d'installation existantes
+APOC.wiz.14.existing=Migrer les informations de profil et d'assignation :
+APOC.wiz.14.username=Nom de l'utilisateur (disposant des droits d'accès en écriture) :
+APOC.wiz.14.password=Mot de passe :
+APOC.wiz.ldap.err.nosuchattr=Exception LDAP (16) : l'attribut spécifié est introuvable.
+APOC.wiz.ldap.err.valueexists=Exception LDAP (20) : la valeur que vous ajoutez existe déjà pour cet attribut.
+APOC.wiz.ldap.err.attrsyntax=Exception LDAP (21) : la syntaxe de la requête n'est pas valide.
+APOC.wiz.ldap.err.nosuchobj=Exception LDAP (32) : l'entrée spécifiée dans la requête n'existe pas.
+APOC.wiz.ldap.err.invaliddn=Exception LDAP (34) : la syntaxe du DN spécifié n'est pas valide.
+APOC.wiz.ldap.err.invalidcred=Exception LDAP (49) : les informations d'identification présentées au serveur ne sont pas valides.
+APOC.wiz.ldap.err.noaccessrights=Exception LDAP (50) : le client authentifié comme utilisateur ne dispose pas des droits d'accès nécessaires à cette opération.
+APOC.wiz.ldap.err.entryexists=Exception LDAP (68) : l'entrée spécifiée existe déjà.
+APOC.wiz.ldap.err.serverdown=Exception LDAP (81) : le serveur LDAP ne peut pas être contacté.
+APOC.wiz.ldap.err.timeout=Exception LDAP (85) : l'opération n'a pas pu être achevée dans les délais impartis.
+APOC.wiz.ldap.err.connecterror=Exception LDAP (91) : le client LDAP n'a pas réussi à se connecter au serveur LDAP.
+
+#Copy Move Wizard
+APOC.wiz.copy.copymove=Copier et déplacer...
+APOC.wiz.copy.copymove.tooltip=Copier ou déplacer un profil.
+APOC.wiz.copy.copymove.disabled.tooltip=Copier ou déplacer un profil (non disponible).
+APOC.wiz.copy.title=Assistant Copier et déplacer
+APOC.wiz.copy.steptext.1=Choisir un profil source
+APOC.wiz.copy.steptext.2=Choisir une action
+APOC.wiz.copy.steptext.3=Choisir un élément cible
+APOC.wiz.copy.instruction.1=Dans ce référentiel de configuration, choisissez un profil et un référentiel de configuration sources à copier ou à déplacer.
+APOC.wiz.copy.instruction.2=Sélectionnez l'action à entreprendre sur le profil spécifié. Vous pouvez choisir d'ignorer ou non les assignations pour ce profil.
+APOC.wiz.copy.instruction.3=Dans ce référentiel de configuration, choisissez un référentiel de configuration et un élément cible à copier ou à déplacer.
+APOC.wiz.copy.instruction.4=Vérifiez les paramètres que vous avez définis, puis cliquez sur Terminer pour copier ou déplacer le profil.
+APOC.wiz.copy.help.1=<p>Pour choisir le référentiel contenant le profil à copier ou déplacer, cliquez sur Modifier, puis sélectionnez le référentiel dans la liste qui s'affiche.</p><p>De la même façon, pour choisir le profil à copier ou déplacer, cliquez sur Modifier, puis sélectionnez le profil dans la liste qui s'affiche.</p>
+APOC.wiz.copy.help.2=<p>Sélectionnez l'action à entreprendre sur le profil spécifié.</p><p>Au moment de lancer l'action, vous pouvez choisir d'ignorer ou non les assignations existant pour ce profil.</p>
+APOC.wiz.copy.help.3=<p>Pour choisir le référentiel de configuration à copier ou déplacer, cliquez sur Modifier, puis sélectionnez le référentiel dans la liste qui s'affiche.</p><p>De la même façon, pour choisir l'élément à copier ou déplacer, cliquez sur Modifier, puis sélectionnez l'élément dans la liste qui s'affiche.</p>
+APOC.wiz.copy.source.context=Référentiel source :
+APOC.wiz.copy.source.profile=Profil source :
+APOC.wiz.copy.1.alert=Vous devez sélectionner un profil source.
+APOC.wiz.copy.2.alert=L''utilisateur authentifié {0} ne possède pas les droits nécessaires au déplacement du profil source {1}.
+APOC.wiz.copy.select.action=Sélectionner une action :
+APOC.wiz.copy.copy=Copier
+APOC.wiz.copy.move=Déplacer
+APOC.wiz.copy.assignments=Inclure les assignations
+APOC.wiz.copy.target.context=Référentiel cible :
+APOC.wiz.copy.target.entity=Élément cible :
+APOC.wiz.copy.3.alert=Vous devez sélectionner un élément cible.
+APOC.wiz.copy.action=Action :
+APOC.wiz.copy.assignments.assignments=Inclure les assignations :
+APOC.wiz.copy.3.alert1=Impossible de déplacer un profil si l'élément source est aussi l'élément cible.
+APOC.wiz.copy.3.alert2=Le profil {0} ne peut pas être {1}. Un profil de l''élément cible porte déjà ce nom. {2}.
+APOC.wiz.copy.3.alert3=L''utilisateur authentifié {0} ne possède pas les droits nécessaires pour {1} le profil {2} sur l''élément {3}.
+APOC.wiz.copy.4.alert=Le profil {0} ne peut pas être {1}. Il est assigné à au moins un élément situé au-dessus de l''élément cible {2}.
+APOC.wiz.copy.copyof=Copier {0} sur {1}
+APOC.wiz.copy.overview.title=Présentation de l'assistant Copier et déplacer
+APOC.wiz.copy.overview.text=<p>Les profils peuvent être stockés dans un élément quelconque de la hiérarchie de l'organisation. Grâce à l'assistant Copier et déplacer, vous pouvez créer une copie de profil à un nouvel emplacement de stockage sous un élément différent ou déplacer l'emplacement de stockage d'un profil d'un élément à un autre. L'option Inclure les assignations est cependant limitée par certaines restrictions : un profil ne peut être assigné qu'à un élément situé sous son emplacement de stockage. Vous serez invité à fournir les données suivantes :</p><p><ul><li>un référentiel de configuration et un profil sources ;</li><li>une action à entreprendre et la décision d'inclure ou non les assignations du profil lors de son exécution ;</li><li>un référentiel de configuration et un élément cible.</li></ul></p><p>Une fois ces informations fournies, l'assistant exécute l'action requise sur le profil sélectionné.</p>
+APOC.wiz.copy.steptext.overview= Présentation
+APOC.wiz.copy.results.text.assigned=Le profil {0} a été {1} vers un nouvel emplacement de stockage sur l''élément {2} auquel il a été assigné.
+APOC.wiz.copy.results.text.unassigned=Le profil {0} a été {1} vers un nouvel emplacement de stockage sur l''élément {2}.
+APOC.wiz.copy.results.title=Profil {0}
+APOC.wiz.copy.results.alert.title=Échec du {0} du profil
+APOC.wiz.copy.results.copied=Copié
+APOC.wiz.copy.results.moved=Déplacé
+APOC.wiz.copy.results.copied.lc=copié
+APOC.wiz.copy.results.moved.lc=déplacé
+APOC.wiz.copy.4.fail1=Erreur lors de la copie du profil.
+APOC.wiz.copy.4.fail2=Erreur lors de la suppression du profil.
+APOC.wiz.copy.4.fail3=Erreur lors de la définition du nom à afficher du profil.
+APOC.wiz.copy.4.fail4=Erreur lors de l'assignation du nouveau profil à un élément cible.
+
+# Browse Tree
+APOC.browse.title.org=Sélectionner une organisation
+APOC.browse.title.dom=Sélectionner un domaine
+APOC.browse.title=Sélectionner un élément
+APOC.browse.title.text=Parcourez l'arborescence et sélectionnez l'élément de votre choix. Cliquez sur OK pour confirmer la sélection.
+APOC.browse.cancel.help=Annulez la sélection et fermez la fenêtre.
+APOC.browse.ok.help=Confirmez la sélection et fermez la fenêtre.
+APOC.browse.tree.nav=Parcours de l'arborescence
+
+#*******************************************************************************
+# Syncronization
+#*******************************************************************************
+APOC.sync.title=Synchronisation
+APOC.sync.help=Cette page permet de synchroniser deux référentiels de configuration.
+APOC.sync.sourcerep.label=Référentiel de configuration source :
+APOC.sync.sourcerep.help=Menu des référentiels de configuration disponibles.
+APOC.sync.sourcepath.label=Point de départ source :
+APOC.sync.sourcepath.button=Modifier...
+APOC.sync.sourcepath.help=Ouvre une fenêtre permettant de modifier le chemin contextuel source.
+APOC.sync.targetrep.label=Référentiel de configuration cible :
+APOC.sync.targetrep.help=Menu des référentiels de configuration disponibles.
+APOC.sync.targetpath.label=Point de départ cible :
+APOC.sync.targetpath.button=Modifier...
+APOC.sync.targetpath.help=Ouvre une fenêtre permettant de modifier le chemin contextuel cible.
+APOC.sync.sync.button=Synchroniser
+APOC.sync.sync.help=Synchronise les profils répertoriés par rapport aux actions sélectionnées.
+APOC.sync.reset.button=Réinitialiser
+APOC.sync.reset.help=Rétablit les actions par défaut suggérées par le gestionnaire de configuration.
+APOC.sync.cancel.help=Ferme cette fenêtre.
+APOC.sync.login.title=Connexion contextuelle
+APOC.sync.login.pagetitle=Connexion - Référentiel de configuration source
+APOC.sync.login.pagetitle2=Connexion - Référentiel de configuration cible
+APOC.sync.login.pagehelp=Le gestionnaire de configuration permet de gérer plusieurs référentiels de configuration nécessitant des connexions individuelles. Si elles sont réutilisables, les informations d'identification permettant de se connecter à Java Web Console sont définies par défaut. Cette page de connexion ne s'affiche pas si l'utilisateur s'est déjà authentifié pour accéder au référentiel de configuration au cours de la session active. Pour accéder à un référentiel de configuration à l'aide d'informations d'identification différentes, il faut fermer la session active en se déconnectant de Java Web Console.
+APOC.sync.compare.button=Comparer
+APOC.sync.compare.help=Compare la source et la cible.
+APOC.sync.result.empty=Aucune différence.
+APOC.sync.result.summary=Ce tableau répertorie les différences entre le référentiel de configuration source et le référentiel de configuration cible.
+APOC.sync.result.title= profils
+APOC.sync.result.title2=Profils différents
+APOC.sync.result.help0=À propos de la synchronisation
+APOC.sync.result.help1=Cette fenêtre permet de synchroniser deux référentiels de configuration.
+APOC.sync.result.help2=Vous pouvez changer le référentiel source servant de source aux modifications. Ce référentiel n'est pas modifié. Pour limiter le référentiel source, définissez le point de départ de la synchronisation sur un élément autre que l'élément racine.
+APOC.sync.result.help3=Vous pouvez changer le référentiel cible servant de cible aux modifications. Ce référentiel est modifié. Pour limiter le référentiel cible, définissez le point de départ de la synchronisation sur un élément autre que l'élément racine.
+APOC.sync.result.help4=Une fois les arborescences source et cible spécifiées, cliquez sur Comparer. Une fois la comparaison des deux arborescences effectuée, les différences s'affichent dans un tableau. Cochez les rangées contenant les profils à synchroniser, puis cliquez sur Synchroniser.
+APOC.sync.result.help5=Une fois la synchronisation terminée, les profils sélectionnés du référentiel cible correspondent à ceux du référentiel source.
+APOC.sync.busymsg.text=Traitement en cours...
+APOC.sync.result.column1=Profil
+APOC.sync.result.column2=Actions sur le référentiel cible
+APOC.sync.action.copycontent=Copier le contenu.
+APOC.sync.action.copycomment=Copier les commentaires.
+APOC.sync.action.alignassign=Aligner les assignations.
+APOC.sync.action.changeprios=Modifier les priorités.
+APOC.sync.action.create=Créer le profil avec du contenu et des assignations.
+APOC.sync.action.delete=Supprimer le profil.
+APOC.sync.msg.orgdomcomapre=Il n'est pas possible de comparer une arborescence d'organisation et une arborescence de domaine.
+APOC.sync.msg.noprofiles=Profils introuvables.
+APOC.sync.msg.allequal=Tous les profils comparés sont identiques. La synchronisation est inutile.
+APOC.sync.msg.nocompare=Des profils ont été trouvés, mais ils ne peuvent pas être comparés.
+APOC.sync.msg.partialcompare=Un ou plusieurs des profils qui ont été trouvés ne peuvent pas être comparés.
+APOC.sync.msg.compare.detail=La comparaison du profil n'est possible que si le chemin relatif du point de départ à l'emplacement de stockage existe dans l'autre référentiel.
+APOC.sync.waitmsg.prepare=Préparation
+APOC.sync.waitmsg.retsource=Récupération des profils source
+APOC.sync.waitmsg.rettarget=Récupération des profils cible
+APOC.sync.waitmsg.prepx=Préparation de la comparaison de profil ({0} profils préparés)
+APOC.sync.waitmsg.compx=Comparaison de profils ({0} sur {1})
+APOC.sync.waitmsg.sync=Synchronisation de profils ({0} sur {1})
+APOC.sync.waitmsg.time=Temps écoulé : {0}:{1}.{2}
+
+APOC.tabs.tree.title=Profils - Vue de l'arborescence
+APOC.tabs.tree.help=Affiche les profils assignés dans l'arborescence de l'organisation et du domaine.
+APOC.tabs.all.title=Profils - Tous
+APOC.tabs.all.help=Affiche une liste des profils.
+
+APOC.find.title=Rechercher
+APOC.find.button=Rechercher
+
+#*******************************************************************************
+# Contexts
+#*******************************************************************************
+APOC.contexts.title=Référentiels de configuration
+APOC.contexts.details.title=Informations du référentiel de configuration
+APOC.contexts.details.name=Nom du référentiel
+APOC.contexts.details.domorg.info=Emplacement des informations de domaine/organisation
+APOC.contexts.details.domorg.profile.info=Emplacement de stockage des données de domaine/organisation
+APOC.contexts.details.property=Propriété
+APOC.contexts.details.view=Afficher les détails
+APOC.contexts.help=Le référentiel de configuration est l'emplacement de stockage des données nécessaires à la configuration des applications.
+APOC.contexts.table.title=Référentiels de configuration
+APOC.contexts.config.error=Impossible d''accéder au référentiel sélectionné. Le fichier de configuration {0} contient une erreur de syntaxe.
+APOC.contexts.table.summary=Ce tableau répertorie l'ensemble des référentiels de configuration. La colonne Type affiche le type des référentiels. La colonne Emplacement des données d'organisation contient les URL correspondant aux emplacements de stockage des données d'organisation. La colonne Emplacement des données de profil contient les URL correspondant aux emplacements de stockage des données des profils. Cliquez sur le nom du référentiel de configuration que vous souhaitez utiliser.
+APOC.contexts.details.table.summary=Ce tableau affiche la liste des propriétés du référentiel de configuration sélectionné. Il répertorie le nom, l'emplacement des informations de hiérarchie et l'emplacement des informations de stockage.
+APOC.contexts.table.empty=Aucun référentiel de configuration n'est disponible. Cliquez sur Nouveau pour en créer un.
+APOC.contexts.menu.create=Créer...
+APOC.contexts.menu.remove=Supprimer...
+APOC.contexts.menu.rename=Renommer...
+APOC.contexts.menu.synchronize=Synchroniser...
+APOC.contexts.column.name=Nom
+APOC.contexts.column.type=Type
+APOC.contexts.column.locorg=Emplacement des données d'organisation
+APOC.contexts.column.locpro=Emplacement des données de profil
+APOC.contexts.hybrid.text=hybride
+APOC.contexts.create.button=Créer un référentiel de configuration
+APOC.contexts.login.context=Référentiel de configuration :
+APOC.contexts.login.title=Référentiels de configuration - Connexion
+APOC.contexts.login.help=Le gestionnaire de configuration permet de gérer plusieurs référentiels de configuration nécessitant des connexions individuelles. Si elles sont réutilisables, les informations d'identification permettant de se connecter à Java Web Console sont définies par défaut. Cette page de connexion ne s'affiche pas si l'utilisateur s'est déjà authentifié pour accéder au référentiel de configuration au cours de la session active. Pour accéder à un référentiel de configuration à l'aide d'informations d'identification différentes, il faut fermer la session active en se déconnectant de Java Web Console.
+APOC.select.contexts.login.help=Pour sélectionner un nouveau référentiel de configuration, vous devez fournir de nouvelles informations d'identification. Par défaut, celles qui ont été utilisées pour la connexion au référentiel sélectionné sont définies, si elles sont disponibles.
+APOC.relocate.error.summary=Opération annulée.
+APOC.relocate.error.detail=Au moins une organisation ou un domaine auquel le profil est assigné sera situé au-dessus du nouvel emplacement du profil.
+APOC.relocate.trace.text=Aucun suivi de pile n'est disponible.
+
diff --git a/src/com/sun/apoc/manager/resource/apoc_manager_ja.properties b/src/com/sun/apoc/manager/resource/apoc_manager_ja.properties
new file mode 100644
index 0000000..cfc1da3
--- /dev/null
+++ b/src/com/sun/apoc/manager/resource/apoc_manager_ja.properties
@@ -0,0 +1,1111 @@
+#*******************************************************************************
+#
+# $RCSfile: apoc_manager_ja.properties,v $
+#
+# Description: Resource bundle for the Sun Java(tm) Desktop System
+# Configuration Manager
+#
+# Last change: $Date: 2007/05/18 14:41:03 $ $Revision: 1.11 $
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use of this
+# product is subject to license terms.
+#
+#*******************************************************************************
+
+#*******************************************************************************
+# Common
+#
+#*******************************************************************************
+
+APOC.framelongdesc=\u3053\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u306f 3 \u3064\u306e\u30d5\u30ec\u30fc\u30e0\u69cb\u9020\u304c\u3042\u308a\u307e\u3059\u3002\u30de\u30b9\u30c8\u30d8\u30c3\u30c9\u30d5\u30ec\u30fc\u30e0\u306f\u30da\u30fc\u30b8\u4e0a\u90e8\u306b\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30d5\u30ec\u30fc\u30e0\u306f\u5de6\u5074\u306b\u3042\
+\u308a\u3001\u300c\u30e6\u30fc\u30b6\u30fc\u300d\u3068\u300c\u30db\u30b9\u30c8\u300d\u9593\u3092\u79fb\u52d5\u3067\u304d\u307e\u3059\u3002\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30d5\u30ec\u30fc\u30e0\u3067\u8981\u7d20\u3092\u9078\u629e\u3059\u308b\u3068\u3001\u300c\u5185\u5bb9\u30d5\u30ec\u30fc\u30e0\u300d\u3001\u307e\u305f\u306f\u300c\u5185\u5bb9\u30d5\u30ec\u30fc\u30e0\u300d\u3068\u300c\u30ca\u30d3\
+\u30b2\u30fc\u30b7\u30e7\u30f3\u30d5\u30ec\u30fc\u30e0\u300d\u306e\u4e21\u65b9\u304c\u66f4\u65b0\u3055\u308c\u307e\u3059\u3002\u300c\u5185\u5bb9\u9818\u57df\u300d\u306f\u53f3\u5074\u306b\u3042\u308a\u3001\u73fe\u5728\u9078\u629e\u3055\u308c\u3066\u3044\u308b\u8981\u7d20\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+APOC.so7=StarSuite 7
+APOC.button.remove=\u524a\u9664
+APOC.button.close=\u9589\u3058\u308b
+APOC.button.OK=\u4e86\u89e3
+APOC.button.cancel=\u53d6\u308a\u6d88\u3057
+APOC.button.browse=\u5909\u66f4...
+APOC.headings.name=\u540d\u524d
+APOC.login.username=\u30e6\u30fc\u30b6\u30fc\u540d:
+APOC.login.password=\u30d1\u30b9\u30ef\u30fc\u30c9:
+APOC.infoAlert.success=\u3053\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u306f\u6b63\u5e38\u306b\u7d42\u4e86\u3057\u307e\u3057\u305f\u3002
+APOC.noframes=\u3053\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u30d5\u30ec\u30fc\u30e0\u304c\u5fc5\u8981\u3067\u3059\u3002
+APOC.settings.notset=-- \u672a\u8a2d\u5b9a --
+APOC.profiles.profile=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.help.more.on=>> \u8a73\u7d30\u306f {0}
+APOC.help.more=>> \u8a73\u7d30
+APOC.pool.renameContextMessage=\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u65b0\u3057\u3044\u540d\u524d\u3092\u5165\u529b\u3057\u307e\u3059:
+APOC.pool.removeContextMessage=\u9078\u629e\u3057\u305f\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
+APOC.helpwindow.tooltip=\u30d8\u30eb\u30d7\uff08\u5225\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u304c\u958b\u304f\uff09
+
+#*******************************************************************************
+# Masthead
+#
+#*******************************************************************************
+
+APOC.frame.masthead=\u30de\u30b9\u30c8\u30d8\u30c3\u30c9
+APOC.masthead.altTextVer=Sun Desktop Manager 1.0.1
+APOC.masthead.altText=Sun Desktop Manager 1.0.1
+APOC.masthead.altTextForSub={0}
+APOC.masthead.packages.alt=\u30dd\u30ea\u30b7\u30fc\u30d1\u30c3\u30b1\u30fc\u30b8\uff08\u65b0\u3057\u3044\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304f\uff09
+APOC.masthead.path.link=\u30ea\u30dd\u30b8\u30c8\u30ea
+APOC.masthead.path.help=\u300c\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u300d\u30da\u30fc\u30b8\u306b\u623b\u308b
+
+#*******************************************************************************
+# Packages Dialog Strings
+#
+#*******************************************************************************
+
+APOC.packages.title=\u30dd\u30ea\u30b7\u30fc\u30d1\u30c3\u30b1\u30fc\u30b8
+APOC.packages.introtext=\u3053\u3053\u3067\u306f\u3001\u30dd\u30ea\u30b7\u30fc\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u307e\u305f\u306f\u30a2\u30f3\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u307e\u3059\u3002\u30dd\u30ea\u30b7\u30fc\u30d1\u30c3\u30b1\u30fc\u30b8\u306f Sun \u307e\u305f\u306f Sun \u4ee5\u5916\u306e\u30d9\u30f3\u30c0\u30fc\u304b\u3089\
+\u63d0\u4f9b\u3055\u308c\u3066\u304a\u308a\u3001{0} \u5185\u3067\u4f7f\u7528\u3059\u308b\u8ffd\u52a0\u306e\u30dd\u30ea\u30b7\u30fc\u304c\u5165\u3063\u3066\u3044\u307e\u3059\u3002
+APOC.packages.tabletitle=\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u30dd\u30ea\u30b7\u30fc\u30d1\u30c3\u30b1\u30fc\u30b8
+APOC.packages.headings.adddate=\u65e5\u4ed8\u306e\u8ffd\u52a0
+APOC.packages.action.file=\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb...
+APOC.packages.action.url=\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb...
+APOC.packages.action.uninstall=\u30a2\u30f3\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb
+APOC.packages.uninstall.confirm=\u9078\u629e\u3057\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a2\u30f3\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
+APOC.packages.filechooser.addfile=\u30b5\u30fc\u30d0\u30fc\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u30dd\u30ea\u30b7\u30fc\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb
+APOC.packages.filechooser.button=\u30d5\u30a1\u30a4\u30eb\u306e\u9078\u629e
+APOC.packages.localchooser.title=\u30ed\u30fc\u30ab\u30eb\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u30dd\u30ea\u30b7\u30fc\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb
+APOC.packages.localchooser.upload=\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
+APOC.packages.localchooser.choosetext=\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb:
+
+#*******************************************************************************
+# Users Page Tab
+#
+#*******************************************************************************
+
+APOC.users.title=\u30e6\u30fc\u30b6\u30fc
+APOC.users.introtext=\u3053\u306e\u898b\u51fa\u3057\u30da\u30fc\u30b8\u306b\u306f\u3001\u9078\u629e\u3057\u305f\u5f79\u5272\u306e\u30e1\u30f3\u30d0\u30fc\u3067\u3042\u308b\u30e6\u30fc\u30b6\u30fc\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u300c\u30d1\u30b9\u300d\u5217\u306b\u306f\u3001\u7d76\u5bfe\u30d1\u30b9\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+APOC.users.tableSummary=\u3053\u306e\u8868\u306b\u306f\u3001\u9078\u629e\u3057\u305f\u5f79\u5272\u306e\u30e1\u30f3\u30d0\u30fc\u3067\u3042\u308b\u30e6\u30fc\u30b6\u30fc\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u300c\u30d1\u30b9\u300d\u5217\u306b\u306f\u3001\u7d76\u5bfe\u30d1\u30b9\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u30e6\u30fc\u30b6\u30fc\u540d\u3092\u30af\u30ea\u30c3\
+\u30af\u3059\u308b\u3068\u3001\u5de6\u306e\u30d5\u30ec\u30fc\u30e0\u306b\u3042\u308b\u305d\u306e\u30e6\u30fc\u30b6\u30fc\u304c\u9078\u629e\u3055\u308c\u307e\u3059\u3002
+
+#*******************************************************************************
+# Roles Page Tab
+#
+#*******************************************************************************
+
+APOC.roles.title=\u5f79\u5272
+APOC.roles.introtext=\u3053\u306e\u898b\u51fa\u3057\u30da\u30fc\u30b8\u306b\u306f\u3001\u9078\u629e\u3057\u305f\u30e6\u30fc\u30b6\u30fc\u304c\u30e1\u30f3\u30d0\u30fc\u3067\u3042\u308b\u5f79\u5272\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u300c\u30d1\u30b9\u300d\u5217\u306b\u306f\u3001\u7d76\u5bfe\u30d1\u30b9\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+APOC.roles.tableSummary=\u3053\u306e\u8868\u306b\u306f\u3001\u9078\u629e\u3057\u305f\u30e6\u30fc\u30b6\u30fc\u304c\u30e1\u30f3\u30d0\u30fc\u3067\u3042\u308b\u5f79\u5272\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u300c\u30d1\u30b9\u300d\u5217\u306b\u306f\u3001\u7d76\u5bfe\u30d1\u30b9\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u5f79\u5272\u540d\u3092\u30af\u30ea\u30c3\u30af\u3059\
+\u308b\u3068\u3001\u5de6\u306e\u30d5\u30ec\u30fc\u30e0\u306b\u3042\u308b\u305d\u306e\u5f79\u5272\u304c\u9078\u629e\u3055\u308c\u307e\u3059\u3002
+
+#*******************************************************************************
+# Assignees Page Tab
+#
+#*******************************************************************************
+
+APOC.assignees.title=\u5272\u308a\u5f53\u3066\u5148
+APOC.assignees.introtext=\u3053\u306e\u898b\u51fa\u3057\u30da\u30fc\u30b8\u306b\u306f\u3001\u9078\u629e\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u308b\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u300c\u30d1\u30b9\u300d\u5217\u306b\u306f\u3001\u7d76\u5bfe\u30d1\u30b9\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\
+\u3055\u308c\u307e\u3059\u3002
+APOC.assignees.tableSummary=\u3053\u306e\u8868\u306b\u306f\u3001\u9078\u629e\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u308b\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u300c\u30d1\u30b9\u300d\u5217\u306b\u306f\u3001\u7d76\u5bfe\u30d1\u30b9\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\
+\u5de6\u5074\u306e\u30d5\u30ec\u30fc\u30e0\u3067\u8981\u7d20\u306e\u540d\u524d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001\u305d\u306e\u8981\u7d20\u3092\u9078\u629e\u3057\u307e\u3059\u3002
+
+#*******************************************************************************
+# Profiles Tab page
+#
+#*******************************************************************************
+
+APOC.policysets.title=\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.policysets.label=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb:
+APOC.policysets.introtext=\u3053\u306e\u898b\u51fa\u3057\u30da\u30fc\u30b8\u3067\u306f\u3001\u9078\u629e\u3057\u305f\u8981\u7d20\u306b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u5272\u308a\u5f53\u3066\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002
+APOC.policysets.save=\u4fdd\u5b58
+APOC.policysets.infoAlert.saveSuccess=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u5272\u308a\u5f53\u3066\u5909\u66f4\u304c\u4fdd\u5b58\u3055\u308c\u307e\u3057\u305f\u3002
+
+#*******************************************************************************
+# Policies Tab page
+#
+#*******************************************************************************
+
+APOC.policies.title=\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u308b\u30dd\u30ea\u30b7\u30fc
+APOC.policies.subcategories=\u30b5\u30d6\u30ab\u30c6\u30b4\u30ea
+APOC.policies.nameCol=\u540d\u524d
+APOC.policies.commentCol=\u30b3\u30e1\u30f3\u30c8
+APOC.policies.actionCol=\u30a2\u30af\u30b7\u30e7\u30f3
+APOC.policies.toggle.button=\u30a2\u30af\u30b7\u30e7\u30f3\u306e\u5207\u308a\u66ff\u3048
+APOC.policies.introtext=\u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\u3001\u69cb\u6210\u30dd\u30ea\u30b7\u30fc\u30c4\u30ea\u30fc\u3068\u9078\u629e\u3057\u305f\u8981\u7d20\u306e\u69cb\u6210\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+APOC.policies.tableSummary=\u3053\u306e\u8868\u306b\u306f\u3001\u4f7f\u7528\u53ef\u80fd\u306a\u30dd\u30ea\u30b7\u30fc\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u5404\u884c\u306b\u306f\u3001\u30dd\u30ea\u30b7\u30fc\u540d\u3068\u77ed\u3044\u8aac\u660e\u304c\u542b\u307e\u308c\u307e\u3059\u3002\u540d\u524d\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u305d\u306e\u9805\u76ee\u306e\u30b5\u30d6\u30dd\u30ea\
+\u30b7\u30fc\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+APOC.properties.tableSummary=\u3053\u306e\u8868\u306b\u306f\u3001\u69cb\u6210\u8a2d\u5b9a\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u5404\u884c\u306b\u306f\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306e\u72b6\u614b\u3001\u540d\u524d\u3001\u304a\u3088\u3073\u5024\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+APOC.policies.stateCol=\u72b6\u614b
+APOC.policies.value=\u5024
+APOC.policies.value.notconfig=\u672a\u69cb\u6210
+APOC.policies.value.config=\u69cb\u6210\u6e08\u307f
+APOC.policies.status=\u30b9\u30c6\u30fc\u30bf\u30b9
+APOC.policies.root=\u30dd\u30ea\u30b7\u30fc
+APOC.policies.actions=&#8212;&nbsp;\u30dd\u30ea\u30b7\u30fc\u306e\u30a2\u30af\u30b7\u30e7\u30f3&nbsp;&#8212;
+APOC.policies.actions.protect=\u4fdd\u8b77
+APOC.policies.actions.unprotect=\u4fdd\u8b77\u89e3\u9664
+APOC.policies.actions.default=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u9069\u7528
+APOC.policies.actions.clear=\u6d88\u53bb\u3059\u308b
+APOC.policies.enable=\u6709\u52b9\u306b\u3059\u308b
+APOC.policies.enabled=\u6709\u52b9
+APOC.policies.disabled=\u7121\u52b9
+APOC.policies.clear.button=\u8a2d\u5b9a\u3092\u6d88\u53bb\u3059\u308b...
+APOC.policies.createrep.button=\u30ec\u30dd\u30fc\u30c8\u306e\u4f5c\u6210...
+APOC.policies.createrep.tooltip=\u30ec\u30dd\u30fc\u30c8\u306e\u4f5c\u6210 (\u65b0\u3057\u3044\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304f)
+APOC.policies.clear.confirmation=\u3053\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u306f\u3001\u3053\u306e\u30ec\u30a4\u30e4\u30fc\u4ee5\u4e0b\u306b\u3042\u308b\u3059\u3079\u3066\u306e\u30ec\u30a4\u30e4\u30fc\u306e\u3059\u3079\u3066\u306e\u8a2d\u5b9a\u3092\u524a\u9664\u3057\u307e\u3059\u3002\u7d99\u7d9a\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
+APOC.policies.backToTop=\u30da\u30fc\u30b8\u306e\u5148\u982d\u306b\u623b\u308b
+APOC.policies.backToTop.tooltip=\u30da\u30fc\u30b8\u306e\u5148\u982d\u306b\u79fb\u52d5\u3057\u307e\u3059\u3002
+APOC.policies.jumpDown.tooltip={0} (\u3053\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u307e\u3067\u79fb\u52d5\u3057\u307e\u3059)
+APOC.policies.save.button=\u4fdd\u5b58
+APOC.policies.reset.button=\u30ea\u30bb\u30c3\u30c8
+APOC.policies.navigation.table.empty=\u30dd\u30ea\u30b7\u30fc\u304c\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u307e\u305b\u3093\u3002
+APOC.policies.set.table.empty=\u8a72\u5f53\u3059\u308b\u9805\u76ee\u306f\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+APOC.policies.new.button=\u65b0\u898f\u4f5c\u6210...
+APOC.policies.delete.button=\u524a\u9664
+APOC.policies.name.question=\u65b0\u898f\u9805\u76ee\u306e\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.policies.rename.set=\u9805\u76ee\u306e\u65b0\u3057\u3044\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.policies.status.defined_here=\u305d\u306e\u9805\u76ee\u306f\u3053\u306e\u30ec\u30a4\u30e4\u30fc\u3067\u5b9a\u7fa9\u3055\u308c\u307e\u3059\u3002
+APOC.policies.status.defined_above=\u3053\u306e\u9805\u76ee\u306f\u4e0a\u306e\u5c64\u3067\u5b9a\u7fa9\u3055\u308c\u307e\u3059\u3002
+APOC.policies.status.noprotection=\u4fdd\u8b77\u30b9\u30c6\u30fc\u30bf\u30b9\u304c\u3042\u308a\u307e\u305b\u3093\u3002
+APOC.policies.status.nodefinition=\u5b9a\u7fa9\u30b9\u30c6\u30fc\u30bf\u30b9\u304c\u3042\u308a\u307e\u305b\u3093\u3002
+APOC.policies.status.jumpto=\u3053\u306e\u30ea\u30f3\u30af\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001{0} \u306b\u79fb\u52d5\u3057\u307e\u3059\u3002
+APOC.policies.status.protected_here=\u305d\u306e\u9805\u76ee\u306f\u3053\u306e\u30ec\u30a4\u30e4\u30fc\u3067\u4fdd\u8b77\u3055\u308c\u3066\u3044\u307e\u3059\u3002
+APOC.policies.status.protected_above=\u305d\u306e\u9805\u76ee\u306f\u4e0a\u306e\u30ec\u30a4\u30e4\u30fc\u3067\u4fdd\u8b77\u3055\u308c\u3066\u3044\u307e\u3059\u3002
+APOC.policies.status.policygroup=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb {0}
+APOC.policies.info.general=\u3053\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u306f\u6b63\u5e38\u306b\u7d42\u4e86\u3057\u307e\u3057\u305f\u3002
+APOC.policies.info.stored=\u3059\u3079\u3066\u306e\u8a2d\u5b9a\u306f\u4fdd\u5b58\u3055\u308c\u307e\u3057\u305f\u3002
+APOC.policies.info.removed=\u3059\u3079\u3066\u306e\u8a2d\u5b9a\u306f\u524a\u9664\u3055\u308c\u307e\u3057\u305f\u3002
+APOC.policies.error.general=\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.policies.error.removing=\u8a2d\u5b9a\u306e\u524a\u9664\u30a8\u30e9\u30fc: {0}
+APOC.policies.error.storing=\u8a2d\u5b9a\u306e\u4fdd\u5b58\u30a8\u30e9\u30fc: {0}
+APOC.policies.confirmation.storechanges=\u5909\u66f4\u3055\u308c\u305f\u9805\u76ee\u304c\u3042\u308a\u307e\u3059\u3002\u5909\u66f4\u3055\u308c\u305f\u9805\u76ee\u3092\u4fdd\u5b58\u3057\u307e\u3059\u304b?
+APOC.policies.info.readonly.access=\u3053\u306e\u30da\u30fc\u30b8\u306f\u8aad\u307f\u53d6\u308a\u5c02\u7528\u3067\u3059\u3002\u5909\u66f4\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u306a\u30a2\u30af\u30bb\u30b9\u6a29\u304c\u3042\u308a\u307e\u305b\u3093\u3002
+APOC.policies.info.readonly.maybe=\u5909\u66f4\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u306a\u30a2\u30af\u30bb\u30b9\u6a29\u304c\u306a\u3044\u305f\u3081\u3001\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u304c\u8aad\u307f\u53d6\u308a\u5c02\u7528\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002
+APOC.policies.info.readonly.roles=\u3053\u306e\u30da\u30fc\u30b8\u306f\u8aad\u307f\u53d6\u308a\u5c02\u7528\u3067\u3059\u3002\u30ed\u30fc\u30ab\u30eb\u30dd\u30ea\u30b7\u30fc\u3092\u5f79\u5272\u306b\u5272\u308a\u5f53\u3066\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.policies.edit.button=\u7de8\u96c6...
+APOC.policies.include_in=\u306b\u542b\u3081\u308b
+APOC.policies.exclude_from=\u304b\u3089\u9664\u5916\u3059\u308b
+APOC.policies.footnote=* \u306f\u3001\u4ed6\u306e\u8a2d\u5b9a\u304c\u660e\u793a\u7684\u306b\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306b\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u81ea\u52d5\u7684\u306b\u4f7f\u7528\u3055\u308c\u308b\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u793a\u3057\u307e\u3059\u3002
+APOC.policies.settings_title=\u8a2d\u5b9a (\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb {0})
+
+#*******************************************************************************
+# Content Area
+#
+#*******************************************************************************
+
+APOC.frame.contentarea=\u30b3\u30f3\u30c6\u30f3\u30c4\u533a\u753b\u30d5\u30ec\u30fc\u30e0
+APOC.catabs.policy.des=\u30dd\u30ea\u30b7\u30fc\uff08\u898b\u51fa\u3057\u30da\u30fc\u30b8\u3092\u958b\u304f\uff09
+APOC.catabs.policysets.des=\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb (\u898b\u51fa\u3057\u30da\u30fc\u30b8\u3092\u958b\u304f)
+APOC.catabs.users.des=\u30e6\u30fc\u30b6\u30fc\uff08\u898b\u51fa\u3057\u30da\u30fc\u30b8\u306b\u79fb\u52d5\uff09
+APOC.catabs.roles.des=\u300c\u5f79\u5272\u300d\u898b\u51fa\u3057\u30da\u30fc\u30b8\u306b\u79fb\u52d5\u3057\u307e\u3059\u3002
+APOC.catabs.assignees.des=\u300c\u5272\u308a\u5f53\u3066\u5148\u300d\u898b\u51fa\u3057\u30da\u30fc\u30b8\u306b\u79fb\u52d5\u3057\u307e\u3059\u3002
+APOC.ca.backtop=\u30da\u30fc\u30b8\u306e\u5148\u982d\u306b\u623b\u308b
+APOC.ca.locale=\u30ed\u30b1\u30fc\u30eb
+APOC.ca.path=\u30d1\u30b9
+
+#*******************************************************************************
+# Help
+#
+#*******************************************************************************
+
+APOC.help.helpTooltip=\u30d8\u30eb\u30d7\uff08\u5225\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u304c\u958b\u304f\uff09
+APOC.help.windowTitle=\u30d8\u30eb\u30d7
+
+#*******************************************************************************
+# Navigation Area Common
+#
+#*******************************************************************************
+
+APOC.navigation.search=\u691c\u7d22
+APOC.navigation.reset=\u30ea\u30bb\u30c3\u30c8
+APOC.navigation.search.help=\u691c\u7d22\u3092\u767a\u884c\u3067\u304d\u308b\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304d\u307e\u3059\u3002
+APOC.navigation.edit.help=\u691c\u7d22\u6587\u5b57\u5217\u3092\u5165\u529b\u3057\u307e\u3059\u3002
+APOC.navigation.close=\u9589\u3058\u308b
+APOC.navigation.organization=\u7d44\u7e54
+APOC.navigation.organization.with=\u5272\u308a\u5f53\u3066\u306e\u3042\u308b\u7d44\u7e54
+APOC.navigation.organizations=\u7d44\u7e54 (\u8907\u6570)
+APOC.navigation.organizations.help=\u7d44\u7e54\u30c4\u30ea\u30fc\u306e\u30eb\u30fc\u30c8\u3002
+APOC.navigation.user=\u30e6\u30fc\u30b6\u30fc
+APOC.navigation.user.with=\u5272\u308a\u5f53\u3066\u306e\u3042\u308b\u30e6\u30fc\u30b6\u30fc
+APOC.navigation.users=\u30e6\u30fc\u30b6\u30fc
+APOC.navigation.role=\u5f79\u5272
+APOC.navigation.role.with=\u5272\u308a\u5f53\u3066\u306e\u3042\u308b\u5f79\u5272
+APOC.navigation.roles=\u5f79\u5272
+APOC.navigation.domain=\u30c9\u30e1\u30a4\u30f3
+APOC.navigation.domain.with=\u5272\u308a\u5f53\u3066\u306e\u3042\u308b\u30c9\u30e1\u30a4\u30f3
+APOC.navigation.domains=\u30c9\u30e1\u30a4\u30f3 (\u8907\u6570)
+APOC.navigation.domains.help=\u30c9\u30e1\u30a4\u30f3\u30c4\u30ea\u30fc\u306e\u30eb\u30fc\u30c8\u3002
+APOC.navigation.host=\u30db\u30b9\u30c8
+APOC.navigation.host.with=\u5272\u308a\u5f53\u3066\u306e\u3042\u308b\u30db\u30b9\u30c8
+APOC.navigation.hosts=\u30db\u30b9\u30c8 (\u8907\u6570)
+APOC.navigation.name=\u540d\u524d
+APOC.navigation.actions=\u30a2\u30af\u30b7\u30e7\u30f3
+APOC.navigation.view=\u8868\u793a
+APOC.navigation.view.tooltip=\u53f3\u30d5\u30ec\u30fc\u30e0\u306b\u3053\u306e\u8981\u7d20\u3092\u8868\u793a\u3057\u307e\u3059\u3002
+APOC.navigation.area=\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u533a\u753b
+APOC.navigation.empty=\u5229\u7528\u3067\u304d\u308b\u9805\u76ee\u306f\u3042\u308a\u307e\u305b\u3093\u3002
+APOC.navigation.name.label=\u540d\u524d:
+APOC.navigation.type=\u7a2e\u985e
+APOC.navigation.userTooltip=\u300c\u30e6\u30fc\u30b6\u30fc\u300d\u898b\u51fa\u3057\u30da\u30fc\u30b8\u306b\u79fb\u52d5\u3057\u307e\u3059\u3002
+APOC.navigation.hostTooltip=\u30db\u30b9\u30c8\uff08\u300c\u30db\u30b9\u30c8\u300d\u898b\u51fa\u3057\u30da\u30fc\u30b8\u306b\u79fb\u52d5\uff09
+APOC.navigation.breadcrumb.tooltip={0} \u3078\u623b\u308b
+APOC.navigation.show=\u8868\u793a:
+APOC.navigation.showDirsOnly=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u307f
+APOC.navigation.showAll=\u3059\u3079\u3066
+APOC.navigation.ellipsis=... \u4e00\u90e8\u306e\u8981\u7d20\u304c\u8868\u793a\u3055\u308c\u3066\u3044\u307e\u305b\u3093
+APOC.navigation.openfind=\u691c\u7d22\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304d\u307e\u3059
+APOC.navigation.search.target.alert1=\u9078\u629e\u306b\u5bfe\u3059\u308b\u30bf\u30fc\u30b2\u30c3\u30c8\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u6c7a\u5b9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\\n\
+\u691c\u7d22\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u9589\u3058\u3066\u3001\u76ee\u7684\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u30a6\u30a3\u30f3\u30c9\u30a6\u304b\u3089\u3082\u3046\u4e00\u5ea6\u958b\u3044\u3066\u304f\u3060\u3055\u3044\u3002
+
+#*******************************************************************************
+# Navigation Area User Tree Tab
+#
+#*******************************************************************************
+
+APOC.usertree.title=\u7d44\u7e54\u30c4\u30ea\u30fc
+APOC.usertree.tooltip=\u7d44\u7e54\u30c4\u30ea\u30fc\uff08\u300c\u7d44\u7e54\u30c4\u30ea\u30fc\u300d\u898b\u51fa\u3057\u30da\u30fc\u30b8\u306b\u79fb\u52d5\uff09
+APOC.usertree.tableSummary=\u3053\u306e\u8868\u306b\u306f\u3001\u73fe\u5728\u306e\u7d44\u7e54\u56e3\u4f53\u306e\u4e0b\u4f4d\u9805\u76ee\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u5404\u884c\u306b\u306f\u3001\u4e0b\u4f4d\u9805\u76ee\u306e\u540d\u524d\u3001\u7a2e\u985e (\u7d44\u7e54\u3001\u30e6\u30fc\u30b6\u30fc\u3001\u307e\u305f\u306f\u5f79\u5272)\u3001\u304a\u3088\u3073\u30ea\u30f3\u30af\u304c\
+\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u30ea\u30f3\u30af\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u7d44\u7e54\u306e\u5185\u5bb9\u304c\u53f3\u5074\u306e\u30d5\u30ec\u30fc\u30e0\u306b\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+
+#*******************************************************************************
+# Navigation Area Host Tree Tab
+#
+#*******************************************************************************
+
+APOC.hosttree.title=\u30c9\u30e1\u30a4\u30f3\u30c4\u30ea\u30fc
+APOC.hosttree.tooltip=\u30c9\u30e1\u30a4\u30f3\u30c4\u30ea\u30fc\uff08\u300c\u30c9\u30e1\u30a4\u30f3\u30c4\u30ea\u30fc\u300d\u898b\u51fa\u3057\u30da\u30fc\u30b8\u306b\u79fb\u52d5\uff09
+APOC.hosttree.tableSummary=\u3053\u306e\u8868\u306b\u306f\u3001\u73fe\u5728\u306e\u30c9\u30e1\u30a4\u30f3\u306e\u4e0b\u4f4d\u9805\u76ee\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u5404\u884c\u306b\u306f\u3001\u4e0b\u4f4d\u9805\u76ee\u306e\u540d\u524d\u3001\u7a2e\u985e (\u30c9\u30e1\u30a4\u30f3\u3068\u30e6\u30fc\u30b6\u30fc\u306e\u3069\u3061\u3089\u3067\u3042\u308b\u304b)\u3001\u304a\u3088\u3073\
+\u30ea\u30f3\u30af\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u30ea\u30f3\u30af\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u30c9\u30e1\u30a4\u30f3\u306e\u5185\u5bb9\u304c\u53f3\u5074\u306e\u30d5\u30ec\u30fc\u30e0\u306b\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+
+#*******************************************************************************
+# Navigation Area Entities Table Filter
+#
+#*******************************************************************************
+
+APOC.entityfilter.titleUsers=\u62e1\u5f35\u30d5\u30a3\u30eb\u30bf - \u30e6\u30fc\u30b6\u30fc
+APOC.entityfilter.titleHosts=\u62e1\u5f35\u30d5\u30a3\u30eb\u30bf - \u30db\u30b9\u30c8
+APOC.entityfilter.help.title=\u30d8\u30eb\u30d7
+APOC.entityfilter.type.label=\u7a2e\u985e:
+APOC.entityfilter.filter=\u30d5\u30a3\u30eb\u30bf
+APOC.entityfilter.placeholder=<\u30d5\u30a3\u30eb\u30bf\u5bfe\u8c61\u306e\u540d\u524d>
+
+#*******************************************************************************
+# Set Color Dialog
+#
+#*******************************************************************************
+
+APOC.setcolor.edit.alt=\u30d1\u30ec\u30c3\u30c8\u306e\u7de8\u96c6 (\u65b0\u3057\u3044\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304f)
+APOC.setcolor.title=\u30d1\u30ec\u30c3\u30c8\u306e\u7de8\u96c6
+APOC.setcolor.introtext=\u73fe\u5728\u306e\u8272\u306f\u4e2d\u592e\u306e\u5217\u306b\u30ea\u30b9\u30c8\u3067\u8868\u793a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u8272\u306f\u300c\u8ffd\u52a0\u300d\u307e\u305f\u306f\u300creplace color\u300d\u30dc\u30bf\u30f3\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u30d1\u30ec\u30c3\u30c8\u306b\u8ffd\u52a0\u3067\u304d\
+\u307e\u3059\u3002\u300c\u540d\u524d\u300d\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u540d\u524d\u3092\u5165\u529b\u3059\u308b\u3053\u3068\u3067\u3001\u540d\u524d\u3092\u8272\u3068\u95a2\u9023\u4ed8\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u4f5c\u696d\u304c\u5b8c\u4e86\u3057\u305f\u3089\u3001\u300c\u4e86\u89e3\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001\u30d1\u30ec\u30c3\u30c8\u3078\u306e\
+\u5909\u66f4\u3092\u4fdd\u5b58\u3057\u307e\u3059\u3002
+APOC.setcolor.palette.heading=\u8272\u30d1\u30ec\u30c3\u30c8:
+APOC.setcolor.color.heading=\u8272:
+APOC.setcolor.color.alt=\u73fe\u5728\u306e\u8272\u306f {0} \u3067\u3059
+APOC.setcolor.red.heading=\u8d64:
+APOC.setcolor.red.increase=\u8d64\u3092\u5897\u3084\u3059
+APOC.setcolor.red.decrease=\u8d64\u3092\u6e1b\u3089\u3059
+APOC.setcolor.green.heading=\u7dd1:
+APOC.setcolor.green.increase=\u7dd1\u3092\u5897\u3084\u3059
+APOC.setcolor.green.decrease=\u7dd1\u3092\u6e1b\u3089\u3059
+APOC.setcolor.blue.heading=\u9752:
+APOC.setcolor.blue.increase=\u9752\u3092\u5897\u3084\u3059
+APOC.setcolor.blue.decrease=\u9752\u3092\u6e1b\u3089\u3059
+APOC.setcolor.hue.heading=\u8272\u5408\u3044:
+APOC.setcolor.hue.increase=\u8272\u5408\u3044\u3092\u9ad8\u3081\u308b
+APOC.setcolor.hue.decrease=\u8272\u5408\u3044\u3092\u4f4e\u3081\u308b
+APOC.setcolor.sat.heading=\u5f69\u5ea6:
+APOC.setcolor.sat.increase=\u5f69\u5ea6\u3092\u9ad8\u3081\u308b
+APOC.setcolor.sat.decrease=\u5f69\u5ea6\u3092\u4f4e\u3081\u308b
+APOC.setcolor.lum.heading=\u8f1d\u5ea6:
+APOC.setcolor.lum.increase=\u8f1d\u5ea6\u3092\u9ad8\u3081\u308b
+APOC.setcolor.lum.decrease=\u8f1d\u5ea6\u3092\u4f4e\u3081\u308b
+APOC.setcolor.html.heading=16 \u9032\u6570\u5024:
+APOC.setcolor.original.heading=\u5143\u306e\u8272:
+APOC.setcolor.original.alt=\u5143\u306e\u8272\u306f {0} \u3067\u3059\u3002
+APOC.setcolor.wheel.heading=\u8272\u306e\u30b9\u30da\u30af\u30c8\u30eb:
+APOC.setcolor.wheel.alt=\u30a4\u30e1\u30fc\u30b8\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001X \u8ef8\u4e0a\u306e\u8272\u5408\u3044\u3068 Y \u8ef8\u4e0a\u306e\u5f69\u5ea6\u306e\u30b9\u30da\u30af\u30c8\u30eb\u304b\u3089\u8272\u3092\u9078\u629e\u3057\u307e\u3059\u3002\u30b9\u30da\u30af\u30c8\u30eb\u3067\u7279\u5b9a\u306e\u8272\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u305d\u306e\u8272\u304c\u542b\
+\u307e\u308c\u308b\u3088\u3046\u4e2d\u592e\u306e\u5217\u304c\u66f4\u65b0\u3055\u308c\u307e\u3059\u3002
+APOC.setcolor.slider.summary=\u3053\u306e\u30c6\u30fc\u30d6\u30eb\u306e\u4efb\u610f\u306e\u5834\u6240\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001\u73fe\u5728\u306e\u8272\u306e\u8f1d\u5ea6\u3092\u8abf\u6574\u3057\u307e\u3059\u3002\u8f1d\u5ea6\u306f\u53f3\u304b\u3089\u5de6\u3078\u3068\u4f4e\u304f\u306a\u308a\u307e\u3059\u3002
+APOC.setcolor.add.button=\u8272\u306e\u8ffd\u52a0 >
+APOC.setcolor.replace.button=\u8272\u306e\u7f6e\u63db >
+APOC.setcolor.remove.button=\u8272\u306e\u524a\u9664
+APOC.setcolor.remove.alert=\u9078\u629e\u3055\u308c\u305f\u30bf\u30a4\u30eb\u306b\u306f\u4fdd\u5b58\u3055\u308c\u305f\u30d1\u30ec\u30c3\u30c8\u8272\u304c\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u305f\u3081\u3001\u524a\u9664\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.setcolor.name.alert=\u6307\u5b9a\u3057\u305f\u8272\u540d\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u5225\u306e\u8272\u540d\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.setcolor.restoreorigcolor.button=\u8272\u3092\u623b\u3059
+APOC.setcolor.restore.button=\u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u623b\u3059
+APOC.setcolor.restore.confirm=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u8272\u306b\u623b\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
+APOC.setcolor.increase.tooltip=\u9ad8\u3081\u308b
+APOC.setcolor.decrease.tooltip=\u4f4e\u3081\u308b
+APOC.setcolor.tooltip=\u8272\u306e\u30c0\u30a4\u30a2\u30ed\u30b0\u306e\u7de8\u96c6 (\u65b0\u3057\u3044\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u958b\u304f)
+APOC.setcolor.replace.alert=\u8272\u3092\u8ffd\u52a0\u3057\u305f\u3044\u5834\u5408\u306f\u3001\u300c\u30ab\u30e9\u30fc\u306e\u8ffd\u52a0\u300d\u30dc\u30bf\u30f3\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002
+APOC.setcolor.add.alert=\u65e2\u5b58\u306e\u8272\u3092\u7f6e\u63db\u3059\u308b\u5834\u5408\u306f\u3001\u300c\u30ab\u30e9\u30fc\u306e\u5909\u66f4\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002
+APOC.setcolor.noname=\u540d\u524d\u306a\u3057
+APOC.setcolor.invalid.hex=\u305d\u306e 16 \u9032\u6570\u306f\u7121\u52b9\u3067\u3059\u3002\u6709\u52b9\u306a\u5024\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044
+
+#*******************************************************************************
+# Chooser
+#
+#*******************************************************************************
+
+APOC.page.chooser.list.editor=\u30ea\u30b9\u30c8\u306e\u7de8\u96c6
+APOC.page.chooser.list.help=\u4e0b\u306e\u30ea\u30b9\u30c8\u3092\u7de8\u96c6\u3059\u308b\u3053\u3068\u3067\u3001\u30b3\u30f3\u30c6\u30f3\u30c4\u533a\u753b\u306e\u30c9\u30ed\u30c3\u30d7\u30c0\u30a6\u30f3\u30e1\u30cb\u30e5\u30fc\u306b\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u8981\u7d20\u3092\u8ffd\u52a0\u307e\u305f\u306f\u524a\u9664\u3057\u307e\u3059\u3002\u3059\u3079\u3066\u306e\u30e6\u30fc\u30b6\u30fc\u306e\u5909\u66f4\u3092\u30ea\u30b9\
+\u30c8\u304b\u3089\u524a\u9664\u3059\u308b\u306b\u306f\u3001\u300cRestore Defaults\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002\u30ea\u30b9\u30c8\u306b\u5909\u66f4\u3092\u4fdd\u5b58\u3059\u308b\u306b\u306f\u3001\u300c\u4e86\u89e3\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\
+\u3059\u3002
+APOC.chooser.add=\u8ffd\u52a0
+APOC.chooser.system_added=(*) \u306f\u30b7\u30b9\u30c6\u30e0\u306b\u3088\u308a\u30ea\u30b9\u30c8\u306b\u8ffd\u52a0\u3055\u308c\u305f\u8981\u7d20\u3092\u8868\u3057\u307e\u3059\u3002\u8981\u7d20\u304c\u30b7\u30b9\u30c6\u30e0\u306b\u3088\u308a\u30ea\u30b9\u30c8\u306b\u8ffd\u52a0\u3055\u308c\u308b\u306e\u306f\u3001\u305d\u308c\u3089\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3067\u3042\u308b\u304b\u3001\u8981\u7d20\u304c\
+\u73fe\u5728\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306b\u5bfe\u3057\u3066\u4fdd\u5b58\u3055\u308c\u305f\u5024\u3067\u3042\u308b\u5834\u5408\u3067\u3059
+APOC.chooser.protected.alert=\u3053\u306e\u8981\u7d20\u306f\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3067\u3042\u308b\u304b\u3001\u3053\u306e\u30da\u30fc\u30b8\u306e\u8a2d\u5b9a\u306b\u5bfe\u3057\u3066\u4fdd\u5b58\u3055\u308c\u305f\u5024\u3067\u3042\u308b\u305f\u3081\u3001\u30ea\u30b9\u30c8\u304b\u3089\u524a\u9664\u3067\u304d\u307e\u305b\u3093
+APOC.chooser.selected.alert=\u3053\u306e\u8981\u7d20\u306f\u3001\u3053\u306e\u30da\u30fc\u30b8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306b\u5bfe\u3057\u3066\u73fe\u5728\u9078\u629e\u3055\u308c\u3066\u3044\u308b\u5024\u3067\u3042\u308b\u305f\u3081\u3001\u30ea\u30b9\u30c8\u304b\u3089\u524a\u9664\u3067\u304d\u307e\u305b\u3093
+APOC.chooser.edit.alt=\u30ea\u30b9\u30c8\u306e\u7de8\u96c6 (\u65b0\u3057\u3044\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304f)
+APOC.font.chooser.title=\u30d5\u30a9\u30f3\u30c8\u30ea\u30b9\u30c8\u306e\u7de8\u96c6
+APOC.window.border.chooser.title=\u30a6\u30a3\u30f3\u30c9\u30a6\u30dc\u30fc\u30c0\u30fc\u306e\u30c6\u30fc\u30de\u30ea\u30b9\u30c8\u306e\u7de8\u96c6
+APOC.window.controls.chooser.title=\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u306e\u30c6\u30fc\u30de\u30ea\u30b9\u30c8\u306e\u7de8\u96c6
+APOC.window.icon.chooser.title=\u30a2\u30a4\u30b3\u30f3\u306e\u30c6\u30fc\u30de\u30ea\u30b9\u30c8\u306e\u7de8\u96c6
+
+#*******************************************************************************
+# Navigation Area Repository Tab
+#
+#*******************************************************************************
+
+APOC.pool.title=\u30dd\u30ea\u30b7\u30fc\u30ea\u30dd\u30b8\u30c8\u30ea
+APOC.pool.all_profiles=\u3059\u3079\u3066\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.pool.all_profiles.help=\u3053\u306e\u898b\u51fa\u3057\u30da\u30fc\u30b8\u306b\u306f\u3059\u3079\u3066\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+APOC.pool.all_domain_profiles=\u3059\u3079\u3066\u306e\u30c9\u30e1\u30a4\u30f3\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.pool.all_org_profiles=\u3059\u3079\u3066\u306e\u7d44\u7e54\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.pool.tooltip=\u30dd\u30ea\u30b7\u30fc\u30ea\u30dd\u30b8\u30c8\u30ea\uff08\u300c\u30dd\u30ea\u30b7\u30fc\u30ea\u30dd\u30b8\u30c8\u30ea\u300d\u898b\u51fa\u3057\u30da\u30fc\u30b8\u306b\u79fb\u52d5\uff09
+APOC.pool.sets=\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.pool.setsHost=\u30db\u30b9\u30c8\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.pool.priority=\u512a\u5148\u5ea6
+APOC.pool.actions=&#8212;&nbsp;\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30af\u30b7\u30e7\u30f3&nbsp;&#8212;
+APOC.pool.new=\u65b0\u898f\u4f5c\u6210...
+APOC.pool.delete=\u524a\u9664...
+APOC.pool.import=\u30a4\u30f3\u30dd\u30fc\u30c8...
+APOC.pool.export=\u30a8\u30af\u30b9\u30dd\u30fc\u30c8...
+APOC.pool.rename=\u540d\u524d\u306e\u5909\u66f4...
+APOC.pool.edit=\u512a\u5148\u5ea6\u306e\u7de8\u96c6...
+APOC.pool.add_assignment=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u5272\u308a\u5f53\u3066
+APOC.pool.available_profiles=\u4f7f\u7528\u53ef\u80fd\u306a\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.pool.add_assignment_help=\u3053\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u4f7f\u7528\u3057\u3066\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u5272\u308a\u5f53\u3066\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002
+APOC.pool.new_button.help=\u65b0\u898f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002
+APOC.pool.delete_button.help=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664\u3057\u307e\u3059\u3002
+APOC.pool.assign_button.help=\u5272\u308a\u5f53\u3066\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3059\u308b\u305f\u3081\u306b\u65b0\u3057\u3044\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304d\u307e\u3059\u3002
+APOC.pool.unassign_button.help=\u73fe\u5728\u306e\u7d44\u7e54\u3067\u9078\u629e\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u5272\u308a\u5f53\u3066\u3092\u7834\u68c4\u3057\u307e\u3059\u3002
+APOC.pool.report_button.help=\u30ec\u30dd\u30fc\u30c8\u304c\u542b\u307e\u308c\u305f\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304d\u307e\u3059\u3002
+APOC.pool.tableSummary=\u3053\u306e\u8868\u306b\u306f\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u5404\u884c\u306b\u306f\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u3001\u512a\u5148\u5ea6\u3001\u304a\u3088\u3073\u30ea\u30f3\u30af\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u30ea\u30f3\u30af\u3092\u30af\
+\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u5185\u5bb9\u304c\u53f3\u5074\u306e\u30d5\u30ec\u30fc\u30e0\u5185\u306b\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+APOC.pool.empty=\u5229\u7528\u53ef\u80fd\u306a\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306f\u3042\u308a\u307e\u305b\u3093\u3002
+APOC.pool.deleteMessage=\u9078\u629e\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664\u3057\u307e\u3059\u304b?
+APOC.pool.tableSummary=\u3053\u306e\u8868\u306b\u306f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u5404\u884c\u306b\u306f\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u3001\u305d\u306e\u4f5c\u6210\u8005\u3001\u304a\u3088\u3073\u6700\u7d42\u5909\u66f4\u65e5\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002\u540d\u524d\u3092\u30af\u30ea\u30c3\u30af\u3059\
+\u308b\u3068\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u5185\u5bb9\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+APOC.pool.empty=\u5229\u7528\u53ef\u80fd\u306a\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306f\u3042\u308a\u307e\u305b\u3093\u3002
+APOC.pool.deleteMessage=\u9078\u629e\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664\u3057\u307e\u3059\u304b?
+APOC.pool.newMessage=\u65b0\u898f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u3092\u5165\u529b\u3057\u307e\u3059\u3002
+APOC.pool.newDefault=\u65b0\u898f\u30dd\u30ea\u30b7\u30fc\u30b0\u30eb\u30fc\u30d7
+APOC.pool.renameMessage=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u65b0\u898f\u540d\u524d\u3092\u5165\u529b\u3057\u307e\u3059\u3002
+APOC.pool.help.title=\u30dd\u30ea\u30b7\u30fc\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u30d8\u30eb\u30d7
+APOC.pool.help.text1=\u30dd\u30ea\u30b7\u30fc\u30ea\u30dd\u30b8\u30c8\u30ea\u306f\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3057\u307e\u3059\u3002\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3068\u306f\u3001\u30dd\u30ea\u30b7\u30fc\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306e\u3001\u540d\u524d\u306e\u4ed8\u3044\u305f\u30b3\u30f3\u30c6\u30ca\u3067\u3059\u3002\u30d7\u30ed\
+\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u306f\u4e00\u610f\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002
+APOC.pool.help.text2=\u65b0\u3057\u3044\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u305f\u5f8c\u306f\u3001\u305d\u3053\u306b\u69cb\u6210\u8a2d\u5b9a\u3092\u683c\u7d0d\u3057\u3066\u3001\u3053\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u7d44\u7e54\u3001\u30e6\u30fc\u30b6\u30fc\u3001\u5f79\u5272\u3001\u30c9\u30e1\u30a4\u30f3\u3001\u307e\u305f\u306f\u30db\u30b9\u30c8\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u304c\
+\u3067\u304d\u307e\u3059\u3002\u3053\u308c\u3092\u884c\u3046\u306b\u306f\u3001\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u533a\u753b\u3067\u305d\u306e\u8981\u7d20\u3092\u8868\u793a\u3057\u3001\u30b3\u30f3\u30c6\u30f3\u30c4\u533a\u753b\u3067\u300c\u30dd\u30ea\u30b7\u30fc\u300d\u898b\u51fa\u3057\u30da\u30fc\u30b8\u3092\u9078\u629e\u3057\u307e\u3059\u3002
+APOC.pool.help.text3=\u69cb\u6210\u3092\u7ba1\u7406\u3059\u308b\u3068\u304d\u306b\u5fc5\u305a\u3057\u3082\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u4f7f\u7528\u3059\u308b\u3068\u3001\u3088\u308a\u67d4\u8edf\u306a\u7ba1\u7406\u304c\u3067\u304d\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001\u300cNovice (\u521d\
+\u5fc3\u8005)\u300d\u3068\u3044\u3046\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u3001\u521d\u5fc3\u8005\u306b\u9069\u3057\u305f\u69cb\u6210\u8a2d\u5b9a\u3092\u683c\u7d0d\u3057\u3001\u305d\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u7d44\u7e54\u3084\u30c9\u30e1\u30a4\u30f3\u30c4\u30ea\u30fc\u306e\u30e1\u30f3\u30d0\u30fc\u306b\u8ffd\u52a0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\
+\u307e\u3059\u3002
+APOC.pool.import.tooltip=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u307e\u3059\u3002
+APOC.pool.export.tooltip=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3057\u307e\u3059\u3002
+APOC.pool.rename.tooltip=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u3092\u5909\u66f4\u3057\u307e\u3059\u3002
+APOC.pool.import.disabled.tooltip=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u307e\u3059 (\u7121\u52b9)\u3002
+APOC.pool.export.disabled.tooltip=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3057\u307e\u3059 (\u7121\u52b9)\u3002
+APOC.pool.rename.disabled.tooltip=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u3092\u5909\u66f4\u3057\u307e\u3059 (\u7121\u52b9)\u3002
+
+#*******************************************************************************
+# Navigation Area Priorities
+#
+#*******************************************************************************
+
+APOC.prios.title=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u512a\u5148\u9806\u4f4d
+APOC.prios.help=\u3053\u306e\u898b\u51fa\u3057\u30da\u30fc\u30b8\u3067\u306f\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u512a\u5148\u9806\u4f4d\u3092\u5909\u66f4\u3067\u304d\u307e\u3059\u3002\u512a\u5148\u9806\u4f4d\u306f\u30011 \u3064\u306e\u8981\u7d20\u306b\u540c\u3058\u9069\u7528\u6761\u4ef6\u306e\u8907\u6570\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u308b\
+\u5834\u5408\u306b\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u30de\u30fc\u30b8\u9806\u5e8f\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002
+APOC.prios.up=\u4e0a\u3078
+APOC.prios.down=\u4e0b\u3078
+
+#*******************************************************************************
+# Navigation Area Profile Import
+#
+#*******************************************************************************
+
+APOC.groupimport.title=\u30ed\u30fc\u30ab\u30eb\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u30a4\u30f3\u30dd\u30fc\u30c8
+APOC.groupimport.help=\u73fe\u5728\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30ed\u30fc\u30ab\u30eb\u304b\u3089\u9078\u629e\u3057\u307e\u3059\u3002
+APOC.groupimport.choosetext=\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b\u30d5\u30a1\u30a4\u30eb:
+APOC.groupimport.defaulttext=<\u30d5\u30a1\u30a4\u30eb\u540d>
+APOC.groupimport.import=\u30a4\u30f3\u30dd\u30fc\u30c8
+APOC.groupimport.error.zip=\u30a8\u30e9\u30fc: \u30d5\u30a1\u30a4\u30eb\u306f Zip \u5f62\u5f0f\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
+APOC.importwnd.js.overwrite_alert=\u3053\u306e\u540d\u524d\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306f\u3059\u3067\u306b\u5b58\u5728\u3057\u307e\u3059\u3002\u3053\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u4e0a\u66f8\u304d\u3057\u307e\u3059\u304b?
+APOC.groupimport.importing=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u30a4\u30f3\u30dd\u30fc\u30c8
+
+#*******************************************************************************
+# Navigation Area Search
+#
+#*******************************************************************************
+
+APOC.search.search=\u691c\u7d22
+APOC.search.param.help=\u3053\u306e\u691c\u7d22\u306f\u30c4\u30ea\u30fc\u5168\u4f53\u306b\u5bfe\u3057\u3066\u884c\u308f\u308c\u307e\u3059\u3002
+APOC.search.userid.label=\u30e6\u30fc\u30b6\u30fc ID:
+APOC.search.firstname.label=\u540d:
+APOC.search.lastname.label=\u59d3:
+APOC.search.point.label=\u958b\u59cb\u5834\u6240:
+APOC.search.perpage.label=1 \u30da\u30fc\u30b8\u306b\u8868\u793a\u3055\u308c\u308b\u691c\u7d22\u7d50\u679c:
+APOC.search.results=\u691c\u7d22\u7d50\u679c
+APOC.search.result.help=\u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\u3001\u691c\u7d22\u7d50\u679c\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u300c\u30d1\u30b9\u300d\u5217\u306b\u306f\u3001\u958b\u59cb\u5834\u6240\u304b\u3089\u306e\u76f8\u5bfe\u30d1\u30b9\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+APOC.search.entitiesFound=\u691c\u51fa\u3055\u308c\u305f\u8981\u7d20
+APOC.search.param.title.help=\u691c\u7d22\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.search.usersFound=\u691c\u51fa\u3055\u308c\u305f\u30e6\u30fc\u30b6\u30fc
+APOC.search.rolesFound=\u691c\u51fa\u3055\u308c\u305f\u5f79\u5272
+APOC.search.organizationsFound=\u691c\u51fa\u3055\u308c\u305f\u7d44\u7e54\u56e3\u4f53
+APOC.search.domainsFound=\u691c\u51fa\u3055\u308c\u305f\u30c9\u30e1\u30a4\u30f3
+APOC.search.hostsFound=\u691c\u51fa\u3055\u308c\u305f\u30db\u30b9\u30c8
+APOC.search.all=\u5168\u4f53\u3092\u691c\u7d22
+APOC.search.users=\u30e6\u30fc\u30b6\u30fc\u3092\u691c\u7d22
+APOC.search.roles=\u5f79\u5272\u3092\u691c\u7d22
+APOC.search.organizations=\u7d44\u7e54\u56e3\u4f53\u3092\u691c\u7d22
+APOC.search.domains=\u30c9\u30e1\u30a4\u30f3\u3092\u691c\u7d22
+APOC.search.hosts=\u30db\u30b9\u30c8\u3092\u691c\u7d22
+APOC.search.tableSummary=\u3053\u306e\u8868\u306f\u3001\u691c\u7d22\u7d50\u679c\u306e\u30ea\u30b9\u30c8\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u5404\u884c\u306b\u306f\u3001\u8981\u7d20\u306e\u540d\u524d\u3001\u7a2e\u985e (\u7d44\u7e54\u56e3\u4f53\u540d\u3001\u30e6\u30fc\u30b6\u30fc\u3001\u307e\u305f\u306f\u5f79\u5272)\u3001\u304a\u3088\u3073\u30d5\u30eb\u30d1\u30b9\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u540d\
+\u524d\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u30e1\u30a4\u30f3\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u5de6\u30d5\u30ec\u30fc\u30e0\u3067\u305d\u306e\u8981\u7d20\u304c\u9078\u629e\u3055\u308c\u307e\u3059\u3002
+APOC.search.path=\u30d1\u30b9
+APOC.search.userid=\u30e6\u30fc\u30b6\u30fc ID
+APOC.search.title.text=\u691c\u7d22
+APOC.search.search.help=\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u691c\u7d22\u3057\u307e\u3059\u3002
+APOC.search.reset.help=\u691c\u7d22\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u30ea\u30bb\u30c3\u30c8\u3057\u307e\u3059\u3002
+APOC.search.cancel.help=\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u9589\u3058\u307e\u3059\u3002
+APOC.search.advanced.show.button=\u8a73\u7d30\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u8868\u793a
+APOC.search.advanced.show.help=\u8a73\u7d30\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u8868\u793a\u3057\u307e\u3059\u3002
+APOC.search.advanced.hide.button=\u8a73\u7d30\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u975e\u8868\u793a
+APOC.search.advanced.hide.help=\u8a73\u7d30\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u975e\u8868\u793a\u306b\u3057\u307e\u3059\u3002
+APOC.search.advanced.start.label=\u691c\u7d22\u9818\u57df:
+APOC.search.advanced.restrict.label=\u7bc4\u56f2:
+APOC.search.advanced.browse.help=\u691c\u7d22\u306e\u958b\u59cb\u5834\u6240\u3092\u6c7a\u3081\u308b\u30d1\u30b9\u3092\u5909\u66f4\u3067\u304d\u308b\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304d\u307e\u3059\u3002
+APOC.search.advanced.start.label=\u691c\u7d22\u9818\u57df:
+APOC.search.help.title=\u691c\u7d22\u306b\u3064\u3044\u3066
+APOC.search.help.text1=\u691c\u7d22\u306f\u5927\u6587\u5b57\u3068\u5c0f\u6587\u5b57\u306e\u533a\u5225\u3084\u5b8c\u5168\u4e00\u81f4\u306a\u3057\u3067\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001\u691c\u7d22\u6587\u5b57\u5217\u306e\u300cbc\u300d\u306f\u300cABC\u300d\u3068\u300cbcd\u300d\u306b\u4e00\u81f4\u3057\u307e\u3059\u3002
+APOC.search.help.text2=\u30a2\u30b9\u30bf\u30ea\u30b9\u30af (*) \u306f\u691c\u7d22\u6587\u5b57\u5217\u5185\u306e\u4efb\u610f\u306e\u6587\u5b57\u5217\u3092\u793a\u3057\u307e\u3059\u3002\u691c\u7d22\u6587\u5b57\u5217\u306e\u4efb\u610f\u306e\u5834\u6240\u306b\u8907\u6570\u306e\u30a2\u30b9\u30bf\u30ea\u30b9\u30af\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002
+APOC.search.help.text3=\u7a7a\u767d\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306f\u691c\u7d22\u6587\u5b57\u5217\u300c*\u300d\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3068\u540c\u3058\u3067\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u3001\u8fd4\u3055\u308c\u308b\u7d50\u679c\u306e\u6700\u5927\u6570\u306f 100 \u3067\u3059\u304c\u3001\u3053\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u306f\u8a2d\u5b9a\u53ef\
+\u80fd\u3067\u3059\u3002\u8a73\u7d30\u306f\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30de\u30cb\u30e5\u30a2\u30eb\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.search.help.inline=\u540d\u524d\u3092\u5165\u529b\u3057\u307e\u3059\u3002\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9\u3068\u3057\u3066\u30a2\u30b9\u30bf\u30ea\u30b9\u30af (*) \u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002
+APOC.search.help.inlineUser=\u30e6\u30fc\u30b6\u30fc ID \u3092\u5165\u529b\u3057\u307e\u3059\u3002\u30ef\u30a4\u30eb\u30c9\u30ab\u30fc\u30c9\u3068\u3057\u3066\u30a2\u30b9\u30bf\u30ea\u30b9\u30af (*) \u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002
+
+#*******************************************************************************
+# Content Area - Profiles
+#*******************************************************************************
+APOC.profile.inherited.table=\u7d99\u627f\u3055\u308c\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.profile.page.title=\u3053\u306e\u898b\u51fa\u3057\u30da\u30fc\u30b8\u306b\u306f\u3001\u9078\u629e\u3057\u305f\u8981\u7d20\u306e\u5185\u5bb9\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+APOC.profile.name.text=(\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb {0})
+APOC.profilemgr.assigned=\u5272\u308a\u5f53\u3066\u6e08\u307f
+APOC.profilemgr.assign=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u5272\u308a\u5f53\u3066...
+APOC.profilemgr.pending=\u5909\u66f4\u60c5\u5831
+APOC.profilemgr.author=\u4f5c\u6210\u8005
+APOC.profilemgr.lastMod=\u5909\u66f4\u65e5\u6642
+APOC.profilemgr.delete=\u524a\u9664
+APOC.profilemgr.moreActions=&#8212;&nbsp;\u305d\u306e\u4ed6\u306e\u30a2\u30af\u30b7\u30e7\u30f3&nbsp;&#8212;
+APOC.profilemgr.yes=\u306f\u3044
+APOC.profileassi.unassign=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u5272\u308a\u5f53\u3066\u89e3\u9664
+APOC.profileassi.manage=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u7ba1\u7406...
+APOC.profileassi.release=\u5909\u66f4\u306e\u89e3\u653e...
+APOC.profileassi.releaseNow=\u89e3\u653e
+APOC.profileassi.showResults=\u6709\u52b9\u306a\u8a2d\u5b9a...
+APOC.profileassi.title=\u5909\u66f4\u306e\u89e3\u653e
+APOC.profileassi.table.empty=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u307e\u305b\u3093\u3002
+APOC.profileavail.title=\u4f7f\u7528\u53ef\u80fd\u306a\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.profileavail.help=\u3053\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u4f7f\u7528\u3057\u3066\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u5272\u308a\u5f53\u3066\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002
+APOC.profileavail.assigning=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u5272\u308a\u5f53\u3066
+APOC.profileall.title=\u3059\u3079\u3066\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.profileall.help=\u3053\u306e\u898b\u51fa\u3057\u30da\u30fc\u30b8\u306b\u306f\u3059\u3079\u3066\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+APOC.profileall.domtable.title=\u3059\u3079\u3066\u306e\u30c9\u30e1\u30a4\u30f3\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.profileall.orgtable.title=\u3059\u3079\u3066\u306e\u7d44\u7e54\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.profile.search.profile=\u691c\u7d22\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.profile.error.storing=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u683c\u7d0d\u30a8\u30e9\u30fc\u3067\u3059\u3002
+APOC.profile.assigned.delete=\u9078\u629e\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306f\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u306e\u8981\u7d20\u306b\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u307e\u3059\u3002 \\n\
+ \\n\
+ \u3053\u308c\u3089\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
+APOC.profile.unassigned.delete=\u9078\u629e\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u3059\u3079\u3066\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u30c7\u30fc\u30bf\u304c\u524a\u9664\u3055\u308c\u307e\u3059\u3002\u7d9a\u884c\u3057\u3066\u3088\u308d\u3057\u3044\u3067\u3059\u304b?
+APOC.profiles.default.msg=\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u793a\u3057\u307e\u3059
+
+#*******************************************************************************
+# Configure Report
+#
+#*******************************************************************************
+
+APOC.configrep.title=\u6709\u52b9\u306a\u8a2d\u5b9a\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u5909\u66f4
+APOC.configrep.help=\u6709\u52b9\u306a\u8a2d\u5b9a\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u6709\u52b9\u306a\u8a2d\u5b9a\u306e\u751f\u6210\u306b\u542b\u307e\u308c\u308b\u8981\u7d20\u306f\u3001\u4e0b\u306e\u30ea\u30b9\u30c8\u3092\u4f7f\u7528\u3057\u3066\u5b9a\u7fa9\u3067\u304d\u307e\u3059\u3002\u5404\u7a2e\u985e\u306e\u8981\u7d20\
+\u3092 1 \u3064\u305a\u3064\u9078\u629e\u3067\u304d\u3001\u6709\u52b9\u306a\u8a2d\u5b9a\u306f\u3001\u9078\u629e\u3057\u305f\u8981\u7d20\u306b\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306b\u542b\u307e\u308c\u308b\u30dd\u30ea\u30b7\u30fc\u8a2d\u5b9a\u3092\u30de\u30fc\u30b8\u3057\u305f\u7d50\u679c\u3067\u3059\u3002
+APOC.configrep.effective.settings=\u6709\u52b9\u306a\u8a2d\u5b9a
+APOC.configrep.columns=\u8a2d\u5b9a\u6982\u8981\u3067\u8868\u793a:
+APOC.configrep.statepath=\u30b9\u30c6\u30fc\u30bf\u30b9\u30d1\u30b9
+APOC.configrep.des=\u8aac\u660e
+APOC.configrep.reptype=\u9078\u629e\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u30bd\u30fc\u30b9\u306e\u30de\u30fc\u30b8\u9806\u5e8f
+APOC.configrep.orgtree=\u7d44\u7e54\u30c4\u30ea\u30fc\u304b\u3089\u8981\u7d20\u3092\u9078\u629e:
+APOC.configrep.domtree=\u30c9\u30e1\u30a4\u30f3\u30c4\u30ea\u30fc\u304b\u3089\u8981\u7d20\u3092\u9078\u629e:
+APOC.configrep.typeorg=\u7d44\u7e54\u56e3\u4f53\u30c4\u30ea\u30fc\u306e\u8a2d\u5b9a
+APOC.configrep.typedom=\u30c9\u30e1\u30a4\u30f3\u30c4\u30ea\u30fc\u306e\u8a2d\u5b9a
+APOC.configrep.typeboth=\u4e21\u65b9\u306e\u30c4\u30ea\u30fc\u306e\u8a2d\u5b9a
+APOC.configrep.button.report=\u6709\u52b9\u306a\u8a2d\u5b9a\u306e\u751f\u6210
+
+#*******************************************************************************
+# Report
+#
+#*******************************************************************************
+APOC.report.button.tooltip=\u30ec\u30dd\u30fc\u30c8\u304c\u542b\u307e\u308c\u305f\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304d\u307e\u3059\u3002
+APOC.report.onetree.title=\u30db\u30b9\u30c8 "{2}" \u306e {0} "{1}" \u306e\u6709\u52b9\u306a\u8a2d\u5b9a
+APOC.report.twotree.title=\u30db\u30b9\u30c8 "{4}" \u306e {0} "{1}" \u304a\u3088\u3073 {2} "{3}" \u306e\u6709\u52b9\u306a\u8a2d\u5b9a
+APOC.report.multipletree.title=\u30db\u30b9\u30c8 "{1}" \u306e {0} \u306e\u6709\u52b9\u306a\u8a2d\u5b9a
+APOC.report.involved.profiles.entity={0} \u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.report.locorg={0} \u306f {1} \u306e\u4e0b\u306b\u3042\u308b\u7d44\u7e54\u56e3\u4f53\u3067\u3059\u3002
+APOC.report.locrole={0} \u306f {1} \u306e\u4e0b\u306b\u3042\u308b\u5f79\u5272\u3067\u3059\u3002
+APOC.report.locuserid={0} \u306f {1} \u306e\u4e0b\u306b\u3042\u308b\u30e6\u30fc\u30b6\u30fc\u3067\u3059\u3002
+APOC.report.lochost={0} \u306f {1} \u306e\u4e0b\u306b\u3042\u308b\u30db\u30b9\u30c8\u3067\u3059\u3002
+APOC.report.locdomain={0} \u306f {1} \u306e\u4e0b\u306b\u3042\u308b\u30c9\u30e1\u30a4\u30f3\u3067\u3059\u3002
+APOC.report.rootlocorg={0} \u306f\u7d44\u7e54\u56e3\u4f53\u3067\u3059\u3002
+APOC.report.rootlocuserid={0} \u306f\u30e6\u30fc\u30b6\u30fc\u3067\u3059\u3002
+APOC.report.rootlocrole={0} \u306f\u5f79\u5272\u3067\u3059\u3002
+APOC.report.rootlochost={0} \u306f\u30db\u30b9\u30c8\u3067\u3059\u3002
+APOC.report.rootlocdomain={0} \u306f\u30c9\u30e1\u30a4\u30f3\u3067\u3059\u3002
+APOC.report.policygrouploc={0} \u306f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3067\u3059\u3002
+APOC.report.bothand=\u304a\u3088\u3073
+APOC.report.creator=\u4f5c\u6210\u8005\u306f {1} \u306e {0} \u3067\u3059\u3002
+APOC.report.createdate=\u4f5c\u6210\u65e5\u306f {0} \u3067\u3059\u3002
+APOC.report.backendtype=\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u306e\u7a2e\u985e\u306f {0} \u3067\u3059\u3002
+APOC.report.backendhost=\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u306e\u30db\u30b9\u30c8\u306f {0} \u3067\u3059\u3002
+APOC.report.unknown=\u4e0d\u660e
+APOC.report.startcat=\u958b\u59cb\u30ab\u30c6\u30b4\u30ea\u306f {0} \u3067\u3059\u3002
+APOC.report.contitle=\u76ee\u6b21
+APOC.report.isbelow=\u306f {0} \u306e\u4e0b\u306b\u3042\u308a\u307e\u3059\u3002
+APOC.report.table.summary=\u3053\u306e\u8868\u306b\u306f\u69cb\u6210\u8a2d\u5b9a\u306e\u30ea\u30b9\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u5404\u884c\u306b\u306f\u5c5e\u6027\u306e\u72b6\u614b\u3001\u540d\u524d\u3001\u304a\u3088\u3073\u5024\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002
+APOC.report.table.nameheading=\u540d\u524d
+APOC.report.table.valueheading=\u5024
+APOC.report.table.statusheading=\u30b9\u30c6\u30fc\u30bf\u30b9
+APOC.report.table.statuspheading=\u30b9\u30c6\u30fc\u30bf\u30b9\u30d1\u30b9
+APOC.report.table.desheading=\u8aac\u660e
+APOC.report.table.defined=\u5b9a\u7fa9\u6e08\u307f
+APOC.report.table.protected=\u5f37\u5236\u5316
+APOC.report.table.readonly=\u8aad\u307f\u53d6\u308a\u5c02\u7528
+APOC.report.table.defined.in=\u5b9a\u7fa9\u6e08\u307f
+APOC.report.table.protected.in=\u30e6\u30fc\u30b6\u30fc\u306b\u3088\u308b\u4e0a\u66f8\u304d\u7981\u6b62
+APOC.report.table.readonly.in=\u8aad\u307f\u53d6\u308a\u5c02\u7528
+APOC.report.table.pathPG=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb:
+APOC.report.table.empty={0} \u306b\u306f\u5024\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\u3002
+APOC.report.buttons.print=\u5370\u5237
+APOC.report.assigned.profiles.title=\u542b\u307e\u308c\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.report.settings.summary.title=\u8a2d\u5b9a\u6982\u8981
+APOC.report.addremove.elements=\u542b\u307e\u308c\u308b\u8981\u7d20:
+APOC.report.elements.table.heading=\u542b\u307e\u308c\u308b\u8981\u7d20
+APOC.report.elements.table.summary=\u3053\u306e\u8868\u306f\u3001\u6709\u52b9\u306a\u8a2d\u5b9a\u306e\u751f\u6210\u306e\u7d50\u679c\u306b\u542b\u307e\u308c\u308b\u8981\u7d20\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002
+APOC.report.elements.table.title=\u3053\u306e\u30ea\u30b9\u30c8\u3092\u4f7f\u7528\u3057\u3066\u3001\u6709\u52b9\u306a\u8a2d\u5b9a\u306e\u751f\u6210\u306b\u542b\u307e\u308c\u308b\u8981\u7d20\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002
+APOC.report.add.element=\u8981\u7d20\u306e\u8ffd\u52a0
+APOC.report.remove.element=\u8981\u7d20\u306e\u524a\u9664
+APOC.report.novalues=\u542b\u307e\u308c\u308b\u8981\u7d20\u306b\u5024\u304c\u3042\u308a\u307e\u305b\u3093\u3002
+APOC.report.xml.parsing.error=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u30c7\u30fc\u30bf\u306e\u8aad\u307f\u53d6\u308a\u4e2d\u306b XML \u69cb\u6587\u89e3\u6790\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+
+#*******************************************************************************
+# Full-Page Error Alert
+#
+#*******************************************************************************
+
+APOC.pageerror.title=\u64cd\u4f5c\u306f\u5931\u6557\u3057\u307e\u3057\u305f\u3002
+APOC.pageerror.comment=\u3053\u306e\u30a8\u30e9\u30fc\u306e\u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u306f\u3001\u3053\u306e\u30da\u30fc\u30b8\u306e HTML \u30b3\u30e1\u30f3\u30c8\u3068\u3057\u3066\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+
+#*******************************************************************************
+# PolicyMgr Error Messages
+#
+#*******************************************************************************
+
+APOC.error.occurred=\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.error.open.connection=\u30e6\u30fc\u30b6\u30fc\u306e\u63a5\u7d9a\u3092\u78ba\u7acb\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+APOC.error.close.connection=\u63a5\u7d9a\u3092\u9589\u3058\u3066\u3044\u308b\u9014\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.error.user.invalid=\u30e6\u30fc\u30b6\u30fc\u540d\u304c\u7121\u52b9\u3067\u3059\u3002
+APOC.error.unsupported.datastore=\u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u60c5\u5831\u306b\u6307\u5b9a\u3057\u305f\u30c7\u30fc\u30bf\u30b9\u30c8\u30a2\u306e\u7a2e\u985e\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u305b\u3093\u3002
+APOC.error.application.initialize=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u521d\u671f\u5316\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.error.bootstrap.incomplete=\u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u60c5\u5831\u304c\u4e0d\u5b8c\u5168\u3067\u3059\u3002
+APOC.error.bootstrap.unavailable=\u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u60c5\u5831\u304c\u5229\u7528\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.error.ldap.bootstrap=LDAP \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u306e\u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u60c5\u5831\u304c\u4e0d\u5b8c\u5168\u3067\u3059\u3002
+APOC.error.org.settings=\u30e1\u30bf\u69cb\u6210\u5185\u306e\u7d44\u7e54\u56e3\u4f53\u540d\u8a2d\u5b9a\u304c\u7121\u52b9\u3067\u3059\u3002
+APOC.error.role.settings=\u30e1\u30bf\u8a2d\u5b9a\u5185\u306e\u5f79\u5272\u8a2d\u5b9a\u304c\u7121\u52b9\u3067\u3059\u3002
+APOC.error.user.settings=\u30e1\u30bf\u69cb\u6210\u5185\u306e\u30e6\u30fc\u30b6\u30fc\u8a2d\u5b9a\u304c\u7121\u52b9\u3067\u3059\u3002
+APOC.error.create.parser=XML \u30d1\u30fc\u30b5\u30fc\u306f\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.error.filter=\u30d5\u30a3\u30eb\u30bf\u306f\u69cb\u6587\u304c\u4e0d\u6b63\u3067\u3059\u3002
+APOC.error.policy.read=\u30dd\u30ea\u30b7\u30fc\u306e\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u53d6\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.error.policy.data.invalid=\u30dd\u30ea\u30b7\u30fc\u306e\u30c7\u30fc\u30bf\u304c\u7121\u52b9\u3067\u3059\u3002
+APOC.error.policy.invalid=\u30dd\u30ea\u30b7\u30fc\u304c\u7121\u52b9\u3067\u3059\u3002
+APOC.error.path.invalid=\u30d1\u30b9\u304c\u7121\u52b9\u3067\u3059\u3002
+APOC.error.userprofile.attribute=\u3053\u306e\u5c5e\u6027\u306f\u30e6\u30fc\u30b6\u30fc\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u4e00\u90e8\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
+APOC.error.locale.support=\u3053\u306e\u30ed\u30b1\u30fc\u30eb\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u305b\u3093\u3002
+APOC.error.ldap.read=LDAP \u8aad\u307f\u53d6\u308a\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.error.ldap.write=LDAP \u66f8\u304d\u8fbc\u307f\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.error.ldap.search=\u691c\u7d22\u4e2d\u306b LDAP \u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.error.ldap.results.size=\u691c\u7d22\u4e2d\u306b LDAP \u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u691c\u7d22\u7d50\u679c\u306e\u9805\u76ee\u6570\u304c LDAP \u30b5\u30fc\u30d0\u30fc\u306b\u8a2d\u5b9a\u3055\u308c\u305f\u5236\u9650\u3088\u308a\u3082\u5927\u304d\u3044\u3053\u3068\u304c\u539f\u56e0\u3067\u3059\u3002
+APOC.error.ldap.policygroup.creation=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210\u4e2d\u306b LDAP \u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.error.ldap.policygroup.deletion=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u524a\u9664\u4e2d\u306b LDAP \u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.error.ldap.policygroup.rename=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u5909\u66f4\u4e2d\u306b LDAP \u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.error.unprotect.item=\u4e0a\u4f4d\u9805\u76ee\u304c\u4fdd\u8b77\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u3053\u306e\u9805\u76ee\u306f\u4fdd\u8b77\u89e3\u9664\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.error.readonly.item=\u8aad\u307f\u53d6\u308a\u5c02\u7528\u306e\u9805\u76ee\u306f\u7de8\u96c6\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.error.mandatory.remove=\u5fc5\u9808\u9805\u76ee\u306f\u524a\u9664\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.error.comply.constraints=\u3053\u306e\u5024\u306f\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306e\u5236\u7d04\u306b\u6e96\u62e0\u3057\u3066\u3044\u307e\u305b\u3093\u3002
+APOC.error.nillable=\u3053\u306e\u9805\u76ee\u306f nil \u306b\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.error.mandatory.setting=\u3053\u306e\u9805\u76ee\u306e\u5fc5\u9808\u8a2d\u5b9a\u306f\u5909\u66f4\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.error.policygroup.priority.exists=\u3053\u306e\u512a\u5148\u9806\u4f4d\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306f\u3059\u3067\u306b\u5b58\u5728\u3057\u307e\u3059\u3002
+APOC.error.policygroup.name.exists=\u3053\u306e\u540d\u524d\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306f\u3059\u3067\u306b\u5b58\u5728\u3057\u307e\u3059\u3002
+APOC.error.policygroup.not.exists=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002
+APOC.error.priorities.incorrect=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u512a\u5148\u9806\u4f4d\u304c\u9593\u9055\u3063\u3066\u3044\u307e\u3059\u3002
+APOC.error.policygroup.invalid=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u7121\u52b9\u3067\u3059\u3002
+APOC.error.host.invalid=\u30db\u30b9\u30c8\u540d\u304c\u7121\u52b9\u3067\u3059\u3002
+APOC.error.domain.settings=\u30e1\u30bf\u69cb\u6210\u5185\u306e\u30c9\u30e1\u30a4\u30f3\u8a2d\u5b9a\u304c\u7121\u52b9\u3067\u3059\u3002
+APOC.error.host.settings=\u30e1\u30bf\u69cb\u6210\u5185\u306e\u30db\u30b9\u30c8\u8a2d\u5b9a\u304c\u7121\u52b9\u3067\u3059\u3002
+APOC.error.export.policygroup=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.error.import.policygroup=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u30a4\u30f3\u30dd\u30fc\u30c8\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.error.export.policygroup_data=\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3067\u304d\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u30c7\u30fc\u30bf\u306f\u3042\u308a\u307e\u305b\u3093\u3002
+APOC.error.import.policygroup_data=\u30a4\u30f3\u30dd\u30fc\u30c8\u3067\u304d\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u30c7\u30fc\u30bf\u306f\u3042\u308a\u307e\u305b\u3093\u3002
+
+#*******************************************************************************
+# Profile Window Profile
+#
+#*******************************************************************************
+
+APOC.profilewnd.buttons.save=\u4fdd\u5b58
+APOC.profilewnd.buttons.close=\u9589\u3058\u308b
+
+# General Settings Tab
+APOC.profilewnd.general.tab=\u4e00\u822c\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc
+APOC.profilewnd.general.title=\u4e00\u822c\u8a2d\u5b9a
+APOC.profilewnd.general.help=\u3053\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u4e00\u822c\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002
+APOC.profilewnd.general.name=\u540d\u524d
+APOC.profilewnd.general.namecol=\u540d\u524d:
+APOC.profilewnd.general.comment=\u30b3\u30e1\u30f3\u30c8
+APOC.profilewnd.general.commentcol=\u30b3\u30e1\u30f3\u30c8:
+APOC.profilewnd.general.applicable=\u9069\u7528\u5143
+APOC.profilewnd.general.browse=\u5909\u66f4...
+APOC.profilewnd.general.pending=\u4fdd\u7559\u4e2d\u306e\u5909\u66f4
+APOC.profilewnd.general.author=\u4f5c\u6210\u8005
+APOC.profilewnd.general.modified=\u5909\u66f4\u65e5\u6642
+APOC.profilewnd.general.new_profile_instructions=\u65b0\u3057\u3044\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u3053\u306e\u30d7\u30ed\u30bb\u30b9\u306f\u3001\u57fa\u672c\u7684\u306b\u306f\u6b21\u306e 3 \u3064\u306e\u30b9\u30c6\u30c3\u30d7\u304b\u3089\u6210\u308a\u307e\u3059\u3002<br><br>\
+1. \u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u4e00\u610f\u306e\u540d\u524d\u3092\u5b9a\u7fa9\u3059\u308b (\u4ee5\u4e0b\u3092\u53c2\u7167)\u3002<br>2. \u30c7\u30d5\u30a9\u30eb\u30c8\u307e\u305f\u306f\u5fc5\u9808 (\u5f37\u5236\u3059\u308b) \u306e\u8a2d\u5b9a\u3092\u69cb\u6210\u3059\u308b \
+(\u300c\u69cb\u6210\u8a2d\u5b9a\u300d\u30bf\u30d6\u3092\u53c2\u7167)\u3002<br>3. \u65b0\u3057\u3044\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u76ee\u7684\u306e {0} \u3084 {1} \u306b\u5272\u308a\u5f53\u3066\u308b (\u300c\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u308b\
+\u8981\u7d20\u300d\u30bf\u30d6\u3092\u53c2\u7167)\u3002
+APOC.profilewnd.lc_domains=\u30c9\u30e1\u30a4\u30f3
+APOC.profilewnd.lc_hosts=\u30db\u30b9\u30c8
+APOC.profilewnd.lc_orgs=\u7d44\u7e54
+APOC.profilewnd.lc_users=\u30e6\u30fc\u30b6\u30fc
+APOC.profilewnd.creating_new=\u65b0\u3057\u3044\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210
+
+# Assignees Tab
+APOC.profilewnd.assignees.tab=\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u308b\u8981\u7d20
+APOC.profilewnd.assignees.title=\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u308b\u8981\u7d20
+APOC.profilewnd.assignees.help=\u3053\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306b\u8981\u7d20\u3092\u5272\u308a\u5f53\u3066\u307e\u3059\u3002
+APOC.profilewnd.assignees.noorgs=\u8981\u7d20\u304c\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u307e\u305b\u3093\u3002
+APOC.profilewnd.assignees.assign=\u8981\u7d20\u306e\u5272\u308a\u5f53\u3066...
+APOC.profilewnd.assignees.unassign=\u8981\u7d20\u306e\u5272\u308a\u5f53\u3066\u89e3\u9664
+APOC.profilewnd.assignees.nameColumn=\u540d\u524d
+
+# Configuration Settings Tab
+APOC.profilewnd.settings.tab=\u69cb\u6210\u8a2d\u5b9a
+
+APOC.profilewnd.settings.title=\u69cb\u6210\u8a2d\u5b9a
+
+APOC.profilewnd.settings.Enable=\u6709\u52b9\u306b\u3059\u308b
+APOC.profilewnd.settings.Disable=\u7121\u52b9\u306b\u3059\u308b
+APOC.profilewnd.settings.Edit=\u5024\u306e\u7de8\u96c6...
+APOC.profilewnd.settings.title.help=\u4e0b\u306e\u30ea\u30b9\u30c8\u304b\u3089\u30ab\u30c6\u30b4\u30ea\u3092 1 \u3064\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.profilewnd.settings.Actions=\u8a73\u7d30...
+APOC.profilewnd.settings.more=&#8212;&nbsp;\u305d\u306e\u4ed6\u306e\u30a2\u30af\u30b7\u30e7\u30f3&nbsp;&#8212;
+APOC.profilewnd.settings.enforce=\u5f37\u5236
+APOC.profilewnd.settings.unenforce=\u5f37\u5236\u3092\u30ea\u30bb\u30c3\u30c8
+APOC.profilewnd.settings.undo=\u4fdd\u7559\u4e2d\u306e\u5909\u66f4\u3092\u5143\u306b\u623b\u3059
+APOC.profilewnd.settings.default=\u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u623b\u3059
+APOC.profilewnd.settings.nameColumn=\u540d\u524d
+APOC.profilewnd.settings.valueColumn=\u5024
+APOC.profilewnd.settings.enabledColumn=\u6709\u52b9
+APOC.profilewnd.settings.enforcedColumn=\u5f37\u5236\u5316
+APOC.profilewnd.settings.pendingColumn=\u4fdd\u7559\u4e2d\u306e\u5909\u66f4
+APOC.profilewnd.settings.overwrite=\u30e6\u30fc\u30b6\u30fc\u306e\u4e0a\u66f8\u304d\u53ef\u80fd
+APOC.profilewnd.settings.defaultLabel=\u30c7\u30d5\u30a9\u30eb\u30c8:
+APOC.profilewnd.settings.setToDefaultLabel=\u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u8a2d\u5b9a
+
+# Configuration Tree
+APOC.profilewnd.tree.view.all=\u3059\u3079\u3066
+APOC.profilewnd.tree.view.pending=\u4fdd\u7559\u4e2d\u306e\u5909\u66f4
+APOC.profilewnd.advanced.tab=\u8a73\u7d30\u30aa\u30d7\u30b7\u30e7\u30f3
+APOC.profilewnd.advanced.pagetitle_help=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u30de\u30fc\u30b8\u9806\u5e8f\u306a\u3069\u306e\u8a73\u7d30\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.profilewnd.advanced.merge_order=\u30de\u30fc\u30b8\u9806\u5e8f:
+APOC.profilewnd.buttons.save.help=\u5909\u66f4\u3092\u4fdd\u5b58\u3057\u307e\u3059\u3002
+APOC.profilewnd.buttons.close.help=\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u9589\u3058\u307e\u3059\u3002
+APOC.profilewnd.buttons.ok_assign.help=\u9078\u629e\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u73fe\u5728\u306e\u8981\u7d20\u306b\u5272\u308a\u5f53\u3066\u307e\u3059\u3002
+
+APOC.profilewnd.js.alert1=\u3053\u306e\u30da\u30fc\u30b8\u306b\u672a\u4fdd\u5b58\u306e\u5909\u66f4\u304c\u3042\u308a\u307e\u3059\u3002\u5909\u66f4\u3092\u4fdd\u5b58\u3057\u3066\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u9589\u3058\u307e\u3059\u304b?
+APOC.profilewnd.js.alert2=\u3053\u306e\u30bf\u30d6\u306b\u672a\u4fdd\u5b58\u306e\u5909\u66f4\u304c\u3042\u308a\u307e\u3059\u3002\u5909\u66f4\u3092\u4fdd\u5b58\u3057\u3066\u7d9a\u884c\u3057\u307e\u3059\u304b?
+APOC.profilewnd.js.alert3=\u3053\u306e\u30ab\u30c6\u30b4\u30ea\u306b\u672a\u4fdd\u5b58\u306e\u5909\u66f4\u304c\u3042\u308a\u307e\u3059\u3002\u5909\u66f4\u3092\u4fdd\u5b58\u3057\u3066\u7d9a\u884c\u3057\u307e\u3059\u304b?
+APOC.profilewnd.js.alert4=\u3053\u306e\u30da\u30fc\u30b8\u306b\u672a\u4fdd\u5b58\u306e\u5909\u66f4\u304c\u3042\u308a\u307e\u3059\u3002\u5909\u66f4\u3092\u4fdd\u5b58\u3057\u3066\u65b0\u3057\u3044\u30a8\u30f3\u30c8\u30ea\u3092\u8ffd\u52a0\u3057\u307e\u3059\u304b?
+APOC.profilewnd.js.alert5=\u65b0\u3057\u3044\u30ea\u30b9\u30c8\u9805\u76ee\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044:
+
+#Settings Summary
+APOC.profilewnd.summary.help=\u3053\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306b\u69cb\u6210\u3055\u308c\u3066\u3044\u308b\u8a2d\u5b9a\u3092\u8868\u793a\u3057\u307e\u3059\u3002
+
+# Add Context Wizard
+APOC.wiz.title=\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u65b0\u898f\u4f5c\u6210\u30a6\u30a3\u30b6\u30fc\u30c9
+APOC.wiz.edit.title=\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u7de8\u96c6\u30a6\u30a3\u30b6\u30fc\u30c9
+APOC.wiz.steptext.2=\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u8a73\u7d30
+APOC.wiz.steptext.3=LDAP \u306e\u8a73\u7d30
+APOC.wiz.steptext.4=LDAP \u8cc7\u683c\u60c5\u5831
+APOC.wiz.steptext.5=LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u7a2e\u985e
+APOC.wiz.steptext.6=LDAP \u30e1\u30bf\u69cb\u6210\u306e\u30aa\u30d7\u30b7\u30e7\u30f3
+APOC.wiz.steptext.7=LDAP \u30e1\u30bf\u69cb\u6210\u30a8\u30c7\u30a3\u30bf
+APOC.wiz.steptext.8=\u30d9\u30fc\u30b9 DN \u9078\u629e
+APOC.wiz.steptext.9=\u30d9\u30fc\u30b9 DN
+APOC.wiz.steptext.10=\u78ba\u8a8d
+APOC.wiz.steptext.11=\u691c\u7d22\u7d50\u679c
+APOC.wiz.steptext.12=\u30c7\u30fc\u30bf\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u9078\u629e
+APOC.wiz.steptext.13=\u65e2\u5b58\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30aa\u30d7\u30b7\u30e7\u30f3
+APOC.wiz.steptext.14=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u60c5\u5831\u306e\u79fb\u884c
+APOC.wiz.steptext.15=LDAP \u7ba1\u7406\u8005\u8cc7\u683c\u60c5\u5831
+APOC.wiz.help.2=<p>\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u540d\u524d\u3001\u304a\u3088\u3073\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u30c9\u30e1\u30a4\u30f3\u3084\u7d44\u7e54\u306e\u8981\u7d20\u3067\u4f7f\u7528\u3059\u308b\u968e\u5c64\u3068\u683c\u7d0d\u306e\u7a2e\u985e (LDAP \u30d9\u30fc\u30b9\u306e\u307f\u3001\u30d5\u30a1\u30a4\u30eb\
+\u30d9\u30fc\u30b9\u306e\u307f\u3001\u307e\u305f\u306f\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea) \u3092\u9078\u629e\u3057\u307e\u3059\u3002</p><p>LDAP \u306e\u307f\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3067\u306f\u3001\
+\u7d44\u7e54\u968e\u5c64\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u8a2d\u5b9a\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u5272\u308a\u5f53\u3066\u306b\u95a2\u3059\u308b\u60c5\u5831\u306f\u3059\u3079\u3066 LDAP \u30b5\u30fc\u30d0\u30fc\u306b\u683c\u7d0d\u3055\u308c\u307e\u3059\u3002\u540c\u69d8\u306b\u3001\u30d5\u30a1\u30a4\u30eb\u30d9\u30fc\u30b9\u306e\u307f\u306e\u69cb\
+\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3067\u306f\u3001Sun Java Web \u30b3\u30f3\u30bd\u30fc\u30eb\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u30de\u30b7\u30f3\u306e\u30e6\u30fc\u30b6\u30fc\u6307\u5b9a\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3059\u3079\u3066\u306e\u60c5\u5831\u304c\u683c\u7d0d\u3055\u308c\u307e\
+\u3059\u3002<br>\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3067\u306f\u3001\u7d44\u7e54\u968e\u5c64\u306e\u60c5\u5831\u306f LDAP \u30b5\u30fc\u30d0\u30fc\u304b\u3089\u53d6\u5f97\u3055\u308c\u307e\u3059\u304c\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u8a2d\u5b9a\u3068\u5272\u308a\
+\u5f53\u3066\u306f\u3059\u3079\u3066\u30d5\u30a1\u30a4\u30eb\u30d9\u30fc\u30b9\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u3068\u540c\u69d8\u306b\u683c\u7d0d\u3055\u308c\u307e\u3059\u3002</p>
+APOC.wiz.help.3=<p>LDAP \u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u30db\u30b9\u30c8\u540d\u3068\u30dd\u30fc\u30c8\u3092\u5165\u529b\u3057\u307e\u3059\u3002</p><\
+p>SSL \u3092\u4f7f\u7528\u3057\u3066\u3044\u308b LDAP \u30b5\u30fc\u30d0\u30fc\u3092\u69cb\u6210\u3059\u308b\u5834\u5408\u306f\u3001\u300cSSL \u306e\u4f7f\u7528\u300d\u30c1\u30a7\u30c3\u30af\u30dc\u30c3\u30af\u30b9\u3092\u30aa\u30f3\u306b\u3057\u307e\u3059\u3002<\
+/p>
+APOC.wiz.help.4=<p>LDAP \u30b5\u30fc\u30d0\u30fc\u304b\u3089\u306e\u8aad\u307f\u53d6\u308a\u306b\u533f\u540d\u30a2\u30af\u30bb\u30b9\u3092\u4f7f\u7528\u3067\u304d\u306a\u3044\u5834\u5408\u306f\u3001\u8aad\u307f\u53d6\u308a\u30a2\u30af\u30bb\u30b9\u6a29\u306e\u3042\u308b\u30e6\u30fc\u30b6\u30fc\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u3068\u5b8c\u5168\u4fee\
+\u98fe DN \u3092\u300c\u30e6\u30fc\u30b6\u30fc DN\u300d\u304a\u3088\u3073\u300c\u30e6\u30fc\u30b6\u30fc\u30d1\u30b9\u30ef\u30fc\u30c9\u300d\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<br>\u3053\u306e\u60c5\u5831\u306f\u4fdd\u5b58\u3055\u308c\u3001\u30e6\u30fc\
+\u30b6\u30fc\u304c\u5b8c\u5168\u4fee\u98fe DN\u3067\u306f\u306a\u304f\u30e6\u30fc\u30b6\u30fc ID \u3092\u5165\u529b\u3057\u3066\u3053\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\u3067\u3059\u3002</p>
+APOC.wiz.help.5=<p>\u69cb\u6210\u3059\u308b LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u7a2e\u985e\u3092\u9078\u629e\u3057\u307e\u3059\u3002\u3053\u306e\u60c5\u5831\u306f\u3001\u30b5\u30fc\u30d0\u30fc\u306b\u63d0\u4f9b\u3059\u308b\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30e1\u30bf\u69cb\u6210\u3092\u6c7a\u5b9a\u3059\u308b\u305f\u3081\u306b\u5fc5\u8981\
+\u3067\u3059\u3002</p><p>\u30e1\u30bf\u69cb\u6210\u306f\u3001LDAP \u306e\u8981\u7d20 (\u30e6\u30fc\u30b6\u30fc\u3001\u5f79\u5272\u3001\u7d44\u7e54\u3001\u30c9\u30e1\u30a4\u30f3\u3001\u30db\u30b9\u30c8) \u306e\u8b58\u5225\u306b\u4f7f\u7528\u3055\u308c\u308b\u5c5e\
+\u6027\u3068\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002</p>
+APOC.wiz.help.6=<p>\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30e1\u30bf\u69cb\u6210\u3092\u7de8\u96c6\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u9078\u629e\u3057\u307e\u3059\u3002</p><p>\u30e1\u30bf\u69cb\u6210\u306f\u3001LDAP \u306e\u30a8\u30f3\
+\u30c6\u30a3\u30c6\u30a3\u30fc (\u30e6\u30fc\u30b6\u30fc\u3001\u5f79\u5272\u3001\u7d44\u7e54\u3001\u30c9\u30e1\u30a4\u30f3\u3001\u30db\u30b9\u30c8) \u306e\u8b58\u5225\u306b\u4f7f\u7528\u3055\u308c\u308b\u5c5e\u6027\u3068\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002</p>
+APOC.wiz.help.7=<p>\u30c6\u30ad\u30b9\u30c8\u9818\u57df\u3067\u30e1\u30bf\u69cb\u6210\u3092\u7de8\u96c6\u3057\u307e\u3059\u3002</p><p>\u30e1\u30bf\u69cb\u6210\u306f\u3001LDAP \u306e\u8981\u7d20 (\u30e6\u30fc\u30b6\u30fc\u3001\u5f79\
+\u5272\u3001\u7d44\u7e54\u3001\u30c9\u30e1\u30a4\u30f3\u3001\u30db\u30b9\u30c8) \u306e\u8b58\u5225\u306b\u4f7f\u7528\u3055\u308c\u308b\u5c5e\u6027\u3068\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002</p>
+APOC.wiz.help.8=<p>\u3053\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u4f7f\u7528\u3059\u308b\u30d9\u30fc\u30b9 DN \u3092\u30ea\u30b9\u30c8\u304b\u3089\u9078\u629e\u3057\u307e\u3059\u3002</p>
+APOC.wiz.help.9=<p>\u3053\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u4f7f\u7528\u3059\u308b\u30d9\u30fc\u30b9 DN \u3092\u9078\u629e\u3057\u307e\u3059\u3002</p>
+APOC.wiz.help.10=<p>\u8868\u793a\u3055\u308c\u305f\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3057\u3001\u300c\u5b8c\u4e86\u300d\u3092\u62bc\u3057\u3066\u65b0\u3057\u3044\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u4f5c\u6210\u3092\u5b8c\u4e86\u3057\u307e\u3059\u3002</p><p>\
+LDAP \u306e\u307f\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306e\u5834\u5408\u306f\u3001\u300c\u5b8c\u4e86\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068 LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u30b9\u30ad\u30fc\u30de\u66f4\u65b0\u304c\u958b\u59cb\u3057\u3001LDAP \u306e\u968e\u5c64\u306b\u300c\u30b5\u30fc\u30d3\u30b9\u300d\u5206\u5c90\
+\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002</p>
+APOC.wiz.help.edit.10=<p>\u8868\u793a\u3055\u308c\u305f\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3057\u3001\u300c\u5b8c\u4e86\u300d\u3092\u62bc\u3057\u3066\u65e2\u5b58\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u66f4\u65b0\u3092\u5b8c\u4e86\u3057\u307e\u3059\u3002</p><p>\
+LDAP \u306e\u307f\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306e\u5834\u5408\u306f\u3001\u300c\u5b8c\u4e86\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068 LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u30b9\u30ad\u30fc\u30de\u66f4\u65b0\u304c\u958b\u59cb\u3057\u3001LDAP \u306e\u968e\u5c64\u306b\u300c\u30b5\u30fc\u30d3\u30b9\u300d\u5206\u5c90\
+\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002</p>
+APOC.wiz.help.11=<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306e\u7d50\u679c\u304c\u305d\u306e\u9818\u57df\u306b\u8868\u793a\u3055\u308c\u307e\u3059\u3002</p>
+APOC.wiz.help.12=<p>\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3068\u5272\u308a\u5f53\u3066\u306e\u60c5\u5831\u3092\u683c\u7d0d\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u9078\u629e\u3057\u307e\u3059\u3002\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u7d9a\u304d\u306b\u3088\u3063\u3066\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\
+\u30eb\u3068\u5272\u308a\u5f53\u3066\u306e\u60c5\u5831\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306e\u300cprofiles\u300d\u304a\u3088\u3073\u300cassignments\u300d\u3068\u3044\u3046 \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\u3002\u30d5\u30a1\u30a4\u30eb\u30d9\u30fc\u30b9\u306e\
+\u307f\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u5834\u5408\u306f\u3001\u968e\u5c64\u60c5\u5831\u304c\u300centities.txt\u300d\u3068\u3044\u3046\u7de8\u96c6\u53ef\u80fd\u30d5\u30a1\u30a4\u30eb\u306b\u683c\u7d0d\u3055\u308c\u307e\u3059\u3002\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u5834\u5408\u306f\u3001\
+LDAP \u306e\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u306e\u8b58\u5225\u306b\u4f7f\u7528\u3055\u308c\u308b\u5c5e\u6027\u3068\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u3092\u5b9a\u7fa9\u3059\u308b\u30e1\u30bf\u69cb\u6210\u304c\u300cOrganizationMapping.\
+properties\u300d\u304a\u3088\u3073\u300cUserProfileMapping.properties\u300d\u3068\u3044\u3046\u7de8\u96c6\u53ef\u80fd\u30d5\u30a1\u30a4\u30eb\u306b\u683c\u7d0d\u3055\u308c\u307e\u3059\u3002<\
+/p>
+APOC.wiz.help.13=<p>\u65e2\u5b58\u306e Desktop Manager \u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306f\u3001\u6307\u5b9a\u3057\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\
+\u306f\u3001\u6b8b\u3057\u3066\u304a\u304f\u3079\u304d\u968e\u5c64\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3001\u5272\u308a\u5f53\u3066\u306a\u3069\u306e\u60c5\u5831\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002 \u305d\u306e\u5834\u5408\u306f\u3001\u65e2\u5b58\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30c7\u30fc\u30bf\u3092\u4fdd\u6301\u3059\u308b\u3088\u3046\
+\u306b\u9078\u629e\u3057\u307e\u3059\u3002\u305d\u3046\u3067\u306a\u3044\u5834\u5408\u3001\u5b8c\u5168\u306b\u65b0\u3057\u3044\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3059\u308b\u306b\u306f\u3001\u65e2\u5b58\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u4e0a\u66f8\u304d\u3059\u308b\u3088\u3046\u306b\u9078\u629e\u3057\u307e\u3059\u3002</p>\
+
+APOC.wiz.help.14=<p>Desktop Manager \u306e Version 2.0 \u3067\u306f\u3001LDAP \u3067\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3068\u5272\u308a\u5f53\u3066\u306e\u60c5\u5831\u304c\u4ee5\u524d\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3068\u306f\u5225\u306e\u5834\u6240\u306b \
+\u683c\u7d0d\u3055\u308c\u307e\u3059\u3002\u4ee5\u524d\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u4f7f\u7528\u3057\u3066\u4fdd\u5b58\u3055\u308c\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3084\u5272\u308a\u5f53\u3066\u3092\u3053\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u65b0\u3057\u3044\u5834\u6240\u306b\u79fb\u884c\u3059\u308b\u304b\u3069\u3046\
+\u304b\u3092\u9078\u629e\u3057\u307e\u3059\u3002</p><p>\u306a\u304a\u3001\u4ee5\u524d\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u4f7f\u7528\u3057\u3066\u4fdd\u5b58\u3055\u308c\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306f\u3001Desktop \
+Manager \u304b\u3089\u8868\u793a\u53ef\u80fd\u3067\u3059\u304c\u3001LDAP \u306e\u4fdd\u7ba1\u5834\u6240\u306f\u5909\u66f4\u3055\u308c\u307e\u305b\u3093\u3002\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u79fb\u884c\u3059\u308b\u3068\u30011 \u3064\u306e\u5834\u6240\u306b\u683c\u7d0d\u3055\u308c\u308b Version \
+1.x \u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u60c5\u5831\u3092\u6301\u305f\u305a\u306b\u3001\u5225\u3005\u306e\u5834\u6240\u306b\u683c\u7d0d\u3055\u308c\u308b Version 2.0 \u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u60c5\u5831\u3092\u4f7f\u7528\u3059\u308b\u306e\u3067\u3001\u30af\u30ea\u30fc\u30f3\u306a LDAP \
+\u30b5\u30fc\u30d0\u30fc\u3092\u7ba1\u7406\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002</p>
+APOC.wiz.help.15=<p>LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u8aad\u307f\u53d6\u308a/\u66f8\u304d\u8fbc\u307f\u30a2\u30af\u30bb\u30b9\u6a29\u304c\u3042\u308b\u30e6\u30fc\u30b6\u30fc\u306e DN \u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u300c\u7ba1\u7406\u8005 DN\u300d\u304a\u3088\u3073\u300c\u7ba1\u7406\u8005\u30d1\
+\u30b9\u30ef\u30fc\u30c9\u300d\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u5165\u529b\u3057\u307e\u3059\u3002<br>\u3053\u308c\u3089\u306e\u8cc7\u683c\u60c5\u5831\u306f\u3001Desktop Manager
+\u304c\u5fc5\u8981\u3068\u3059\u308b\u3001LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u30b9\u30ad\u30fc\u30de\u3001\u5c5e\u6027\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u3001\u304a\u3088\u3073\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306b\u306e\u307f\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u3089\u306f\u4fdd\u6301\u3055\u308c\u307e\u305b\u3093\u3002\
+</p>
+APOC.wiz.help.15a=<p>LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u8aad\u307f\u53d6\u308a/\u66f8\u304d\u8fbc\u307f\u30a2\u30af\u30bb\u30b9\u6a29\u304c\u3042\u308b\u30e6\u30fc\u30b6\u30fc\u306e DN \u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u300c\u7ba1\u7406\u8005 DN\u300d\u304a\u3088\u3073\u300c\u7ba1\u7406\u8005\u30d1\u30b9\
+\u30ef\u30fc\u30c9\u300d\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u5165\u529b\u3057\u307e\u3059\u3002<br>\u3053\u308c\u3089\u306e\u8cc7\u683c\u60c5\u5831\u306f\u3001LDAP \u30b5\u30fc\u30d0\u30fc\u3067\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3068\u5272\u308a\u5f53\u3066\u306e\u60c5\u5831\u3092\u79fb\u884c\u3059\u308b\u305f\u3081\u306b\u306e\
+\u307f\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u306f\u7dad\u6301\u3055\u308c\u307e\u305b\u3093\u3002</p>
+APOC.wiz.instruction.2=\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u540d\u524d\u3092\u9078\u629e\u3057\u3001\u30c9\u30e1\u30a4\u30f3\u3084\u7d44\u7e54\u306e\u8981\u7d20\u3067\u4f7f\u7528\u3059\u308b\u968e\u5c64\u3068\u683c\u7d0d\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3057\u307e\u3059\u3002
+APOC.wiz.instruction.3=\u3053\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u69cb\u6210\u3059\u308b LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u8a73\u7d30\u3092\u5165\u529b\u3057\u307e\u3059\u3002\u30b5\u30fc\u30d0\u30fc\u3092\u5b9f\u884c\u3059\u308b\u30db\u30b9\u30c8\u540d\u3068\u30dd\u30fc\u30c8\u306f\u5fc5\u9808\u30d5\u30a3\u30fc\u30eb\u30c9\u3067\u3059\u3002\u307e\u305f\u3001SSL \u3092\u4f7f\
+\u7528\u3057\u3066\u3053\u306e\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3059\u308b\u304b\u3069\u3046\u304b\u3082\u9078\u629e\u3067\u304d\u307e\u3059\u3002
+APOC.wiz.instruction.4=\u30e6\u30fc\u30b6\u30fc\u304c\u5b8c\u5168\u4fee\u98fe DN \u3067\u306f\u306a\u304f\u81ea\u5206\u306e ID \u3092\u4f7f\u7528\u3057\u3066\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u306b\u306f\u3001\u533f\u540d\u30a2\u30af\u30bb\u30b9\u3092\u6709\u52b9\u306b\u3059\u308b\u304b\u3001\u8aad\u307f\u53d6\u308a\u30a2\
+\u30af\u30bb\u30b9\u6a29\u304c\u3042\u308b\u30e6\u30fc\u30b6\u30fc\u306e\u5b8c\u5168\u4fee\u98fe DN \u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u300c\u30e6\u30fc\u30b6\u30fc DN\u300d\u304a\u3088\u3073\u300c\u30e6\u30fc\u30b6\u30fc\u30d1\u30b9\u30ef\u30fc\u30c9\u300d\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
+APOC.wiz.instruction.5=LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u30d6\u30e9\u30f3\u30c9\u306b\u3088\u3063\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u9806\u304c\u7570\u306a\u308a\u307e\u3059\u3002\u65b0\u3057\u3044\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u4f7f\u7528\u3059\u308b LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u7a2e\u985e\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\
+\u3044\u3002
+APOC.wiz.instruction.6=\u30e1\u30bf\u69cb\u6210\u306f\u3001LDAP \u306e\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u30fc (\u30e6\u30fc\u30b6\u30fc\u3001\u5f79\u5272\u3001\u7d44\u7e54\u3001\u30c9\u30e1\u30a4\u30f3\u3001\u30db\u30b9\u30c8\u306a\u3069) \u306e\u8b58\u5225\u306b\u4f7f\u7528\u3055\u308c\u308b\u5c5e\u6027\u3068\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u3092\u5b9a\u7fa9\u3057\
+\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u9069\u5207\u306a\u5024\u304c\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059\u304c\u3001\u72ec\u81ea\u306e\u5024\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u3053\u306e\u7a2e\u985e\u306e LDAP \u30b5\u30fc\u30d0\u30fc\u306b\u4f7f\u7528\u3055\u308c\u308b\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30e1\
+\u30bf\u69cb\u6210\u3092\u7de8\u96c6\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.wiz.instruction.7=\u4e0b\u306e\u30c6\u30ad\u30b9\u30c8\u9818\u57df\u3067\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30e1\u30bf\u69cb\u6210\u3092\u7de8\u96c6\u3057\u307e\u3059\u3002
+APOC.wiz.instruction.8=\u4e0b\u306e\u30ea\u30b9\u30c8\u306b\u306f\u3001\u6307\u5b9a\u3057\u305f LDAP \u30b5\u30fc\u30d0\u30fc\u3067\u4f7f\u7528\u53ef\u80fd\u306a\u30d9\u30fc\u30b9 DN \u304c\u3059\u3079\u3066\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u4f7f\u7528\u3059\u308b\u30d9\u30fc\u30b9 DN \u3092\
+\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.wiz.instruction.9=\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u306b\u306f\u3001\u6307\u5b9a\u3057\u305f LDAP \u30b5\u30fc\u30d0\u30fc\u3067\u6709\u52b9\u306a\u30d9\u30fc\u30b9 DN \u304c\u5fc5\u8981\u3067\u3059\u3002\u3053\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u4f7f\u7528\u3059\u308b\u30d9\u30fc\u30b9 \
+DN \u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.wiz.instruction.10=\u5165\u529b\u3057\u305f\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002\u300c\u5b8c\u4e86\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001\u65b0\u3057\u3044\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u4f5c\u6210\u3092\u5b8c\u4e86\u3057\u307e\u3059\u3002
+APOC.wiz.instruction.edit.10=\u5165\u529b\u3057\u305f\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002\u300c\u5b8c\u4e86\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001\u65e2\u5b58\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u66f4\u65b0\u3092\u5b8c\u4e86\u3057\u307e\u3059\u3002
+APOC.wiz.instruction.11=
+APOC.wiz.instruction.12=\u3053\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3068\u5272\u308a\u5f53\u3066\u306e\u30c7\u30fc\u30bf\u3092\u683c\u7d0d\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u9078\u629e\u3057\u307e\u3059\u3002
+APOC.wiz.instruction.13=\u6307\u5b9a\u3057\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u65e2\u5b58\u306e Desktop Manager \u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u3002\u3053\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306b\u3053\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u306e\u65e2\u5b58\
+\u306e\u30c7\u30fc\u30bf\u3092\u4f7f\u7528\u3059\u308b\u304b\u3001\u3059\u3079\u3066\u306e\u60c5\u5831\u3092\u524a\u9664\u3057\u3066\u65b0\u3057\u3044\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u4f5c\u6210\u3059\u308b\u304b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.wiz.instruction.14=\u3053\u306e LDAP \u30b5\u30fc\u30d0\u30fc\u3067\u4ee5\u524d\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306e Desktop Manager \u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002\u3053\u306e\u65e7\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u4f7f\u3063\u3066\u4fdd\u5b58\u3055\u308c\u305f\u30d7\u30ed\
+\u30d5\u30a1\u30a4\u30eb\u3068\u5272\u308a\u5f53\u3066\u306e\u60c5\u5831\u3092\u3001\u3053\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u4fdd\u7ba1\u5834\u6240\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u65b0\u3057\u3044\u5834\u6240\u306b\u79fb\u884c\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.wiz.instruction.15=\u69cb\u6210\u624b\u9806\u3067\u3001LDAP \u30b9\u30ad\u30fc\u30de\u306e\u62e1\u5f35\u3068 LDAP \u30c4\u30ea\u30fc\u3078\u306e\u65b0\u3057\u3044\u5206\u5c90\u306e\u8ffd\u52a0\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002\u3057\u305f\u304c\u3063\u3066\u3001LDAP \u30b5\u30fc\u30d0\u30fc\u306b\u9069\u5207\u306a\u30a2\u30af\u30bb\
+\u30b9\u6a29\u3092\u6301\u3064\u30e6\u30fc\u30b6\u30fc\u306e DN \u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u300c\u7ba1\u7406\u8005 DN\u300d\u304a\u3088\u3073\u300c\u7ba1\u7406\u8005\u30d1\u30b9\u30ef\u30fc\u30c9\u300d\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
+APOC.wiz.instruction.15a=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u4fdd\u7ba1\u5834\u6240\u3092\u79fb\u884c\u3059\u308b\u306b\u306f\u3001\u65e2\u5b58\u306e LDAP \u30c4\u30ea\u30fc\u3092\u5909\u66f4\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3057\u305f\u304c\u3063\u3066\u3001LDAP \u30b5\u30fc\u30d0\u30fc\u306b\u9069\u5207\u306a\u30a2\u30af\u30bb\u30b9\u6a29\u3092\
+\u6301\u3064\u30e6\u30fc\u30b6\u30fc\u306e DN \u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u300c\u7ba1\u7406\u8005 DN\u300d\u304a\u3088\u3073\u300c\u7ba1\u7406\u8005\u30d1\u30b9\u30ef\u30fc\u30c9\u300d\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
+APOC.wiz.placeholder=[\u30b9\u30c6\u30c3\u30d7\u306f\u524d\u306e\u30b9\u30c6\u30c3\u30d7\u3067\u306e\u9078\u629e\u306b\u3088\u3063\u3066\u6c7a\u307e\u308a\u307e\u3059\u3002]
+
+APOC.wiz.2.name=\u30ea\u30dd\u30b8\u30c8\u30ea\u540d:
+APOC.wiz.2.type=\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u7a2e\u985e:
+APOC.wiz.2.ldap=LDAP: LDAP \u968e\u5c64\u3068\u4fdd\u7ba1
+APOC.wiz.2.file=\u30d5\u30a1\u30a4\u30eb\u30d9\u30fc\u30b9: \u30d5\u30a1\u30a4\u30eb\u30d9\u30fc\u30b9\u306e\u968e\u5c64\u3068\u4fdd\u7ba1
+APOC.wiz.2.hybrid=\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9: LDAP \u968e\u5c64\u3068\u30d5\u30a1\u30a4\u30eb\u30d9\u30fc\u30b9\u306e\u4fdd\u7ba1
+APOC.wiz.2.alert=\u65b0\u3057\u3044\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.wiz.3.host=\u30db\u30b9\u30c8:
+APOC.wiz.3.port=\u30dd\u30fc\u30c8:
+APOC.wiz.3.ssl=SSL \u306e\u4f7f\u7528
+APOC.wiz.3.alert1={0} \u306f\u7121\u52b9\u306a LDAP \u30dd\u30fc\u30c8\u756a\u53f7\u3067\u3059\u3002\u30dd\u30fc\u30c8\u756a\u53f7\u306f 0 \u304b\u3089 65535 \u306e\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002
+APOC.wiz.3.alert2={0} \u306e LDAP \u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.wiz.4.admin.dn=\u7ba1\u7406\u8005 DN:
+APOC.wiz.4.admin.pw=\u7ba1\u7406\u8005\u30d1\u30b9\u30ef\u30fc\u30c9:
+APOC.wiz.4.anon=\u533f\u540d\u30a2\u30af\u30bb\u30b9\u306e\u4f7f\u7528
+APOC.wiz.4.user.dn=\u30e6\u30fc\u30b6\u30fc DN:
+APOC.wiz.4.user.pw=\u30d1\u30b9\u30ef\u30fc\u30c9:
+APOC.wiz.4.alert1=\u6307\u5b9a\u3057\u305f\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u4f7f\u7528\u3057\u3066 {1} \u306b {0} \u3068\u3057\u3066\u8a8d\u8a3c\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.wiz.4.alert3={0} \u306b\u306f\u3001{1} \u304b\u3089\u306e\u8aad\u307f\u53d6\u308a\u306b\u5fc5\u8981\u306a\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u30e6\u30fc\u30b6\u30fc\u306e\u8cc7\u683c\u60c5\u5831\u306b\u30b5\u30fc\u30d0\u30fc\u306e\u8aad\u307f\u53d6\u308a\u6a29\u9650\u3092\u4e0e\u3048\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.wiz.5.type=LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u7a2e\u985e:
+APOC.wiz.5.sun=Sun ONE Directory Server
+APOC.wiz.5.openldap=OpenLDAP
+APOC.wiz.5.ad=Active Directory
+APOC.wiz.5.other=\u305d\u306e\u4ed6
+APOC.wiz.6.question=\u30e1\u30bf\u69cb\u6210\u3092\u9069\u5408\u3055\u305b\u307e\u3059\u304b:
+APOC.wiz.6.no=\u3044\u3044\u3048
+APOC.wiz.6.yes=\u306f\u3044
+APOC.wiz.7.adapt=\u4ee5\u4e0b\u306e\u30e1\u30bf\u69cb\u6210\u3092\u9069\u5408\u3055\u305b\u308b:
+APOC.wiz.8.basedn=\u30d9\u30fc\u30b9 DN \u306e\u9078\u629e:
+APOC.wiz.8.alert=\u30d9\u30fc\u30b9 DN {0} \u304c\u30b5\u30fc\u30d0\u30fc {1} \u306b\u5b58\u5728\u3057\u307e\u305b\u3093\u3002LDAP \u30b5\u30fc\u30d0\u30fc\u306f\u69cb\u6210\u304c\u9593\u9055\u3063\u3066\u3044\u307e\u3059\u3002\u30b5\u30fc\u30d0\u30fc\u3092\u69cb\u6210\u3057\u76f4\u3057\u3066\u30a6\u30a3\u30b6\u30fc\u30c9\u3092\u518d\u8d77\
+\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.wiz.9.basedn=LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u30d9\u30fc\u30b9 DN \u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044:
+APOC.wiz.9.alert=\u30d9\u30fc\u30b9 DN {0} \u306f\u30b5\u30fc\u30d0\u30fc {1} \u306b\u5b58\u5728\u3057\u307e\u305b\u3093\u3002 LDAP \u30b5\u30fc\u30d0\u30fc\u3092\u78ba\u8a8d\u3057\u3001\u65e2\u5b58\u306e\u30d9\u30fc\u30b9 DN \u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.wiz.10.anonymous=\u533f\u540d
+APOC.wiz.10.vendor=\u30d9\u30f3\u30c0\u30fc\u540d:
+APOC.wiz.10.metaconfig=\u30e1\u30bf\u69cb\u6210:
+APOC.wiz.10.basedn=\u30d9\u30fc\u30b9 DN:
+APOC.wiz.10.path=\u30d5\u30a1\u30a4\u30eb\u30d9\u30fc\u30b9\u306e\u30c7\u30fc\u30bf\u30c7\u30a3\u30ec\u30af\u30c8\u30ea:
+APOC.wiz.10.migrate=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u79fb\u884c:
+APOC.wiz.10.orgdom.section=\u30c9\u30e1\u30a4\u30f3\u3068\u7d44\u7e54\u306e\u60c5\u5831:
+APOC.wiz.10.general.section=\u4e00\u822c\u60c5\u5831:
+APOC.wiz.10.noaction={0} \u306e\u65e2\u5b58\u306e\u30b5\u30fc\u30d0\u30fc\u304c Desktop Manager \u306b\u5bfe\u3057\u3066\u3059\u3067\u306b\u69cb\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u305d\u308c\u306b\u95a2\u3057\u3066\u3053\u308c\u4ee5\u4e0a\u306e\u64cd\u4f5c\u306f\u5fc5\u8981\u3042\u308a\u307e\u305b\u3093\u3002\
+\u300c\u5b8c\u4e86\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u4f5c\u6210\u3092\u5b8c\u4e86\u3057\u3001\u3053\u308c\u306e\u30a8\u30f3\u30c8\u30ea\u3092\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u30c6\u30fc\u30d6\u30eb\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002
+APOC.wiz.10.edit.noaction={0} \u306e\u65e2\u5b58\u306e\u30b5\u30fc\u30d0\u30fc\u304c Desktop Manager \u306b\u5bfe\u3057\u3066\u3059\u3067\u306b\u69cb\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u305d\u308c\u306b\u95a2\u3057\u3066\u3053\u308c\u4ee5\u4e0a\u306e\u64cd\u4f5c\u306f\u5fc5\u8981\u3042\u308a\u307e\u305b\u3093\u3002\
+\u300c\u5b8c\u4e86\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3053\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u8a73\u7d30\u306e\u66f4\u65b0\u3092\u5b8c\u4e86\u3057\u307e\u3059\u3002
+APOC.wiz.10.alert=\u7d9a\u3051\u308b\u524d\u306b\u3001{0} \u30b5\u30fc\u30d0\u30fc\u306e\u30b9\u30ad\u30fc\u30de\u3092 Desktop Manager \u306e\u30b9\u30ad\u30fc\u30de\u3092\u4f7f\u7528\u3057\u3066\u624b\u52d5\u3067\u62e1\u5f35\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
+APOC.wiz.10.fail1= - \u6307\u5b9a\u3057\u305f LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u30b9\u30ad\u30fc\u30de\u5c5e\u6027\u3068\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30af\u30e9\u30b9\u3092\u66f4\u65b0\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.wiz.10.fail2= - \u6307\u5b9a\u3057\u305f LDAP \u30b5\u30fc\u30d0\u30fc\u3067\u30b5\u30fc\u30d3\u30b9\u5206\u5c90\u3092\u4f5c\u6210\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.wiz.10.fail3= - \u6307\u5b9a\u3057\u305f LDAP \u30b5\u30fc\u30d0\u30fc\u306e\u30e1\u30bf\u69cb\u6210\u5c5e\u6027\u3092\u66f8\u304d\u8fbc\u307f\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.wiz.10.fail4= - {0} \u5c5e\u6027\u3092\u30a8\u30f3\u30c8\u30ea {1} \u306b\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.wiz.10.fail5= - \u65e2\u5b58\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u524a\u9664\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.wiz.10.fail6= - \u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u3092\u66f4\u65b0\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f: {0}
+APOC.wiz.10.fail7={0} \u304c\u8a8d\u8a3c\u3067\u304d\u3001{1} \u3078\u306e\u66f8\u304d\u8fbc\u307f\u30a2\u30af\u30bb\u30b9\u304c\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.wiz.10.fail8= - \u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u968e\u5c64\u69cb\u9020\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.wiz.10.fail9= - \u30e1\u30bf\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.wiz.10.fail10= - \u8981\u7d20 {0} \u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u79fb\u884c\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.wiz.11.title=\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u65b0\u898f\u4f5c\u6210\u306b\u6210\u529f
+APOC.wiz.11.text=\u4f5c\u6210\u3057\u305f\u65b0\u3057\u3044\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u65b0\u3057\u3044\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u3001\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u30c6\u30fc\u30d6\u30eb\u3067\u305d\u306e\u540d\u524d\u3092\u30af\
+\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002\u73fe\u5728\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u3044\u308b\u30e6\u30fc\u30b6\u30fc\u304c\u3053\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u7ba1\u7406\u8005\u3067\u306a\u3044\u5834\u5408\u306f\u3001\u6709\u52b9\u306a\u7ba1\u7406\u8005\u8cc7\u683c\u60c5\u5831\u3067\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u3088\u3046\u306b\u30d7\u30ed\u30f3\u30d7\u30c8\u304c\u8868\
+\u793a\u3055\u308c\u307e\u3059\u3002
+APOC.wiz.11.alert.title=\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u65b0\u898f\u4f5c\u6210\u306b\u5931\u6557
+APOC.wiz.11.edit.title=\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u66f4\u65b0\u306b\u6210\u529f
+APOC.wiz.11.edit.text=\u66f4\u65b0\u3057\u305f\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u3001\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u30c6\u30fc\u30d6\u30eb\u3067\u305d\u306e\u540d\u524d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\
+\u3059\u3002\u73fe\u5728\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u3044\u308b\u30e6\u30fc\u30b6\u30fc\u304c\u3053\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u7ba1\u7406\u8005\u3067\u306a\u3044\u5834\u5408\u306f\u3001\u6709\u52b9\u306a\u7ba1\u7406\u8005\u8cc7\u683c\u60c5\u5831\u3067\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u3088\u3046\u306b\u30d7\u30ed\u30f3\u30d7\u30c8\u304c\u8868\u793a\u3055\u308c\u307e\
+\u3059\u3002
+APOC.wiz.11.alert.edit.title=\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u66f4\u65b0\u306b\u5931\u6557
+APOC.wiz.12.alert1={0} \u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002
+APOC.wiz.12.alert2={0} \u306f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
+APOC.wiz.12.alert3=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea {0} \u306b\u66f8\u304d\u8fbc\u3081\u307e\u305b\u3093\u3002
+APOC.wiz.13.existing=\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044:
+APOC.wiz.13.overwrite=\u65e2\u5b58\u306e\u30c7\u30fc\u30bf\u3092\u4e0a\u66f8\u304d\u3057\u3066\u65b0\u3057\u3044\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b
+APOC.wiz.13.update=\u65e2\u5b58\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30c7\u30fc\u30bf\u3092\u4fdd\u6301\u3059\u308b
+APOC.wiz.14.existing=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3068\u5272\u308a\u5f53\u3066\u306e\u60c5\u5831\u3092\u79fb\u884c\u3057\u3066\u304f\u3060\u3055\u3044:
+APOC.wiz.14.username=\u30e6\u30fc\u30b6\u30fc\u540d (\u66f8\u304d\u8fbc\u307f\u30a2\u30af\u30bb\u30b9\u6a29\u306e\u3042\u308b\u30e6\u30fc\u30b6\u30fc):
+APOC.wiz.14.password=\u30d1\u30b9\u30ef\u30fc\u30c9:
+APOC.wiz.ldap.err.nosuchattr=LDAP \u4f8b\u5916 (16): \u6307\u5b9a\u3057\u305f\u5c5e\u6027\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+APOC.wiz.ldap.err.valueexists=LDAP \u4f8b\u5916 (20): \u5c5e\u6027\u306b\u8ffd\u52a0\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u5024\u306f\u3059\u3067\u306b\u5b58\u5728\u3057\u307e\u3059\u3002
+APOC.wiz.ldap.err.attrsyntax=LDAP \u4f8b\u5916 (21): \u8981\u6c42\u306b\u7121\u52b9\u306a\u69cb\u6587\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002
+APOC.wiz.ldap.err.nosuchobj=LDAP \u4f8b\u5916 (32): \u8981\u6c42\u3067\u6307\u5b9a\u3057\u305f\u30a8\u30f3\u30c8\u30ea\u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002
+APOC.wiz.ldap.err.invaliddn=LDAP \u4f8b\u5916 (34): \u6307\u5b9a\u3057\u305f\u8b58\u5225\u540d (DN) \u304c\u7121\u52b9\u306a\u69cb\u6587\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002
+APOC.wiz.ldap.err.invalidcred= LDAP \u4f8b\u5916 (49): \u8a8d\u8a3c\u306e\u305f\u3081\u30b5\u30fc\u30d0\u30fc\u306b\u63d0\u793a\u3055\u308c\u305f\u8cc7\u683c\u60c5\u5831\u306f\u7121\u52b9\u3067\u3059\u3002
+APOC.wiz.ldap.err.noaccessrights=LDAP \u4f8b\u5916 (50): \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306f\u3001\u3053\u306e\u64cd\u4f5c\u3092\u5b9f\u884c\u3059\u308b\u30a2\u30af\u30bb\u30b9\u6a29\u9650\u304c\u306a\u3044\u30e6\u30fc\u30b6\u30fc\u3068\u3057\u3066\u8a8d\u8a3c\u3055\u308c\u3066\u3044\u307e\u3059\u3002
+APOC.wiz.ldap.err.entryexists=LDAP \u4f8b\u5916 (68): \u6307\u5b9a\u3057\u305f\u30a8\u30f3\u30c8\u30ea\u306f\u3059\u3067\u306b\u5b58\u5728\u3057\u307e\u3059\u3002
+APOC.wiz.ldap.err.serverdown=LDAP \u4f8b\u5916 (81): LDAP \u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.wiz.ldap.err.timeout=LDAP \u4f8b\u5916 (85): \u5236\u9650\u6642\u9593\u5185\u306b\u51e6\u7406\u3092\u5b8c\u4e86\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+APOC.wiz.ldap.err.connecterror=LDAP \u4f8b\u5916 (91): LDAP \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304c LDAP \u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+
+#Copy Move Wizard
+APOC.wiz.copy.copymove=\u30b3\u30d4\u30fc\u3068\u79fb\u52d5...
+APOC.wiz.copy.copymove.tooltip=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u30b3\u30d4\u30fc\u307e\u305f\u306f\u79fb\u52d5\u3057\u307e\u3059\u3002
+APOC.wiz.copy.copymove.disabled.tooltip=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u30b3\u30d4\u30fc\u307e\u305f\u306f\u79fb\u52d5\u3057\u307e\u3059 (\u7121\u52b9)\u3002
+APOC.wiz.copy.title=\u30b3\u30d4\u30fc\u3068\u79fb\u52d5\u30a6\u30a3\u30b6\u30fc\u30c9
+APOC.wiz.copy.steptext.1=\u30bd\u30fc\u30b9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3059\u308b
+APOC.wiz.copy.steptext.2=\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3059\u308b
+APOC.wiz.copy.steptext.3=\u30bf\u30fc\u30b2\u30c3\u30c8\u8981\u7d20\u3092\u9078\u629e\u3059\u308b
+APOC.wiz.copy.instruction.1=\u30b3\u30d4\u30fc\u307e\u305f\u306f\u79fb\u52d5\u3059\u308b\u30bd\u30fc\u30b9\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3068\u30bd\u30fc\u30b9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u3053\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u5185\u304b\u3089\u9078\u629e\u3057\u307e\u3059\u3002
+APOC.wiz.copy.instruction.2=\u6307\u5b9a\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306b\u5b9f\u884c\u3059\u308b\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3057\u307e\u3059\u3002\u3053\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u5272\u308a\u5f53\u3066\u3092\u7121\u8996\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u9078\u629e\u3057\u307e\u3059\u3002
+APOC.wiz.copy.instruction.3=\u30b3\u30d4\u30fc\u5148\u307e\u305f\u306f\u79fb\u52d5\u5148\u3068\u306a\u308b\u30bf\u30fc\u30b2\u30c3\u30c8\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3068\u30bf\u30fc\u30b2\u30c3\u30c8\u8981\u7d20\u3092\u3053\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u304b\u3089\u9078\u629e\u3057\u307e\u3059\u3002
+APOC.wiz.copy.instruction.4=\u5165\u529b\u3057\u305f\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002\u300c\u5b8c\u4e86\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u30b3\u30d4\u30fc\u307e\u305f\u306f\u79fb\u52d5\u3057\u307e\u3059\u3002
+APOC.wiz.copy.help.1=<p>\u300c\u5909\u66f4...\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3001\u30ea\u30b9\u30c8\u304b\u3089\u5fc5\u8981\u306a\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u3001\u30b3\u30d4\u30fc\u307e\u305f\u306f\u79fb\u52d5\u3059\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\
+\u3092\u542b\u3080\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u9078\u629e\u3057\u307e\u3059\u3002</p><p>\u540c\u69d8\u306b\u300c\u5909\u66f4...\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3001\u30ea\u30b9\u30c8\u304b\u3089\u5fc5\u8981\u306a\u30d7\u30ed\u30d5\u30a1\u30a4\
+\u30eb\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u3001\u30b3\u30d4\u30fc\u307e\u305f\u306f\u79fb\u52d5\u3059\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3057\u307e\u3059\u3002</p>
+APOC.wiz.copy.help.2=<p>\u9078\u629e\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306b\u5b9f\u884c\u3059\u308b\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3057\u307e\u3059\u3002</p><p>\u6307\u5b9a\u3057\u305f\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3059\u308b\
+\u3068\u304d\u306b\u3001\u3053\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u65e2\u5b58\u306e\u5272\u308a\u5f53\u3066\u3092\u7121\u8996\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u9078\u629e\u3057\u307e\u3059\u3002</p>
+APOC.wiz.copy.help.3=<p>\u300c\u5909\u66f4...\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3001\u30ea\u30b9\u30c8\u304b\u3089\u5fc5\u8981\u306a\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u3001\u30b3\u30d4\u30fc\u307e\u305f\u306f\u79fb\u52d5\u3059\u308b\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\
+\u30ea\u3092\u9078\u629e\u3057\u307e\u3059\u3002</p><p>\u540c\u69d8\u306b\u300c\u5909\u66f4...\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3001\u30ea\u30b9\u30c8\u304b\u3089\u5fc5\u8981\u306a\u8981\u7d20\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u3001\
+\u30b3\u30d4\u30fc\u307e\u305f\u306f\u79fb\u52d5\u3059\u308b\u8981\u7d20\u3092\u9078\u629e\u3057\u307e\u3059\u3002</p>
+APOC.wiz.copy.source.context=\u30bd\u30fc\u30b9\u30ea\u30dd\u30b8\u30c8\u30ea:
+APOC.wiz.copy.source.profile=\u30bd\u30fc\u30b9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb:
+APOC.wiz.copy.1.alert=\u30bd\u30fc\u30b9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
+APOC.wiz.copy.2.alert=\u8a8d\u8a3c\u30e6\u30fc\u30b6\u30fc {0} \u306b\u306f\u3001\u30bd\u30fc\u30b9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb {1} \u306e\u79fb\u52d5\u306b\u5fc5\u8981\u306a\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093\u3002
+APOC.wiz.copy.select.action=\u30a2\u30af\u30b7\u30e7\u30f3\u306e\u9078\u629e:
+APOC.wiz.copy.copy=\u30b3\u30d4\u30fc
+APOC.wiz.copy.move=\u79fb\u52d5
+APOC.wiz.copy.assignments=\u5272\u308a\u5f53\u3066\u3092\u542b\u3081\u308b
+APOC.wiz.copy.target.context=\u30bf\u30fc\u30b2\u30c3\u30c8\u30ea\u30dd\u30b8\u30c8\u30ea:
+APOC.wiz.copy.target.entity=\u30bf\u30fc\u30b2\u30c3\u30c8\u8981\u7d20:
+APOC.wiz.copy.3.alert=\u30bf\u30fc\u30b2\u30c3\u30c8\u8981\u7d20\u3092\u9078\u629e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
+APOC.wiz.copy.action=\u30a2\u30af\u30b7\u30e7\u30f3:
+APOC.wiz.copy.assignments.assignments=\u5272\u308a\u5f53\u3066\u3092\u542b\u3081\u308b:
+APOC.wiz.copy.3.alert1=\u30bd\u30fc\u30b9\u3068\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u8981\u7d20\u304c\u540c\u3058\u306e\u5834\u5408\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u79fb\u52d5\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.wiz.copy.3.alert2=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb {0} \u306f {1} \u306b\u3067\u304d\u307e\u305b\u3093\u3002\u540c\u3058\u540d\u524d\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u30bf\u30fc\u30b2\u30c3\u30c8\u8981\u7d20 {2} \u306b\u3059\u3067\u306b\u5b58\u5728\u3057\u307e\u3059\u3002
+APOC.wiz.copy.3.alert3=\u8a8d\u8a3c\u30e6\u30fc\u30b6\u30fc {0} \u306b\u306f\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb {2} \u3092\u8981\u7d20 {3} \u306b {1} \u3059\u308b\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093\u3002
+APOC.wiz.copy.4.alert=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb {0} \u306f {1} \u306b\u3067\u304d\u307e\u305b\u3093\u3002\u3053\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306f\u3001\u30bf\u30fc\u30b2\u30c3\u30c8\u8981\u7d20 {2} \u306e\u4e0a\u4f4d\u306b\u3042\u308b\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u306e\u8981\u7d20\u306b\u5272\u308a\u5f53\
+\u3066\u3089\u308c\u3066\u3044\u307e\u3059\u3002
+APOC.wiz.copy.copyof={1} \u306e {0} \u3092\u30b3\u30d4\u30fc
+APOC.wiz.copy.overview.title=\u30b3\u30d4\u30fc\u3068\u79fb\u52d5\u30a6\u30a3\u30b6\u30fc\u30c9\u306e\u6982\u8981
+APOC.wiz.copy.overview.text=<p>\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306f\u7d44\u7e54\u306e\u968e\u5c64\u5185\u306e\u4efb\u610f\u306e\u8981\u7d20\u306b\u683c\u7d0d\u3067\u304d\u307e\u3059\u30021 \u8981\u7d20\u306b\u683c\u7d0d\u3055\u308c\u3066\u3044\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u30b3\u30d4\u30fc\u3092\u7570\u306a\u308b\u8981\u7d20\u306e\u65b0\u3057\u3044\u8a18\
+\u61b6\u9818\u57df\u306b\u4f5c\u6210\u3059\u308b\u3001\u307e\u305f\u306f\u3042\u308b\u8981\u7d20\u304b\u3089\u5225\u306e\u8981\u7d20\u306b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u4fdd\u7ba1\u5834\u6240\u3092\u79fb\u52d5\u3059\u308b\u305f\u3081\u306e\u5fc5\u8981\u306a\u624b\u9806\u3092\u300c\u30b3\u30d4\u30fc\u3068\u79fb\u52d5\u30a6\u30a3\u30b6\u30fc\u30c9\u300d\u304c\u6848\u5185\u3057\u307e\u3059\u3002\u30b3\
+\u30d4\u30fc\u307e\u305f\u306f\u79fb\u52d5\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u3067\u300c\u5272\u308a\u5f53\u3066\u3092\u542b\u3081\u308b\u300d\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4f7f\u7528\u3059\u308b\u3068\u304d\u306f\u3001\u7279\u5b9a\u306e\u5236\u7d04\u304c\u3042\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3064\u307e\u308a\u3001 \u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\
+\u306f\u3001\u305d\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u4fdd\u7ba1\u5834\u6240\u3068\u540c\u7b49\u304b\u4e0b\u4f4d\u306b\u4f4d\u7f6e\u3059\u308b\u8981\u7d20\u306b\u306e\u307f\u5272\u308a\u5f53\u3066\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u6b21\u306e\u60c5\u5831\u306e\u5165\u529b\u3092\u6c42\u3081\u3089\u308c\u307e\u3059</p>\
+<p><ul><li>\u30bd\u30fc\u30b9\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3068\u30bd\u30fc\u30b9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3002</li><\
+li>\u5b9f\u884c\u3059\u308b\u64cd\u4f5c\u3068\u3001\u3053\u306e\u64cd\u4f5c\u306e\u5b9f\u884c\u6642\u306b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u5272\u308a\u5f53\u3066\u3082\u542b\u3081\u308b\u304b\u3069\u3046\u304b\u3002</li><li>\u30bf\u30fc\u30b2\u30c3\u30c8\
+\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3068\u30bf\u30fc\u30b2\u30c3\u30c8\u8981\u7d20\u3002</li></ul></p><p>\u4e0a\u8a18\u306e\u60c5\u5831\u3092\u5165\u529b\u3059\u308b\u3068\u3001\
+\u9078\u629e\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306b\u8981\u6c42\u3057\u305f\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u30a6\u30a3\u30b6\u30fc\u30c9\u304c\u5b9f\u884c\u3057\u307e\u3059\u3002</p>
+APOC.wiz.copy.steptext.overview=\u6982\u8981
+APOC.wiz.copy.results.text.assigned=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb {0} \u306f\u8981\u7d20 {2} \u306e\u65b0\u3057\u3044\u8a18\u61b6\u9818\u57df\u306b {1} \u3055\u308c\u3001\u3053\u306e\u8981\u7d20\u306b\u5272\u308a\u5f53\u3066\u3089\u308c\u307e\u3057\u305f\u3002
+APOC.wiz.copy.results.text.unassigned=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb {0} \u306f\u8981\u7d20 {2} \u306e\u65b0\u3057\u3044\u8a18\u61b6\u9818\u57df\u306b {1} \u3057\u307e\u3057\u305f\u3002
+APOC.wiz.copy.results.title=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e {0} \u306b\u6210\u529f
+APOC.wiz.copy.results.alert.title=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e {0} \u306b\u5931\u6557
+APOC.wiz.copy.results.copied=\u30b3\u30d4\u30fc\u3055\u308c\u307e\u3057\u305f
+APOC.wiz.copy.results.moved=\u79fb\u52d5\u3057\u307e\u3057\u305f
+APOC.wiz.copy.results.copied.lc=\u30b3\u30d4\u30fc\u3055\u308c\u307e\u3057\u305f
+APOC.wiz.copy.results.moved.lc=\u79fb\u52d5\u3057\u307e\u3057\u305f
+APOC.wiz.copy.4.fail1=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u30b3\u30d4\u30fc\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.wiz.copy.4.fail2=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u524a\u9664\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.wiz.copy.4.fail3=\u65b0\u3057\u3044\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u8868\u793a\u540d\u306e\u8a2d\u5b9a\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+APOC.wiz.copy.4.fail4=\u30bf\u30fc\u30b2\u30c3\u30c8\u8981\u7d20\u306b\u65b0\u3057\u3044\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u5272\u308a\u5f53\u3066\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
+
+# Browse Tree
+APOC.browse.title.org=\u7d44\u7e54\u306e\u9078\u629e
+APOC.browse.title.dom=\u30c9\u30e1\u30a4\u30f3\u306e\u9078\u629e
+APOC.browse.title=\u8981\u7d20\u306e\u9078\u629e
+APOC.browse.title.text=\u30c4\u30ea\u30fc\u3092\u79fb\u52d5\u3057\u3066\u76ee\u7684\u306e\u8981\u7d20\u3092\u9078\u629e\u3057\u307e\u3059\u3002\u300c\u4e86\u89e3\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u9078\u629e\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002
+APOC.browse.cancel.help=\u9078\u629e\u3092\u53d6\u308a\u6d88\u3057\u3066\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u9589\u3058\u307e\u3059\u3002
+APOC.browse.ok.help=\u9078\u629e\u3092\u78ba\u8a8d\u3057\u3066\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u9589\u3058\u307e\u3059\u3002
+APOC.browse.tree.nav=\u30c4\u30ea\u30fc\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3
+
+#*******************************************************************************
+# Syncronization
+#*******************************************************************************
+APOC.sync.title=\u540c\u671f
+APOC.sync.help=\u3053\u306e\u30da\u30fc\u30b8\u3067\u306f\u30012 \u3064\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u540c\u671f\u3067\u304d\u307e\u3059\u3002
+APOC.sync.sourcerep.label=\u30bd\u30fc\u30b9\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea:
+APOC.sync.sourcerep.help=\u5229\u7528\u53ef\u80fd\u306a\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u30e1\u30cb\u30e5\u30fc\u3002
+APOC.sync.sourcepath.label=\u30bd\u30fc\u30b9\u306e\u958b\u59cb\u70b9:
+APOC.sync.sourcepath.button=\u5909\u66f4...
+APOC.sync.sourcepath.help=\u30bd\u30fc\u30b9\u306e\u5185\u5bb9\u30d1\u30b9\u3092\u5909\u66f4\u3067\u304d\u308b\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304d\u307e\u3059\u3002
+APOC.sync.targetrep.label=\u30bf\u30fc\u30b2\u30c3\u30c8\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea:
+APOC.sync.targetrep.help=\u5229\u7528\u53ef\u80fd\u306a\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u30e1\u30cb\u30e5\u30fc\u3002
+APOC.sync.targetpath.label=\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u958b\u59cb\u70b9:
+APOC.sync.targetpath.button=\u5909\u66f4...
+APOC.sync.targetpath.help=\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u5185\u5bb9\u30d1\u30b9\u3092\u5909\u66f4\u3067\u304d\u308b\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304d\u307e\u3059\u3002
+APOC.sync.sync.button=\u540c\u671f
+APOC.sync.sync.help=\u9078\u629e\u3057\u305f\u30a2\u30af\u30b7\u30e7\u30f3\u306b\u5f93\u3063\u3066\u3001\u30ea\u30b9\u30c8\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u540c\u671f\u3057\u307e\u3059\u3002
+APOC.sync.reset.button=\u30ea\u30bb\u30c3\u30c8
+APOC.sync.reset.help=\u30a2\u30af\u30b7\u30e7\u30f3\u3092 Configuration Manager \u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u306b\u30ea\u30bb\u30c3\u30c8\u3057\u307e\u3059\u3002
+APOC.sync.cancel.help=\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u9589\u3058\u307e\u3059\u3002
+APOC.sync.login.title=\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30ed\u30b0\u30a4\u30f3
+APOC.sync.login.pagetitle=\u30ed\u30b0\u30a4\u30f3 - \u30bd\u30fc\u30b9\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea
+APOC.sync.login.pagetitle2=\u30ed\u30b0\u30a4\u30f3 - \u30bf\u30fc\u30b2\u30c3\u30c8\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea
+APOC.sync.login.pagehelp=Configuration Manager \u3067\u306f\u3001\u500b\u5225\u306e\u30ed\u30b0\u30a4\u30f3\u304c\u5fc5\u8981\u306b\u306a\u308b\u8907\u6570\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u7ba1\u7406\u3067\u304d\u307e\u3059\u3002Java Web \
+Console \u3078\u306e\u30ed\u30b0\u30a4\u30f3\u306b\u4f7f\u7528\u3057\u305f\u8cc7\u683c\u60c5\u5831\u306f\u3001\u3053\u308c\u3092\u518d\u5229\u7528\u3067\u304d\u308b\u5834\u5408\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u4e2d\u306b\u3059\u3067\u306b\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3078\u306e\
+\u8a8d\u8a3c\u306b\u6210\u529f\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u3053\u306e\u30ed\u30b0\u30a4\u30f3\u30da\u30fc\u30b8\u306f\u8868\u793a\u3055\u308c\u307e\u305b\u3093\u3002\u5225\u306e\u8cc7\u683c\u60c5\u5831\u3067\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u5834\u5408\u306f\u3001 Java Web \
+Console \u304b\u3089\u30ed\u30b0\u30a2\u30a6\u30c8\u3057\u3066\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u7d42\u4e86\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
+APOC.sync.compare.button=\u6bd4\u8f03
+APOC.sync.compare.help=\u30bd\u30fc\u30b9\u3068\u30bf\u30fc\u30b2\u30c3\u30c8\u3092\u6bd4\u8f03\u3057\u307e\u3059\u3002
+APOC.sync.result.empty=\u7570\u306a\u308b\u70b9\u306f\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+APOC.sync.result.summary=\u3053\u306e\u8868\u306f\u3001\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u30bd\u30fc\u30b9\u3068\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u9055\u3044\u3092\u793a\u3057\u307e\u3059\u3002
+APOC.sync.result.title=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.sync.result.title2=\u7570\u306a\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.sync.result.help0=\u540c\u671f\u306b\u3064\u3044\u3066
+APOC.sync.result.help1=\u3053\u306e\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u306f\u30012 \u3064\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u540c\u671f\u3067\u304d\u307e\u3059\u3002
+APOC.sync.result.help2=\u5909\u66f4\u306e\u30bd\u30fc\u30b9\u3068\u3057\u3066\u6a5f\u80fd\u3059\u308b\u30bd\u30fc\u30b9\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u5909\u66f4\u3067\u304d\u307e\u3059\u3002\u3053\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u306f\u5909\u66f4\u3055\u308c\u307e\u305b\u3093\u3002\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3001\u540c\u671f\u306e\u958b\u59cb\u70b9\u3068\u3057\u3066\u30eb\u30fc\u30c8\u4ee5\u5916\u306e\u8981\u7d20\
+\u3092\u6307\u5b9a\u3057\u3066\u3001\u30bd\u30fc\u30b9\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u5236\u9650\u3067\u304d\u307e\u3059\u3002
+APOC.sync.result.help3=\u5909\u66f4\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u3068\u3057\u3066\u6a5f\u80fd\u3059\u308b\u30bf\u30fc\u30b2\u30c3\u30c8\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u5909\u66f4\u3067\u304d\u307e\u3059\u3002\u3053\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u306f\u5909\u66f4\u3055\u308c\u307e\u3059\u3002\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3001\u540c\u671f\u306e\u958b\u59cb\u70b9\u3068\u3057\u3066\u30eb\u30fc\u30c8\u4ee5\u5916\
+\u306e\u8981\u7d20\u3092\u6307\u5b9a\u3057\u3066\u3001\u30bf\u30fc\u30b2\u30c3\u30c8\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u5236\u9650\u3067\u304d\u307e\u3059\u3002
+APOC.sync.result.help4=\u30bd\u30fc\u30b9\u3068\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u30c4\u30ea\u30fc\u3092\u6307\u5b9a\u3057\u305f\u3042\u3068\u3001\u300c\u6bd4\u8f03\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u30022 \u3064\u306e\u30c4\u30ea\u30fc\u304c\u6bd4\u8f03\u3055\u308c\u3001\u9055\u3044\u304c\u8868\u306b\u793a\u3055\u308c\u307e\u3059\u3002\u540c\u671f\u3059\u308b\u30d7\u30ed\u30d5\u30a1\
+\u30a4\u30eb\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u5217\u306b\u30c1\u30a7\u30c3\u30af\u30de\u30fc\u30af\u3092\u4ed8\u3051\u3001\u300c\u540c\u671f\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u307e\u3059\u3002
+APOC.sync.result.help5=\u540c\u671f\u304c\u5b8c\u4e86\u3059\u308b\u3068\u3001\u9078\u629e\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306b\u95a2\u3057\u3066\u30bf\u30fc\u30b2\u30c3\u30c8\u30ea\u30dd\u30b8\u30c8\u30ea\u304c\u30bd\u30fc\u30b9\u30ea\u30dd\u30b8\u30c8\u30ea\u3068\u540c\u3058\u306b\u306a\u308a\u307e\u3059\u3002
+APOC.sync.busymsg.text=\u51e6\u7406\u3057\u3066\u3044\u307e\u3059...
+APOC.sync.result.column1=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb
+APOC.sync.result.column2=\u30bf\u30fc\u30b2\u30c3\u30c8\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u30a2\u30af\u30b7\u30e7\u30f3
+APOC.sync.action.copycontent=\u5185\u5bb9\u3092\u30b3\u30d4\u30fc\u3059\u308b\u3002
+APOC.sync.action.copycomment=\u30b3\u30e1\u30f3\u30c8\u3092\u30b3\u30d4\u30fc\u3059\u308b\u3002
+APOC.sync.action.alignassign=\u5272\u308a\u5f53\u3066\u3092\u5408\u308f\u305b\u308b\u3002
+APOC.sync.action.changeprios=\u512a\u5148\u9806\u4f4d\u3092\u5909\u66f4\u3059\u308b\u3002
+APOC.sync.action.create=\u5185\u5bb9\u3068\u5272\u308a\u5f53\u3066\u3092\u4f7f\u7528\u3057\u3066\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b\u3002
+APOC.sync.action.delete=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664\u3059\u308b\u3002
+APOC.sync.msg.orgdomcomapre=\u7d44\u7e54\u30c4\u30ea\u30fc\u3068\u30c9\u30e1\u30a4\u30f3\u30c4\u30ea\u30fc\u306e\u6bd4\u8f03\u306f\u3067\u304d\u307e\u305b\u3093\u3002
+APOC.sync.msg.noprofiles=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+APOC.sync.msg.allequal=\u6bd4\u8f03\u3057\u305f\u3059\u3079\u3066\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306f\u7b49\u3057\u304f\u3001\u540c\u671f\u3059\u308b\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093\u3002
+APOC.sync.msg.nocompare=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u304c\u3001\u3069\u308c\u3082\u6bd4\u8f03\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+APOC.sync.msg.partialcompare=\u898b\u3064\u304b\u3063\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u3092\u6bd4\u8f03\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+APOC.sync.msg.compare.detail=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u6bd4\u8f03\u3059\u308b\u306b\u306f\u3001\u958b\u59cb\u70b9\u304b\u3089\u305d\u306e\u8a18\u61b6\u9818\u57df\u307e\u3067\u306e\u76f8\u5bfe\u30d1\u30b9\u304c\u4ed6\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u5b58\u5728\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
+APOC.sync.waitmsg.prepare=\u6e96\u5099\u4e2d
+APOC.sync.waitmsg.retsource=\u30bd\u30fc\u30b9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u53d6\u5f97\u4e2d
+APOC.sync.waitmsg.rettarget=\u30bf\u30fc\u30b2\u30c3\u30c8\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u53d6\u5f97\u4e2d
+APOC.sync.waitmsg.prepx=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u6bd4\u8f03\u3092\u6e96\u5099\u4e2d (\u6e96\u5099\u5b8c\u4e86\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb {0})
+APOC.sync.waitmsg.compx=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u6bd4\u8f03\u4e2d (\u6bd4\u8f03\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb {0} / {1})
+APOC.sync.waitmsg.sync=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u540c\u671f\u4e2d (\u540c\u671f\u3057\u305f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb {0} / {1})
+APOC.sync.waitmsg.time=\u7d4c\u904e\u6642\u9593: {0}:{1}.{2}
+
+APOC.tabs.tree.title=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb - \u30c4\u30ea\u30fc\u8868\u793a
+APOC.tabs.tree.help=\u7d44\u7e54\u3068\u30c9\u30e1\u30a4\u30f3\u30c4\u30ea\u30fc\u3067\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u308b\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u8868\u793a\u3057\u307e\u3059\u3002
+APOC.tabs.all.title=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb - \u3059\u3079\u3066
+APOC.tabs.all.help=\u3059\u3079\u3066\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u30ea\u30b9\u30c8\u3092\u8868\u793a\u3057\u307e\u3059\u3002
+
+APOC.find.title=\u691c\u7d22
+APOC.find.button=\u691c\u7d22
+
+#*******************************************************************************
+# Contexts
+#*******************************************************************************
+APOC.contexts.title=\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea
+APOC.contexts.details.title=\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u8a73\u7d30
+APOC.contexts.details.name=\u30ea\u30dd\u30b8\u30c8\u30ea\u540d
+APOC.contexts.details.domorg.info=\u30c9\u30e1\u30a4\u30f3/\u7d44\u7e54\u60c5\u5831\u306e\u5834\u6240
+APOC.contexts.details.domorg.profile.info=\u30c9\u30e1\u30a4\u30f3/\u7d44\u7e54\u30c7\u30fc\u30bf\u306e\u683c\u7d0d\u5834\u6240
+APOC.contexts.details.property=\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc
+APOC.contexts.details.view=\u8a73\u7d30\u306e\u8868\u793a
+APOC.contexts.help=\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3068\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u69cb\u6210\u306b\u5fc5\u8981\u306a\u69cb\u6210\u30c7\u30fc\u30bf\u306e\u8a18\u61b6\u9818\u57df\u3067\u3059\u3002
+APOC.contexts.table.title=\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea
+APOC.contexts.config.error=\u9078\u629e\u3057\u305f\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093\u3002\u69cb\u6210\u30d5\u30a1\u30a4\u30eb {0} \u306b\u69cb\u6587\u30a8\u30e9\u30fc\u304c\u3042\u308a\u307e\u3059\u3002
+APOC.contexts.table.summary=\u3053\u306e\u8868\u306f\u3001\u5229\u7528\u53ef\u80fd\u306a\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3059\u3079\u3066\u306e\u30ea\u30b9\u30c8\u3067\u3059\u3002\u300c\u7a2e\u985e\u300d\u5217\u306b\u306f\u3001\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u7a2e\u985e\u304c\u8868\u793a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u300c\u7d44\u7e54\u30c7\u30fc\u30bf\u306e\u5834\u6240\u300d\u5217\u306b\u306f\u3001\u7d44\u7e54\
+\u30c7\u30fc\u30bf\u3092\u63d0\u4f9b\u3059\u308b\u4fdd\u7ba1\u5834\u6240\u3092\u6307\u3059 URL \u304c\u8868\u793a\u3055\u308c\u3066\u3044\u307e\u3059\u3002 \u300c\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u30c7\u30fc\u30bf\u306e\u5834\u6240\u300d\u5217\u306b\u306f\u3001\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u30c7\u30fc\u30bf\u3092\u63d0\u4f9b\u3059\u308b\u8a18\u61b6\u9818\u57df\u3092\u6307\
+\u3059 URL \u304c\u8868\u793a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u305d\u306e\u540d\u524d\u306e\u30ea\u30f3\u30af\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002
+APOC.contexts.details.table.summary=\u3053\u306e\u8868\u306f\u3001\u9078\u629e\u3057\u305f\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u3092\u793a\u3057\u307e\u3059\u3002\u968e\u5c64\u60c5\u5831\u306e\u540d\u524d\u3001\u5834\u6240\u3001\u304a\u3088\u3073\u683c\u7d0d\u60c5\u5831\u306e\u5834\u6240\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
+APOC.contexts.table.empty=\u5229\u7528\u53ef\u80fd\u306a\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u300c\u65b0\u898f\u4f5c\u6210\u300d\u30dc\u30bf\u30f3\u3092\u4f7f\u7528\u3057\u3066\u3001\u65b0\u898f\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+APOC.contexts.menu.create=\u4f5c\u6210...
+APOC.contexts.menu.remove=\u524a\u9664...
+APOC.contexts.menu.rename=\u540d\u524d\u306e\u5909\u66f4...
+APOC.contexts.menu.synchronize=\u540c\u671f...
+APOC.contexts.column.name=\u540d\u524d
+APOC.contexts.column.type=\u7a2e\u985e
+APOC.contexts.column.locorg=\u7d44\u7e54\u30c7\u30fc\u30bf\u306e\u5834\u6240
+APOC.contexts.column.locpro=\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u30c7\u30fc\u30bf\u306e\u5834\u6240
+
+APOC.contexts.hybrid.text=\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9
+APOC.contexts.create.button=\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u4f5c\u6210
+APOC.contexts.login.context=\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea:
+APOC.contexts.login.title=\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea - \u30ed\u30b0\u30a4\u30f3
+APOC.contexts.login.help=Configuration Manager \u3067\u306f\u3001\u500b\u5225\u306e\u30ed\u30b0\u30a4\u30f3\u304c\u5fc5\u8981\u306b\u306a\u308b\u8907\u6570\u306e\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u7ba1\u7406\u3067\u304d\u307e\u3059\u3002Java Web \
+Console \u3078\u306e\u30ed\u30b0\u30a4\u30f3\u306b\u4f7f\u7528\u3057\u305f\u8cc7\u683c\u60c5\u5831\u306f\u3001\u3053\u308c\u3092\u518d\u5229\u7528\u3067\u304d\u308b\u5834\u5408\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u4e2d\u306b\u3059\u3067\u306b\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3078\u306e\
+\u8a8d\u8a3c\u306b\u6210\u529f\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u3053\u306e\u30ed\u30b0\u30a4\u30f3\u30da\u30fc\u30b8\u306f\u8868\u793a\u3055\u308c\u307e\u305b\u3093\u3002\u5225\u306e\u8cc7\u683c\u60c5\u5831\u3067\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u5834\u5408\u306f\u3001 Java Web \
+Console \u304b\u3089\u30ed\u30b0\u30a2\u30a6\u30c8\u3057\u3066\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u7d42\u4e86\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
+APOC.select.contexts.login.help=\u65b0\u3057\u3044\u69cb\u6210\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u9078\u629e\u3059\u308b\u306b\u306f\u3001\u65b0\u3057\u3044\u30ed\u30b0\u30a4\u30f3\u8cc7\u683c\u60c5\u5831\u3092\u63d0\u4f9b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u9078\u629e\u3057\u305f\u30ea\u30dd\u30b8\u30c8\u30ea\u3078\u306e\u30ed\u30b0\u30a4\u30f3\u306b\u4ee5\u524d\u4f7f\u7528\u3057\u3066\u3044\u305f\u8cc7\u683c\u60c5\
+\u5831\u304c\u5229\u7528\u53ef\u80fd\u3067\u3042\u308b\u5834\u5408\u306f\u3001\u305d\u308c\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u306a\u308a\u307e\u3059\u3002
+APOC.relocate.error.summary=\u64cd\u4f5c\u304c\u53d6\u308a\u6d88\u3055\u308c\u307e\u3057\u305f\u3002
+APOC.relocate.error.detail=\u3053\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u5272\u308a\u5f53\u3066\u3089\u308c\u3066\u3044\u308b\u7d44\u7e54\u307e\u305f\u306f\u30c9\u30e1\u30a4\u30f3\u306e\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u304c\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u65b0\u3057\u3044\u5834\u6240\u306e\u4e0a\u4f4d\u306b\u3042\u308a\u307e\u3059\u3002
+APOC.relocate.trace.text=\u5229\u7528\u53ef\u80fd\u306a\u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u304c\u3042\u308a\u307e\u305b\u3093\u3002
+
diff --git a/src/com/sun/apoc/manager/resource/apoc_manager_ko.properties b/src/com/sun/apoc/manager/resource/apoc_manager_ko.properties
new file mode 100644
index 0000000..51c1d5a
--- /dev/null
+++ b/src/com/sun/apoc/manager/resource/apoc_manager_ko.properties
@@ -0,0 +1,1105 @@
+#*******************************************************************************
+#
+# $RCSfile: apoc_manager_ko.properties,v $
+#
+# Description: Resource bundle for the Sun Java(tm) Desktop System
+# Configuration Manager
+#
+# Last change: $Date: 2007/05/18 14:41:03 $ $Revision: 1.10 $
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use of this
+# product is subject to license terms.
+#
+#*******************************************************************************
+
+#*******************************************************************************
+# Common
+#
+#*******************************************************************************
+
+APOC.framelongdesc=\uc774 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc740 \uc138 \uac1c\uc758 \ud504\ub808\uc784\uc73c\ub85c \uc774\ub8e8\uc5b4\uc838 \uc788\uc2b5\ub2c8\ub2e4. \ud398\uc774\uc9c0\uc758 \ub9e8 \uc704\uc5d0 \ub9c8\uc2a4\ud2b8\ud5e4\ub4dc \ud504\ub808\uc784\uc774 \uc788\uace0 \uc67c\ucabd\uc758 \ud0d0\uc0c9 \
+\ud504\ub808\uc784\uc5d0\uc11c\ub294 \uc0ac\uc6a9\uc790 \ubc0f \ud638\uc2a4\ud2b8\ub97c \ud0d0\uc0c9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud0d0\uc0c9 \ud504\ub808\uc784\uc5d0\uc11c \uc694\uc18c\ub97c \uc120\ud0dd\ud558\uba74 \ub0b4\uc6a9 \ud504\ub808\uc784\uc5d0 \uc5c5\ub370\uc774\ud2b8\ub418\uac70\ub098 \ub0b4\uc6a9 \
+\ud504\ub808\uc784\uacfc \ud0d0\uc0c9 \ud504\ub808\uc784 \ubaa8\ub450\uc5d0 \uc5c5\ub370\uc774\ud2b8\ub429\ub2c8\ub2e4. \ub0b4\uc6a9 \uc601\uc5ed\uc740 \uc624\ub978\ucabd\uc5d0 \uc788\uc73c\uba70 \ud604\uc7ac \uc120\ud0dd\ud55c \uc694\uc18c\uc5d0 \ub300\ud55c \uc815\ubcf4\uac00 \ud45c\uc2dc\ub429\ub2c8\ub2e4.
+APOC.so7=StarSuite 7
+APOC.button.remove=\uc81c\uac70
+APOC.button.close=\ub2eb\uae30
+APOC.button.OK=\ud655\uc778
+APOC.button.cancel=\ucde8\uc18c
+APOC.button.browse=\ubcc0\uacbd...
+APOC.headings.name=\uc774\ub984
+APOC.login.username=\uc0ac\uc6a9\uc790 \uc774\ub984:
+APOC.login.password=\uc554\ud638:
+APOC.infoAlert.success=\uc791\uc5c5\uc774 \uc131\uacf5\uc801\uc73c\ub85c \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+APOC.noframes=\uc774 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc744 \uc0ac\uc6a9\ud558\ub824\uba74 \ud504\ub808\uc784\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.
+APOC.settings.notset=-- \uc124\uc815\ub418\uc9c0 \uc54a\uc74c --
+APOC.profiles.profile=\ud504\ub85c\ud30c\uc77c
+APOC.help.more.on=>> {0}\uc5d0 \ub300\ud574 \uc790\uc138\ud788
+APOC.help.more=>> \uc790\uc138\ud788
+APOC.pool.renameContextMessage= \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \uc0c8 \uc774\ub984 \uc785\ub825:
+APOC.pool.removeContextMessage=\uc120\ud0dd\ud55c \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+APOC.helpwindow.tooltip=\ub3c4\uc6c0\ub9d0(\uc0c8 \ucc3d \uc5f4\uae30)
+
+#*******************************************************************************
+# Masthead
+#
+#*******************************************************************************
+
+APOC.frame.masthead=\ub9c8\uc2a4\ud2b8\ud5e4\ub4dc \ud504\ub808\uc784
+APOC.masthead.altTextVer=Sun Desktop Manager 1.0.1
+APOC.masthead.altText=Sun Desktop Manager 1.0.1
+APOC.masthead.altTextForSub={0}
+APOC.masthead.packages.alt=\uc815\ucc45 \ud328\ud0a4\uc9c0(\uc0c8 \ucc3d \uc5f4\uae30)
+APOC.masthead.path.link=\uc800\uc7a5\uc18c
+APOC.masthead.path.help=\uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ud398\uc774\uc9c0\ub85c \ub3cc\uc544\uac00\uae30
+
+#*******************************************************************************
+# Packages Dialog Strings
+#
+#*******************************************************************************
+
+APOC.packages.title=\uc815\ucc45 \ud328\ud0a4\uc9c0
+APOC.packages.introtext=\uc5ec\uae30\uc11c \uc815\ucc45 \ud328\ud0a4\uc9c0\ub97c \uc124\uce58\ud558\uac70\ub098 \uc81c\uac70\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc815\ucc45 \ud328\ud0a4\uc9c0\ub294 Sun Microsystems \ub610\ub294 \ud0c0\uc0ac \uacf5\uae09\uc5c5\uccb4\uc5d0\uc11c \
+\uc81c\uacf5\ub418\uba70 {0}\uc5d0\uc11c \uc0ac\uc6a9\ub418\ub294 \ucd94\uac00 \uc815\ucc45\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.packages.tabletitle=\uc124\uce58\ub41c \uc815\ucc45 \ud328\ud0a4\uc9c0
+APOC.packages.headings.adddate=\ub0a0\uc9dc \ucd94\uac00
+APOC.packages.action.file=\uc11c\ubc84\uc5d0\uc11c \uc124\uce58...
+APOC.packages.action.url=\ud074\ub77c\uc774\uc5b8\ud2b8\uc5d0\uc11c \uc124\uce58...
+APOC.packages.action.uninstall=\uc81c\uac70
+APOC.packages.uninstall.confirm=\uc120\ud0dd\ud55c \ud328\ud0a4\uc9c0\ub97c \uc81c\uac70\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+APOC.packages.filechooser.addfile=\uc11c\ubc84 \ud30c\uc77c\uc5d0\uc11c \uc815\ucc45 \ud328\ud0a4\uc9c0 \uc124\uce58
+APOC.packages.filechooser.button=\ud30c\uc77c \uc120\ud0dd
+APOC.packages.localchooser.title=\ub85c\uceec \ud30c\uc77c\uc5d0\uc11c \uc815\ucc45 \ud328\ud0a4\uc9c0 \uc124\uce58
+APOC.packages.localchooser.upload=\uc5c5\ub85c\ub4dc
+APOC.packages.localchooser.choosetext=\uc5c5\ub85c\ub4dc\ud560 \ud30c\uc77c:
+
+#*******************************************************************************
+# Users Page Tab
+#
+#*******************************************************************************
+
+APOC.users.title=\uc0ac\uc6a9\uc790
+APOC.users.introtext=\uc774 \ud0ed \ud398\uc774\uc9c0\uc5d0\ub294 \uc120\ud0dd\ud55c \uc5ed\ud560\uc758 \uad6c\uc131\uc6d0\uc778 \uc0ac\uc6a9\uc790\uac00 \ub098\uc5f4\ub429\ub2c8\ub2e4. '\uacbd\ub85c' \uc5f4\uc740 \uc808\ub300 \uacbd\ub85c\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4.
+APOC.users.tableSummary=\uc774 \ud14c\uc774\ube14\uc5d0\ub294 \uc120\ud0dd\ud55c \uc5ed\ud560\uc758 \uad6c\uc131\uc6d0\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4. '\uacbd\ub85c' \uc5f4\uc740 \uc808\ub300 \uacbd\ub85c\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4. \uc67c\ucabd \ud504\ub808\uc784\uc5d0\uc11c \uc0ac\uc6a9\uc790 \uc774\ub984\uc744 \
+\ud074\ub9ad\ud558\uc5ec \ud574\ub2f9 \uc0ac\uc6a9\uc790\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.
+
+#*******************************************************************************
+# Roles Page Tab
+#
+#*******************************************************************************
+
+APOC.roles.title=\uc5ed\ud560
+APOC.roles.introtext=\uc774 \ud0ed \ud398\uc774\uc9c0\uc5d0\ub294 \uc120\ud0dd\ud55c \uc0ac\uc6a9\uc790\uac00 \uad6c\uc131\uc6d0\uc73c\ub85c \uc18d\ud574 \uc788\ub294 \uc5ed\ud560\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4. '\uacbd\ub85c' \uc5f4\uc740 \uc808\ub300 \uacbd\ub85c\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4.
+APOC.roles.tableSummary=\uc774 \ud14c\uc774\ube14\uc5d0\ub294 \uc120\ud0dd\ud55c \uc0ac\uc6a9\uc790\uac00 \uad6c\uc131\uc6d0\uc73c\ub85c \uc18d\ud574 \uc788\ub294 \uc5ed\ud560\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4. '\uacbd\ub85c' \uc5f4\uc740 \uc808\ub300 \uacbd\ub85c\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4. \uc67c\ucabd \
+\ud504\ub808\uc784\uc5d0\uc11c \uc5ed\ud560 \uc774\ub984\uc744 \ud074\ub9ad\ud558\uc5ec \ud574\ub2f9 \uc5ed\ud560\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.
+
+#*******************************************************************************
+# Assignees Page Tab
+#
+#*******************************************************************************
+
+APOC.assignees.title=\uc9c0\uc815 \ub300\uc0c1
+APOC.assignees.introtext=\uc774 \ud0ed \ud398\uc774\uc9c0\uc5d0\ub294 \uc120\ud0dd\ud55c \ud504\ub85c\ud30c\uc77c\uc774 \uc9c0\uc815\ub41c \uc5d4\ud2f0\ud2f0\uac00 \ub098\uc5f4\ub429\ub2c8\ub2e4. '\uacbd\ub85c' \uc5f4\uc740 \uc808\ub300 \uacbd\ub85c\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4.
+APOC.assignees.tableSummary=\uc774 \ud14c\uc774\ube14\uc5d0\ub294 \uc120\ud0dd\ud55c \ud504\ub85c\ud30c\uc77c\uc774 \uc9c0\uc815\ub41c \uc5d4\ud2f0\ud2f0\uac00 \ub098\uc5f4\ub429\ub2c8\ub2e4. '\uacbd\ub85c' \uc5f4\uc740 \uc808\ub300 \uacbd\ub85c\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4. \uc67c\ucabd \ud504\ub808\uc784\uc5d0\uc11c \uc694\uc18c \
+\uc774\ub984\uc744 \ud074\ub9ad\ud558\uc5ec \ud574\ub2f9 \uc694\uc18c\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.
+
+#*******************************************************************************
+# Profiles Tab page
+#
+#*******************************************************************************
+
+APOC.policysets.title=\uc9c0\uc815\ub41c \ud504\ub85c\ud30c\uc77c
+APOC.policysets.label=\ud504\ub85c\ud30c\uc77c:
+APOC.policysets.introtext=\uc774 \ud0ed \ud398\uc774\uc9c0\uc5d0\uc11c\ub294 \uc120\ud0dd\ud55c \uc694\uc18c\uc5d0 \ud504\ub85c\ud30c\uc77c\uc744 \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.policysets.save=\uc800\uc7a5
+APOC.policysets.infoAlert.saveSuccess=\ubcc0\uacbd\ub41c \ud504\ub85c\ud30c\uc77c \uc9c0\uc815\uc774 \uc800\uc7a5\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+
+#*******************************************************************************
+# Policies Tab page
+#
+#*******************************************************************************
+
+APOC.policies.title=\uc9c0\uc815\ub41c \uc815\ucc45
+APOC.policies.subcategories=\ud558\uc704 \ubc94\uc8fc
+APOC.policies.nameCol=\uc774\ub984
+APOC.policies.commentCol=\uc124\uba85
+APOC.policies.actionCol=\uc791\uc5c5
+APOC.policies.toggle.button=\ud1a0\uae00 \uc791\uc5c5
+APOC.policies.introtext=\uc774 \ud398\uc774\uc9c0\uc5d0\ub294 \uc120\ud0dd\ud55c \uc694\uc18c\uc5d0 \ub300\ud574 \uad6c\uc131\ub41c \uc124\uc815\uacfc \uad6c\uc131 \uc815\ucc45 \ud2b8\ub9ac\uac00 \ub098\uc5f4\ub429\ub2c8\ub2e4.
+APOC.policies.tableSummary=\uc774 \ud14c\uc774\ube14\uc5d0\ub294 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uc815\ucc45\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4. \uac01 \ud589\uc5d0\ub294 \uc815\ucc45 \uc774\ub984\uacfc \uac04\ub7b5\ud55c \uc124\uba85\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc815\ucc45 \uc774\ub984\uc744 \
+\ud074\ub9ad\ud558\uc5ec \ud574\ub2f9 \ud558\uc704 \uc815\ucc45\uc744 \ud0d0\uc0c9\ud569\ub2c8\ub2e4.
+APOC.properties.tableSummary=\uc774 \ud14c\uc774\ube14\uc5d0\ub294 \uad6c\uc131 \uc124\uc815\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4. \uac01 \ud589\uc5d0\ub294 \ub4f1\ub85d \uc815\ubcf4 \uc0c1\ud0dc, \uc774\ub984 \ubc0f \uac12\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.policies.stateCol=\ub3c4
+APOC.policies.value=\uac12
+APOC.policies.value.notconfig=\uad6c\uc131\ub418\uc9c0 \uc54a\uc74c
+APOC.policies.value.config=\uad6c\uc131\ub428
+APOC.policies.status=\uc0c1\ud0dc
+APOC.policies.root=\uc815\ucc45
+APOC.policies.actions=&#8212;&nbsp;\uc815\ucc45 \uc791\uc5c5&nbsp;&#8212;
+APOC.policies.actions.protect=\ubcf4\ud638
+APOC.policies.actions.unprotect=\ubcf4\ud638 \ud574\uc81c
+APOC.policies.actions.default=\uae30\ubcf8\uac12 \uc801\uc6a9
+APOC.policies.actions.clear=\uc9c0\uc6b0\uae30
+APOC.policies.enable=\ud65c\uc131\ud654
+APOC.policies.enabled=\uc0ac\uc6a9
+APOC.policies.disabled=\uc0ac\uc6a9 \uc548\ud568
+APOC.policies.clear.button=\uc124\uc815 \uc9c0\uc6b0\uae30...
+APOC.policies.createrep.button=\ubcf4\uace0\uc11c \uc791\uc131...
+APOC.policies.createrep.tooltip=\ubcf4\uace0\uc11c \uc791\uc131(\uc0c8 \ucc3d \uc5f4\uae30)
+APOC.policies.clear.confirmation=\uc774 \uc791\uc5c5\uc744 \uc218\ud589\ud558\uba74 \uc774 \ub808\uc774\uc5b4\uc640 \ud558\uc704 \ub808\uc774\uc5b4\uc5d0 \uc788\ub294 \ubaa8\ub4e0 \uc124\uc815\uc774 \uc0ad\uc81c\ub429\ub2c8\ub2e4. \uacc4\uc18d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+APOC.policies.backToTop=\ub9e8 \uc704\ub85c
+APOC.policies.backToTop.tooltip=\ub9e8 \uc704\ub85c
+APOC.policies.jumpDown.tooltip={0}(\ud574\ub2f9 \uc139\uc158\uc73c\ub85c \uc774\ub3d9)
+APOC.policies.save.button=\uc800\uc7a5
+APOC.policies.reset.button=\uc6d0\ub798\ub300\ub85c
+APOC.policies.navigation.table.empty=\uc9c0\uc815\ub41c \uc815\ucc45\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.policies.set.table.empty=\ud56d\ubaa9\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.policies.new.button=\uc0c8\ub85c \ub9cc\ub4e4\uae30...
+APOC.policies.delete.button=\uc0ad\uc81c
+APOC.policies.name.question=\uc0c8 \ud56d\ubaa9\uc758 \uc774\ub984\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+APOC.policies.rename.set=\ud56d\ubaa9\uc5d0 \uc0c8 \uc774\ub984\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+APOC.policies.status.defined_here=\uc774 \ub808\uc774\uc5b4\uc5d0\uc11c \ud56d\ubaa9\uc774 \uc815\uc758\ub429\ub2c8\ub2e4.
+APOC.policies.status.defined_above=\uc0c1\uc704 \ub808\uc774\uc5b4\uc5d0\uc11c \ud56d\ubaa9\uc774 \uc815\uc758\ub429\ub2c8\ub2e4.
+APOC.policies.status.noprotection=\ubcf4\ud638 \uc548 \ud568 \uc0c1\ud0dc
+APOC.policies.status.nodefinition=\uc815\uc758 \uc5c6\uc74c \uc0c1\ud0dc
+APOC.policies.status.jumpto=\uc774 \ub9c1\ud06c\ub97c \ud074\ub9ad\ud558\uba74 {0}(\uc73c)\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4.
+APOC.policies.status.protected_here=\uc774 \ub808\uc774\uc5b4\uc5d0\uc11c \ud56d\ubaa9\uc774 \ubcf4\ud638\ub429\ub2c8\ub2e4.
+APOC.policies.status.protected_above=\uc0c1\uc704 \ub808\uc774\uc5b4\uc5d0\uc11c \ud56d\ubaa9\uc774 \ubcf4\ud638\ub429\ub2c8\ub2e4.
+APOC.policies.status.policygroup=\ud504\ub85c\ud30c\uc77c {0}
+APOC.policies.info.general=\uc791\uc5c5\uc774 \uc131\uacf5\uc801\uc73c\ub85c \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+APOC.policies.info.stored=\ubaa8\ub4e0 \uc124\uc815\uc774 \uc800\uc7a5\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+APOC.policies.info.removed=\ubaa8\ub4e0 \uc124\uc815\uc774 \uc81c\uac70\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+APOC.policies.error.general=\uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.policies.error.removing=\uc124\uc815\uc744 \uc81c\uac70\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. {0}
+APOC.policies.error.storing=\uc124\uc815\uc744 \uc800\uc7a5\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. {0}
+APOC.policies.confirmation.storechanges=\uc124\uc815\uc774 \ubcc0\uacbd\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ubcc0\uacbd \uc0ac\ud56d\uc744 \uc800\uc7a5\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+APOC.policies.info.readonly.access=\uc774 \ud398\uc774\uc9c0\ub294 \uc77d\uae30 \uc804\uc6a9\uc785\ub2c8\ub2e4. \ud398\uc774\uc9c0\ub97c \uc218\uc815\ud560 \uc218 \uc788\ub294 \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.policies.info.readonly.maybe=\ud45c\uc2dc\ub41c \ud504\ub85c\ud30c\uc77c \uc911 \uc801\uc5b4\ub3c4 \ud55c \uac1c \uc774\uc0c1\uc774 \uc77d\uae30 \uc804\uc6a9\uc785\ub2c8\ub2e4. \ud398\uc774\uc9c0\ub97c \uc218\uc815\ud560 \uc218 \uc788\ub294 \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.policies.info.readonly.roles=\uc774 \ud398\uc774\uc9c0\ub294 \uc77d\uae30 \uc804\uc6a9\uc785\ub2c8\ub2e4. \ub85c\uceec \uc815\ucc45\uc744 \uc5ed\ud560\uc5d0 \uc9c0\uc815\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.policies.edit.button=\ud3b8\uc9d1...
+APOC.policies.include_in=\ud3ec\ud568
+APOC.policies.exclude_from=\uc81c\uc678
+APOC.policies.footnote=*\ub294 \ub2e4\ub978 \uc124\uc815\uc774 \uba85\ud655\ud558\uac8c \uc815\uc758\ub418\uc9c0 \uc54a\uc740 \uacbd\uc6b0 \uc790\ub3d9\uc73c\ub85c \ud574\ub2f9 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uae30\ubcf8\uac12\uc744 \ub098\ud0c0\ub0c5\ub2c8\ub2e4.
+APOC.policies.settings_title=\uc124\uc815(\ud504\ub85c\ud30c\uc77c {0})
+
+#*******************************************************************************
+# Content Area
+#
+#*******************************************************************************
+
+APOC.frame.contentarea=\ub0b4\uc6a9 \uc601\uc5ed \ud504\ub808\uc784
+APOC.catabs.policy.des=\uc815\ucc45(\ud0ed \ud398\uc774\uc9c0 \uc5f4\uae30)
+APOC.catabs.policysets.des=\uc9c0\uc815\ub41c \ud504\ub85c\ud30c\uc77c(\ud0ed \ud398\uc774\uc9c0 \uc5f4\uae30)
+APOC.catabs.users.des=\uc0ac\uc6a9\uc790(\ud0ed \ud398\uc774\uc9c0 \uc5f4\uae30)
+APOC.catabs.roles.des=\uc5ed\ud560(\ud0ed \ud398\uc774\uc9c0 \uc5f4\uae30)
+APOC.catabs.assignees.des=\uc9c0\uc815 \ub300\uc0c1(\ud0ed \ud398\uc774\uc9c0 \uc5f4\uae30)
+APOC.ca.backtop=\ub9e8 \uc704\ub85c
+APOC.ca.locale=\ub85c\ucf08
+APOC.ca.path=\uacbd\ub85c
+
+#*******************************************************************************
+# Help
+#
+#*******************************************************************************
+
+APOC.help.helpTooltip=\ub3c4\uc6c0\ub9d0(\uc0c8 \ucc3d \uc5f4\uae30)
+APOC.help.windowTitle=\ub3c4\uc6c0\ub9d0
+
+#*******************************************************************************
+# Navigation Area Common
+#
+#*******************************************************************************
+
+APOC.navigation.search=\uac80\uc0c9
+APOC.navigation.reset=\uc6d0\ub798\ub300\ub85c
+APOC.navigation.search.help=\uac80\uc0c9\ud560 \uc218 \uc788\ub294 \ucc3d\uc744 \uc5fd\ub2c8\ub2e4.
+APOC.navigation.edit.help=\uac80\uc0c9 \ubb38\uc790\uc5f4\uc744 \uc785\ub825\ud569\ub2c8\ub2e4.
+APOC.navigation.close=\ub2eb\uae30
+APOC.navigation.organization=\uc870\uc9c1
+APOC.navigation.organization.with=\uc9c0\uc815\ub41c \ud56d\ubaa9\uc774 \uc788\ub294 \uc870\uc9c1
+APOC.navigation.organizations=\uc870\uc9c1
+APOC.navigation.organizations.help=\uc870\uc9c1 \ud2b8\ub9ac\uc758 \ub8e8\ud2b8\uc785\ub2c8\ub2e4.
+APOC.navigation.user=\uc0ac\uc6a9\uc790
+APOC.navigation.user.with=\uc9c0\uc815\ub41c \ud56d\ubaa9\uc774 \uc788\ub294 \uc0ac\uc6a9\uc790
+APOC.navigation.users=\uc0ac\uc6a9\uc790
+APOC.navigation.role=\uc5ed\ud560
+APOC.navigation.role.with=\uc9c0\uc815\ub41c \ud56d\ubaa9\uc774 \uc788\ub294 \uc5ed\ud560
+APOC.navigation.roles=\uc5ed\ud560
+APOC.navigation.domain=\ub3c4\uba54\uc778
+APOC.navigation.domain.with=\uc9c0\uc815\ub41c \ud56d\ubaa9\uc774 \uc788\ub294 \ub3c4\uba54\uc778
+APOC.navigation.domains=\ub3c4\uba54\uc778
+APOC.navigation.domains.help=\ub3c4\uba54\uc778 \ud2b8\ub9ac\uc758 \ub8e8\ud2b8\uc785\ub2c8\ub2e4.
+APOC.navigation.host=\ud638\uc2a4\ud2b8
+APOC.navigation.host.with=\uc9c0\uc815\ub41c \ud56d\ubaa9\uc774 \uc788\ub294 \ud638\uc2a4\ud2b8
+APOC.navigation.hosts=\ud638\uc2a4\ud2b8
+APOC.navigation.name=\uc774\ub984
+APOC.navigation.actions=\uc791\uc5c5
+APOC.navigation.view=\ubcf4\uae30
+APOC.navigation.view.tooltip=\uc624\ub978\ucabd \ud504\ub808\uc784\uc5d0 \ud574\ub2f9 \uc694\uc18c\uac00 \ud45c\uc2dc\ub429\ub2c8\ub2e4.
+APOC.navigation.area=\ud0d0\uc0c9 \ucc3d
+APOC.navigation.empty=\uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uc5d4\ud2f0\ud2f0\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.navigation.name.label=\uc774\ub984:
+APOC.navigation.type=\uc720\ud615
+APOC.navigation.userTooltip=\uc0ac\uc6a9\uc790(\uc0ac\uc6a9\uc790 \ud0ed \ud398\uc774\uc9c0 \uc5f4\uae30)
+APOC.navigation.hostTooltip=\ud638\uc2a4\ud2b8(\ud638\uc2a4\ud2b8 \ud0ed \ud398\uc774\uc9c0 \uc5f4\uae30)
+APOC.navigation.breadcrumb.tooltip={0}(\uc73c)\ub85c \ub3cc\uc544\uac00\uae30
+APOC.navigation.show=\ud45c\uc2dc:
+APOC.navigation.showDirsOnly=\ub514\ub809\ud1a0\ub9ac\ub9cc
+APOC.navigation.showAll=\ubaa8\ub450
+APOC.navigation.ellipsis=... \uc77c\ubd80 \uc694\uc18c\uac00 \ud45c\uc2dc\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.navigation.openfind=\ucc3e\uae30 \ucc3d\uc744 \uc5fd\ub2c8\ub2e4.
+APOC.navigation.search.target.alert1=\uc120\ud0dd\uc758 \ub300\uc0c1 \ucc3d\uc744 \ud655\uc778\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.\\n\
+\uac80\uc0c9 \ucc3d\uc744 \ub2eb\uc558\ub2e4\uac00 \uc6d0\ud558\ub294 \ub300\uc0c1 \ucc3d\uc5d0\uc11c \ub2e4\uc2dc \uc5ec\uc2ed\uc2dc\uc624.
+
+#*******************************************************************************
+# Navigation Area User Tree Tab
+#
+#*******************************************************************************
+
+APOC.usertree.title=\uc870\uc9c1 \ud2b8\ub9ac
+APOC.usertree.tooltip=\uc870\uc9c1 \ud2b8\ub9ac(\uc870\uc9c1 \ud2b8\ub9ac \ud0ed \ud398\uc774\uc9c0 \uc5f4\uae30)
+APOC.usertree.tableSummary=\uc774 \ud14c\uc774\ube14\uc5d0\ub294 \ud604\uc7ac \uc870\uc9c1\uc758 \uc790\uc2dd\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4. \uac01 \ud589\uc5d0\ub294 \uc790\uc2dd\uc758 \uc774\ub984, \uc720\ud615(\uc870\uc9c1, \uc0ac\uc6a9\uc790 \ub610\ub294 \uc5ed\ud560) \ubc0f \ub9c1\ud06c\uac00 \ud3ec\ud568\ub418\uc5b4 \
+\uc788\uc2b5\ub2c8\ub2e4. \ub9c1\ud06c\ub97c \ud074\ub9ad\ud558\uba74 \ud574\ub2f9 \uc870\uc9c1\uc758 \ub0b4\uc6a9\uc774 \uc624\ub978\ucabd \ud504\ub808\uc784\uc5d0 \ud45c\uc2dc\ub429\ub2c8\ub2e4.
+
+#*******************************************************************************
+# Navigation Area Host Tree Tab
+#
+#*******************************************************************************
+
+APOC.hosttree.title=\ub3c4\uba54\uc778 \ud2b8\ub9ac
+APOC.hosttree.tooltip=\ub3c4\uba54\uc778 \ud2b8\ub9ac(\ub3c4\uba54\uc778 \ud2b8\ub9ac \ud0ed \ud398\uc774\uc9c0 \uc5f4\uae30)
+APOC.hosttree.tableSummary=\uc774 \ud14c\uc774\ube14\uc5d0\ub294 \ud604\uc7ac \ub3c4\uba54\uc778\uc758 \uc790\uc2dd\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4. \uac01 \ud589\uc5d0\ub294 \uc790\uc2dd\uc758 \uc774\ub984, \uc720\ud615(\ub3c4\uba54\uc778 \ub610\ub294 \uc0ac\uc6a9\uc790) \ubc0f \uc624\ub978\ucabd \ud504\ub808\uc784\uc5d0 \
+\ub0b4\uc6a9\uc744 \ud45c\uc2dc\ud558\ub294 \ubcf4\uae30 \ub9c1\ud06c\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+
+#*******************************************************************************
+# Navigation Area Entities Table Filter
+#
+#*******************************************************************************
+
+APOC.entityfilter.titleUsers=\uace0\uae09 \ud544\ud130 - \uc0ac\uc6a9\uc790
+APOC.entityfilter.titleHosts=\uace0\uae09 \ud544\ud130 - \ud638\uc2a4\ud2b8
+APOC.entityfilter.help.title=\ub3c4\uc6c0\ub9d0
+APOC.entityfilter.type.label=\uc720\ud615:
+APOC.entityfilter.filter=\ud544\ud130
+APOC.entityfilter.placeholder=<\ud544\ud130\ub9c1\ud560 \uc774\ub984>
+
+#*******************************************************************************
+# Set Color Dialog
+#
+#*******************************************************************************
+
+APOC.setcolor.edit.alt=\ud314\ub808\ud2b8 \ud3b8\uc9d1(\uc0c8 \ucc3d \uc5f4\uae30)
+APOC.setcolor.title=\ud314\ub808\ud2b8 \ud3b8\uc9d1
+APOC.setcolor.introtext=\ud604\uc7ac \uc0c9\uc774 \uac00\uc6b4\ub370 \uc5f4\uc5d0 \ud45c\uc2dc\ub429\ub2c8\ub2e4. \uc0c9 \ucd94\uac00/\ubc14\uafb8\uae30 \ubc84\ud2bc\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc774 \uc0c9\uc744 \ud314\ub808\ud2b8\uc5d0 \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. "\uc774\ub984" \ud544\ub4dc\uc5d0 \
+\uc774\ub984\uc744 \uc785\ub825\ud558\uc5ec \uc0c9\uc5d0 \uc774\ub984\uc744 \uc5f0\uacb0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc644\ub8cc\ub418\uba74 "\ud655\uc778"\uc744 \ud074\ub9ad\ud558\uc5ec \ubcc0\uacbd \ub0b4\uc6a9\uc744 \ud314\ub808\ud2b8\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4.
+APOC.setcolor.palette.heading=\uc0c9 \ud314\ub808\ud2b8:
+APOC.setcolor.color.heading=\uc0c9:
+APOC.setcolor.color.alt=\ud604\uc7ac \uc0c9\uc740 {0}\uc785\ub2c8\ub2e4.
+APOC.setcolor.red.heading=\ube68\uac15:
+APOC.setcolor.red.increase=\ube68\uac15 \uc99d\uac00
+APOC.setcolor.red.decrease=\ube68\uac15 \uac10\uc18c
+APOC.setcolor.green.heading=\ub179\uc0c9:
+APOC.setcolor.green.increase=\ub179\uc0c9 \uc99d\uac00
+APOC.setcolor.green.decrease=\ub179\uc0c9 \uac10\uc18c
+APOC.setcolor.blue.heading=\ud30c\ub791:
+APOC.setcolor.blue.increase=\ud30c\ub791 \uc99d\uac00
+APOC.setcolor.blue.decrease=\ud30c\ub791 \uac10\uc18c
+APOC.setcolor.hue.heading=\uc0c9\uc870:
+APOC.setcolor.hue.increase=\uc0c9\uc870 \uc99d\uac00
+APOC.setcolor.hue.decrease=\uc0c9\uc870 \uac10\uc18c
+APOC.setcolor.sat.heading=\ucc44\ub3c4:
+APOC.setcolor.sat.increase=\ucc44\ub3c4 \uc99d\uac00
+APOC.setcolor.sat.decrease=\ucc44\ub3c4 \uac10\uc18c
+APOC.setcolor.lum.heading=\uad11\ub3c4:
+APOC.setcolor.lum.increase=\uad11\ub3c4 \uc99d\uac00
+APOC.setcolor.lum.decrease=\uad11\ub3c4 \uac10\uc18c
+APOC.setcolor.html.heading=16\uc9c4\uc218 \uac12:
+APOC.setcolor.original.heading=\uc6d0\ubcf8 \uc0c9:
+APOC.setcolor.original.alt=\uc6d0\ubcf8 \uc0c9\uc740 {0}\uc785\ub2c8\ub2e4.
+APOC.setcolor.wheel.heading=\uc0c9 \uc2a4\ud399\ud2b8\ub7fc:
+APOC.setcolor.wheel.alt=\uc774\ubbf8\uc9c0\ub97c \ud074\ub9ad\ud558\uc5ec \uc2a4\ud399\ud2b8\ub7fc\uc5d0\uc11c \uc0c9\uc744 \uc120\ud0dd\ud558\uace0, x\ucd95\uc5d0\uc11c \uc0c9\uc870\ub97c \uc120\ud0dd\ud558\uace0, y\ucd95\uc5d0\uc11c \ucc44\ub3c4\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4. \uc2a4\ud399\ud2b8\ub7fc\uc5d0\uc11c \ud2b9\uc815 \
+\uc0c9\uc744 \ud074\ub9ad\ud558\uba74 \uac00\uc6b4\ub370 \uc5f4\uc774 \uc5c5\ub370\uc774\ud2b8\ub418\uc5b4 \ud574\ub2f9 \uc0c9\uc774 \ud3ec\ud568\ub429\ub2c8\ub2e4.
+APOC.setcolor.slider.summary=\uc774 \ud14c\uc774\ube14\uc758 \uc544\ubb34 \uc704\uce58\ub098 \ud074\ub9ad\ud558\uc5ec \ud604\uc7ac \uc0c9\uc758 \uad11\ub3c4\ub97c \uc870\uc808\ud569\ub2c8\ub2e4. \uad11\ub3c4\ub294 \uc624\ub978\ucabd\uc5d0\uc11c \uc67c\ucabd\uc73c\ub85c \uc774\ub3d9\ud560\uc218\ub85d \ub0ae\uc544\uc9d1\ub2c8\ub2e4.
+APOC.setcolor.add.button=\uc0c9 \ucd94\uac00 >
+APOC.setcolor.replace.button=\uc0c9 \ubc14\uafb8\uae30 >
+APOC.setcolor.remove.button=\uc0c9 \uc0ad\uc81c
+APOC.setcolor.remove.alert=\uc120\ud0dd\ud55c \ud0c0\uc77c\uc5d0 \uc800\uc7a5\ub41c \ud314\ub808\ud2b8 \uc0c9\uc774 \uc5c6\uc73c\ubbc0\ub85c \uc81c\uac70\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.setcolor.name.alert=\uc9c0\uc815\ub41c \uc0c9 \uc774\ub984\uc774 \uc774\ubbf8 \uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4. \ub2e4\ub978 \uc0c9 \uc774\ub984\uc744 \uc120\ud0dd\ud558\uc2ed\uc2dc\uc624.
+APOC.setcolor.restoreorigcolor.button=\uc0c9 \ubcf5\uc6d0
+APOC.setcolor.restore.button=\uae30\ubcf8\uac12 \ubcf5\uc6d0
+APOC.setcolor.restore.confirm=\uae30\ubcf8 \uc0c9\uc744 \ubcf5\uc6d0\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+APOC.setcolor.increase.tooltip=\uc99d\uac00
+APOC.setcolor.decrease.tooltip=\uac10\uc18c
+APOC.setcolor.tooltip=\uc0c9 \ud3b8\uc9d1 \ub300\ud654 \uc0c1\uc790(\uc0c8 \ucc3d\uc73c\ub85c \uc5f4\uae30)
+APOC.setcolor.replace.alert=\uc0c9\uc744 \ucd94\uac00\ud558\ub824\uba74 \uc0c9 \ucd94\uac00 \ubc84\ud2bc\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
+APOC.setcolor.add.alert=\uae30\uc874 \uc0c9\uc744 \ubc14\uafb8\ub824\uba74 \uc0c9 \ubc14\uafb8\uae30 \ubc84\ud2bc\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
+APOC.setcolor.noname=\uc774\ub984 \uc5c6\uc74c
+APOC.setcolor.invalid.hex=16\uc9c4\uc218 \uac12\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc720\ud6a8\ud55c \uac12\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+
+#*******************************************************************************
+# Chooser
+#
+#*******************************************************************************
+
+APOC.page.chooser.list.editor=\ubaa9\ub85d \ud3b8\uc9d1
+APOC.page.chooser.list.help=\uc544\ub798 \ubaa9\ub85d\uc744 \ud3b8\uc9d1\ud558\uc5ec \ub0b4\uc6a9 \ucc3d\uc758 \ub4dc\ub86d\ub2e4\uc6b4 \uba54\ub274\uc5d0 \ud45c\uc2dc\ub418\ub294 \uc694\uc18c\ub97c \ucd94\uac00\ud558\uac70\ub098 \uc81c\uac70\ud569\ub2c8\ub2e4. '\uae30\ubcf8\uac12 \ubcf5\uc6d0' \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec \
+\ubaa9\ub85d\uc5d0\uc11c \ubaa8\ub4e0 \uc0ac\uc6a9\uc790 \ubcc0\uacbd \uc0ac\ud56d\uc744 \uc81c\uac70\ud569\ub2c8\ub2e4. '\ud655\uc778' \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec \ubcc0\uacbd \ub0b4\uc6a9\uc744 \ubaa9\ub85d\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4.
+APOC.chooser.add=\ucd94\uac00
+APOC.chooser.system_added=(*)\ub294 \ubaa9\ub85d\uc5d0 \uc790\ub3d9\uc73c\ub85c \ucd94\uac00\ub41c \uc694\uc18c\ub97c \uc758\ubbf8\ud569\ub2c8\ub2e4. \uc694\uc18c\uac00 \uae30\ubcf8\uac12\uc774\uac70\ub098 \ud604\uc7ac \ud45c\uc2dc\ub41c \ub4f1\ub85d \uc815\ubcf4\uc5d0 \uc800\uc7a5\ub41c \uac12\uc778 \uacbd\uc6b0 \ud574\ub2f9 \
+\uc694\uc18c\uac00 \ubaa9\ub85d\uc5d0 \uc790\ub3d9\uc73c\ub85c \ucd94\uac00\ub429\ub2c8\ub2e4.
+APOC.chooser.protected.alert=\uc774 \uc694\uc18c\ub294 \uae30\ubcf8\uac12\uc774\uac70\ub098 \uc774 \ud398\uc774\uc9c0 \uc124\uc815\uc5d0 \uc800\uc7a5\ub41c \uac12\uc774\uae30 \ub54c\ubb38\uc5d0 \ubaa9\ub85d\uc5d0\uc11c \uc81c\uac70\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.chooser.selected.alert=\uc774 \uc694\uc18c\ub294 \uc774 \ud398\uc774\uc9c0\uc758 \ub4f1\ub85d \uc815\ubcf4\uc5d0 \ub300\ud574 \ud604\uc7ac \uc120\ud0dd\ub41c \uac12\uc774\uae30 \ub54c\ubb38\uc5d0 \ubaa9\ub85d\uc5d0\uc11c \uc81c\uac70\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.chooser.edit.alt=\ubaa9\ub85d \ud3b8\uc9d1(\uc0c8 \ucc3d \uc5f4\uae30)
+APOC.font.chooser.title=\uae00\uaf34 \ubaa9\ub85d \ud3b8\uc9d1
+APOC.window.border.chooser.title=\ucc3d \ud14c\ub450\ub9ac \uc8fc\uc81c \ubaa9\ub85d \ud3b8\uc9d1
+APOC.window.controls.chooser.title=\ucee8\ud2b8\ub864 \uc8fc\uc81c \ubaa9\ub85d \ud3b8\uc9d1
+APOC.window.icon.chooser.title=\uc544\uc774\ucf58 \uc8fc\uc81c \ubaa9\ub85d \ud3b8\uc9d1
+
+#*******************************************************************************
+# Navigation Area Repository Tab
+#
+#*******************************************************************************
+
+APOC.pool.title=\uc815\ucc45 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac
+APOC.pool.all_profiles=\ubaa8\ub4e0 \ud504\ub85c\ud30c\uc77c
+APOC.pool.all_profiles.help=\uc774 \ud0ed \ud398\uc774\uc9c0\uc5d0\ub294 \ubaa8\ub4e0 \ud504\ub85c\ud30c\uc77c\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4.
+APOC.pool.all_domain_profiles=\ubaa8\ub4e0 \ub3c4\uba54\uc778 \ud504\ub85c\ud30c\uc77c
+APOC.pool.all_org_profiles=\ubaa8\ub4e0 \uc870\uc9c1 \ud504\ub85c\ud30c\uc77c
+APOC.pool.tooltip=\uc815\ucc45 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac(\uc815\ucc45 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ud0ed \ud398\uc774\uc9c0 \uc5f4\uae30)
+APOC.pool.sets=\uc9c0\uc815\ub41c \ud504\ub85c\ud30c\uc77c
+APOC.pool.setsHost=\ud638\uc2a4\ud2b8 \ud504\ub85c\ud30c\uc77c
+APOC.pool.priority=\uc6b0\uc120 \uc21c\uc704
+APOC.pool.actions=&#8212;&nbsp;\ud504\ub85c\ud30c\uc77c \uc791\uc5c5&nbsp;&#8212;
+APOC.pool.new=\uc0c8\ub85c \ub9cc\ub4e4\uae30...
+APOC.pool.delete=\uc0ad\uc81c...
+APOC.pool.import=\uac00\uc838\uc624\uae30...
+APOC.pool.export=\ub0b4\ubcf4\ub0b4\uae30...
+APOC.pool.rename=\uc774\ub984 \ubc14\uafb8\uae30...
+APOC.pool.edit=\uc6b0\uc120 \uc21c\uc704 \ud3b8\uc9d1...
+APOC.pool.add_assignment=\ud504\ub85c\ud30c\uc77c \uc9c0\uc815
+APOC.pool.available_profiles=\uc0ac\uc6a9 \uac00\ub2a5\ud55c \ud504\ub85c\ud30c\uc77c
+APOC.pool.add_assignment_help=\uc774 \ucc3d\uc5d0\uc11c \ud504\ub85c\ud30c\uc77c\uc744 \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.pool.new_button.help=\uc0c8 \ud504\ub85c\ud30c\uc77c\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.
+APOC.pool.delete_button.help=\ud504\ub85c\ud30c\uc77c\uc744 \uc0ad\uc81c\ud569\ub2c8\ub2e4.
+APOC.pool.assign_button.help=\uc9c0\uc815\ud560 \ud504\ub85c\ud30c\uc77c\uc744 \uc120\ud0dd\ud560 \uc218 \uc788\ub294 \uc0c8 \ucc3d\uc744 \uc5fd\ub2c8\ub2e4.
+APOC.pool.unassign_button.help=\ud604\uc7ac \uc870\uc9c1\uc5d0 \uc120\ud0dd\ub41c \ud504\ub85c\ud30c\uc77c\uc758 \uc9c0\uc815\uc744 \ud574\uc81c\ud569\ub2c8\ub2e4.
+APOC.pool.report_button.help=\ubcf4\uace0\uc11c\uac00 \ud3ec\ud568\ub41c \ucc3d\uc744 \uc5fd\ub2c8\ub2e4.
+APOC.pool.tableSummary=\uc774 \ud14c\uc774\ube14\uc5d0\ub294 \uae00\ub85c\ubc8c \ud504\ub85c\ud30c\uc77c\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4. \uac01 \ud589\uc5d0\ub294 \ud504\ub85c\ud30c\uc77c\uc758 \uc774\ub984, \uc6b0\uc120 \uc21c\uc704 \ubc0f \ub9c1\ud06c\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \ub9c1\ud06c\ub97c \
+\ub204\ub974\uba74 \ud574\ub2f9 \ud504\ub85c\ud30c\uc77c\uc758 \ub0b4\uc6a9\uc774 \uc624\ub978\ucabd \ud504\ub808\uc784\uc5d0 \ud45c\uc2dc\ub429\ub2c8\ub2e4.
+APOC.pool.empty=\uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ud504\ub85c\ud30c\uc77c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.pool.deleteMessage=\uc120\ud0dd\ud55c \ud504\ub85c\ud30c\uc77c\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+APOC.pool.tableSummary=\uc774 \ud14c\uc774\ube14\uc5d0\ub294 \ud504\ub85c\ud30c\uc77c \ubaa9\ub85d\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4. \uac01 \ud589\uc5d0\ub294 \ud504\ub85c\ud30c\uc77c\uc758 \uc774\ub984, \uc791\uc131\uc790 \ubc0f \ub9c8\uc9c0\ub9c9\uc73c\ub85c \uc218\uc815\ud55c \ub0a0\uc9dc\uac00 \ud3ec\ud568\ub418\uc5b4 \
+\uc788\uc2b5\ub2c8\ub2e4. \uc774\ub984\uc744 \ud074\ub9ad\ud558\uba74 \ud504\ub85c\ud30c\uc77c\uc758 \ub0b4\uc6a9\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4.
+APOC.pool.empty=\uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ud504\ub85c\ud30c\uc77c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.pool.deleteMessage=\uc120\ud0dd\ud55c \ud504\ub85c\ud30c\uc77c\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+APOC.pool.newMessage=\uc0c8 \ud504\ub85c\ud30c\uc77c \uc774\ub984 \uc785\ub825:
+APOC.pool.newDefault=\uc0c8\uc815\ucc45\uadf8\ub8f9
+APOC.pool.renameMessage=\ud504\ub85c\ud30c\uc77c\uc758 \uc0c8 \uc774\ub984 \uc785\ub825:
+APOC.pool.help.title=\uc815\ucc45 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ub3c4\uc6c0\ub9d0
+APOC.pool.help.text1=\uc815\ucc45 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub294 \ud504\ub85c\ud30c\uc77c\uc744 \uc800\uc7a5\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \ud504\ub85c\ud30c\uc77c\uc740 \uba85\uba85\ub41c \uc815\ucc45 \ucee8\ud14c\uc774\ub108\ub97c \ub9d0\ud569\ub2c8\ub2e4. \ud504\ub85c\ud30c\uc77c\uc758 \uc774\ub984\uc740 \
+\uace0\uc720\ud574\uc57c \ud569\ub2c8\ub2e4.
+APOC.pool.help.text2=\uc0c8 \ud504\ub85c\ud30c\uc77c\uc744 \ub9cc\ub4e0 \ud6c4 \uc774 \ud504\ub85c\ud30c\uc77c\uc5d0 \uad6c\uc131 \uc124\uc815\uc744 \uc800\uc7a5\ud558\uc5ec \uc6d0\ud558\ub294 \uc870\uc9c1, \uc0ac\uc6a9\uc790, \uc5ed\ud560, \ub3c4\uba54\uc778 \ub610\ub294 \ud638\uc2a4\ud2b8\uc5d0 \ucd94\uac00\ud560 \uc218 \
+\uc788\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\ub824\uba74 \ud0d0\uc0c9 \ucc3d\uc5d0\uc11c \uc694\uc18c\ub97c \ud655\uc778\ud558\uace0 \ub0b4\uc6a9 \ucc3d\uc5d0\uc11c "\ud504\ub85c\ud30c\uc77c" \ud0ed \ud398\uc774\uc9c0\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.
+APOC.pool.help.text3=\uad6c\uc131 \uad00\ub9ac \uc2dc \ud504\ub85c\ud30c\uc77c \uc0ac\uc6a9\uc774 \uaf2d \ud544\uc694\ud55c \uac83\uc740 \uc544\ub2c8\uc9c0\ub9cc, \ud504\ub85c\ud30c\uc77c\uc744 \uc0ac\uc6a9\ud558\uba74 \ubcf4\ub2e4 \uc720\uc5f0\ud558\uac8c \uad6c\uc131 \uc124\uc815\uc744 \uad00\ub9ac\ud560 \uc218 \
+\uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 "\ucd08\ubcf4\uc790" \ud504\ub85c\ud30c\uc77c\uc744 \ub9cc\ub4e0 \ud6c4 \ucd08\ubcf4\uc790\uc5d0\uac8c \uc801\ud569\ud55c \uad6c\uc131 \uc124\uc815\uc744 \uc800\uc7a5\ud558\uc5ec \uc870\uc9c1\uc774\ub098 \ub3c4\uba54\uc778 \ud2b8\ub9ac\uc758 \uad6c\uc131\uc6d0\uc5d0 \
+\ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.pool.import.tooltip=\ud504\ub85c\ud30c\uc77c\uc744 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub85c \uac00\uc838\uc635\ub2c8\ub2e4.
+APOC.pool.export.tooltip=\ud504\ub85c\ud30c\uc77c\uc744 \ub0b4\ubcf4\ub0c5\ub2c8\ub2e4.
+APOC.pool.rename.tooltip=\ud504\ub85c\ud30c\uc77c\uc758 \uc774\ub984\uc744 \ubc14\uafc9\ub2c8\ub2e4.
+APOC.pool.import.disabled.tooltip=\ud504\ub85c\ud30c\uc77c\uc744 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub85c \uac00\uc838\uc635\ub2c8\ub2e4(\uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c).
+APOC.pool.export.disabled.tooltip=\ud504\ub85c\ud30c\uc77c\uc744 \ub0b4\ubcf4\ub0c5\ub2c8\ub2e4(\uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c).
+APOC.pool.rename.disabled.tooltip=\ud504\ub85c\ud30c\uc77c\uc758 \uc774\ub984\uc744 \ubc14\uafc9\ub2c8\ub2e4(\uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c).
+
+#*******************************************************************************
+# Navigation Area Priorities
+#
+#*******************************************************************************
+
+APOC.prios.title=\ud504\ub85c\ud30c\uc77c \uc6b0\uc120 \uc21c\uc704
+APOC.prios.help=\uc774 \ud0ed \ud398\uc774\uc9c0\uc5d0\uc11c\ub294 \ud504\ub85c\ud30c\uc77c\uc758 \uc6b0\uc120 \uc21c\uc704\ub97c \ubcc0\uacbd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud55c \uc694\uc18c\uc5d0 \uc6b0\uc120 \uc21c\uc704\uac00 \uac19\uc740 \ud504\ub85c\ud30c\uc77c\uc744 \ub450 \uac1c \uc774\uc0c1 \
+\uc9c0\uc815\ud558\ub294 \uacbd\uc6b0 \uc6b0\uc120 \uc21c\uc704\ub294 \ud504\ub85c\ud30c\uc77c\uc758 \ubcd1\ud569 \uc21c\uc11c\ub97c \uc815\uc758\ud569\ub2c8\ub2e4.
+APOC.prios.up=\uc704\ub85c \uc774\ub3d9
+APOC.prios.down=\uc544\ub798\ub85c \uc774\ub3d9
+
+#*******************************************************************************
+# Navigation Area Profile Import
+#
+#*******************************************************************************
+
+APOC.groupimport.title=\ub85c\uceec \ud30c\uc77c\uc5d0\uc11c \ud504\ub85c\ud30c\uc77c \uac00\uc838\uc624\uae30
+APOC.groupimport.help=\ud604\uc7ac \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub85c \uac00\uc838\uc62c \ub85c\uceec \ud504\ub85c\ud30c\uc77c \ud30c\uc77c\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.
+APOC.groupimport.choosetext=\uac00\uc838\uc62c \ud30c\uc77c:
+APOC.groupimport.defaulttext=<\ud30c\uc77c \uc774\ub984>
+APOC.groupimport.import=\uac00\uc838\uc624\uae30
+APOC.groupimport.error.zip=\uc624\ub958: \ud30c\uc77c\uc740 zip \ud615\uc2dd\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4.
+APOC.importwnd.js.overwrite_alert=\uc774 \uc774\ub984\uc744 \uac00\uc9c4 \ud504\ub85c\ud30c\uc77c\uc774 \uc774\ubbf8 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ud504\ub85c\ud30c\uc77c\uc744 \ub36e\uc5b4\uc4f0\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+APOC.groupimport.importing=\ud504\ub85c\ud30c\uc77c \uac00\uc838\uc624\uae30
+
+#*******************************************************************************
+# Navigation Area Search
+#
+#*******************************************************************************
+
+APOC.search.search=\uac80\uc0c9
+APOC.search.param.help=\uc804\uccb4 \ud2b8\ub9ac\uac00 \uac80\uc0c9\ub429\ub2c8\ub2e4.
+APOC.search.userid.label=\uc0ac\uc6a9\uc790 ID:
+APOC.search.firstname.label=\uc774\ub984:
+APOC.search.lastname.label=\uc131:
+APOC.search.point.label=\uc2dc\uc791 \uc704\uce58:
+APOC.search.perpage.label=\ud398\uc774\uc9c0 \ub2f9 \ud45c\uc2dc\ub418\ub294 \uacb0\uacfc \uc218:
+APOC.search.results=\uacb0\uacfc
+APOC.search.result.help=\uc774 \ud398\uc774\uc9c0\uc5d0\ub294 \uac80\uc0c9 \uacb0\uacfc\uac00 \ub098\uc5f4\ub429\ub2c8\ub2e4. \uacbd\ub85c \uc5f4\uc740 \uc2dc\uc791 \uc704\uce58\uc5d0 \uc0c1\ub300\uc801\uc778 \uacbd\ub85c\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4.
+APOC.search.entitiesFound=\ucc3e\uc740 \uc694\uc18c
+APOC.search.param.title.help=\uac80\uc0c9 \ub9e4\uac1c \ubcc0\uc218\ub97c \uc9c0\uc815\ud569\ub2c8\ub2e4.
+APOC.search.usersFound=\ucc3e\uc740 \uc0ac\uc6a9\uc790
+APOC.search.rolesFound=\ucc3e\uc740 \uc5ed\ud560
+APOC.search.organizationsFound=\ucc3e\uc740 \uc870\uc9c1
+APOC.search.domainsFound=\ucc3e\uc740 \ub3c4\uba54\uc778
+APOC.search.hostsFound=\ucc3e\uc740 \ud638\uc2a4\ud2b8
+APOC.search.all=\ubaa8\ub450 \uac80\uc0c9
+APOC.search.users=\uc0ac\uc6a9\uc790 \uac80\uc0c9
+APOC.search.roles=\uc5ed\ud560 \uac80\uc0c9
+APOC.search.organizations=\uc870\uc9c1 \uac80\uc0c9
+APOC.search.domains=\ub3c4\uba54\uc778 \uac80\uc0c9
+APOC.search.hosts=\ud638\uc2a4\ud2b8 \uac80\uc0c9
+APOC.search.tableSummary=\uc774 \ud14c\uc774\ube14\uc5d0\ub294 \uac80\uc0c9 \uacb0\uacfc\uac00 \ub098\uc5f4\ub429\ub2c8\ub2e4. \uac01 \ud589\uc5d0\ub294 \uc694\uc18c\uc758 \uc774\ub984, \uc720\ud615(\uc870\uc9c1, \uc0ac\uc6a9\uc790 \ub610\ub294 \uc5ed\ud560) \ubc0f \uc804\uccb4 \uacbd\ub85c\uac00 \ud3ec\ud568\ub418\uc5b4 \
+\uc788\uc2b5\ub2c8\ub2e4. \uc8fc \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8 \ucc3d\uc758 \uc67c\ucabd \ud504\ub808\uc784\uc5d0\uc11c \uc774\ub984\uc744 \ud074\ub9ad\ud558\uc5ec \ud574\ub2f9 \uc694\uc18c\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.
+APOC.search.path=\uacbd\ub85c
+APOC.search.userid=\uc0ac\uc6a9\uc790 ID
+APOC.search.title.text=\uac80\uc0c9
+APOC.search.search.help=\ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uac80\uc0c9\ud569\ub2c8\ub2e4.
+APOC.search.reset.help=\uac80\uc0c9 \ub9e4\uac1c \ubcc0\uc218\ub97c \uae30\ubcf8\uac12\uc73c\ub85c \ub2e4\uc2dc \uc124\uc815\ud569\ub2c8\ub2e4.
+APOC.search.cancel.help=\uc774 \ucc3d\uc744 \ub2eb\uc2b5\ub2c8\ub2e4.
+APOC.search.advanced.show.button=\uace0\uae09 \uc635\uc158 \ud45c\uc2dc
+APOC.search.advanced.show.help=\uace0\uae09 \uc635\uc158\uc744 \ud45c\uc2dc\ud569\ub2c8\ub2e4.
+APOC.search.advanced.hide.button=\uace0\uae09 \uc635\uc158 \uc228\uae30\uae30
+APOC.search.advanced.hide.help=\uace0\uae09 \uc635\uc158\uc744 \uc228\uae41\ub2c8\ub2e4.
+APOC.search.advanced.start.label=\uac80\uc0c9 \uc601\uc5ed:
+APOC.search.advanced.restrict.label=\uc81c\ud55c \ubc94\uc704:
+APOC.search.advanced.browse.help=\uac80\uc0c9 \uc2dc\uc791 \uc704\uce58\ub97c \uacb0\uc815\ud558\ub294 \uacbd\ub85c\ub97c \ubcc0\uacbd\ud560 \uc218 \uc788\ub294 \ucc3d\uc744 \uc5fd\ub2c8\ub2e4.
+APOC.search.advanced.start.label=\uac80\uc0c9 \uc601\uc5ed:
+APOC.search.help.title=\uac80\uc0c9 \uc2dc \uc8fc\uc758 \uc0ac\ud56d
+APOC.search.help.text1=\uac80\uc0c9\uc740 \ub300/\uc18c\ubb38\uc790\ub97c \uad6c\ubd84\ud558\uac70\ub098 \uc81c\ud55c\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uac80\uc0c9 \ubb38\uc790\uc5f4 "bc"\ub294 "ABC"\uc640 "bcd"\ub97c \ucc3e\uc2b5\ub2c8\ub2e4.
+APOC.search.help.text2=\ubcc4\ud45c(*)\ub294 \uac80\uc0c9 \ubb38\uc790\uc5f4 \ub0b4 \uc784\uc758\uc758 \ubb38\uc790 \uc2dc\ud000\uc2a4\ub97c \ub098\ud0c0\ub0c5\ub2c8\ub2e4. \uac80\uc0c9 \ubb38\uc790\uc5f4\uc5d0\uc11c \uc6d0\ud558\ub294 \ubaa8\ub4e0 \uc704\uce58\uc5d0 \ub450 \uac1c \uc774\uc0c1\uc758 \ubcc4\ud45c\ub97c \
+\uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.search.help.text3=\ube48 \ud544\ub4dc\ub294 \uac80\uc0c9 \ubb38\uc790\uc5f4\uc774 "*"\uc778 \ud544\ub4dc\uc640 \uac19\uc2b5\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c \ubc18\ud658\ub418\ub294 \ucd5c\ub300 \uacb0\uacfc \uc218\ub294 100\uac1c\uc774\uc9c0\ub9cc, \uc774 \ub9e4\uac1c \ubcc0\uc218\ub294 \
+\uad6c\uc131\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4. \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \uc124\uce58 \uc124\uba85\uc11c\ub97c \ucc38\uc870\ud558\uc2ed\uc2dc\uc624.
+APOC.search.help.inline=\uc774\ub984\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624. \ubcc4\ud45c(*)\ub97c \uc640\uc77c\ub4dc\uce74\ub4dc\ub85c \uc9c0\uc815\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.search.help.inlineUser=\uc0ac\uc6a9\uc790 ID\ub97c \uc785\ub825\ud558\uc2ed\uc2dc\uc624. \ubcc4\ud45c(*)\ub97c \uc640\uc77c\ub4dc\uce74\ub4dc\ub85c \uc9c0\uc815\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.
+
+#*******************************************************************************
+# Content Area - Profiles
+#*******************************************************************************
+APOC.profile.inherited.table=\uc0c1\uc18d\ub41c \ud504\ub85c\ud30c\uc77c
+APOC.profile.page.title=\uc774 \ud0ed \ud398\uc774\uc9c0\uc5d0\ub294 \uc120\ud0dd\ub41c \uc694\uc18c\uc758 \ub0b4\uc6a9\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4.
+APOC.profile.name.text=(\ud504\ub85c\ud30c\uc77c {0})
+APOC.profilemgr.assigned=\uc9c0\uc815\ub428
+APOC.profilemgr.assign=\ud504\ub85c\ud30c\uc77c \uc9c0\uc815...
+APOC.profilemgr.pending=\ubcc0\uacbd \uc0ac\ud56d \uc720\uc9c0
+APOC.profilemgr.author=\uc791\uc131\uc790
+APOC.profilemgr.lastMod=\ub9c8\uc9c0\ub9c9 \uc218\uc815
+APOC.profilemgr.delete=\uc0ad\uc81c
+APOC.profilemgr.moreActions=&#8212;&nbsp;\ucd94\uac00 \uc791\uc5c5&nbsp;&#8212;
+APOC.profilemgr.yes=\uc608
+APOC.profileassi.unassign=\ud504\ub85c\ud30c\uc77c \uc9c0\uc815 \ucde8\uc18c
+APOC.profileassi.manage=\ud504\ub85c\ud30c\uc77c \uad00\ub9ac...
+APOC.profileassi.release=\ub9b4\ub9ac\uc2a4 \ubcc0\uacbd \uc0ac\ud56d...
+APOC.profileassi.releaseNow=\ub9b4\ub9ac\uc2a4
+APOC.profileassi.showResults=\uc720\ud6a8 \uc124\uc815...
+APOC.profileassi.title=\ub9b4\ub9ac\uc2a4 \ubcc0\uacbd \uc0ac\ud56d
+APOC.profileassi.table.empty=\uc9c0\uc815\ub41c \ud504\ub85c\ud30c\uc77c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.profileavail.title=\uc0ac\uc6a9 \uac00\ub2a5\ud55c \ud504\ub85c\ud30c\uc77c
+APOC.profileavail.help=\uc774 \ucc3d\uc5d0\uc11c \ud504\ub85c\ud30c\uc77c\uc744 \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.profileavail.assigning=\ud504\ub85c\ud30c\uc77c \uc9c0\uc815
+APOC.profileall.title=\ubaa8\ub4e0 \ud504\ub85c\ud30c\uc77c
+APOC.profileall.help=\uc774 \ud0ed \ud398\uc774\uc9c0\uc5d0\ub294 \ubaa8\ub4e0 \ud504\ub85c\ud30c\uc77c\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4.
+APOC.profileall.domtable.title=\ubaa8\ub4e0 \ub3c4\uba54\uc778 \ud504\ub85c\ud30c\uc77c
+APOC.profileall.orgtable.title=\ubaa8\ub4e0 \uc870\uc9c1 \ud504\ub85c\ud30c\uc77c
+APOC.profile.search.profile=\ud504\ub85c\ud30c\uc77c \uac80\uc0c9
+APOC.profile.error.storing=\ud504\ub85c\ud30c\uc77c\uc744 \uc800\uc7a5\ud558\ub294 \uc911\uc5d0 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.profile.assigned.delete=\uc120\ud0dd\ud55c \ud504\ub85c\ud30c\uc77c\uc774 \uc801\uc5b4\ub3c4 \ud55c \uac1c\uc758 \uc694\uc18c\uc5d0 \uc9c0\uc815\ub429\ub2c8\ub2e4. \\n\
+ \\n\
+ \uc774 \ud504\ub85c\ud30c\uc77c\uc744 \uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+APOC.profile.unassigned.delete=\uc120\ud0dd\ud55c \ud504\ub85c\ud30c\uc77c\uc758 \ubaa8\ub4e0 \ud504\ub85c\ud30c\uc77c \ub370\uc774\ud130\uac00 \uc0ad\uc81c\ub429\ub2c8\ub2e4. \uacc4\uc18d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+APOC.profiles.default.msg=\uae30\ubcf8\uac12\uc744 \ub098\ud0c0\ub0c5\ub2c8\ub2e4.
+
+#*******************************************************************************
+# Configure Report
+#
+#*******************************************************************************
+
+APOC.configrep.title=\uc720\ud6a8 \uc124\uc815 \ub9e4\uac1c \ubcc0\uc218 \uc218\uc815
+APOC.configrep.help=\uc720\ud6a8 \uc124\uc815\uc744 \uc0dd\uc131\ud558\uae30 \uc704\ud55c \ub9e4\uac1c \ubcc0\uc218\ub97c \uc9c0\uc815\ud569\ub2c8\ub2e4. \uc720\ud6a8 \uc124\uc815\uc758 \uc0dd\uc131\uc5d0 \uad00\ub828\ub41c \uc694\uc18c\ub294 \ub2e4\uc74c \ubaa9\ub85d\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc815\uc758\ud560 \uc218 \
+\uc788\uc2b5\ub2c8\ub2e4. \uac01 \uc720\ud615\uc5d0\uc11c \ud55c \uc694\uc18c\ub97c \uc120\ud0dd\ud558\uba74 \uc120\ud0dd\ud55c \uc694\uc18c\uc758 \uc9c0\uc815\ub41c \ud504\ub85c\ud30c\uc77c\uc5d0 \ud3ec\ud568\ub41c \uc815\ucc45 \uc124\uc815\uc744 \ubcd1\ud569\ud55c \uacb0\uacfc\uac00 \uc720\ud6a8 \uc124\uc815\uc774 \
+\ub429\ub2c8\ub2e4.
+APOC.configrep.effective.settings=\uc720\ud6a8 \uc124\uc815
+APOC.configrep.columns=\uc124\uc815 \uc694\uc57d\uc5d0 \ud45c\uc2dc:
+APOC.configrep.statepath=\uc0c1\ud0dc \uacbd\ub85c
+APOC.configrep.des=\uc124\uba85
+APOC.configrep.reptype=\uc120\ud0dd\ud55c \ud504\ub85c\ud30c\uc77c \uc18c\uc2a4 \ubcd1\ud569 \uc21c\uc11c
+APOC.configrep.orgtree=\uc870\uc9c1 \ud2b8\ub9ac\uc5d0\uc11c \uc694\uc18c \uc120\ud0dd:
+APOC.configrep.domtree=\ub3c4\uba54\uc778 \ud2b8\ub9ac\uc5d0\uc11c \uc694\uc18c \uc120\ud0dd:
+APOC.configrep.typeorg=\uc870\uc9c1 \ud2b8\ub9ac \uc124\uc815
+APOC.configrep.typedom=\ub3c4\uba54\uc778 \ud2b8\ub9ac \uc124\uc815
+APOC.configrep.typeboth=\uc870\uc9c1 \ud2b8\ub9ac \ubc0f \ub3c4\uba54\uc778 \ud2b8\ub9ac \uc124\uc815
+APOC.configrep.button.report=\uc720\ud6a8 \uc124\uc815 \uc0dd\uc131
+
+#*******************************************************************************
+# Report
+#
+#*******************************************************************************
+APOC.report.button.tooltip=\ubcf4\uace0\uc11c\uac00 \ud3ec\ud568\ub41c \ucc3d\uc744 \uc5fd\ub2c8\ub2e4.
+APOC.report.onetree.title={0} "{1}"(\ud638\uc2a4\ud2b8 "{2}")\uc5d0 \ub300\ud55c \uc720\ud6a8 \uc124\uc815
+APOC.report.twotree.title={0} "{1}" \ubc0f {2} "{3}"(\ud638\uc2a4\ud2b8 "{4}")\uc5d0 \ub300\ud55c \uc720\ud6a8 \uc124\uc815
+APOC.report.multipletree.title=\ud638\uc2a4\ud2b8 "{1}"\uc5d0 \uc788\ub294 {0}\uc758 \uc720\ud6a8 \uc124\uc815
+APOC.report.involved.profiles.entity={0} \ud504\ub85c\ud30c\uc77c
+APOC.report.locorg={0}\uc740(\ub294) {1} \uc544\ub798\uc758 \uc870\uc9c1\uc785\ub2c8\ub2e4.
+APOC.report.locrole={0}\uc740(\ub294) {1} \uc544\ub798\uc758 \uc5ed\ud560\uc785\ub2c8\ub2e4.
+APOC.report.locuserid={0}\uc740(\ub294) {1} \uc544\ub798\uc758 \uc0ac\uc6a9\uc790\uc785\ub2c8\ub2e4.
+APOC.report.lochost={0}\uc740(\ub294) {1} \uc544\ub798\uc758 \ud638\uc2a4\ud2b8\uc785\ub2c8\ub2e4.
+APOC.report.locdomain={0}\uc740(\ub294) {1} \uc544\ub798\uc758 \ub3c4\uba54\uc778\uc785\ub2c8\ub2e4.
+APOC.report.rootlocorg={0}\uc740(\ub294) \uc870\uc9c1\uc785\ub2c8\ub2e4.
+APOC.report.rootlocuserid={0}\uc740(\ub294) \uc0ac\uc6a9\uc790\uc785\ub2c8\ub2e4.
+APOC.report.rootlocrole={0}\uc740(\ub294) \uc5ed\ud560\uc785\ub2c8\ub2e4.
+APOC.report.rootlochost={0}\uc740(\ub294) \ud638\uc2a4\ud2b8\uc785\ub2c8\ub2e4.
+APOC.report.rootlocdomain={0}\uc740(\ub294) \ub3c4\uba54\uc778\uc785\ub2c8\ub2e4.
+APOC.report.policygrouploc={0}\uc740(\ub294) \ud504\ub85c\ud30c\uc77c\uc785\ub2c8\ub2e4.
+APOC.report.bothand=\uadf8\ub9ac\uace0
+APOC.report.creator=\ub9cc\ub4e0 \uc774\ub294 {1}\uc758 {0}\uc785\ub2c8\ub2e4.
+APOC.report.createdate=\ub9cc\ub4e0 \ub0a0\uc9dc\ub294 {0}\uc785\ub2c8\ub2e4.
+APOC.report.backendtype=\ubc31\uc5d4\ub4dc \uc720\ud615\uc740 {0}\uc785\ub2c8\ub2e4.
+APOC.report.backendhost=\ubc31\uc5d4\ub4dc \ud638\uc2a4\ud2b8\ub294 {0}\uc785\ub2c8\ub2e4.
+APOC.report.unknown=\uc54c \uc218 \uc5c6\uc74c
+APOC.report.startcat=\uc2dc\uc791 \ubc94\uc8fc\ub294 {0}\uc785\ub2c8\ub2e4.
+APOC.report.contitle=\ubaa9\ucc28
+APOC.report.isbelow=\uc740(\ub294) {0} \uc544\ub798\uc5d0 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.report.table.summary=\uc774 \ud14c\uc774\ube14\uc5d0\ub294 \uad6c\uc131 \uc124\uc815\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4. \uac01 \ud589\uc5d0\ub294 \ub4f1\ub85d \uc815\ubcf4 \uc0c1\ud0dc, \uc774\ub984 \ubc0f \uac12\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.report.table.nameheading=\uc774\ub984
+APOC.report.table.valueheading=\uac12
+APOC.report.table.statusheading=\uc0c1\ud0dc
+APOC.report.table.statuspheading=\uc0c1\ud0dc \uacbd\ub85c
+APOC.report.table.desheading=\uc124\uba85
+APOC.report.table.defined=\uc815\uc758\ub428
+APOC.report.table.protected=\uc2dc\ud589\ub428
+APOC.report.table.readonly=\uc77d\uae30 \uc804\uc6a9
+APOC.report.table.defined.in=\uc815\uc758\ub41c \uc704\uce58
+APOC.report.table.protected.in=\uc0ac\uc6a9\uc790\ub294 \ub36e\uc5b4\uc4f8 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.report.table.readonly.in=\uc77d\uae30 \uc804\uc6a9 \uc704\uce58
+APOC.report.table.pathPG=\ud504\ub85c\ud30c\uc77c:
+APOC.report.table.empty={0}\uc5d0 \uac12\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.report.buttons.print=\uc778\uc1c4
+APOC.report.assigned.profiles.title=\uad00\ub828 \ud504\ub85c\ud30c\uc77c
+APOC.report.settings.summary.title=\uc124\uc815 \uc694\uc57d
+APOC.report.addremove.elements=\uad00\ub828 \uc694\uc18c:
+APOC.report.elements.table.heading=\uad00\ub828 \uc694\uc18c
+APOC.report.elements.table.summary=\uc774 \ud45c\uc5d0\uc11c\ub294 \uc720\ud6a8 \uc124\uc815 \uacb0\uacfc\uc758 \uc0dd\uc131\uc5d0 \uad00\ub828\ub41c \uc694\uc18c\ub97c \uc9c0\uc815\ud569\ub2c8\ub2e4.
+APOC.report.elements.table.title=\uc774 \ubaa9\ub85d\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc720\ud6a8 \uc124\uc815 \uc0dd\uc131\uc5d0 \uad00\ub828\ub41c \uc694\uc18c\ub97c \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.report.add.element=\uc694\uc18c \ucd94\uac00
+APOC.report.remove.element=\uc694\uc18c \uc81c\uac70
+APOC.report.novalues=\uad00\ub828 \uc694\uc18c\uc5d0 \uac12\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.report.xml.parsing.error=\ud504\ub85c\ud30c\uc77c \ub370\uc774\ud130\ub97c \uc77d\ub294 \ub3d9\uc548 XML \uad6c\ubb38 \ubd84\uc11d \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4!
+
+#*******************************************************************************
+# Full-Page Error Alert
+#
+#*******************************************************************************
+
+APOC.pageerror.title=\uc791\uc5c5 \uc2e4\ud328
+APOC.pageerror.comment=\uc774 \ud398\uc774\uc9c0\uc758 HTML \uba54\ubaa8\uc5d0\uc11c \uc624\ub958 \uc2a4\ud0dd \ucd94\uc801\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+
+#*******************************************************************************
+# PolicyMgr Error Messages
+#
+#*******************************************************************************
+
+APOC.error.occurred=\uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.error.open.connection=\uc0ac\uc6a9\uc790 \uc5f0\uacb0\uc744 \uad6c\uc131\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.error.close.connection=\uc5f0\uacb0\uc744 \ub2eb\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.error.user.invalid=\uc0ac\uc6a9\uc790 \uc774\ub984\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.unsupported.datastore=\ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \uc815\ubcf4\uc5d0 \uc9c0\uc815\ub41c \ub370\uc774\ud130 \uc800\uc7a5\uc18c \uc720\ud615\uc774 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.application.initialize=\uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc744 \ucd08\uae30\ud654\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.error.bootstrap.incomplete=\ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \uc815\ubcf4\uac00 \ubd88\uc644\uc804\ud569\ub2c8\ub2e4.
+APOC.error.bootstrap.unavailable=\ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \uc815\ubcf4\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.error.ldap.bootstrap=LDAP \ub514\ub809\ud1a0\ub9ac \uc11c\ubc84\uc5d0 \ub300\ud55c \ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \uc815\ubcf4\uac00 \ubd88\uc644\uc804\ud569\ub2c8\ub2e4.
+APOC.error.org.settings=\uba54\ud0c0 \uad6c\uc131\uc5d0\uc11c \uc870\uc9c1 \uc124\uc815\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.role.settings=\uba54\ud0c0 \uad6c\uc131\uc5d0\uc11c \uc5ed\ud560 \uc124\uc815\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.user.settings=\uba54\ud0c0 \uad6c\uc131\uc5d0\uc11c \uc0ac\uc6a9\uc790 \uc124\uc815\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.create.parser=XML \ud30c\uc11c\ub97c \ub9cc\ub4e4 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.error.filter=\ud544\ud130 \uad6c\ubb38\uc774 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+APOC.error.policy.read=\uc815\ucc45 \ub370\uc774\ud130\ub97c \uc77d\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.error.policy.data.invalid=\uc815\ucc45 \ub370\uc774\ud130\uac00 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.policy.invalid=\uc815\ucc45\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.path.invalid=\uacbd\ub85c\uac00 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.userprofile.attribute=\uc774 \uc18d\uc131\uc740 \uc0ac\uc6a9\uc790 \ud504\ub85c\ud30c\uc77c\uc5d0 \ud3ec\ud568\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.locale.support=\uc774 \ub85c\ucf08\uc740 \uc9c0\uc6d0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.ldap.read=LDAP \uc77d\uae30 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.error.ldap.write=LDAP \uc4f0\uae30 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.error.ldap.search=\uac80\uc0c9 \ub3c4\uc911 LDAP \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.error.ldap.results.size=\uac80\uc0c9 \ub3c4\uc911 LDAP \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. \uacb0\uacfc \ud56d\ubaa9 \uc218\uac00 LDAP \uc11c\ubc84\uc5d0\uc11c \uc124\uc815\ub41c \uc81c\ud55c\ubcf4\ub2e4 \ub9ce\uc2b5\ub2c8\ub2e4.
+APOC.error.ldap.policygroup.creation=\ud504\ub85c\ud30c\uc77c\uc744 \ub9cc\ub4dc\ub294 \ub3d9\uc548 LDAP \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.error.ldap.policygroup.deletion=\ud504\ub85c\ud30c\uc77c\uc744 \uc0ad\uc81c\ud558\ub294 \ub3d9\uc548 LDAP \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.error.ldap.policygroup.rename=\ud504\ub85c\ud30c\uc77c\uc758 \uc774\ub984\uc744 \ubc14\uafb8\ub294 \ub3d9\uc548 LDAP \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.error.unprotect.item=\ubd80\ubaa8 \ud56d\ubaa9\uc774 \ubcf4\ud638\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc774 \ud56d\ubaa9\uc5d0 \ub300\ud55c \ubcf4\ud638\ub97c \ud574\uc81c\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.error.readonly.item=\uc77d\uae30 \uc804\uc6a9 \ud56d\ubaa9\uc740 \ud3b8\uc9d1\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.error.mandatory.remove=\ud544\uc218 \ud56d\ubaa9\uc740 \uc81c\uac70\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.error.comply.constraints=\uac12\uc774 \ub4f1\ub85d \uc815\ubcf4 \uc81c\uc57d \uc870\uac74\uc5d0 \ub9de\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.nillable=\uc774 \ud56d\ubaa9\uc740 nil\uc774 \ub420 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.error.mandatory.setting=\uc774 \ud56d\ubaa9\uc5d0 \ub300\ud55c \ud544\uc218 \uc124\uc815\uc740 \ubcc0\uacbd\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.error.policygroup.priority.exists=\uc774 \uc6b0\uc120 \uc21c\uc704\ub97c \uac00\uc9c4 \ud504\ub85c\ud30c\uc77c\uc774 \uc774\ubbf8 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.error.policygroup.name.exists=\uc774 \uc774\ub984\uc744 \uac00\uc9c4 \ud504\ub85c\ud30c\uc77c\uc774 \uc774\ubbf8 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.error.policygroup.not.exists=\ud504\ub85c\ud30c\uc77c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.error.priorities.incorrect=\ud504\ub85c\ud30c\uc77c \uc6b0\uc120 \uc21c\uc704\uac00 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+APOC.error.policygroup.invalid=\ud504\ub85c\ud30c\uc77c\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.host.invalid=\ud638\uc2a4\ud2b8 \uc774\ub984\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.domain.settings=\uba54\ud0c0 \uad6c\uc131\uc5d0\uc11c \ub3c4\uba54\uc778 \uc124\uc815\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.host.settings=\uba54\ud0c0 \uad6c\uc131\uc5d0\uc11c \ud638\uc2a4\ud2b8 \uc124\uc815\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.error.export.policygroup=\ud504\ub85c\ud30c\uc77c\uc744 \ub0b4\ubcf4\ub0b4\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.error.import.policygroup=\ud504\ub85c\ud30c\uc77c\uc744 \uac00\uc838\uc624\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.error.export.policygroup_data=\ub0b4\ubcf4\ub0bc \ud504\ub85c\ud30c\uc77c \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.error.import.policygroup_data=\uac00\uc838\uc62c \ud504\ub85c\ud30c\uc77c \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
+
+#*******************************************************************************
+# Profile Window Profile
+#
+#*******************************************************************************
+
+APOC.profilewnd.buttons.save=\uc800\uc7a5
+APOC.profilewnd.buttons.close=\ub2eb\uae30
+
+# General Settings Tab
+APOC.profilewnd.general.tab=\uc77c\ubc18 \ub4f1\ub85d \uc815\ubcf4
+APOC.profilewnd.general.title=\uc77c\ubc18 \uc124\uc815
+APOC.profilewnd.general.help=\uc774 \ud504\ub85c\ud30c\uc77c\uc758 \uc77c\ubc18 \ub4f1\ub85d \uc815\ubcf4\ub97c \uc9c0\uc815\ud569\ub2c8\ub2e4.
+APOC.profilewnd.general.name=\uc774\ub984
+APOC.profilewnd.general.namecol=\uc774\ub984:
+APOC.profilewnd.general.comment=\uc124\uba85
+APOC.profilewnd.general.commentcol=\uc124\uba85:
+APOC.profilewnd.general.applicable=\ub2e4\uc74c\uc5d0\uc11c \uc801\uc6a9\ub428
+APOC.profilewnd.general.browse=\ubcc0\uacbd...
+APOC.profilewnd.general.pending=\ubcc0\uacbd \ubcf4\ub958
+APOC.profilewnd.general.author=\uc791\uc131\uc790
+APOC.profilewnd.general.modified=\ub9c8\uc9c0\ub9c9 \uc218\uc815
+APOC.profilewnd.general.new_profile_instructions=\uc0c8 \ud504\ub85c\ud30c\uc77c\uc744 \ub9cc\ub4e4\ub824\uace0 \ud569\ub2c8\ub2e4. \uc774 \uacfc\uc815\uc740 \uae30\ubcf8\uc801\uc73c\ub85c \ub2e4\uc74c\uacfc \uac19\uc774 \uc138 \ub2e8\uacc4\ub97c \uac70\uce69\ub2c8\ub2e4.<br><br>\
+1. \ud504\ub85c\ud30c\uc77c\uc758 \uace0\uc720\ud55c \uc774\ub984\uc744 \uc815\uc758\ud569\ub2c8\ub2e4(\uc544\ub798 \ucc38\uc870).<br>2. \uc5ec\ub7ec \uae30\ubcf8 \ubc0f/\ub610\ub294 \ud544\uc218(\uac15\uc81c) \uc124\uc815\uc744 \
+\uad6c\uc131\ud569\ub2c8\ub2e4("\uad6c\uc131 \uc124\uc815" \ud0ed \ucc38\uc870).<br>3. \uc0c8 \ud504\ub85c\ud30c\uc77c\uc744 \uc6d0\ud558\ub294 {0} \ubc0f/\ub610\ub294 {1}\uc5d0 \uc9c0\uc815\ud569\ub2c8\ub2e4\
+("\uc9c0\uc815\ub41c \uc694\uc18c" \ud0ed \ucc38\uc870).
+APOC.profilewnd.lc_domains=\ub3c4\uba54\uc778
+APOC.profilewnd.lc_hosts=\ud638\uc2a4\ud2b8
+APOC.profilewnd.lc_orgs=\uc870\uc9c1
+APOC.profilewnd.lc_users=\uc0ac\uc6a9\uc790
+APOC.profilewnd.creating_new=\uc0c8 \ud504\ub85c\ud30c\uc77c \ub9cc\ub4e4\uae30
+
+# Assignees Tab
+APOC.profilewnd.assignees.tab=\uc9c0\uc815\ub41c \uc694\uc18c
+APOC.profilewnd.assignees.title=\uc9c0\uc815\ub41c \uc694\uc18c
+APOC.profilewnd.assignees.help=\uc774 \ud504\ub85c\ud30c\uc77c\uc5d0 \uc694\uc18c\ub97c \uc9c0\uc815\ud569\ub2c8\ub2e4.
+APOC.profilewnd.assignees.noorgs=\uc9c0\uc815\ub41c \uc694\uc18c\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.profilewnd.assignees.assign=\uc694\uc18c \uc9c0\uc815...
+APOC.profilewnd.assignees.unassign=\uc694\uc18c \uc9c0\uc815 \ucde8\uc18c
+APOC.profilewnd.assignees.nameColumn=\uc774\ub984
+
+# Configuration Settings Tab
+APOC.profilewnd.settings.tab=\uad6c\uc131 \uc124\uc815
+APOC.profilewnd.settings.title=\uad6c\uc131 \uc124\uc815
+APOC.profilewnd.settings.Enable=\ud65c\uc131\ud654
+APOC.profilewnd.settings.Disable=\ube44\ud65c\uc131\ud654
+APOC.profilewnd.settings.Edit=\uac12 \ud3b8\uc9d1...
+APOC.profilewnd.settings.title.help=\uc544\ub798 \ub098\uc5f4\ub41c \ubc94\uc8fc \uc911 \ud558\ub098\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.
+APOC.profilewnd.settings.Actions=\uace0\uae09...
+APOC.profilewnd.settings.more=&#8212;&nbsp;\ucd94\uac00 \uc791\uc5c5&nbsp;&#8212;
+APOC.profilewnd.settings.enforce=\uc2dc\ud589
+APOC.profilewnd.settings.unenforce=\uc2dc\ud589 \uc7ac\uc124\uc815
+APOC.profilewnd.settings.undo=\ubcc0\uacbd \ubcf4\ub958 \ucde8\uc18c
+APOC.profilewnd.settings.default=\uae30\ubcf8\uac12 \ubcf5\uc6d0
+APOC.profilewnd.settings.nameColumn=\uc774\ub984
+APOC.profilewnd.settings.valueColumn=\uac12
+APOC.profilewnd.settings.enabledColumn=\uc0ac\uc6a9
+APOC.profilewnd.settings.enforcedColumn=\uc2dc\ud589\ub428
+APOC.profilewnd.settings.pendingColumn=\ubcc0\uacbd \ubcf4\ub958
+APOC.profilewnd.settings.overwrite=\uc0ac\uc6a9\uc790\ub294 \ub36e\uc5b4\uc4f8 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.profilewnd.settings.defaultLabel=\uae30\ubcf8\uac12:
+APOC.profilewnd.settings.setToDefaultLabel=\uae30\ubcf8\uac12\uc73c\ub85c \uc124\uc815
+
+# Configuration Tree
+APOC.profilewnd.tree.view.all=\ubaa8\ub450
+APOC.profilewnd.tree.view.pending=\ubcc0\uacbd \ubcf4\ub958
+APOC.profilewnd.advanced.tab=\uace0\uae09 \uc635\uc158
+APOC.profilewnd.advanced.pagetitle_help=\ud504\ub85c\ud30c\uc77c\uc758 \ubcd1\ud569 \uc21c\uc11c \ub4f1 \uace0\uae09 \uc635\uc158\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4.
+APOC.profilewnd.advanced.merge_order=\ubcd1\ud569 \uc21c\uc11c:
+APOC.profilewnd.buttons.save.help=\ubcc0\uacbd \uc0ac\ud56d\uc744 \uc800\uc7a5\ud569\ub2c8\ub2e4.
+APOC.profilewnd.buttons.close.help=\uc774 \ucc3d\uc744 \ub2eb\uc2b5\ub2c8\ub2e4.
+APOC.profilewnd.buttons.ok_assign.help=\uc120\ud0dd\ud55c \ud504\ub85c\ud30c\uc77c\uc744 \ud604\uc7ac \uc694\uc18c\uc5d0 \uc9c0\uc815\ud569\ub2c8\ub2e4.
+
+APOC.profilewnd.js.alert1=\uc774 \ud398\uc774\uc9c0\uc5d0 \uc800\uc7a5\ub418\uc9c0 \uc54a\uc740 \ubcc0\uacbd \uc0ac\ud56d\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ubcc0\uacbd \uc0ac\ud56d\uc744 \uc800\uc7a5\ud558\uace0 \uc774 \ucc3d\uc744 \ub2eb\uaca0\uc2b5\ub2c8\uae4c?
+APOC.profilewnd.js.alert2=\uc774 \ud0ed\uc5d0 \uc800\uc7a5\ub418\uc9c0 \uc54a\uc740 \ubcc0\uacbd \uc0ac\ud56d\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ubcc0\uacbd \uc0ac\ud56d\uc744 \uc800\uc7a5\ud558\uace0 \uacc4\uc18d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+APOC.profilewnd.js.alert3=\uc774 \ubc94\uc8fc\uc5d0 \uc800\uc7a5\ub418\uc9c0 \uc54a\uc740 \ubcc0\uacbd \uc0ac\ud56d\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ubcc0\uacbd \uc0ac\ud56d\uc744 \uc800\uc7a5\ud558\uace0 \uacc4\uc18d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+APOC.profilewnd.js.alert4=\uc774 \ud398\uc774\uc9c0\uc5d0 \uc800\uc7a5\ub418\uc9c0 \uc54a\uc740 \ubcc0\uacbd \uc0ac\ud56d\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ubcc0\uacbd \uc0ac\ud56d\uc744 \uc800\uc7a5\ud558\uace0 \uc0c8 \ud56d\ubaa9\uc744 \ucd94\uac00\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+APOC.profilewnd.js.alert5=\uc0c8 \ubaa9\ub85d \ud56d\ubaa9\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+
+#Settings Summary
+APOC.profilewnd.summary.help=\uc774 \ud504\ub85c\ud30c\uc77c\uc5d0 \ub300\ud574 \uad6c\uc131\ub41c \uc124\uc815\uc744 \ubd05\ub2c8\ub2e4.
+
+# Add Context Wizard
+APOC.wiz.title=\uc0c8 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ub9c8\ubc95\uc0ac
+APOC.wiz.edit.title=\uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ud3b8\uc9d1 \ub9c8\ubc95\uc0ac
+APOC.wiz.steptext.2=\ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \uc138\ubd80 \uc815\ubcf4
+APOC.wiz.steptext.3=LDAP \uc138\ubd80 \uc815\ubcf4
+APOC.wiz.steptext.4=LDAP \uc790\uaca9 \uc99d\uba85
+APOC.wiz.steptext.5=LDAP \uc11c\ubc84 \uc720\ud615
+APOC.wiz.steptext.6=LDAP \uba54\ud0c0 \uad6c\uc131 \uc635\uc158
+APOC.wiz.steptext.7=LDAP \uba54\ud0c0 \uad6c\uc131 \ud3b8\uc9d1\uae30
+APOC.wiz.steptext.8=\uae30\ubcf8 DN \uc120\ud0dd
+APOC.wiz.steptext.9=\uae30\ubcf8 DN
+APOC.wiz.steptext.10=\uac80\ud1a0
+APOC.wiz.steptext.11=\uacb0\uacfc
+APOC.wiz.steptext.12=\ub370\uc774\ud130 \ub514\ub809\ud1a0\ub9ac \uc120\ud0dd
+APOC.wiz.steptext.13=\uae30\uc874 \uc124\uce58 \uc635\uc158
+APOC.wiz.steptext.14=\ud504\ub85c\ud30c\uc77c \uc815\ubcf4 \ub9c8\uc774\uadf8\ub808\uc774\uc158
+APOC.wiz.steptext.15=LDAP \uad00\ub9ac\uc790 \uc790\uaca9 \uc99d\uba85
+APOC.wiz.help.2=<p>\ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \uc774\ub984\uacfc \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc788\ub294 \ub3c4\uba54\uc778 \ubc0f \uc870\uc9c1 \uc694\uc18c\uc5d0 \uc0ac\uc6a9\ud560 \uacc4\uce35 \ubc0f \uc800\uc7a5\uc18c \uc720\ud615\uc744 \uc21c\uc218\ud55c LDAP \
+\uae30\ubc18 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac, \uc21c\uc218\ud55c \ud30c\uc77c \uae30\ubc18 \ub610\ub294 \ud558\uc774\ube0c\ub9ac\ub4dc \uc911\uc5d0\uc11c \uc120\ud0dd\ud569\ub2c8\ub2e4.</p><p>\uc21c\uc218\ud55c \
+LDAP \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0\uc11c\ub294 \uc870\uc9c1 \uacc4\uce35, \ud504\ub85c\ud30c\uc77c \uc124\uc815 \ubc0f \ud504\ub85c\ud30c\uc77c \uc9c0\uc815\uc5d0 \uad00\ud55c \ubaa8\ub4e0 \uc815\ubcf4\uac00 LDAP \uc11c\ubc84\uc5d0 \uc800\uc7a5\ub418\uace0, \
+\ub9c8\ucc2c\uac00\uc9c0\ub85c \uc21c\uc218 \ud30c\uc77c \uae30\ubc18 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0\uc11c\ub294 \ubaa8\ub4e0 \uc815\ubcf4\uac00 Sun Java Web Console\uc774 \uc124\uce58\ub41c \uc2dc\uc2a4\ud15c\uc758 \uc0ac\uc6a9\uc790 \
+\uc9c0\uc815 \ub514\ub809\ud1a0\ub9ac\uc5d0 \uc800\uc7a5\ub429\ub2c8\ub2e4.<br>\ud558\uc774\ube0c\ub9ac\ub4dc \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0\uc11c\ub294 \uc870\uc9c1 \uacc4\uce35 \uc815\ubcf4\ub97c LDAP \uc11c\ubc84\uc5d0\uc11c \uac00\uc838\uc624\uace0, \
+\ubaa8\ub4e0 \ud504\ub85c\ud30c\uc77c \uc124\uc815\uacfc \ud504\ub85c\ud30c\uc77c \uc9c0\uc815\uc740 \ud30c\uc77c \uae30\ubc18 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0\uc11c\uc640 \uac19\uc774 \uc800\uc7a5\ub429\ub2c8\ub2e4.</p>
+APOC.wiz.help.3=<p>LDAP \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc0ac\uc6a9\ud560 LDAP \uc11c\ubc84\uc758 \ud638\uc2a4\ud2b8 \uc774\ub984\uacfc \ud3ec\ud2b8\ub97c \uc785\ub825\ud569\ub2c8\ub2e4.</p><\
+p>SSL\uc744 \uc0ac\uc6a9\ud558\ub294 LDAP \uc11c\ubc84\ub97c \uad6c\uc131\ud558\ub824\uba74 "SSL \uc0ac\uc6a9" \ud655\uc778\ub780\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.</p>
+APOC.wiz.help.4=<p>\uc775\uba85 \uc561\uc138\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec LDAP \uc11c\ubc84\uc5d0\uc11c \uc77d\uc744 \uc218 \uc5c6\uc73c\uba74 "\uc0ac\uc6a9\uc790 DN" \ubc0f "\uc0ac\uc6a9\uc790 \uc554\ud638" \ud544\ub4dc\uc5d0 \uc77d\uae30 \
+\uad8c\ud55c\uc774 \uc788\ub294 \uc0ac\uc6a9\uc790\uc758 \uc554\ud638\uc640 \uc815\uaddc\ud654\ub41c DN\uc744 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4.<br>\uc774 \uc815\ubcf4\ub294 \uc720\uc9c0\ub418\uba70 \uc0ac\uc6a9\uc790\uac00 \uc815\uaddc\ud654\ub41c \
+DN\ubcf4\ub2e4 UID\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc774 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \ub85c\uadf8\uc778\ud558\uae30 \uc704\ud574 \ud544\uc694\ud569\ub2c8\ub2e4.</p>
+APOC.wiz.help.5=<p>\uad6c\uc131 \uc911\uc778 LDAP \uc11c\ubc84\uc758 \uc720\ud615\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4. \uc774 \uc815\ubcf4\ub294 \uc11c\ubc84\uc5d0 \uc81c\uacf5\ud560 \uae30\ubcf8 \uba54\ud0c0 \uad6c\uc131\uc744 \uacb0\uc815\ud558\ub294 \ub370 \
+\ud544\uc694\ud569\ub2c8\ub2e4.</p><p>\uba54\ud0c0 \uad6c\uc131\uc740 LDAP \uc694\uc18c(\uc0ac\uc6a9\uc790, \uc5ed\ud560, \uc870\uc9c1, \ub3c4\uba54\uc778 \ubc0f \ud638\uc2a4\ud2b8)\ub97c \
+\uc2dd\ubcc4\ud558\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \uc18d\uc131\uacfc \uac1c\uccb4 \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud569\ub2c8\ub2e4.</p>
+APOC.wiz.help.6=<p>\uae30\ubcf8 \uba54\ud0c0 \uad6c\uc131\uc744 \ud3b8\uc9d1\ud560\uc9c0 \uc5ec\ubd80\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.</p><p>\uba54\ud0c0 \uad6c\uc131\uc740 \uc0ac\uc6a9\uc790, \uc5ed\ud560, \
+\uc870\uc9c1, \ub3c4\uba54\uc778 \ubc0f \ud638\uc2a4\ud2b8 \ub4f1 LDAP \uc5d4\ud2f0\ud2f0\ub97c \uc2dd\ubcc4\ud558\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \uc18d\uc131\uacfc \uac1c\uccb4 \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud569\ub2c8\ub2e4.</p>
+APOC.wiz.help.7=<p>\uc81c\uacf5\ub41c \ud14d\uc2a4\ud2b8 \uc601\uc5ed\uc5d0\uc11c \uba54\ud0c0 \uad6c\uc131\uc744 \ud3b8\uc9d1\ud569\ub2c8\ub2e4.</p><p>\uba54\ud0c0 \uad6c\uc131\uc740 \uc0ac\uc6a9\uc790, \
+\uc5ed\ud560, \uc870\uc9c1, \ub3c4\uba54\uc778 \ubc0f \ud638\uc2a4\ud2b8 \ub4f1\uc758 LDAP \uc694\uc18c\ub97c \uc2dd\ubcc4\ud558\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \uc18d\uc131\uacfc \uac1c\uccb4 \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud569\ub2c8\ub2e4.<\
+/p>
+APOC.wiz.help.8=<p>\uc81c\uacf5\ub41c \ubaa9\ub85d\uc5d0\uc11c \uc774 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc0ac\uc6a9\ud560 \uae30\ubcf8 DN\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.</p>
+APOC.wiz.help.9=<p>\uc774 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc0ac\uc6a9\ud560 \uae30\ubcf8 DN\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.</p>
+APOC.wiz.help.10=<p>\uc81c\uacf5\ub41c \uc124\uc815\uc744 \uac80\ud1a0\ud558\uace0 "\ub9c8\uce68"\uc744 \ub20c\ub7ec \uc0c8 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ub9cc\ub4e4\uae30\ub97c \uc644\ub8cc\ud569\ub2c8\ub2e4.</p>\
+<p>\uc21c\uc218\ud55c LDAP \uc124\uce58\uc758 \uacbd\uc6b0 "\ub9c8\uce68" \ubc84\ud2bc\uc744 \ub204\ub974\uba74 LDAP \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uac00 \uc5c5\ub370\uc774\ud2b8\ub418\uace0 LDAP \uacc4\uce35\uc5d0 "\uc11c\ube44\uc2a4" \
+\ubd84\uae30\uac00 \ucd94\uac00\ub429\ub2c8\ub2e4.</p>
+APOC.wiz.help.edit.10=<p>\uc81c\uacf5\ub41c \uc124\uc815\uc744 \uac80\ud1a0\ud558\uace0 "\ub9c8\uce68"\uc744 \ub20c\ub7ec \uae30\uc874 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \uc5c5\ub370\uc774\ud2b8\ub97c \uc644\ub8cc\ud569\ub2c8\ub2e4.</p>\
+<p>\uc21c\uc218\ud55c LDAP \uc124\uce58\uc758 \uacbd\uc6b0 "\ub9c8\uce68" \ubc84\ud2bc\uc744 \ub204\ub974\uba74 LDAP \uc11c\ubc84 \uc2a4\ud0a4\ub9c8\uac00 \uc5c5\ub370\uc774\ud2b8\ub418\uace0 LDAP \uacc4\uce35\uc5d0 \
+"\uc11c\ube44\uc2a4" \ubd84\uae30\uac00 \ucd94\uac00\ub429\ub2c8\ub2e4.</p>
+APOC.wiz.help.11=<p>\uc124\uce58 \uacb0\uacfc\uac00 \uc81c\uacf5\ub41c \uc601\uc5ed\uc5d0 \ud45c\uc2dc\ub429\ub2c8\ub2e4.</p>
+APOC.wiz.help.12=<p>\uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \ud504\ub85c\ud30c\uc77c \ubc0f \uc9c0\uc815 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud560 \ub514\ub809\ud1a0\ub9ac\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4. \uc124\uce58 \uc808\ucc28\uc5d0\uc11c\ub294 \ud504\ub85c\ud30c\uc77c \ubc0f \
+\uc9c0\uc815 \uc815\ubcf4\ub97c \uc800\uc7a5\ud560 "profiles" \ubc0f "assignments" \ub514\ub809\ud1a0\ub9ac\ub97c \ub9cc\ub4ed\ub2c8\ub2e4. \uc21c\uc218\ud55c \ud30c\uc77c \uae30\ubc18 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \
+\uacbd\uc6b0 \uacc4\uce35 \uc815\ubcf4\ub294 "entities.txt"\ub77c\ub294 \ud3b8\uc9d1 \uac00\ub2a5\ud55c \ud30c\uc77c\uc5d0 \uc800\uc7a5\ub429\ub2c8\ub2e4. \ud558\uc774\ube0c\ub9ac\ub4dc \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \uacbd\uc6b0\uc5d0\ub294 LDAP \
+\uc5d4\ud2f0\ud2f0\ub97c \uc2dd\ubcc4\ud558\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \uc18d\uc131 \ubc0f \uac1d\uccb4 \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud558\ub294 \uba54\ud0c0 \uad6c\uc131\uc774 "OrganizationMapping.\
+properties" \ubc0f "UserProfileMapping.properties"\ub77c\ub294 \ud3b8\uc9d1 \uac00\ub2a5\ud55c \ud30c\uc77c\uc5d0 \uc800\uc7a5\ub429\ub2c8\ub2e4. \
+</p>
+APOC.wiz.help.13=<p>\uae30\uc874 Desktop Manager \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub294 \uc9c0\uc815\ud55c \ub514\ub809\ud1a0\ub9ac\uc5d0 \uc124\uce58\ub429\ub2c8\ub2e4. \uc774 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0\ub294 \
+\uc720\uc9c0\ud558\uace0 \uc2f6\uc740 \uacc4\uce35, \ud504\ub85c\ud30c\uc77c \ubc0f \uc9c0\uc815 \uc815\ubcf4\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc744 \uc218 \uc788\uc73c\uba70, \uadf8\ub7f0 \uacbd\uc6b0\uc5d0\ub294 \uae30\uc874 \uc124\uce58 \ub370\uc774\ud130\ub97c \ubcf4\uc874\ud569\ub2c8\ub2e4. \
+\uadf8\ub807\uc9c0 \uc54a\uc740 \uacbd\uc6b0 \uc0c8 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \uc804\uccb4\ub97c \ub9cc\ub4e4\ub824\uba74 \uae30\uc874 \uc124\uce58\ub97c \ub36e\uc5b4\uc501\ub2c8\ub2e4.</p>
+APOC.wiz.help.14=<p>\ud504\ub85c\ud30c\uc77c \ubc0f \uc9c0\uc815 \uc815\ubcf4\ub294 \uc774\uc804 \ubc84\uc804\uc758 Desktop Manager\uc640 \ubc84\uc804 2.0\uc5d0\uc11c LDAP\uc758 \ub2e4\ub978 \uc704\uce58\uc5d0 \
+\uc800\uc7a5\ub429\ub2c8\ub2e4. \uc774\uc804 \ubc84\uc804\uc758 Desktop Manager\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc800\uc7a5\ud55c \ud504\ub85c\ud30c\uc77c \ubc0f \uc9c0\uc815\uc744 \uc774 \ubc84\uc804\uc758 \uc0c8 \uc704\uce58\ub85c \
+\ub9c8\uc774\uadf8\ub808\uc774\uc158\ud560 \uac83\uc778\uc9c0 \uc5ec\ubd80\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4. </p><p>\uc774\uc804 \ubc84\uc804\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc800\uc7a5\ub41c \ud504\ub85c\ud30c\uc77c\uc740 \uc5ec\uc804\ud788 \
+Desktop Manager\ub97c \ud1b5\ud574 \ubcfc \uc218 \uc788\uc9c0\ub9cc LDAP\uc5d0\uc11c\uc758 \uc800\uc7a5\uc18c \uc704\uce58\ub294 \ubcc0\uacbd\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ud504\ub85c\ud30c\uc77c\uc744 \
+\ub9c8\uc774\uadf8\ub808\uc774\uc158\ud558\uba74 \ubc84\uc804 1.x \ud504\ub85c\ud30c\uc77c \uc815\ubcf4\uac00 \ud55c \uc704\uce58\uc5d0 \uc800\uc7a5\ub418\uace0 \ubc84\uc804 2.0 \ud504\ub85c\ud30c\uc77c \uc815\ubcf4\uac00 \ub2e4\ub978 \uc704\uce58\uc5d0 \uc800\uc7a5\ub418\ub294 \uac83\uc744 \
+\ubc29\uc9c0\ud558\uc5ec LDAP \uc11c\ubc84\ub97c \uae54\ub054\ud558\uac8c \uad00\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.</p>
+APOC.wiz.help.15=<p>"\uad00\ub9ac\uc790 DN" \ubc0f "\uad00\ub9ac\uc790 \uc554\ud638" \ud544\ub4dc\uc5d0 LDAP \uc11c\ubc84\uc5d0 \ub300\ud55c \uc77d\uae30/\uc4f0\uae30 \uc561\uc138\uc2a4 \uad8c\ud55c\uc744 \uac00\uc9c4 \uc0ac\uc6a9\uc790\uc758 \
+DN \ubc0f \uc554\ud638\ub97c \uc785\ub825\ud569\ub2c8\ub2e4.<br>\uc774 \uc790\uaca9 \uc99d\uba85\uc740 Desktop Manager\uac00 LDAP \uc11c\ubc84\uc5d0\uc11c \ud544\uc694\ub85c \ud558\ub294 \
+\uc2a4\ud0a4\ub9c8, \uc18d\uc131, \uac1d\uccb4 \ud074\ub798\uc2a4 \ubc0f \uc5d4\ud2f0\ud2f0\uc758 \uc124\uce58\uc5d0\ub9cc \uc0ac\uc6a9\ub418\uba70, \uc720\uc9c0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.</p>
+APOC.wiz.help.15a=<p>"\uad00\ub9ac\uc790 DN" \ubc0f "\uad00\ub9ac\uc790 \uc554\ud638" \ud544\ub4dc\uc5d0 LDAP \uc11c\ubc84\uc5d0 \ub300\ud55c \uc77d\uae30/\uc4f0\uae30 \uad8c\ud55c\uc744 \uac00\uc9c4 \uc0ac\uc6a9\uc790\uc758 DN \ubc0f \
+\uc554\ud638\ub97c \uc785\ub825\ud569\ub2c8\ub2e4.<br>\uc774 \uc790\uaca9 \uc99d\uba85\uc740 LDAP \uc11c\ubc84\uc5d0\uc11c \ud504\ub85c\ud30c\uc77c\uacfc \uc9c0\uc815 \uc815\ubcf4\ub97c \ub9c8\uc774\uadf8\ub808\uc774\uc158\ud558\ub294 \ub370\ub9cc \
+\uc0ac\uc6a9\ub418\uba70, \uc720\uc9c0\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.</p>
+APOC.wiz.instruction.2=\ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \uc774\ub984\uc744 \uc120\ud0dd\ud558\uace0 \ub3c4\uba54\uc778 \ubc0f \uc870\uc9c1 \uc694\uc18c\uc5d0 \uc0ac\uc6a9\ud560 \uacc4\uce35 \ubc0f \uc800\uc7a5\uc18c \uc635\uc158\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.
+APOC.wiz.instruction.3=\uc774 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \ub300\ud574 \uad6c\uc131\ud560 LDAP \uc11c\ubc84\uc758 \uc138\ubd80 \uc815\ubcf4\ub97c \uc785\ub825\ud569\ub2c8\ub2e4. \uc11c\ubc84\uc5d0\uc11c \uc2e4\ud589\ud558\ub294 \ud638\uc2a4\ud2b8 \uc774\ub984\uacfc \ud3ec\ud2b8\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \
+SSL\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc774 \uc11c\ubc84\uc5d0 \uc5f0\uacb0\ud560\uc9c0 \uc5ec\ubd80\ub3c4 \uc120\ud0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.wiz.instruction.4=\uc0ac\uc6a9\uc790\uac00 \uc815\uaddc\ud654\ub41c DN \ub300\uc2e0\uc5d0 UID\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \ub85c\uadf8\uc778\ud558\ub824\uba74 \ud574\ub2f9 "\uc0ac\uc6a9\uc790 DN" \ubc0f "\uc0ac\uc6a9\uc790 \uc554\ud638" \ud544\ub4dc\uc5d0 \
+\uc775\uba85 \uc561\uc138\uc2a4\uac00 \uac00\ub2a5\ud558\uac70\ub098 \uc77d\uae30 \uad8c\ud55c\uc744 \uac00\uc9c4 \uc0ac\uc6a9\uc790\uac00 \uc554\ud638 \ubc0f \uc815\uaddc\ud654\ub41c DN\uc744 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4.
+APOC.wiz.instruction.5=\ub2e4\ub978 \uc0c1\ud45c\uc758 LDAP \uc11c\ubc84\uc5d0\ub294 \ub2e4\ub978 \uc124\uce58 \uc808\ucc28\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc0c8 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc0ac\uc6a9\ud560 LDAP \uc11c\ubc84 \uc720\ud615\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.
+APOC.wiz.instruction.6=\uba54\ud0c0 \uad6c\uc131\uc740 LDAP \uc5d4\ud2f0\ud2f0 \uc989, \uc0ac\uc6a9\uc790, \uc5ed\ud560, \uc870\uc9c1, \ub3c4\uba54\uc778 \ubc0f \ud638\uc2a4\ud2b8\ub97c \uc2dd\ubcc4\ud558\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \uc18d\uc131\uacfc \uac1c\uccb4 \ud074\ub798\uc2a4\ub97c \
+\uc815\uc758\ud569\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c \uc801\ud569\ud55c \uac12\uc774 \uc81c\uacf5\ub418\uc9c0\ub9cc \uc0ac\uc6a9\uc790\ub294 \ud544\uc694\uc5d0 \ub530\ub77c \uac12\uc744 \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 LDAP \uc11c\ubc84 \uc720\ud615\uc5d0 \
+\uc0ac\uc6a9\ud560 \uae30\ubcf8 \uba54\ud0c0 \uad6c\uc131\uc744 \ud3b8\uc9d1\ud560\uc9c0 \uc5ec\ubd80\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.
+APOC.wiz.instruction.7=\uc544\ub798 \ud14d\uc2a4\ud2b8 \uc601\uc5ed\uc5d0\uc11c \uae30\ubcf8 \uba54\ud0c0 \uad6c\uc131\uc744 \ud3b8\uc9d1\ud569\ub2c8\ub2e4.
+APOC.wiz.instruction.8=\uc544\ub798 \ubaa9\ub85d\uc5d0 \uc9c0\uc815\ub41c LDAP \uc11c\ubc84\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ubaa8\ub4e0 \uae30\ubcf8 DN\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4. \uc774 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc0ac\uc6a9\ud560 \uae30\ubcf8 \
+DN\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.
+APOC.wiz.instruction.9=\uc9c0\uc815\ub41c LDAP \uc11c\ubc84\uc758 \uc720\ud6a8\ud55c \uae30\ubcf8 DN\uc774 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc124\uce58\ud558\ub294 \ub370 \ud544\uc694\ud569\ub2c8\ub2e4. \uc774 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc0ac\uc6a9\ud560 \uae30\ubcf8 \
+DN\uc744 \uc785\ub825\ud569\ub2c8\ub2e4.
+APOC.wiz.instruction.10=\uc785\ub825\ud55c \uc124\uc815\uc744 \uac80\ud1a0\ud569\ub2c8\ub2e4. \ub9c8\uce68\uc744 \ub20c\ub7ec \uc0c8 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ub9cc\ub4e4\uae30\ub97c \uc644\ub8cc\ud569\ub2c8\ub2e4.
+APOC.wiz.instruction.edit.10=\uc785\ub825\ud55c \uc124\uc815\uc744 \uac80\ud1a0\ud569\ub2c8\ub2e4. \ub9c8\uce68\uc744 \ub20c\ub7ec \uae30\uc874 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \uc5c5\ub370\uc774\ud2b8\ub97c \uc644\ub8cc\ud569\ub2c8\ub2e4.
+APOC.wiz.instruction.11=
+APOC.wiz.instruction.12=\uc774 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \ud504\ub85c\ud30c\uc77c \ubc0f \uc9c0\uc815 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud560 \ub514\ub809\ud1a0\ub9ac\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.
+APOC.wiz.instruction.13=\uc9c0\uc815\ud55c \ub514\ub809\ud1a0\ub9ac\uc5d0 \uae30\uc874 Desktop Manager \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc124\uce58\uc5d0 \ub300\ud574 \uc774 \ub514\ub809\ud1a0\ub9ac\uc5d0 \uc788\ub294 \uae30\uc874 \
+\ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud560 \uac83\uc778\uc9c0, \uc544\ub2c8\uba74 \ubaa8\ub4e0 \uc815\ubcf4\ub97c \uc0ad\uc81c\ud558\uace0 \uc0c8 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \ub9cc\ub4e4 \uac83\uc778\uc9c0 \uc120\ud0dd\ud569\ub2c8\ub2e4.
+APOC.wiz.instruction.14=\uc774 LDAP \uc11c\ubc84\uc5d0 Desktop Manager\uc758 \uc774\uc804 \ubc84\uc804\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc774\uc804 \ubc84\uc804\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc800\uc7a5\ub41c \ud504\ub85c\ud30c\uc77c \ubc0f \uc9c0\uc815 \
+\uc815\ubcf4\ub97c \uc774 \uc124\uce58\uc758 \uc800\uc7a5\uc18c\uc5d0 \uc0ac\uc6a9\ub418\ub294 \uc0c8 \uc704\uce58\ub85c \ub9c8\uc774\uadf8\ub808\uc774\uc158\ud560 \uac83\uc778\uc9c0 \uc5ec\ubd80\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.
+APOC.wiz.instruction.15=\uad6c\uc131 \uc808\ucc28\uc5d0 \ub530\ub77c LDAP \uc2a4\ud0a4\ub9c8\ub97c \ud655\uc7a5\ud558\uace0 LDAP \ud2b8\ub9ac\uc758 \uc0c8 \ubd84\uae30\ub97c \ucd94\uac00\ud574\uc57c \ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c LDAP \uc11c\ubc84\uc5d0 \uc801\ud569\ud55c \
+\uc561\uc138\uc2a4 \uad8c\ud55c\uc744 \uac00\uc9c4 \uc0ac\uc6a9\uc790\uc758 DN\uacfc \uc554\ud638\ub97c "\uad00\ub9ac\uc790 DN" \ubc0f "\uad00\ub9ac\uc790 \uc554\ud638" \ud544\ub4dc\uc5d0 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4.
+APOC.wiz.instruction.15a=\ud504\ub85c\ud30c\uc77c\uc758 \uc800\uc7a5\uc18c \uc704\uce58\ub97c \ub9c8\uc774\uadf8\ub808\uc774\uc158\ud558\ub824\uba74 \uae30\uc874 LDAP \ud2b8\ub9ac\ub97c \uc218\uc815\ud574\uc57c \ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c, LDAP \uc11c\ubc84\uc5d0 \uc801\ud569\ud55c \uc561\uc138\uc2a4 \
+\uad8c\ud55c\uc744 \uac00\uc9c4 \uc0ac\uc6a9\uc790\uc758 DN\uacfc \uc554\ud638\ub97c "\uad00\ub9ac\uc790 DN" \ubc0f "\uad00\ub9ac\uc790 \uc554\ud638" \ud544\ub4dc\uc5d0 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4.
+APOC.wiz.placeholder=[\uc774\uc804 \ub2e8\uacc4\uc758 \uc120\ud0dd\uc5d0 \ub530\ub77c \uacb0\uc815\ub41c \ub2e8\uacc4]
+
+APOC.wiz.2.name=\ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \uc774\ub984:
+APOC.wiz.2.type=\ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \uc720\ud615:
+APOC.wiz.2.ldap=LDAP: LDAP \uacc4\uce35 \ubc0f \uc800\uc7a5\uc18c
+APOC.wiz.2.file=\ud30c\uc77c \uae30\ubc18: \ud30c\uc77c \uae30\ubc18 \uacc4\uce35 \ubc0f \uc800\uc7a5\uc18c
+APOC.wiz.2.hybrid=\ud558\uc774\ube0c\ub9ac\ub4dc: LDAP \uacc4\uce35 \ubc0f \ud30c\uc77c \uae30\ubc18 \uc800\uc7a5\uc18c
+APOC.wiz.2.alert=\uc0c8 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \uc774\ub984\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+APOC.wiz.3.host=\ud638\uc2a4\ud2b8:
+APOC.wiz.3.port=\ud3ec\ud2b8:
+APOC.wiz.3.ssl=SSL \uc0ac\uc6a9
+APOC.wiz.3.alert1={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 LDAP \ud3ec\ud2b8 \ubc88\ud638\uc785\ub2c8\ub2e4! \ud3ec\ud2b8 \ubc88\ud638\ub294 0\uacfc 65535 \uc0ac\uc774\uc758 \uc815\uc218\uc5ec\uc57c \ud569\ub2c8\ub2e4.
+APOC.wiz.3.alert2={0}\uc758 LDAP \uc11c\ubc84\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4!
+APOC.wiz.4.admin.dn=\uad00\ub9ac\uc790 DN:
+APOC.wiz.4.admin.pw=\uad00\ub9ac\uc790 \ube44\ubc00\ubc88\ud638:
+APOC.wiz.4.anon=\uc775\uba85 \uc561\uc138\uc2a4 \uc0ac\uc6a9
+APOC.wiz.4.user.dn=\uc0ac\uc6a9\uc790 DN:
+APOC.wiz.4.user.pw=\uc0ac\uc6a9\uc790 \ube44\ubc00\ubc88\ud638:
+APOC.wiz.4.alert1=\uc9c0\uc815\ub41c \uc554\ud638\ub97c \uc0ac\uc6a9\ud558\uc5ec {1}\uc5d0\uc11c {0}(\uc73c)\ub85c \uc778\uc99d\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4!
+APOC.wiz.4.alert3={0}\uc5d0\ub294 {1}\uc5d0\uc11c \uc77d\ub294 \ub370 \ud544\uc694\ud55c \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4! \uc11c\ubc84\uc5d0 \ub300\ud55c \uc77d\uae30 \uad8c\ud55c\uc744 \uac00\uc9c4 \uc0ac\uc6a9\uc790\uc758 \uc790\uaca9 \uc99d\uba85\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+APOC.wiz.5.type=LDAP \uc11c\ubc84\uc758 \uc720\ud615:
+APOC.wiz.5.sun=Sun ONE Directory Server
+APOC.wiz.5.openldap=OpenLDAP
+APOC.wiz.5.ad=Active Directory
+APOC.wiz.5.other=\uae30\ud0c0
+APOC.wiz.6.question=\uba54\ud0c0 \uad6c\uc131\uc744 \uc870\uc815\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
+APOC.wiz.6.no=\uc544\ub2c8\uc694
+APOC.wiz.6.yes=\uc608
+APOC.wiz.7.adapt=\uc544\ub798 \uba54\ud0c0 \uad6c\uc131 \uc870\uc815:
+APOC.wiz.8.basedn=\uae30\ubcf8 DN \uc120\ud0dd:
+APOC.wiz.8.alert=\uae30\ubcf8 DN {0}\uc774(\uac00) \uc11c\ubc84 {1}\uc5d0 \uc5c6\uc2b5\ub2c8\ub2e4! LDAP \uc11c\ubc84\uac00 \uc798\ubabb \uad6c\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc11c\ubc84\ub97c \ub2e4\uc2dc \uad6c\uc131\ud558\uace0 \ub9c8\ubc95\uc0ac\ub97c \ub2e4\uc2dc \
+\uc2dc\uc791\ud558\uc2ed\uc2dc\uc624!
+APOC.wiz.9.basedn=LDAP \uc11c\ubc84\uc758 \uae30\ubcf8 DN \uc785\ub825:
+APOC.wiz.9.alert=\uae30\ubcf8 DN {0}\uc774(\uac00) \uc11c\ubc84 {1}\uc5d0 \uc5c6\uc2b5\ub2c8\ub2e4! LDAP \uc11c\ubc84\ub97c \ud655\uc778\ud558\uace0 \uae30\ubcf8 DN\uc744 \uc785\ub825\ud558\uc2ed\uc2dc\uc624.
+APOC.wiz.10.anonymous=\uc775\uba85
+APOC.wiz.10.vendor=\uacf5\uae09\uc5c5\uccb4 \uc774\ub984:
+APOC.wiz.10.metaconfig=\uba54\ud0c0 \uad6c\uc131:
+APOC.wiz.10.basedn=\uae30\ubcf8 DN:
+APOC.wiz.10.path=\ud30c\uc77c \uae30\ubc18 \ub370\uc774\ud130 \ub514\ub809\ud1a0\ub9ac:
+APOC.wiz.10.migrate=\ud504\ub85c\ud30c\uc77c \ub9c8\uc774\uadf8\ub808\uc774\uc158:
+APOC.wiz.10.orgdom.section=\ub3c4\uba54\uc778 \ubc0f \uc870\uc9c1 \uc815\ubcf4:
+APOC.wiz.10.general.section=\uc77c\ubc18 \uc815\ubcf4:
+APOC.wiz.10.noaction={0}\uc5d0 \uc788\ub294 \uae30\uc874 \uc11c\ubc84\uac00 Desktop Manager\uc6a9\uc73c\ub85c \uc774\ubbf8 \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \ub354 \uc774\uc0c1\uc758 \uc791\uc5c5\uc740 \ud544\uc694\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \
+\ub9c8\uce68 \ubc84\ud2bc\uc744 \ub20c\ub7ec \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ub9cc\ub4e4\uae30\ub97c \uc644\ub8cc\ud558\uace0 \uc774 \ud56d\ubaa9\uc744 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ud14c\uc774\ube14\uc5d0 \ucd94\uac00\ud569\ub2c8\ub2e4.
+APOC.wiz.10.edit.noaction= {0}\uc5d0 \uc788\ub294 \uae30\uc874 \uc11c\ubc84\uac00 \uc774\ubbf8 Desktop Manager\uc6a9\uc73c\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \ub354 \uc774\uc0c1\uc758 \uc791\uc5c5\uc740 \ud544\uc694\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \
+\ub9c8\uce68 \ubc84\ud2bc\uc744 \ub20c\ub7ec \uc774 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \uc138\ubd80 \uc815\ubcf4 \uc5c5\ub370\uc774\ud2b8\ub97c \uc644\ub8cc\ud569\ub2c8\ub2e4.
+APOC.wiz.10.alert=\uacc4\uc18d\ud558\uae30 \uc804\uc5d0 Desktop Manager \uc2a4\ud0a4\ub9c8\ub85c {0} \uc11c\ubc84\uc758 \uc2a4\ud0a4\ub9c8\ub97c \uc218\ub3d9\uc73c\ub85c \ud655\uc7a5\ud574\uc57c \ud569\ub2c8\ub2e4!
+APOC.wiz.10.fail1= - \uc9c0\uc815\ub41c LDAP \uc11c\ubc84\uc5d0 \uc2a4\ud0a4\ub9c8 \uc18d\uc131\uacfc \uac1c\uccb4 \ud074\ub798\uc2a4\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.10.fail2= - \uc9c0\uc815\ub41c LDAP \uc11c\ubc84\uc5d0\uc11c \uc11c\ube44\uc2a4 \ubd84\uae30\ub97c \ub9cc\ub4dc\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.10.fail3= - \uc9c0\uc815\ub41c LDAP \uc11c\ubc84\uc5d0\uc11c \uba54\ud0c0 \uad6c\uc131 \uc18d\uc131\uc744 \uc4f0\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.10.fail4= - {0} \uc18d\uc131\uc744 \ud56d\ubaa9 {1}\uc5d0 \ucd94\uac00\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.10.fail5= - \uae30\uc874 \uc124\uce58\ub97c \uc0ad\uc81c\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.10.fail6= - \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \uad6c\uc131 \ud30c\uc77c\uc744 \uc5c5\ub370\uc774\ud2b8\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4: {0}.
+APOC.wiz.10.fail7={0}\uc744(\ub97c) \uc778\uc99d\ud560 \uc218 \uc788\uace0 {1}\uc5d0 \ub300\ud55c \uc4f0\uae30 \uad8c\ud55c\uc774 \uc788\ub294\uc9c0 \ud655\uc778\ud558\uc2ed\uc2dc\uc624.
+APOC.wiz.10.fail8= - \uae30\ubcf8 \uacc4\uce35 \uad6c\uc870 \ud30c\uc77c\uc744 \ub9cc\ub4dc\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.10.fail9= - \uba54\ud0c0 \uad6c\uc131 \ud30c\uc77c\uc744 \ub9cc\ub4dc\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.10.fail10= - \uc694\uc18c {0}\uc5d0 \ub300\ud55c \ud504\ub85c\ud30c\uc77c\uc744 \ub9c8\uc774\uadf8\ub808\uc774\uc158\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.11.title=\uc0c8 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uac00 \uc131\uacf5\uc801\uc73c\ub85c \ub9cc\ub4e4\uc5b4\uc84c\uc2b5\ub2c8\ub2e4.
+APOC.wiz.11.text=\uc0c8\ub85c \ub9cc\ub4e0 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc774\uc81c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc0c8 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc561\uc138\uc2a4\ud558\ub824\uba74 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ud14c\uc774\ube14\uc5d0\uc11c \
+\uc774\ub984\uc744 \ud074\ub9ad\ud569\ub2c8\ub2e4. \ud604\uc7ac \ub85c\uadf8\uc778\ud55c \uc0ac\uc6a9\uc790\uac00 \uc774 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \uad00\ub9ac\uc790\uac00 \uc544\ub2cc \uacbd\uc6b0\uc5d0\ub294 \uc720\ud6a8\ud55c \uad00\ub9ac\uc790 \uc790\uaca9 \uc99d\uba85\uc73c\ub85c \
+\ub85c\uadf8\uc778\ud558\ub77c\ub294 \uba54\uc2dc\uc9c0\uac00 \ud45c\uc2dc\ub429\ub2c8\ub2e4.
+APOC.wiz.11.alert.title=\uc0c8 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \ub9cc\ub4e4\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.11.edit.title=\uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uac00 \uc131\uacf5\uc801\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+APOC.wiz.11.edit.text=\ubc29\uae08 \uc5c5\ub370\uc774\ud2b8\ud55c \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc561\uc138\uc2a4\ud558\ub824\uba74 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ud14c\uc774\ube14\uc5d0\uc11c \uc774\ub984\uc744 \
+\ub204\ub985\ub2c8\ub2e4. \ud604\uc7ac \ub85c\uadf8\uc778\ud55c \uc0ac\uc6a9\uc790\uac00 \uc774 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \uad00\ub9ac\uc790\uac00 \uc544\ub2cc \uacbd\uc6b0\uc5d0\ub294 \uc720\ud6a8\ud55c \uad00\ub9ac\uc790 \uc790\uaca9 \uc99d\uba85\uc744 \uc0ac\uc6a9\ud558\uc5ec \
+\ub85c\uadf8\uc778\ud558\ub77c\ub294 \ub0b4\uc6a9\uc758 \ud504\ub86c\ud504\ud2b8\uac00 \ud45c\uc2dc\ub429\ub2c8\ub2e4.
+APOC.wiz.11.alert.edit.title=\uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.12.alert1={0}\uc774(\uac00) \uc5c6\uc2b5\ub2c8\ub2e4!
+APOC.wiz.12.alert2={0}\uc740(\ub294) \ub514\ub809\ud1a0\ub9ac\uac00 \uc544\ub2d9\ub2c8\ub2e4!
+APOC.wiz.12.alert3=\ub514\ub809\ud1a0\ub9ac {0}\uc5d0 \uc4f0\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4!
+APOC.wiz.13.existing=\uc791\uc5c5 \uc120\ud0dd:
+APOC.wiz.13.overwrite=\uae30\uc874 \ub370\uc774\ud130 \ub36e\uc5b4\uc4f0\uae30 \ubc0f \uc0c8 \uc124\uce58 \ub9cc\ub4e4\uae30
+APOC.wiz.13.update=\uae30\uc874 \uc124\uce58 \ub370\uc774\ud130 \uc720\uc9c0
+APOC.wiz.14.existing=\ud504\ub85c\ud30c\uc77c \ubc0f \uc9c0\uc815 \uc815\ubcf4 \ub9c8\uc774\uadf8\ub808\uc774\uc158:
+APOC.wiz.14.username=(\uc4f0\uae30 \uad8c\ud55c\uc744 \uac00\uc9c4 \uc0ac\uc6a9\uc790\uc758) \uc0ac\uc6a9\uc790 \uc774\ub984:
+APOC.wiz.14.password=\uc554\ud638:
+APOC.wiz.ldap.err.nosuchattr=LDAP \uc608\uc678(16): \uc9c0\uc815\ud55c \uc18d\uc131\uc744 \ucc3e\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.ldap.err.valueexists=LDAP \uc608\uc678(20): \uc18d\uc131\uc5d0 \ucd94\uac00\ud558\ub824\ub294 \uac12\uc774 \ud574\ub2f9 \uc18d\uc131\uc5d0 \uc774\ubbf8 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.wiz.ldap.err.attrsyntax=LDAP \uc608\uc678(21): \uc694\uccad\uc5d0 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uad6c\ubb38\uc774 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.wiz.ldap.err.nosuchobj=LDAP \uc608\uc678(32): \uc694\uccad\uc5d0 \uc9c0\uc815\ub41c \ud56d\ubaa9\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.wiz.ldap.err.invaliddn=LDAP \uc608\uc678(34): \uc9c0\uc815\ud55c \uace0\uc720 \uc774\ub984(DN)\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uad6c\ubb38\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
+APOC.wiz.ldap.err.invalidcred=LDAP \uc608\uc678(49): \uc778\uc99d\uc744 \uc704\ud574 \uc11c\ubc84\uc5d0 \uc81c\uacf5\ud55c \uc790\uaca9 \uc99d\uba85\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.wiz.ldap.err.noaccessrights=LDAP \uc608\uc678(50): \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc774 \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc561\uc138\uc2a4 \uad8c\ud55c\uc774 \uc5c6\ub294 \uc0ac\uc6a9\uc790\ub85c \uc778\uc99d\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+APOC.wiz.ldap.err.entryexists=LDAP \uc608\uc678(68): \uc9c0\uc815\ub41c \ud56d\ubaa9\uc774 \uc774\ubbf8 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.wiz.ldap.err.serverdown=LDAP \uc608\uc678(81): LDAP \uc11c\ubc84\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.wiz.ldap.err.timeout=LDAP \uc608\uc678(85): \ucd5c\ub300 \uc2dc\uac04 \uc81c\ud55c \ub0b4\uc5d0 \uc791\uc5c5\uc744 \uc644\ub8cc\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.ldap.err.connecterror=LDAP \uc608\uc678(91): LDAP \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 LDAP \uc11c\ubc84\uc5d0 \uc5f0\uacb0\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+
+#Copy Move Wizard
+APOC.wiz.copy.copymove=\ubcf5\uc0ac \ubc0f \uc774\ub3d9...
+APOC.wiz.copy.copymove.tooltip=\ud504\ub85c\ud30c\uc77c\uc744 \ubcf5\uc0ac \ub610\ub294 \uc774\ub3d9\ud569\ub2c8\ub2e4.
+APOC.wiz.copy.copymove.disabled.tooltip=\ud504\ub85c\ud30c\uc77c\uc744 \ubcf5\uc0ac \ub610\ub294 \uc774\ub3d9\ud569\ub2c8\ub2e4(\uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c).
+APOC.wiz.copy.title=\ubcf5\uc0ac \ubc0f \uc774\ub3d9 \ub9c8\ubc95\uc0ac
+APOC.wiz.copy.steptext.1=\uc18c\uc2a4 \ud504\ub85c\ud30c\uc77c \uc120\ud0dd
+APOC.wiz.copy.steptext.2=\uc791\uc5c5 \uc120\ud0dd
+APOC.wiz.copy.steptext.3=\ub300\uc0c1 \uc694\uc18c \uc120\ud0dd
+APOC.wiz.copy.instruction.1=\uc774 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ub0b4\uc5d0\uc11c \ubcf5\uc0ac\ud558\uac70\ub098 \uc774\ub3d9\ud560 \uc18c\uc2a4 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc640 \uc18c\uc2a4 \ud504\ub85c\ud30c\uc77c\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.
+APOC.wiz.copy.instruction.2=\uc9c0\uc815\ub41c \ud504\ub85c\ud30c\uc77c\uc5d0 \uc218\ud589\ud560 \uc791\uc5c5\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4. \uc774 \ud504\ub85c\ud30c\uc77c\uc5d0 \ub300\ud55c \uc9c0\uc815\uc744 \ubb34\uc2dc\ud560\uc9c0 \uc5ec\ubd80\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.
+APOC.wiz.copy.instruction.3=\uc774 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ub0b4\uc5d0\uc11c \ubcf5\uc0ac\ud558\uac70\ub098 \uc774\ub3d9\ud560 \ub300\uc0c1 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc640 \ub300\uc0c1 \uc694\uc18c\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.
+APOC.wiz.copy.instruction.4=\uc785\ub825\ub41c \uc124\uc815\uc744 \uac80\ud1a0\ud569\ub2c8\ub2e4. \ub9c8\uce68\uc744 \ud074\ub9ad\ud558\uc5ec \ud504\ub85c\ud30c\uc77c\uc744 \ubcf5\uc0ac/\uc774\ub3d9\ud569\ub2c8\ub2e4.
+APOC.wiz.copy.help.1=<p>'\ubcc0\uacbd...' \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uace0 \ubaa9\ub85d\uc5d0\uc11c \ud544\uc694\ud55c \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc120\ud0dd\ud558\uc5ec \ubcf5\uc0ac/\uc774\ub3d9\ud560 \ud504\ub85c\ud30c\uc77c\uc774 \ud3ec\ud568\ub41c \
+\uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.</p><p>\ub9c8\ucc2c\uac00\uc9c0\ub85c '\ubcc0\uacbd...' \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uace0 \ubaa9\ub85d\uc5d0\uc11c \ud544\uc694\ud55c \
+\ud504\ub85c\ud30c\uc77c\uc744 \uc120\ud0dd\ud558\uc5ec \ubcf5\uc0ac/\uc774\ub3d9\ud560 \ud504\ub85c\ud30c\uc77c\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.</p>
+APOC.wiz.copy.help.2=<p>\uc120\ud0dd\ub41c \ud504\ub85c\ud30c\uc77c\uc5d0 \uc218\ud589\ud560 \uc791\uc5c5\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.</p><p>\uc9c0\uc815\ub41c \uc791\uc5c5\uc744 \uc218\ud589\ud560 \ub54c \uc774 \
+\ud504\ub85c\ud30c\uc77c\uc774 \ubcf4\uc720\ud55c \uae30\uc874 \uc9c0\uc815\uc744 \ubb34\uc2dc\ud560\uc9c0 \uc5ec\ubd80\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.</p>
+APOC.wiz.copy.help.3=<p>'\ubcc0\uacbd...' \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uace0 \ubaa9\ub85d\uc5d0\uc11c \ud544\uc694\ud55c \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc120\ud0dd\ud558\uc5ec \ubcf5\uc0ac/\uc774\ub3d9\ud560 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \
+\uc120\ud0dd\ud569\ub2c8\ub2e4.</p><p>\ub9c8\ucc2c\uac00\uc9c0\ub85c '\ubcc0\uacbd...' \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uace0 \ubaa9\ub85d\uc5d0\uc11c \ud544\uc694\ud55c \uc694\uc18c\ub97c \uc120\ud0dd\ud558\uc5ec \
+\ubcf5\uc0ac/\uc774\ub3d9\ud560 \uc694\uc18c\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.</p>
+APOC.wiz.copy.source.context=\uc18c\uc2a4 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac:
+APOC.wiz.copy.source.profile=\uc18c\uc2a4 \ud504\ub85c\ud30c\uc77c:
+APOC.wiz.copy.1.alert=\uc18c\uc2a4 \ud504\ub85c\ud30c\uc77c\uc744 \uc120\ud0dd\ud574\uc57c \ud569\ub2c8\ub2e4!
+APOC.wiz.copy.2.alert=\uc778\uc99d\ub41c \uc0ac\uc6a9\uc790 {0}\uc740(\ub294) \uc18c\uc2a4 \ud504\ub85c\ud30c\uc77c {1}\uc744(\ub97c) \uc774\ub3d9\ud560 \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4!
+APOC.wiz.copy.select.action=\uc791\uc5c5 \uc120\ud0dd:
+APOC.wiz.copy.copy=\ubcf5\uc0ac(P)
+APOC.wiz.copy.move=\uc774\ub3d9
+APOC.wiz.copy.assignments=\uc9c0\uc815 \ud3ec\ud568
+APOC.wiz.copy.target.context=\ub300\uc0c1 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac:
+APOC.wiz.copy.target.entity=\ub300\uc0c1 \uc694\uc18c:
+APOC.wiz.copy.3.alert=\ub300\uc0c1 \uc694\uc18c\ub97c \uc120\ud0dd\ud574\uc57c \ud569\ub2c8\ub2e4!
+APOC.wiz.copy.action=\uc791\uc5c5:
+APOC.wiz.copy.assignments.assignments=\uc9c0\uc815 \ud3ec\ud568:
+APOC.wiz.copy.3.alert1=\uc18c\uc2a4\uc640 \ub300\uc0c1 \uc694\uc18c\uac00 \uac19\uc740 \uacbd\uc6b0 \ud504\ub85c\ud30c\uc77c\uc744 \uc774\ub3d9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4!
+APOC.wiz.copy.3.alert2=\ud504\ub85c\ud30c\uc77c {0}\uc740(\ub294) {1}\uc77c \uc218 \uc5c6\uc2b5\ub2c8\ub2e4! \uc774\ub984\uc774 \uac19\uc740 \ud504\ub85c\ud30c\uc77c\uc774 \uc774\ubbf8 \ub300\uc0c1 \uc694\uc18c {2}\uc5d0 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.wiz.copy.3.alert3=\uc778\uc99d\ub41c \uc0ac\uc6a9\uc790 {0}\ub294 \uc694\uc18c {3}\uc5d0 \ub300\ud55c \ud504\ub85c\ud30c\uc77c {2}\uc744(\ub97c) {1}\ud558\ub294 \ub370 \ud544\uc694\ud55c \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4!
+APOC.wiz.copy.4.alert=\ud504\ub85c\ud30c\uc77c {0}\uc740(\ub294) {1}\uc774(\uac00) \ub420 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4! \ud504\ub85c\ud30c\uc77c\uc740 \ub300\uc0c1 \uc694\uc18c {2} \uc704\uc5d0 \uc788\ub294 \uc801\uc5b4\ub3c4 \ud558\ub098\uc758 \uc694\uc18c\uc5d0 \
+\uc9c0\uc815\ub429\ub2c8\ub2e4.
+APOC.wiz.copy.copyof={1}\uc758 \ubcf5\uc0ac\ubcf8 {0}
+APOC.wiz.copy.overview.title=\ubcf5\uc0ac \ubc0f \uc774\ub3d9 \ub9c8\ubc95\uc0ac \uac1c\uc694
+APOC.wiz.copy.overview.text=<p>\ud504\ub85c\ud30c\uc77c\uc740 \uc870\uc9c1 \uacc4\uce35 \ub0b4 \uc5b4\ub290 \uc694\uc18c\uc5d0\ub098 \uc800\uc7a5\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubcf5\uc0ac \ubc0f \uc774\ub3d9 \ub9c8\ubc95\uc0ac\ub294 \ud55c \uc694\uc18c \uc544\ub798 \uc800\uc7a5\ub41c \
+\ud504\ub85c\ud30c\uc77c\uc758 \ubcf5\uc0ac\ubcf8\uc744 \ub2e4\ub978 \uc694\uc18c \uc544\ub798 \uc0c8\ub85c\uc6b4 \uc800\uc7a5\uc18c \uc704\uce58\uc5d0 \ub9cc\ub4e4\uac70\ub098 \ud504\ub85c\ud30c\uc77c\uc758 \uc800\uc7a5\uc18c \uc704\uce58\ub97c \ud55c \uc694\uc18c\uc5d0\uc11c \ub2e4\ub978 \uc694\uc18c\ub85c \
+\uc774\ub3d9\ud558\ub294 \ub370 \ud544\uc694\ud55c \ub2e8\uacc4\ub85c \uc548\ub0b4\ud569\ub2c8\ub2e4. \ubcf5\uc0ac/\uc774\ub3d9 \uc791\uc5c5\uc5d0\uc11c \uc9c0\uc815 \ud3ec\ud568 \uc635\uc158\uc744 \uc0ac\uc6a9\ud560 \ub54c \uc54c\uc544\uc57c \ud560 \uc81c\ud55c \uc0ac\ud56d\uc774 \uc788\uc2b5\ub2c8\ub2e4. \
+\uc989, \ud504\ub85c\ud30c\uc77c\uc740 \ud574\ub2f9 \ud504\ub85c\ud30c\uc77c\uc758 \uc800\uc7a5\uc18c \uc704\uce58 \ub610\ub294 \uadf8 \uc544\ub798\uc5d0 \uc788\ub294 \uc694\uc18c\uc5d0\ub9cc \uc9c0\uc815\ub429\ub2c8\ub2e4. \ub2e4\uc74c\uc744 \uc785\ub825\ud558\ub77c\ub294 \uba54\uc2dc\uc9c0\uac00 \
+\ud45c\uc2dc\ub429\ub2c8\ub2e4.</p><p><ul><li>\uc18c\uc2a4 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ubc0f \uc18c\uc2a4 \ud504\ub85c\ud30c\uc77c.\
+</li><li>\uc218\ud589\ud560 \uc791\uc5c5\uacfc \ud574\ub2f9 \uc791\uc5c5\uc744 \uc2e4\ud589\ud560 \ub54c \ud504\ub85c\ud30c\uc77c \uc9c0\uc815\ub3c4 \ud3ec\ud568\ud560 \uac83\uc778\uc9c0 \uc5ec\ubd80.<\
+/li><li>\ub300\uc0c1 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ubc0f \ub300\uc0c1 \uc694\uc18c.</li></ul></p>\
+<p>\uc704\uc758 \uc815\ubcf4\ub97c \uc785\ub825\ud588\uc73c\uba74 \ub9c8\ubc95\uc0ac\ub294 \uc120\ud0dd\ud55c \ud504\ub85c\ud30c\uc77c\uc5d0 \ub300\ud574 \uc694\uccad\ud55c \uc791\uc5c5\uc744 \uc218\ud589\ud569\ub2c8\ub2e4.</p>
+APOC.wiz.copy.steptext.overview=\uac1c\uc694
+APOC.wiz.copy.results.text.assigned=\ud504\ub85c\ud30c\uc77c {0}\uc774(\uac00) \uc694\uc18c {2}\uc758 \uc0c8 \uc800\uc7a5\uc18c \uc704\uce58\uc5d0 {1}\ub418\uc5b4 \uc774 \uc694\uc18c\uc5d0 \uc9c0\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+APOC.wiz.copy.results.text.unassigned=\ud504\ub85c\ud30c\uc77c {0}\uc774(\uac00) \uc694\uc18c {2}\uc758 \uc0c8 \uc800\uc7a5\uc18c \uc704\uce58\uc5d0 {1}\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
+APOC.wiz.copy.results.title=\ud504\ub85c\ud30c\uc77c {0} \uc131\uacf5
+APOC.wiz.copy.results.alert.title=\ud504\ub85c\ud30c\uc77c {0} \uc2e4\ud328
+APOC.wiz.copy.results.copied=\ubcf5\uc0ac\ub428
+APOC.wiz.copy.results.moved=\uc774\ub3d9\ub428
+APOC.wiz.copy.results.copied.lc=\ubcf5\uc0ac\ud568
+APOC.wiz.copy.results.moved.lc=\uc774\ub3d9\ud568
+APOC.wiz.copy.4.fail1=\ud504\ub85c\ud30c\uc77c\uc744 \ubcf5\uc0ac\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.copy.4.fail2=\ud504\ub85c\ud30c\uc77c\uc744 \uc0ad\uc81c\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.copy.4.fail3=\uc0c8 \ud504\ub85c\ud30c\uc77c \ud45c\uc2dc \uc774\ub984\uc744 \uc124\uc815\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+APOC.wiz.copy.4.fail4=\ub300\uc0c1 \uc694\uc18c\uc5d0 \uc0c8 \ud504\ub85c\ud30c\uc77c\uc744 \uc9c0\uc815\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
+
+# Browse Tree
+APOC.browse.title.org=\uc870\uc9c1 \uc120\ud0dd
+APOC.browse.title.dom=\ub3c4\uba54\uc778 \uc120\ud0dd
+APOC.browse.title=\uc694\uc18c \uc120\ud0dd
+APOC.browse.title.text=\ud2b8\ub9ac\ub97c \ud0d0\uc0c9\ud558\uace0 \uc6d0\ud558\ub294 \uc694\uc18c\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4. "\ud655\uc778" \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec \uc120\ud0dd\uc744 \ud655\uc815\ud569\ub2c8\ub2e4.
+APOC.browse.cancel.help=\uc120\ud0dd\uc744 \ucde8\uc18c\ud558\uace0 \ucc3d\uc744 \ub2eb\uc2b5\ub2c8\ub2e4.
+APOC.browse.ok.help=\uc120\ud0dd\uc744 \ud655\uc815\ud558\uace0 \ucc3d\uc744 \ub2eb\uc2b5\ub2c8\ub2e4.
+APOC.browse.tree.nav=\ud2b8\ub9ac \ud0d0\uc0c9
+
+#*******************************************************************************
+# Syncronization
+#*******************************************************************************
+APOC.sync.title=\ub3d9\uae30\ud654
+APOC.sync.help=\uc774 \ud398\uc774\uc9c0\uc5d0\uc11c \ub450 \uac1c\uc758 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \ub3d9\uae30\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.sync.sourcerep.label=\uc18c\uc2a4 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac:
+APOC.sync.sourcerep.help=\uc0ac\uc6a9 \uac00\ub2a5\ud55c \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \uba54\ub274\uc785\ub2c8\ub2e4.
+APOC.sync.sourcepath.label=\uc18c\uc2a4 \uc2dc\uc791 \uc704\uce58:
+APOC.sync.sourcepath.button=\ubcc0\uacbd...
+APOC.sync.sourcepath.help=\uc18c\uc2a4 \ucee8\ud14d\uc2a4\ud2b8 \uacbd\ub85c\ub97c \ubcc0\uacbd\ud560 \uc218 \uc788\ub294 \ucc3d\uc744 \uc5fd\ub2c8\ub2e4.
+APOC.sync.targetrep.label=\ub300\uc0c1 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac:
+APOC.sync.targetrep.help=\uc0ac\uc6a9 \uac00\ub2a5\ud55c \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \uba54\ub274\uc785\ub2c8\ub2e4.
+APOC.sync.targetpath.label=\ub300\uc0c1 \uc2dc\uc791 \uc704\uce58:
+APOC.sync.targetpath.button=\ubcc0\uacbd...
+APOC.sync.targetpath.help=\ub300\uc0c1 \ucee8\ud14d\uc2a4\ud2b8 \uacbd\ub85c\ub97c \ubcc0\uacbd\ud560 \uc218 \uc788\ub294 \ucc3d\uc744 \uc5fd\ub2c8\ub2e4.
+APOC.sync.sync.button=\ub3d9\uae30\ud654
+APOC.sync.sync.help=\uc120\ud0dd\ub41c \uc791\uc5c5\uc5d0 \ub530\ub77c \ub098\uc5f4\ub41c \ud504\ub85c\ud30c\uc77c\uc744 \ub3d9\uae30\ud654\ud569\ub2c8\ub2e4.
+APOC.sync.reset.button=\uc6d0\ub798\ub300\ub85c
+APOC.sync.reset.help=\uad6c\uc131 \uad00\ub9ac\uc790\uac00 \uc81c\uc548\ud55c \uae30\ubcf8 \uc791\uc5c5\uc73c\ub85c \uc791\uc5c5\uc744 \ub2e4\uc2dc \uc124\uc815\ud569\ub2c8\ub2e4.
+APOC.sync.cancel.help=\uc774 \ucc3d\uc744 \ub2eb\uc2b5\ub2c8\ub2e4.
+APOC.sync.login.title=\ucee8\ud14d\uc2a4\ud2b8 \ub85c\uadf8\uc778
+APOC.sync.login.pagetitle=\ub85c\uadf8\uc778 - \uc18c\uc2a4 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac
+APOC.sync.login.pagetitle2=\ub85c\uadf8\uc778 - \ub300\uc0c1 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac
+APOC.sync.login.pagehelp=\uad6c\uc131 \uad00\ub9ac\uc790\ub97c \uc0ac\uc6a9\ud558\uba74 \uac1c\ubcc4 \ub85c\uadf8\uc778\uc774 \ud544\uc694\ud55c \uc5ec\ub7ec \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uad00\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Java Web Console\uc5d0 \
+\ub85c\uadf8\uc778\ud558\ub294 \ub370 \uc0ac\uc6a9\ub41c \uc790\uaca9 \uc99d\uba85\uc740 \ub2e4\uc2dc \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uacbd\uc6b0 \uae30\ubcf8\uac12\uc73c\ub85c \uc124\uc815\ub429\ub2c8\ub2e4. \uc774 \ub85c\uadf8\uc778 \ud398\uc774\uc9c0\ub294 \uc774 \uc138\uc158 \ub3c4\uc911 \uc774\ubbf8 \
+\uc131\uacf5\uc801\uc73c\ub85c \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc778\uc99d\ub41c \uacbd\uc6b0 \ud45c\uc2dc\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uc790\uaca9 \uc99d\uba85\uc73c\ub85c \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \ub85c\uadf8\uc778\ud558\ub824\uba74 \uc138\uc158\uc744 \
+\uc885\ub8cc\ud558\ub294 Java Web Console\uc5d0\uc11c \ub85c\uadf8\uc544\uc6c3\ud574\uc57c \ud569\ub2c8\ub2e4.
+APOC.sync.compare.button=\ube44\uad50
+APOC.sync.compare.help=\uc18c\uc2a4\ub97c \ub300\uc0c1\uacfc \ube44\uad50\ud569\ub2c8\ub2e4.
+APOC.sync.result.empty=\ucc28\uc774\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.sync.result.summary=\uc774 \ud14c\uc774\ube14\uc5d0\ub294 \uc18c\uc2a4 \ubc0f \ub300\uc0c1 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \uac04\uc758 \ucc28\uc774\uc810\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4.
+APOC.sync.result.title=\ud504\ub85c\ud30c\uc77c
+APOC.sync.result.title2=\ub2e4\ub978 \ud504\ub85c\ud30c\uc77c
+APOC.sync.result.help0=\ub3d9\uae30\ud654 \uc815\ubcf4
+APOC.sync.result.help1=\uc774 \ucc3d\uc5d0\uc11c \ub450 \uac1c \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \ub3d9\uae30\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.sync.result.help2=\ubcc0\uacbd\uc744 \uc704\ud574 \uc18c\uc2a4\ub85c \uc791\uc6a9\ud558\ub294 \uc18c\uc2a4 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \ubcc0\uacbd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub294 \ubcc0\uacbd\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub3d9\uae30\ud654\uc758 \uc2dc\uc791 \
+\uc704\uce58\ub85c \ub8e8\ud2b8 \uc678\uc758 \uc694\uc18c\ub97c \uc9c0\uc815\ud558\uc5ec \uc18c\uc2a4 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc81c\ud55c\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.sync.result.help3=\ubcc0\uacbd\uc744 \uc704\ud574 \ub300\uc0c1\uc73c\ub85c \uc791\uc6a9\ud558\ub294 \ub300\uc0c1 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \ubcc0\uacbd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub294 \ubcc0\uacbd\ub429\ub2c8\ub2e4. \ub3d9\uae30\ud654\uc758 \uc2dc\uc791 \uc704\uce58\ub85c \
+\ub8e8\ud2b8 \uc678\uc758 \uc694\uc18c\ub97c \uc9c0\uc815\ud558\uc5ec \ub300\uc0c1 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc81c\ud55c\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.sync.result.help4=\uc18c\uc2a4\uc640 \ub300\uc0c1 \ud2b8\ub9ac\ub97c \uc9c0\uc815\ud55c \ud6c4 "\ube44\uad50" \ubc84\ud2bc\uc744 \ud074\ub9ad\ud569\ub2c8\ub2e4. \ub450 \uac1c \ud2b8\ub9ac\ub294 \uc11c\ub85c \ube44\uad50\ub418\uace0 \ubaa8\ub4e0 \ucc28\uc774\uc810\uc740 \ud14c\uc774\ube14\uc5d0 \ub098\uc5f4\ub429\ub2c8\ub2e4. \
+\ub3d9\uae30\ud654\ud560 \ud504\ub85c\ud30c\uc77c\uc774 \ud3ec\ud568\ub41c \ud14c\uc774\ube14 \ud589\uc744 \uc120\ud0dd\ud558\uace0 "\ub3d9\uae30\ud654" \ubc84\ud2bc\uc744 \ub204\ub985\ub2c8\ub2e4.
+APOC.sync.result.help5=\ub3d9\uae30\ud654\uac00 \uc644\ub8cc\ub418\uba74 \ub300\uc0c1 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub294 \uc120\ud0dd\ud55c \ud504\ub85c\ud30c\uc77c\uacfc \uad00\ub828\ub41c \uc18c\uc2a4 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4.
+APOC.sync.busymsg.text=\uc9c4\ud589 \uc911...
+APOC.sync.result.column1=\ud504\ub85c\ud30c\uc77c
+APOC.sync.result.column2=\ub300\uc0c1 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \ub300\ud55c \uc791\uc5c5
+APOC.sync.action.copycontent=\ub0b4\uc6a9\uc744 \ubcf5\uc0ac\ud569\ub2c8\ub2e4.
+APOC.sync.action.copycomment=\uc124\uba85\uc744 \ubcf5\uc0ac\ud569\ub2c8\ub2e4.
+APOC.sync.action.alignassign=\uc9c0\uc815\uc744 \ub9de\ucda5\ub2c8\ub2e4.
+APOC.sync.action.changeprios=\uc6b0\uc120 \uc21c\uc704\ub97c \ubcc0\uacbd\ud569\ub2c8\ub2e4.
+APOC.sync.action.create=\ub0b4\uc6a9\uacfc \uc9c0\uc815\uc73c\ub85c \ud504\ub85c\ud30c\uc77c\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.
+APOC.sync.action.delete=\ud504\ub85c\ud30c\uc77c\uc744 \uc0ad\uc81c\ud569\ub2c8\ub2e4.
+APOC.sync.msg.orgdomcomapre=\uc870\uc9c1 \ud2b8\ub9ac\uc640 \ub3c4\uba54\uc778 \ud2b8\ub9ac\ub294 \ube44\uad50\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.sync.msg.noprofiles=\ud504\ub85c\ud30c\uc77c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
+APOC.sync.msg.allequal=\ube44\uad50\ub41c \ubaa8\ub4e0 \ud504\ub85c\ud30c\uc77c\uc774 \ub3d9\uc77c\ud558\ubbc0\ub85c \ub3d9\uae30\ud654\ub294 \ud544\uc694\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
+APOC.sync.msg.nocompare=\ud504\ub85c\ud30c\uc77c\uc740 \uc788\uc5c8\uc9c0\ub9cc \uadf8 \uc911 \ud558\ub098\ub3c4 \ube44\uad50\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+APOC.sync.msg.partialcompare=\ucc3e\uc740 \ud504\ub85c\ud30c\uc77c \uc911 \ucd5c\uc18c \ud55c \uac1c \uc774\uc0c1\uc740 \ube44\uad50\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.
+APOC.sync.msg.compare.detail=\ube44\uad50\ud560 \ud504\ub85c\ud30c\uc77c\uc758 \uacbd\uc6b0 \uc2dc\uc791 \uc704\uce58\uc5d0\uc11c \uc800\uc7a5\uc18c \uc704\uce58\uae4c\uc9c0\uc758 \uc0c1\ub300 \uacbd\ub85c\ub294 \ub2e4\ub978 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.
+APOC.sync.waitmsg.prepare=\uc900\ube44
+APOC.sync.waitmsg.retsource=\uc18c\uc2a4 \ud504\ub85c\ud30c\uc77c \uac80\uc0c9
+APOC.sync.waitmsg.rettarget=\ub300\uc0c1 \ud504\ub85c\ud30c\uc77c \uac80\uc0c9
+APOC.sync.waitmsg.prepx=\ud504\ub85c\ud30c\uc77c \ube44\uad50 \uc900\ube44({0}\uac1c \ud504\ub85c\ud30c\uc77c \uc900\ube44\ub428)
+APOC.sync.waitmsg.compx=\ud504\ub85c\ud30c\uc77c \ube44\uad50({0}/{1} \ud504\ub85c\ud30c\uc77c \ube44\uad50\ub428)
+APOC.sync.waitmsg.sync=\ud504\ub85c\ud30c\uc77c \ub3d9\uae30\ud654({0}/{1} \ud504\ub85c\ud30c\uc77c \ub3d9\uae30\ud654\ub428)
+APOC.sync.waitmsg.time=\uacbd\uacfc \uc2dc\uac04: {0}:{1}.{2}
+
+APOC.tabs.tree.title=\ud504\ub85c\ud30c\uc77c - \ud2b8\ub9ac \ubcf4\uae30
+APOC.tabs.tree.help=\uc870\uc9c1 \ud2b8\ub9ac\uc640 \ub3c4\uba54\uc778 \ud2b8\ub9ac\uc5d0 \uc9c0\uc815\ub41c \ud504\ub85c\ud30c\uc77c\uc744 \ud45c\uc2dc\ud569\ub2c8\ub2e4.
+APOC.tabs.all.title=\ud504\ub85c\ud30c\uc77c - \ubaa8\ub450
+APOC.tabs.all.help=\ubaa8\ub4e0 \ud504\ub85c\ud30c\uc77c \ubaa9\ub85d\uc744 \ud45c\uc2dc\ud569\ub2c8\ub2e4.
+
+APOC.find.title=\ucc3e\uc744 \ub2e8\uc5b4
+APOC.find.button=\ucc3e\uc744 \ub2e8\uc5b4
+
+#*******************************************************************************
+# Contexts
+#*******************************************************************************
+APOC.contexts.title=\uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac
+APOC.contexts.details.title=\uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \uc138\ubd80 \uc815\ubcf4
+APOC.contexts.details.name=\ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \uc774\ub984
+APOC.contexts.details.domorg.info=\ub3c4\uba54\uc778/\uc870\uc9c1 \uc815\ubcf4 \uc704\uce58
+APOC.contexts.details.domorg.profile.info=\ub3c4\uba54\uc778/\uc870\uc9c1 \ub370\uc774\ud130\uc758 \uc800\uc7a5\uc18c \uc704\uce58
+APOC.contexts.details.property=\ub4f1\ub85d \uc815\ubcf4
+APOC.contexts.details.view=\uc138\ubd80 \uc815\ubcf4 \ubcf4\uae30
+APOC.contexts.help=\uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub294 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc744 \uad6c\uc131\ud574\uc57c \ud558\ub294 \uad6c\uc131 \ub370\uc774\ud130\uc758 \uc800\uc7a5\uc18c \uc704\uce58\uc785\ub2c8\ub2e4.
+APOC.contexts.table.title=\uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac
+APOC.contexts.config.error=\uc120\ud0dd\ud55c \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc561\uc138\uc2a4\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uad6c\uc131 \ud30c\uc77c {0}\uc5d0 \uad6c\ubb38 \uc624\ub958\uac00 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.contexts.table.summary=\uc774 \ud14c\uc774\ube14\uc5d0\ub294 \uc0ac\uc6a9 \uac00\ub2a5\ud55c \ubaa8\ub4e0 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uac00 \ub098\uc5f4\ub429\ub2c8\ub2e4. '\uc720\ud615' \uc5f4\uc5d0\ub294 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \uc720\ud615\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4. '\uc870\uc9c1 \
+\ub370\uc774\ud130 \uc704\uce58' \uc5f4\uc5d0\ub294 \uc870\uc9c1 \ub370\uc774\ud130\ub97c \uc81c\uacf5\ud558\ub294 \uc800\uc7a5\uc18c \uc704\uce58\ub97c \uac00\ub9ac\ud0a4\ub294 URL\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4. '\ud504\ub85c\ud30c\uc77c \ub370\uc774\ud130 \uc704\uce58' \uc5f4\uc5d0\ub294 \
+\ud504\ub85c\ud30c\uc77c \ub370\uc774\ud130\ub97c \uc81c\uacf5\ud558\ub294 \uc800\uc7a5\uc18c \uc704\uce58\ub97c \uac00\ub9ac\ud0a4\ub294 URL\uc774 \ub098\uc5f4\ub429\ub2c8\ub2e4. \ud574\ub2f9 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc0ac\uc6a9\ud558\ub824\uba74 \uc774\ub984 \ub9c1\ud06c\ub97c \
+\ud074\ub9ad\ud569\ub2c8\ub2e4.
+APOC.contexts.details.table.summary=\uc774 \ud45c\uc5d0\uc11c\ub294 \uc120\ud0dd\ud55c \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc758 \ub4f1\ub85d \uc815\ubcf4\ub97c \ub098\uc5f4\ud569\ub2c8\ub2e4. \uc774\ub984, \uacc4\uce35 \uc815\ubcf4 \uc704\uce58 \ubc0f \uc800\uc7a5\uc18c \uc815\ubcf4 \uc704\uce58\uac00 \ud45c\uc2dc\ub429\ub2c8\ub2e4.
+APOC.contexts.table.empty=\uc0ac\uc6a9 \uac00\ub2a5\ud55c \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. '\uc0c8\ub85c \ub9cc\ub4e4\uae30...' \ubc84\ud2bc\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc0c8 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \ub9cc\ub4ed\ub2c8\ub2e4.
+APOC.contexts.menu.create=\ub9cc\ub4e4\uae30...
+APOC.contexts.menu.remove=\uc81c\uac70...
+APOC.contexts.menu.rename=\uc774\ub984 \ubc14\uafb8\uae30...
+APOC.contexts.menu.synchronize=\ub3d9\uae30\ud654...
+APOC.contexts.column.name=\uc774\ub984
+APOC.contexts.column.type=\uc720\ud615
+APOC.contexts.column.locorg=\uc870\uc9c1 \ub370\uc774\ud130 \uc704\uce58
+APOC.contexts.column.locpro=\ud504\ub85c\ud30c\uc77c \ub370\uc774\ud130 \uc704\uce58
+APOC.contexts.hybrid.text=\ud558\uc774\ube0c\ub9ac\ub4dc
+APOC.contexts.create.button=\uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \ub9cc\ub4e4\uae30
+APOC.contexts.login.context=\uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac:
+APOC.contexts.login.title=\uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac - \ub85c\uadf8\uc778
+APOC.contexts.login.help=\uad6c\uc131 \uad00\ub9ac\uc790\ub97c \uc0ac\uc6a9\ud558\uba74 \uac1c\ubcc4 \ub85c\uadf8\uc778\uc774 \ud544\uc694\ud55c \uc5ec\ub7ec \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uad00\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Java Web Console\uc5d0 \
+\ub85c\uadf8\uc778\ud558\ub294 \ub370 \uc0ac\uc6a9\ub41c \uc790\uaca9 \uc99d\uba85\uc740 \ub2e4\uc2dc \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uacbd\uc6b0 \uae30\ubcf8\uac12\uc73c\ub85c \uc124\uc815\ub429\ub2c8\ub2e4. \uc774 \ub85c\uadf8\uc778 \ud398\uc774\uc9c0\ub294 \uc774 \uc138\uc158 \ub3c4\uc911 \uc774\ubbf8 \
+\uc131\uacf5\uc801\uc73c\ub85c \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \uc778\uc99d\ub41c \uacbd\uc6b0 \ud45c\uc2dc\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uc790\uaca9 \uc99d\uba85\uc73c\ub85c \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \ub85c\uadf8\uc778\ud558\ub824\uba74 \uc138\uc158\uc744 \
+\uc885\ub8cc\ud558\ub294 Java Web Console\uc5d0\uc11c \ub85c\uadf8\uc544\uc6c3\ud574\uc57c \ud569\ub2c8\ub2e4.
+APOC.select.contexts.login.help=\uc0c8 \uad6c\uc131 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc120\ud0dd\ud558\ub824\uba74 \uc0c8 \ub85c\uadf8\uc778 \uc790\uaca9 \uc99d\uba85\uc744 \uc81c\uacf5\ud574\uc57c \ud569\ub2c8\ub2e4. \uc120\ud0dd\ud55c \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \ub85c\uadf8\uc778\ud558\uae30 \uc704\ud574 \uc774\uc804\uc5d0 \uc0ac\uc6a9\ud55c \
+\uc790\uaca9 \uc99d\uba85\uc740 \uc0ac\uc6a9 \uac00\ub2a5\ud55c \uacbd\uc6b0 \uae30\ubcf8\uac12\uc73c\ub85c \uc124\uc815\ub429\ub2c8\ub2e4.
+APOC.relocate.error.summary=\uc791\uc5c5\uc774 \ucde8\uc18c\ub418\uc5c8\uc2b5\ub2c8\ub2e4!
+APOC.relocate.error.detail=\uc774 \ud504\ub85c\ud30c\uc77c\uc774 \uc9c0\uc815\ub41c \uc870\uc9c1\uc774\ub098 \ud504\ub85c\ud30c\uc77c\uc774 \uc801\uc5b4\ub3c4 \ud55c \uac1c \uc774\uc0c1 \ud504\ub85c\ud30c\uc77c\uc758 \uc0c8 \uc704\uce58 \uc704\uc5d0 \uc788\uc2b5\ub2c8\ub2e4.
+APOC.relocate.trace.text=\uc2a4\ud0dd \ucd94\uc801\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+
diff --git a/src/com/sun/apoc/manager/resource/apoc_manager_zh_CN.properties b/src/com/sun/apoc/manager/resource/apoc_manager_zh_CN.properties
new file mode 100644
index 0000000..1287bc2
--- /dev/null
+++ b/src/com/sun/apoc/manager/resource/apoc_manager_zh_CN.properties
@@ -0,0 +1,1062 @@
+#*******************************************************************************
+#
+# $RCSfile: apoc_manager_zh_CN.properties,v $
+#
+# Description: Resource bundle for the Sun Java(tm) Desktop System
+# Configuration Manager
+#
+# Last change: $Date: 2007/05/18 14:41:03 $ $Revision: 1.13 $
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use of this
+# product is subject to license terms.
+#
+#*******************************************************************************
+
+#*******************************************************************************
+# Common
+#
+#*******************************************************************************
+
+APOC.framelongdesc=\u6b64\u5e94\u7528\u7a0b\u5e8f\u7684\u7ed3\u6784\u662f\u4e09\u4e2a\u6846\u5f0f\u7684\u3002\u201c\u62a5\u5934\u6846\u201d\u6a2a\u8de8\u9875\u9762\u9876\u7aef\u3002\u201c\u5bfc\u822a\u6846\u201d\u4f4d\u4e8e\u5de6\u4fa7\uff0c\u7528\u4e8e\u6d4f\u89c8\u7528\u6237\u548c\u4e3b\u673a\u3002\u5728\u201c\u5bfc\u822a\u6846\u201d\u4e2d\u9009\u62e9\u67d0\u4e2a\u5143\u7d20\u540e\uff0c\u201c\u5185\u5bb9\u6846\u201d\u5c06\u968f\
+\u4e4b\u66f4\u65b0\uff0c\u6709\u65f6\u201c\u5185\u5bb9\u6846\u201d\u548c\u201c\u5bfc\u822a\u6846\u201d\u4f1a\u540c\u65f6\u66f4\u65b0\u3002\u201c\u5185\u5bb9\u6846\u201d\u4f4d\u4e8e\u53f3\u4fa7\uff0c\u5b83\u663e\u793a\u5f53\u524d\u9009\u5b9a\u5143\u7d20\u7684\u6709\u5173\u4fe1\u606f\u3002
+APOC.so7=StarSuite 7
+APOC.button.remove=\u5220\u9664
+APOC.button.close=\u5173\u95ed
+APOC.button.OK=\u786e\u5b9a
+APOC.button.cancel=\u53d6\u6d88
+APOC.button.browse=\u66f4\u6539...
+APOC.headings.name=\u540d\u79f0
+APOC.login.username=\u7528\u6237\u540d\uff1a
+APOC.login.password=\u5bc6\u7801\uff1a
+APOC.infoAlert.success=\u5df2\u6210\u529f\u5b8c\u6210\u6b64\u64cd\u4f5c\u3002
+APOC.noframes=\u6b64\u5e94\u7528\u7a0b\u5e8f\u9700\u8981\u6846\u67b6\u3002
+APOC.settings.notset=-- \u672a\u8bbe\u7f6e --
+APOC.profiles.profile=\u914d\u7f6e\u6587\u4ef6
+APOC.help.more.on=>> \u6709\u5173 {0} \u7684\u66f4\u591a\u4fe1\u606f
+APOC.help.more=>> \u66f4\u591a
+APOC.pool.renameContextMessage=\u8f93\u5165\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u65b0\u540d\u79f0\uff1a
+APOC.pool.removeContextMessage=\u662f\u5426\u5220\u9664\u9009\u5b9a\u7684\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff1f
+APOC.helpwindow.tooltip=\u5e2e\u52a9\uff08\u6253\u5f00\u4e00\u4e2a\u65b0\u7684\u7a97\u53e3\uff09
+
+#*******************************************************************************
+# Masthead
+#
+#*******************************************************************************
+
+APOC.frame.masthead=\u62a5\u5934\u6846
+APOC.masthead.altTextVer=Sun Desktop Manager 1.0.1
+APOC.masthead.altText=Sun Desktop Manager 1.0.1
+APOC.masthead.altTextForSub={0}
+APOC.masthead.packages.alt=\u7b56\u7565\u8f6f\u4ef6\u5305\uff08\u6253\u5f00\u4e00\u4e2a\u65b0\u7684\u7a97\u53e3\uff09
+APOC.masthead.path.link=\u7cfb\u7edf\u4fe1\u606f\u5e93
+APOC.masthead.path.help=\u8fd4\u56de\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u9875\u9762
+
+#*******************************************************************************
+# Packages Dialog Strings
+#
+#*******************************************************************************
+
+APOC.packages.title=\u7b56\u7565\u8f6f\u4ef6\u5305
+APOC.packages.introtext=\u53ef\u4ee5\u5728\u6b64\u5904\u5b89\u88c5\u6216\u5378\u8f7d\u7b56\u7565\u8f6f\u4ef6\u5305\u3002\u7b56\u7565\u8f6f\u4ef6\u5305\u662f\u7531 Sun Microsystems \u6216\u7b2c\u4e09\u65b9\u4f9b\u5e94\u5546\u63d0\u4f9b\u7684\uff0c\u5305\u62ec\u8981\u5728 {0} \u4e2d\u4f7f\u7528\u7684\u9644\u52a0\u7b56\
+\u7565\u3002
+APOC.packages.tabletitle=\u5df2\u5b89\u88c5\u7684\u7b56\u7565\u8f6f\u4ef6\u5305
+APOC.packages.headings.adddate=\u65b0\u589e\u65e5\u671f
+APOC.packages.action.file=\u4ece\u670d\u52a1\u5668\u5b89\u88c5...
+APOC.packages.action.url=\u4ece\u5ba2\u6237\u673a\u5b89\u88c5...
+APOC.packages.action.uninstall=\u5378\u8f7d
+APOC.packages.uninstall.confirm=\u662f\u5426\u786e\u5b9e\u8981\u5378\u8f7d\u9009\u5b9a\u7684\u8f6f\u4ef6\u5305\uff1f
+APOC.packages.filechooser.addfile=\u4ece\u670d\u52a1\u5668\u6587\u4ef6\u5b89\u88c5\u7b56\u7565\u8f6f\u4ef6\u5305
+APOC.packages.filechooser.button=\u9009\u62e9\u6587\u4ef6
+APOC.packages.localchooser.title=\u4ece\u672c\u5730\u6587\u4ef6\u5b89\u88c5\u7b56\u7565\u8f6f\u4ef6\u5305
+APOC.packages.localchooser.upload=\u4e0a\u8f7d
+APOC.packages.localchooser.choosetext=\u8981\u4e0a\u8f7d\u7684\u6587\u4ef6\uff1a
+
+#*******************************************************************************
+# Users Page Tab
+#
+#*******************************************************************************
+
+APOC.users.title=\u7528\u6237
+APOC.users.introtext=\u6b64\u9009\u9879\u5361\u9875\u9762\u5217\u51fa\u4e86\u4f5c\u4e3a\u9009\u5b9a\u89d2\u8272\u7684\u6210\u5458\u7684\u7528\u6237\u3002\u201c\u8def\u5f84\u201d\u5217\u5217\u51fa\u4e86\u7edd\u5bf9\u8def\u5f84\u3002
+APOC.users.tableSummary=\u6b64\u8868\u683c\u5217\u51fa\u4e86\u4f5c\u4e3a\u9009\u5b9a\u89d2\u8272\u7684\u6210\u5458\u7684\u7528\u6237\u3002\u201c\u8def\u5f84\u201d\u5217\u5217\u51fa\u4e86\u7edd\u5bf9\u8def\u5f84\u3002\u5728\u5de6\u4fa7\u6846\u4e2d\u5355\u51fb\u67d0\u4e2a\u7528\u6237\u540d\u79f0\u53ef\u4ee5\u9009\u62e9\u8be5\u7528\u6237\u3002
+
+#*******************************************************************************
+# Roles Page Tab
+#
+#*******************************************************************************
+
+APOC.roles.title=\u89d2\u8272
+APOC.roles.introtext=\u6b64\u9009\u9879\u5361\u9875\u9762\u5217\u51fa\u4e86\u9009\u5b9a\u7528\u6237\u6240\u5c5e\u7684\u89d2\u8272\u3002\u201c\u8def\u5f84\u201d\u5217\u5217\u51fa\u4e86\u7edd\u5bf9\u8def\u5f84\u3002
+APOC.roles.tableSummary=\u6b64\u8868\u683c\u5217\u51fa\u4e86\u9009\u5b9a\u7528\u6237\u6240\u5c5e\u7684\u89d2\u8272\u3002\u201c\u8def\u5f84\u201d\u5217\u5217\u51fa\u4e86\u7edd\u5bf9\u8def\u5f84\u3002\u5728\u5de6\u4fa7\u6846\u4e2d\u5355\u51fb\u67d0\u4e2a\u89d2\u8272\u540d\u79f0\u53ef\u4ee5\u9009\u62e9\u8be5\u89d2\u8272\u3002
+
+#*******************************************************************************
+# Assignees Page Tab
+#
+#*******************************************************************************
+
+APOC.assignees.title=\u53d7\u6258\u8005
+APOC.assignees.introtext=\u6b64\u9009\u9879\u5361\u9875\u9762\u5217\u51fa\u4e86\u5df2\u88ab\u6307\u5b9a\u4e86\u9009\u5b9a\u914d\u7f6e\u6587\u4ef6\u7684\u5b9e\u4f53\u3002\u201c\u8def\u5f84\u201d\u5217\u5217\u51fa\u4e86\u7edd\u5bf9\u8def\u5f84\u3002
+APOC.assignees.tableSummary=\u6b64\u8868\u683c\u5217\u51fa\u4e86\u5df2\u88ab\u6307\u5b9a\u4e86\u9009\u5b9a\u914d\u7f6e\u6587\u4ef6\u7684\u5b9e\u4f53\u3002\u201c\u8def\u5f84\u201d\u5217\u5217\u51fa\u4e86\u7edd\u5bf9\u8def\u5f84\u3002\u5728\u5de6\u4fa7\u6846\u4e2d\u5355\u51fb\u67d0\u4e2a\u5143\u7d20\u540d\u79f0\u53ef\u4ee5\u9009\u62e9\u8be5\u5143\u7d20\u3002
+
+#*******************************************************************************
+# Profiles Tab page
+#
+#*******************************************************************************
+
+APOC.policysets.title=\u6307\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6
+APOC.policysets.label=\u914d\u7f6e\u6587\u4ef6\uff1a
+APOC.policysets.introtext=\u5728\u6b64\u9009\u9879\u5361\u9875\u9762\u4e0a\uff0c\u53ef\u4ee5\u5c06\u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u7ed9\u9009\u5b9a\u7684\u5143\u7d20\u3002
+APOC.policysets.save=\u4fdd\u5b58
+APOC.policysets.infoAlert.saveSuccess=\u5bf9\u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u6240\u505a\u7684\u66f4\u6539\u5df2\u7ecf\u4fdd\u5b58\u3002
+
+#*******************************************************************************
+# Policies Tab page
+#
+#*******************************************************************************
+
+APOC.policies.title=\u6307\u5b9a\u7684\u7b56\u7565
+APOC.policies.subcategories=\u5b50\u79cd\u7c7b
+APOC.policies.nameCol=\u540d\u79f0
+APOC.policies.commentCol=\u6ce8\u91ca
+APOC.policies.actionCol=\u64cd\u4f5c
+APOC.policies.toggle.button=\u5207\u6362\u64cd\u4f5c
+APOC.policies.introtext=\u6b64\u9875\u9762\u5217\u51fa\u4e86\u9009\u5b9a\u5143\u7d20\u7684\u914d\u7f6e\u7b56\u7565\u6811\u548c\u5df2\u914d\u7f6e\u7684\u8bbe\u7f6e\u3002
+APOC.policies.tableSummary=\u6b64\u8868\u683c\u5217\u51fa\u4e86\u53ef\u7528\u7684\u7b56\u7565\u3002\u6bcf\u4e00\u884c\u90fd\u5305\u542b\u7b56\u7565\u540d\u79f0\u53ca\u7b80\u8981\u8bf4\u660e\u3002\u5355\u51fb\u67d0\u4e2a\u540d\u79f0\u53ef\u4ee5\u8fdb\u4e00\u6b65\u663e\u793a\u8be5\u7b56\u7565\u7684\u5b50\u7b56\u7565\u3002
+APOC.properties.tableSummary=\u6b64\u8868\u683c\u5217\u51fa\u4e86\u914d\u7f6e\u8bbe\u5b9a\u3002\u6bcf\u4e00\u884c\u90fd\u5305\u542b\u5c5e\u6027\u7684\u72b6\u6001\u3001\u540d\u79f0\u548c\u503c\u3002
+APOC.policies.stateCol=\u7701/\u5e02/\u81ea\u6cbb\u533a
+APOC.policies.value=\u503c
+APOC.policies.value.notconfig=\u672a\u914d\u7f6e
+APOC.policies.value.config=\u5df2\u914d\u7f6e
+APOC.policies.status=\u72b6\u6001
+APOC.policies.root=\u7b56\u7565
+APOC.policies.actions=&#8212;&nbsp;\u7b56\u7565\u64cd\u4f5c&nbsp;&#8212;
+APOC.policies.actions.protect=\u4fdd\u62a4
+APOC.policies.actions.unprotect=\u53d6\u6d88\u4fdd\u62a4
+APOC.policies.actions.default=\u91c7\u7528\u9ed8\u8ba4\u503c
+APOC.policies.actions.clear=\u6e05\u9664
+APOC.policies.enable=\u542f\u7528
+APOC.policies.enabled=\u5df2\u542f\u7528
+APOC.policies.disabled=\u5df2\u7981\u7528
+APOC.policies.clear.button=\u6e05\u9664\u8bbe\u7f6e...
+APOC.policies.createrep.button=\u5efa\u7acb\u62a5\u8868...
+APOC.policies.createrep.tooltip=\u521b\u5efa\u62a5\u544a\uff08\u6253\u5f00\u4e00\u4e2a\u65b0\u7684\u7a97\u53e3\uff09
+APOC.policies.clear.confirmation=\u6b64\u64cd\u4f5c\u5c06\u5220\u9664\u6b64\u5206\u5c42\u53ca\u5176\u4e0b\u6240\u6709\u5206\u5c42\u4e2d\u7684\u6240\u6709\u8bbe\u5b9a\u3002\u662f\u5426\u7ee7\u7eed\uff1f
+APOC.policies.backToTop=\u8fd4\u56de\u9876\u7aef
+APOC.policies.backToTop.tooltip=\u8fd4\u56de\u9876\u7aef
+APOC.policies.jumpDown.tooltip={0}\uff08\u8f6c\u5230\u6b64\u90e8\u5206\uff09
+APOC.policies.save.button=\u4fdd\u5b58
+APOC.policies.reset.button=\u91cd\u8bbe
+APOC.policies.navigation.table.empty=\u672a\u6307\u5b9a\u4efb\u4f55\u7b56\u7565
+APOC.policies.set.table.empty=\u672a\u627e\u5230\u6761\u76ee\u3002
+APOC.policies.new.button=\u65b0\u5efa...
+APOC.policies.delete.button=\u5220\u9664
+APOC.policies.name.question=\u8bf7\u8f93\u5165\u65b0\u6761\u76ee\u7684\u540d\u79f0\u3002
+APOC.policies.rename.set=\u8bf7\u8f93\u5165\u6761\u76ee\u7684\u65b0\u540d\u79f0\u3002
+APOC.policies.status.defined_here=\u8be5\u9879\u5df2\u5728\u6b64\u5206\u5c42\u4e2d\u5b9a\u4e49\u3002
+APOC.policies.status.defined_above=\u8be5\u9879\u5df2\u5728\u4e0a\u9762\u7684\u67d0\u4e2a\u5206\u5c42\u4e2d\u5b9a\u4e49\u3002
+APOC.policies.status.noprotection=\u65e0\u4fdd\u62a4\u72b6\u6001\u3002
+APOC.policies.status.nodefinition=\u65e0\u5b9a\u4e49\u72b6\u6001\u3002
+APOC.policies.status.jumpto=\u5355\u51fb\u6b64\u94fe\u63a5\u8f6c\u5230 {0}\u3002
+APOC.policies.status.protected_here=\u8be5\u9879\u5728\u6b64\u5206\u5c42\u4e2d\u53d7\u4fdd\u62a4\u3002
+APOC.policies.status.protected_above=\u8be5\u9879\u5728\u4e0a\u9762\u7684\u67d0\u4e2a\u5206\u5c42\u4e2d\u53d7\u4fdd\u62a4\u3002
+APOC.policies.status.policygroup=\u914d\u7f6e\u6587\u4ef6 {0}
+APOC.policies.info.general=\u5df2\u6210\u529f\u5b8c\u6210\u6b64\u64cd\u4f5c\u3002
+APOC.policies.info.stored=\u5df2\u5b58\u50a8\u6240\u6709\u8bbe\u5b9a\u3002
+APOC.policies.info.removed=\u5df2\u5220\u9664\u6240\u6709\u8bbe\u5b9a\u3002
+APOC.policies.error.general=\u53d1\u751f\u9519\u8bef\u3002
+APOC.policies.error.removing=\u5220\u9664\u8bbe\u5b9a\u65f6\u53d1\u751f\u9519\u8bef\uff1a {0}
+APOC.policies.error.storing=\u5b58\u50a8\u8bbe\u5b9a\u65f6\u53d1\u751f\u9519\u8bef\uff1a {0}
+APOC.policies.confirmation.storechanges=\u60a8\u5df2\u8fdb\u884c\u4e86\u4e00\u4e9b\u66f4\u6539\u3002\u73b0\u5728\u662f\u5426\u5b58\u50a8\u8fd9\u4e9b\u66f4\u6539\uff1f
+APOC.policies.info.readonly.access=\u6b64\u9875\u9762\u662f\u53ea\u8bfb\u9875\u9762\uff0c\u56e0\u4e3a\u60a8\u4e0d\u5177\u6709\u8fdb\u884c\u4fee\u6539\u6240\u9700\u7684\u8bbf\u95ee\u6743\u9650\u3002
+APOC.policies.info.readonly.maybe=\u663e\u793a\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u81f3\u5c11\u6709\u4e00\u4e2a\u662f\u53ea\u8bfb\u6587\u4ef6\uff0c\u56e0\u4e3a\u60a8\u6ca1\u6709\u8fdb\u884c\u4fee\u6539\u6240\u9700\u7684\u8bbf\u95ee\u6743\u9650\u3002
+APOC.policies.info.readonly.roles=\u6b64\u9875\u9762\u662f\u53ea\u8bfb\u9875\u9762\uff0c\u56e0\u4e3a\u4e0d\u80fd\u5c06\u672c\u5730\u7b56\u7565\u6307\u5b9a\u7ed9\u89d2\u8272\u3002
+APOC.policies.edit.button=\u7f16\u8f91...
+APOC.policies.include_in=\u5305\u542b\u4e8e
+APOC.policies.exclude_from=\u4e0d\u5305\u542b\u4e8e
+APOC.policies.footnote=* \u6307\u660e\u5e94\u7528\u7a0b\u5e8f\u81ea\u52a8\u4f7f\u7528\u7684\u9ed8\u8ba4\u503c\uff08\u5982\u679c\u672a\u660e\u786e\u5b9a\u4e49\u5176\u4ed6\u8bbe\u7f6e\uff09\u3002
+APOC.policies.settings_title=\u8bbe\u7f6e\uff08\u914d\u7f6e\u6587\u4ef6 {0}\uff09
+
+#*******************************************************************************
+# Content Area
+#
+#*******************************************************************************
+
+APOC.frame.contentarea=\u5185\u5bb9\u533a\u57df\u6846
+APOC.catabs.policy.des=\u7b56\u7565\uff08\u6253\u5f00\u9009\u9879\u5361\u9875\u9762\uff09
+APOC.catabs.policysets.des=\u6307\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6\uff08\u6253\u5f00\u9009\u9879\u5361\u9875\u9762\uff09
+APOC.catabs.users.des=\u4f7f\u7528\u8005\uff08\u6253\u5f00\u9009\u9879\u5361\u9875\u9762\uff09
+APOC.catabs.roles.des=\u89d2\u8272\uff08\u6253\u5f00\u9009\u9879\u5361\u9875\u9762\uff09
+APOC.catabs.assignees.des=\u53d7\u6258\u8005\uff08\u6253\u5f00\u9009\u9879\u5361\u9875\u9762\uff09
+APOC.ca.backtop=\u8fd4\u56de\u9876\u7aef
+APOC.ca.locale=\u8bed\u8a00\u73af\u5883
+APOC.ca.path=\u8def\u5f84
+
+#*******************************************************************************
+# Help
+#
+#*******************************************************************************
+
+APOC.help.helpTooltip=\u5e2e\u52a9\uff08\u6253\u5f00\u4e00\u4e2a\u65b0\u7684\u7a97\u53e3\uff09
+APOC.help.windowTitle=\u5e2e\u52a9
+
+#*******************************************************************************
+# Navigation Area Common
+#
+#*******************************************************************************
+
+APOC.navigation.search=\u641c\u7d22
+APOC.navigation.reset=\u91cd\u8bbe
+APOC.navigation.search.help=\u6253\u5f00\u4e00\u4e2a\u53ef\u7528\u4e8e\u641c\u7d22\u7684\u7a97\u53e3\u3002
+APOC.navigation.edit.help=\u8f93\u5165\u641c\u7d22\u5b57\u7b26\u3002
+APOC.navigation.close=\u5173\u95ed
+APOC.navigation.organization=\u7ec4\u7ec7
+APOC.navigation.organization.with=\u5177\u6709\u6307\u5b9a\u8bbe\u7f6e\u7684\u7ec4\u7ec7
+APOC.navigation.organizations=\u7ec4\u7ec7
+APOC.navigation.organizations.help=\u7ec4\u7ec7\u6811\u7684\u6839\u3002
+APOC.navigation.user=\u7528\u6237
+APOC.navigation.user.with=\u5177\u6709\u6307\u5b9a\u8bbe\u7f6e\u7684\u7528\u6237
+APOC.navigation.users=\u7528\u6237
+APOC.navigation.role=\u89d2\u8272
+APOC.navigation.role.with=\u5177\u6709\u6307\u5b9a\u8bbe\u7f6e\u7684\u89d2\u8272
+APOC.navigation.roles=\u89d2\u8272
+APOC.navigation.domain=\u57df
+APOC.navigation.domain.with=\u5177\u6709\u6307\u5b9a\u8bbe\u7f6e\u7684\u57df
+APOC.navigation.domains=\u57df
+APOC.navigation.domains.help=\u57df\u6811\u7684\u6839\u3002
+APOC.navigation.host=\u4e3b\u673a
+APOC.navigation.host.with=\u5177\u6709\u6307\u5b9a\u8bbe\u7f6e\u7684\u4e3b\u673a
+APOC.navigation.hosts=\u4e3b\u673a
+APOC.navigation.name=\u540d\u79f0
+APOC.navigation.actions=\u64cd\u4f5c
+APOC.navigation.view=\u89c6\u56fe
+APOC.navigation.view.tooltip=\u5728\u53f3\u4fa7\u6846\u4e2d\u663e\u793a\u6b64\u5143\u7d20
+APOC.navigation.area=\u201c\u6d4f\u89c8\u201d\u7a97\u683c
+APOC.navigation.empty=\u65e0\u5b9e\u4f53\u53ef\u4f9b\u4f7f\u7528\u3002
+APOC.navigation.name.label=\u540d\u79f0\uff1a
+APOC.navigation.type=\u7c7b\u578b
+APOC.navigation.userTooltip=\u4f7f\u7528\u8005\uff08\u6253\u5f00\u201c\u4f7f\u7528\u8005\u201d\u9009\u9879\u5361\u9875\u9762\uff09
+APOC.navigation.hostTooltip=\u4e3b\u673a\uff08\u6253\u5f00\u201c\u4e3b\u673a\u201d\u9009\u9879\u5361\u9875\u9762\uff09
+APOC.navigation.breadcrumb.tooltip=\u8fd4\u56de\u5230 {0}
+APOC.navigation.show=\u663e\u793a\uff1a
+APOC.navigation.showDirsOnly=\u4ec5\u9650\u76ee\u5f55
+APOC.navigation.showAll=\u5168\u90e8
+APOC.navigation.ellipsis=... \u672a\u663e\u793a\u67d0\u4e9b\u5143\u7d20
+APOC.navigation.openfind=\u6253\u5f00\u67e5\u627e\u7a97\u53e3
+APOC.navigation.search.target.alert1=\u65e0\u6cd5\u786e\u5b9a\u6240\u9009\u9879\u7684\u76ee\u6807\u7a97\u53e3\u3002\\n\
+\u8bf7\u5173\u95ed\u641c\u7d22\u7a97\u53e3\uff0c\u7136\u540e\u4ece\u6240\u9700\u7684\u76ee\u6807\u7a97\u53e3\u4e2d\u91cd\u65b0\u6253\u5f00\u6b64\u7a97\u53e3\u3002
+
+#*******************************************************************************
+# Navigation Area User Tree Tab
+#
+#*******************************************************************************
+
+APOC.usertree.title=\u7ec4\u7ec7\u6811
+APOC.usertree.tooltip=\u7ec4\u7ec7\u6811\uff08\u6253\u5f00\u201c\u7ec4\u7ec7\u6811\u201d\u9009\u9879\u5361\u9875\u9762\uff09
+APOC.usertree.tableSummary=\u6b64\u8868\u683c\u63d0\u4f9b\u4e86\u5f53\u524d\u7ec4\u7ec7\u7684\u5b50\u9879\u5217\u8868\u3002\u6bcf\u4e00\u884c\u90fd\u5305\u62ec\u5b50\u9879\u7684\u540d\u79f0\u3001\u7c7b\u578b\uff08\u7ec4\u7ec7\u3001\u7528\u6237\u6216\u89d2\u8272\uff09\u548c\u94fe\u63a5\u3002\u5355\u51fb\u8be5\u94fe\u63a5\u53ef\u4ee5\u5728\u53f3\u4fa7\u6846\u4e2d\u663e\u793a\u8be5\u7ec4\u7ec7\u7684\u5185\u5bb9\u3002
+
+#*******************************************************************************
+# Navigation Area Host Tree Tab
+#
+#*******************************************************************************
+
+APOC.hosttree.title=\u57df\u6811
+APOC.hosttree.tooltip=\u57df\u6811\uff08\u6253\u5f00\u201c\u57df\u6811\u201d\u9009\u9879\u5361\u9875\u9762\uff09
+APOC.hosttree.tableSummary=\u6b64\u8868\u683c\u63d0\u4f9b\u4e86\u5f53\u524d\u57df\u7684\u5b50\u9879\u5217\u8868\u3002\u6bcf\u4e00\u884c\u90fd\u5305\u62ec\u5b50\u9879\u7684\u540d\u79f0\u3001\u7c7b\u578b\uff08\u53ef\u4ee5\u662f\u57df\u6216\u7528\u6237\uff09\u548c\u94fe\u63a5\u3002\u5355\u51fb\u8be5\u94fe\u63a5\u53ef\u4ee5\u5728\u53f3\u4fa7\u6846\u4e2d\u663e\u793a\u8be5\u57df\u7684\u5185\u5bb9\u3002
+
+#*******************************************************************************
+# Navigation Area Entities Table Filter
+#
+#*******************************************************************************
+
+APOC.entityfilter.titleUsers=\u9ad8\u7ea7\u7b5b\u9009 - \u7528\u6237
+APOC.entityfilter.titleHosts=\u9ad8\u7ea7\u7b5b\u9009 - \u4e3b\u673a
+APOC.entityfilter.help.title=\u5e2e\u52a9
+APOC.entityfilter.type.label=\u7c7b\u578b\uff1a
+APOC.entityfilter.filter=\u7b5b\u9009
+APOC.entityfilter.placeholder=<\u8981\u8fc7\u6ee4\u7684\u540d\u79f0>
+
+#*******************************************************************************
+# Set Color Dialog
+#
+#*******************************************************************************
+
+APOC.setcolor.edit.alt=\u7f16\u8f91\u8c03\u8272\u677f\uff08\u6253\u5f00\u4e00\u4e2a\u65b0\u7684\u7a97\u53e3\uff09
+APOC.setcolor.title=\u7f16\u8f91\u8c03\u8272\u677f
+APOC.setcolor.introtext=\u5f53\u524d\u989c\u8272\u4f4d\u4e8e\u4e2d\u95f4\u5217\u3002\u4ee5\u540e\u53ef\u4ee5\u4f7f\u7528\u6dfb\u52a0\u6216\u66ff\u6362\u989c\u8272\u6309\u94ae\u5c06\u6b64\u989c\u8272\u6dfb\u52a0\u5230\u8c03\u8272\u677f\u4e2d\u3002\u901a\u8fc7\u5728\u201c\u540d\u79f0\u201d\u5b57\u6bb5\u4e2d\u8f93\u5165\u540d\u79f0\u53ef\u4ee5\u5c06\u540d\u79f0\u4e0e\u989c\u8272\u5173\u8054\u3002\u5b8c\u6210\u540e\uff0c\u5355\u51fb\
+\u201c\u786e\u5b9a\u201d\u4fdd\u5b58\u5bf9\u8c03\u8272\u677f\u7684\u66f4\u6539\u3002
+APOC.setcolor.palette.heading=\u8c03\u8272\u677f\uff1a
+APOC.setcolor.color.heading=\u989c\u8272\uff1a
+APOC.setcolor.color.alt=\u5f53\u524d\u989c\u8272\u4e3a {0}
+APOC.setcolor.red.heading=\u7ea2\u8272\uff1a
+APOC.setcolor.red.increase=\u589e\u52a0\u7ea2\u8272
+APOC.setcolor.red.decrease=\u51cf\u5c11\u7ea2\u8272
+APOC.setcolor.green.heading=\u7eff\u8272\uff1a
+APOC.setcolor.green.increase=\u589e\u52a0\u7eff\u8272
+APOC.setcolor.green.decrease=\u51cf\u5c11\u7eff\u8272
+APOC.setcolor.blue.heading=\u84dd\u8272\uff1a
+APOC.setcolor.blue.increase=\u589e\u52a0\u84dd\u8272
+APOC.setcolor.blue.decrease=\u51cf\u5c11\u84dd\u8272
+APOC.setcolor.hue.heading=\u8272\u8c03\uff1a
+APOC.setcolor.hue.increase=\u63d0\u9ad8\u8272\u8c03
+APOC.setcolor.hue.decrease=\u964d\u4f4e\u8272\u8c03
+APOC.setcolor.sat.heading=\u9971\u548c\u5ea6\uff1a
+APOC.setcolor.sat.increase=\u63d0\u9ad8\u9971\u548c\u5ea6
+APOC.setcolor.sat.decrease=\u964d\u4f4e\u9971\u548c\u5ea6
+APOC.setcolor.lum.heading=\u4eae\u5ea6\uff1a
+APOC.setcolor.lum.increase=\u63d0\u9ad8\u4eae\u5ea6
+APOC.setcolor.lum.decrease=\u964d\u4f4e\u4eae\u5ea6
+APOC.setcolor.html.heading=\u5341\u516d\u8fdb\u5236\u503c\uff1a
+APOC.setcolor.original.heading=\u539f\u59cb\u989c\u8272\uff1a
+APOC.setcolor.original.alt=\u539f\u59cb\u989c\u8272\u4e3a {0}\u3002
+APOC.setcolor.wheel.heading=\u8272\u8c31\uff1a
+APOC.setcolor.wheel.alt=\u5355\u51fb\u56fe\u50cf\u4ece\u8272\u8c31\u4e2d\u9009\u62e9\u989c\u8272\uff0c\u8272\u8c03\u4f4d\u4e8e x \u8f74\u4e0a\uff0c\u9971\u548c\u5ea6\u4f4d\u4e8e y \u8f74\u4e0a\u3002\u5355\u51fb\u8272\u8c31\u4e2d\u7684\u67d0\u4e00\u7279\u5b9a\u989c\u8272\uff0c\u66f4\u65b0\u4e2d\u95f4\u5217\u4ee5\u5305\u542b\u8be5\u989c\u8272\u3002
+APOC.setcolor.slider.summary=\u5728\u6b64\u8868\u683c\u4e2d\u7684\u4efb\u610f\u4f4d\u7f6e\u5355\u51fb\u4ee5\u8c03\u6574\u5f53\u524d\u989c\u8272\u7684\u4eae\u5ea6\u3002 \u4eae\u5ea6\u4ece\u53f3\u5411\u5de6\u4f9d\u6b21\u964d\u4f4e\u3002
+APOC.setcolor.add.button=\u6dfb\u52a0\u989c\u8272 >
+APOC.setcolor.replace.button=\u66ff\u6362\u989c\u8272 >
+APOC.setcolor.remove.button=\u5220\u9664\u989c\u8272
+APOC.setcolor.remove.alert=\u9009\u5b9a\u7684\u5e73\u94fa\u4e0d\u5305\u542b\u5b58\u50a8\u7684\u8c03\u8272\u677f\u989c\u8272\uff0c\u56e0\u6b64\u65e0\u6cd5\u5220\u9664\u3002
+APOC.setcolor.name.alert=\u6307\u5b9a\u7684\u989c\u8272\u540d\u79f0\u5df2\u88ab\u4f7f\u7528\uff0c\u8bf7\u9009\u62e9\u5176\u4ed6\u989c\u8272\u540d\u79f0\u3002
+APOC.setcolor.restoreorigcolor.button=\u6062\u590d\u989c\u8272
+APOC.setcolor.restore.button=\u6062\u590d\u9ed8\u8ba4\u503c
+APOC.setcolor.restore.confirm=\u662f\u5426\u786e\u5b9e\u8981\u6062\u590d\u9ed8\u8ba4\u989c\u8272\uff1f
+APOC.setcolor.increase.tooltip=\u589e\u52a0
+APOC.setcolor.decrease.tooltip=\u51cf\u5c11
+APOC.setcolor.tooltip=\u201c\u7f16\u8f91\u989c\u8272\u201d\u5bf9\u8bdd\u6846\uff08\u5728\u65b0\u7a97\u53e3\u4e2d\u6253\u5f00\uff09
+APOC.setcolor.replace.alert=\u5982\u679c\u8981\u6dfb\u52a0\u53e6\u4e00\u79cd\u989c\u8272\uff0c\u8bf7\u4f7f\u7528\u201c\u6dfb\u52a0\u989c\u8272\u201d\u6309\u94ae\u3002
+APOC.setcolor.add.alert=\u5982\u679c\u8981\u66ff\u6362\u73b0\u6709\u989c\u8272\uff0c\u8bf7\u4f7f\u7528\u201c\u66ff\u6362\u989c\u8272\u201d\u6309\u94ae\u3002
+APOC.setcolor.noname=\u65e0\u540d\u79f0
+APOC.setcolor.invalid.hex=\u8be5\u5341\u516d\u8fdb\u5236\u503c\u65e0\u6548\uff0c\u8bf7\u8f93\u5165\u6709\u6548\u503c
+
+#*******************************************************************************
+# Chooser
+#
+#*******************************************************************************
+
+APOC.page.chooser.list.editor=\u7f16\u8f91\u5217\u8868
+APOC.page.chooser.list.help=\u901a\u8fc7\u7f16\u8f91\u4e0b\u9762\u7684\u5217\u8868\uff0c\u6dfb\u52a0\u6216\u5220\u9664\u5185\u5bb9\u7a97\u683c\u7684\u4e0b\u62c9\u5f0f\u83dc\u5355\u4e2d\u663e\u793a\u7684\u5143\u7d20\u3002\u901a\u8fc7\u5355\u51fb\u201c\u6062\u590d\u9ed8\u8ba4\u503c\u201d\u6309\u94ae\uff0c\u4ece\u5217\u8868\u4e2d\u5220\u9664\u6240\u6709\u7528\u6237\u66f4\u6539\u3002\u901a\u8fc7\u5355\u51fb\u201c\u786e\u5b9a\u201d\u6309\
+\u94ae\uff0c\u5c06\u66f4\u6539\u4fdd\u5b58\u5230\u5217\u8868\u4e2d\u3002
+APOC.chooser.add=\u6dfb\u52a0
+APOC.chooser.system_added=(*) \u8868\u793a\u7531\u7cfb\u7edf\u6dfb\u52a0\u5230\u5217\u8868\u4e2d\u7684\u5143\u7d20\u3002\u5982\u679c\u67d0\u4e9b\u5143\u7d20\u662f\u9ed8\u8ba4\u503c\uff0c\u6216\u8005\u662f\u5f53\u524d\u6240\u663e\u793a\u5c5e\u6027\u7684\u5b58\u50a8\u503c\uff0c\u5219\u8fd9\u4e9b\u5143\u7d20\u5c06\u7531\u7cfb\u7edf\u6dfb\u52a0\u5230\u5217\u8868\u4e2d\u3002
+APOC.chooser.protected.alert=\u4e0d\u80fd\u4ece\u5217\u8868\u4e2d\u5220\u9664\u6b64\u5143\u7d20\uff0c\u56e0\u4e3a\u5b83\u662f\u9ed8\u8ba4\u503c\uff0c\u6216\u8005\u662f\u6b64\u9875\u9762\u4e0a\u67d0\u4e2a\u8bbe\u5b9a\u7684\u5b58\u50a8\u503c
+APOC.chooser.selected.alert=\u4e0d\u80fd\u4ece\u5217\u8868\u4e2d\u5220\u9664\u6b64\u5143\u7d20\uff0c\u56e0\u4e3a\u5b83\u662f\u6b64\u9875\u9762\u4e0a\u67d0\u4e2a\u5c5e\u6027\u7684\u5f53\u524d\u9009\u5b9a\u503c
+APOC.chooser.edit.alt=\u7f16\u8f91\u5217\u8868\uff08\u6253\u5f00\u4e00\u4e2a\u65b0\u7684\u7a97\u53e3\uff09
+APOC.font.chooser.title=\u7f16\u8f91\u5b57\u4f53\u5217\u8868
+APOC.window.border.chooser.title=\u7f16\u8f91\u7a97\u53e3\u8fb9\u6846\u4e3b\u9898\u5217\u8868
+APOC.window.controls.chooser.title=\u7f16\u8f91\u63a7\u4ef6\u4e3b\u9898\u5217\u8868
+APOC.window.icon.chooser.title=\u7f16\u8f91\u56fe\u6807\u4e3b\u9898\u5217\u8868
+
+#*******************************************************************************
+# Navigation Area Repository Tab
+#
+#*******************************************************************************
+
+APOC.pool.title=\u7b56\u7565\u7cfb\u7edf\u4fe1\u606f\u5e93
+APOC.pool.all_profiles=\u6240\u6709\u914d\u7f6e\u6587\u4ef6
+APOC.pool.all_profiles.help=\u6b64\u9009\u9879\u5361\u9875\u9762\u5217\u51fa\u4e86\u6240\u6709\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.pool.all_domain_profiles=\u6240\u6709\u57df\u914d\u7f6e\u6587\u4ef6
+APOC.pool.all_org_profiles=\u6240\u6709\u7ec4\u7ec7\u914d\u7f6e\u6587\u4ef6
+APOC.pool.tooltip=\u7b56\u7565\u7cfb\u7edf\u4fe1\u606f\u5e93\uff08\u6253\u5f00\u201c\u7b56\u7565\u7cfb\u7edf\u4fe1\u606f\u5e93\u201d\u9009\u9879\u5361\u9875\u9762\uff09
+APOC.pool.sets=\u6307\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6
+APOC.pool.setsHost=\u4e3b\u673a\u914d\u7f6e\u6587\u4ef6
+APOC.pool.priority=\u4f18\u5148\u7ea7
+APOC.pool.actions=&#8212;&nbsp;\u914d\u7f6e\u6587\u4ef6\u64cd\u4f5c&nbsp;&#8212;
+APOC.pool.new=\u65b0\u5efa...
+APOC.pool.delete=\u5220\u9664...
+APOC.pool.import=\u8f93\u5165...
+APOC.pool.export=\u8f93\u51fa...
+APOC.pool.rename=\u91cd\u547d\u540d...
+APOC.pool.edit=\u7f16\u8f91\u4f18\u5148\u7ea7...
+APOC.pool.add_assignment=\u6307\u5b9a\u914d\u7f6e\u6587\u4ef6
+APOC.pool.available_profiles=\u53ef\u7528\u7684\u914d\u7f6e\u6587\u4ef6
+APOC.pool.add_assignment_help=\u53ef\u4ee5\u4f7f\u7528\u6b64\u7a97\u53e3\u6307\u5b9a\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.pool.new_button.help=\u521b\u5efa\u65b0\u7684\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.pool.delete_button.help=\u5220\u9664\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.pool.assign_button.help=\u6253\u5f00\u4e00\u4e2a\u65b0\u7a97\u53e3\uff0c\u53ef\u4ee5\u5728\u8be5\u7a97\u53e3\u4e2d\u9009\u62e9\u8981\u6307\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.pool.unassign_button.help=\u53d6\u6d88\u4e3a\u5f53\u524d\u7ec4\u7ec7\u6307\u5b9a\u7684\u9009\u5b9a\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.pool.report_button.help=\u6253\u5f00\u5305\u542b\u62a5\u8868\u7684\u7a97\u53e3\u3002
+APOC.pool.tableSummary=\u6b64\u8868\u683c\u63d0\u4f9b\u4e86\u5168\u5c40\u914d\u7f6e\u6587\u4ef6\u7684\u5217\u8868\u3002\u6bcf\u4e00\u884c\u90fd\u5305\u542b\u914d\u7f6e\u6587\u4ef6\u7684\u540d\u79f0\u3001\u4f18\u5148\u7ea7\u548c\u94fe\u63a5\u3002\u5355\u51fb\u94fe\u63a5\u53ef\u4ee5\u5728\u53f3\u4fa7\u6846\u4e2d\u663e\u793a\u914d\u7f6e\u6587\u4ef6\u7684\u5185\u5bb9\u3002
+APOC.pool.empty=\u65e0\u53ef\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.pool.deleteMessage=\u662f\u5426\u786e\u5b9e\u8981\u5220\u9664\u9009\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6\uff1f
+APOC.pool.tableSummary=\u6b64\u8868\u683c\u63d0\u4f9b\u4e86\u914d\u7f6e\u6587\u4ef6\u5217\u8868\u3002\u6bcf\u4e00\u884c\u90fd\u5305\u62ec\u914d\u7f6e\u6587\u4ef6\u7684\u540d\u79f0\u3001\u4f5c\u8005\u4ee5\u53ca\u4e0a\u6b21\u4fee\u6539\u65e5\u671f\u3002\u5355\u51fb\u8be5\u540d\u79f0\u53ef\u4ee5\u663e\u793a\u8be5\u914d\u7f6e\u6587\u4ef6\u7684\u5185\u5bb9\u3002
+APOC.pool.empty=\u65e0\u53ef\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.pool.deleteMessage=\u662f\u5426\u786e\u5b9e\u8981\u5220\u9664\u9009\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6\uff1f
+APOC.pool.newMessage=\u8f93\u5165\u65b0\u914d\u7f6e\u6587\u4ef6\u7684\u540d\u79f0\uff1a
+APOC.pool.newDefault=NewPolicyGroup
+APOC.pool.renameMessage=\u8f93\u5165\u914d\u7f6e\u6587\u4ef6\u7684\u65b0\u540d\u79f0\uff1a
+APOC.pool.help.title=\u7b56\u7565\u7cfb\u7edf\u4fe1\u606f\u5e93\u5e2e\u52a9
+APOC.pool.help.text1=\u7b56\u7565\u7cfb\u7edf\u4fe1\u606f\u5e93\u7528\u4e8e\u5b58\u50a8\u914d\u7f6e\u6587\u4ef6\u3002\u914d\u7f6e\u6587\u4ef6\u662f\u5df2\u547d\u540d\u7684\u7b56\u7565\u5bb9\u5668\u3002\u914d\u7f6e\u6587\u4ef6\u7684\u540d\u79f0\u5fc5\u987b\u552f\u4e00\u3002
+APOC.pool.help.text2=\u521b\u5efa\u65b0\u7684\u914d\u7f6e\u6587\u4ef6\u540e\uff0c\u53ef\u4ee5\u5728\u5176\u4e2d\u5b58\u50a8\u914d\u7f6e\u8bbe\u7f6e\uff0c\u5e76\u5c06\u6b64\u914d\u7f6e\u6587\u4ef6\u6dfb\u52a0\u5230\u4efb\u610f\u7ec4\u7ec7\u3001\u7528\u6237\u3001\u89d2\u8272\u3001\u57df\u6216\u4e3b\u673a\u4e2d\u3002\u8981\u5b8c\u6210\u6b64\u64cd\u4f5c\uff0c\u8bf7\u5728\u5bfc\u822a\u7a97\u683c\u4e2d\u67e5\u770b\u5143\u7d20\uff0c\u5e76\
+\u5728\u5185\u5bb9\u7a97\u683c\u4e2d\u9009\u62e9\u201c\u914d\u7f6e\u6587\u4ef6\u201d\u9009\u9879\u5361\u9875\u9762\u3002
+APOC.pool.help.text3=\u867d\u7136\u5728\u7ba1\u7406\u914d\u7f6e\u65f6\u4e0d\u4e00\u5b9a\u8981\u4f7f\u7528\u914d\u7f6e\u6587\u4ef6\uff0c\u4f46\u4f7f\u7528\u914d\u7f6e\u6587\u4ef6\u53ef\u4ee5\u66f4\u7075\u6d3b\u5730\u7ba1\u7406\u914d\u7f6e\u8bbe\u7f6e\u3002\u4f8b\u5982\uff0c\u60a8\u53ef\u4ee5\u521b\u5efa\u914d\u7f6e\u6587\u4ef6\u201c\u65b0\u7528\u6237\u201d\uff0c\u7136\u540e\u5728\u8be5\u914d\u7f6e\u6587\u4ef6\u4e2d\u5b58\u50a8\u9002\
+\u7528\u4e8e\u65b0\u7528\u6237\u7684\u914d\u7f6e\u8bbe\u7f6e\uff0c\u5e76\u5c06\u8be5\u914d\u7f6e\u6587\u4ef6\u6dfb\u52a0\u5230\u7ec4\u7ec7\u6216\u57df\u6811\u7684\u4efb\u610f\u6210\u5458\u4e2d\u3002
+APOC.pool.import.tooltip=\u5c06\u914d\u7f6e\u6587\u4ef6\u5bfc\u5165\u7cfb\u7edf\u4fe1\u606f\u5e93\u3002
+APOC.pool.export.tooltip=\u5bfc\u51fa\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.pool.rename.tooltip=\u91cd\u547d\u540d\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.pool.import.disabled.tooltip=\u5c06\u914d\u7f6e\u6587\u4ef6\u5bfc\u5165\u7cfb\u7edf\u4fe1\u606f\u5e93\uff08\u4e0d\u53ef\u7528\uff09\u3002
+APOC.pool.export.disabled.tooltip=\u5bfc\u51fa\u914d\u7f6e\u6587\u4ef6\uff08\u4e0d\u53ef\u7528\uff09\u3002
+APOC.pool.rename.disabled.tooltip=\u91cd\u547d\u540d\u914d\u7f6e\u6587\u4ef6\uff08\u4e0d\u53ef\u7528\uff09\u3002
+
+#*******************************************************************************
+# Navigation Area Priorities
+#
+#*******************************************************************************
+
+APOC.prios.title=\u914d\u7f6e\u6587\u4ef6\u4f18\u5148\u7ea7
+APOC.prios.help=\u53ef\u4ee5\u4f7f\u7528\u6b64\u9009\u9879\u5361\u9875\u9762\u6765\u66f4\u6539\u914d\u7f6e\u6587\u4ef6\u7684\u4f18\u5148\u7ea7\u3002\u4f18\u5148\u7ea7\u5b9a\u4e49\u4e86\u914d\u7f6e\u6587\u4ef6\u7684\u5408\u5e76\u987a\u5e8f\uff08\u5c06\u591a\u4e2a\u9002\u7528\u6027\u76f8\u540c\u7684\u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u7ed9\u4e00\u4e2a\u5143\u7d20\u65f6\uff09\u3002
+APOC.prios.up=\u5411\u4e0a\u79fb\u52a8
+APOC.prios.down=\u5411\u4e0b\u79fb\u52a8
+
+#*******************************************************************************
+# Navigation Area Profile Import
+#
+#*******************************************************************************
+
+APOC.groupimport.title=\u4ece\u672c\u5730\u6587\u4ef6\u5bfc\u5165\u914d\u7f6e\u6587\u4ef6
+APOC.groupimport.help=\u9009\u62e9\u4e00\u4e2a\u672c\u5730\u914d\u7f6e\u6587\u4ef6\u4ee5\u5bfc\u5165\u5230\u5f53\u524d\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u4e2d
+APOC.groupimport.choosetext=\u8981\u8f93\u5165\u7684\u6587\u4ef6\uff1a
+APOC.groupimport.defaulttext=<\u6587\u4ef6\u540d>
+APOC.groupimport.import=\u8f93\u5165
+APOC.groupimport.error.zip=\u9519\u8bef\uff1a\u6587\u4ef6\u5fc5\u987b\u662f Zip \u683c\u5f0f\u7684\u3002
+APOC.importwnd.js.overwrite_alert=\u5177\u6709\u6b64\u540d\u79f0\u7684\u914d\u7f6e\u6587\u4ef6\u5df2\u5b58\u5728\u3002\u662f\u5426\u8986\u76d6\u6b64\u914d\u7f6e\u6587\u4ef6\uff1f
+APOC.groupimport.importing=\u5bfc\u5165\u914d\u7f6e\u6587\u4ef6
+
+#*******************************************************************************
+# Navigation Area Search
+#
+#*******************************************************************************
+
+APOC.search.search=\u641c\u7d22
+APOC.search.param.help=\u5728\u6574\u4e2a\u6811\u8303\u56f4\u5185\u8fdb\u884c\u641c\u5bfb\u3002
+APOC.search.userid.label=\u7528\u6237 ID\uff1a
+APOC.search.firstname.label=\u540d\u5b57\uff1a
+APOC.search.lastname.label=\u59d3\u6c0f\uff1a
+APOC.search.point.label=\u8d77\u59cb\u70b9\uff1a
+APOC.search.perpage.label=\u6bcf\u4e2a\u9875\u9762\u4e0a\u663e\u793a\u7684\u7ed3\u679c\u6570\uff1a
+APOC.search.results=\u7ed3\u679c
+APOC.search.result.help=\u6b64\u9875\u9762\u5217\u51fa\u4e86\u641c\u7d22\u7ed3\u679c\u3002\u201c\u8def\u5f84\u201d\u5217\u5217\u51fa\u4e86\u76f8\u5bf9\u4e8e\u8d77\u59cb\u70b9\u7684\u8def\u5f84\u3002
+APOC.search.entitiesFound=\u627e\u5230\u7684\u5143\u7d20
+APOC.search.param.title.help=\u6307\u5b9a\u641c\u7d22\u53c2\u6570\u3002
+APOC.search.usersFound=\u627e\u5230\u7528\u6237
+APOC.search.rolesFound=\u627e\u5230\u89d2\u8272
+APOC.search.organizationsFound=\u627e\u5230\u7ec4\u7ec7
+APOC.search.domainsFound=\u627e\u5230\u57df
+APOC.search.hostsFound=\u627e\u5230\u4e3b\u673a
+APOC.search.all=\u641c\u5bfb\u6240\u6709
+APOC.search.users=\u641c\u5bfb\u7528\u6237
+APOC.search.roles=\u641c\u5bfb\u89d2\u8272
+APOC.search.organizations=\u641c\u5bfb\u7ec4\u7ec7
+APOC.search.domains=\u641c\u5bfb\u57df
+APOC.search.hosts=\u641c\u5bfb\u4e3b\u673a
+APOC.search.tableSummary=\u6b64\u8868\u683c\u63d0\u4f9b\u4e86\u641c\u7d22\u7ed3\u679c\u5217\u8868\u3002\u6bcf\u4e00\u884c\u90fd\u5305\u62ec\u5143\u7d20\u7684\u540d\u79f0\u3001\u7c7b\u578b\uff08\u7ec4\u7ec7\u3001\u7528\u6237\u6216\u89d2\u8272\uff09\u53ca\u5176\u5b8c\u6574\u8def\u5f84\u3002\u5728\u4e3b\u5e94\u7528\u7a0b\u5e8f\u7a97\u53e3\u7684\u5de6\u4fa7\u6846\u4e2d\u5355\u51fb\u67d0\u4e2a\u540d\u79f0\u53ef\u4ee5\u9009\u62e9\u76f8\u5e94\
+\u7684\u5143\u7d20\u3002
+APOC.search.path=\u8def\u5f84
+APOC.search.userid=\u7528\u6237 ID
+APOC.search.title.text=\u641c\u7d22
+APOC.search.search.help=\u641c\u7d22\u7cfb\u7edf\u4fe1\u606f\u5e93\u3002
+APOC.search.reset.help=\u5c06\u641c\u7d22\u53c2\u6570\u91cd\u8bbe\u4e3a\u9ed8\u8ba4\u503c\u3002
+APOC.search.cancel.help=\u5173\u95ed\u6b64\u7a97\u53e3\u3002
+APOC.search.advanced.show.button=\u663e\u793a\u9ad8\u7ea7\u9009\u9879
+APOC.search.advanced.show.help=\u663e\u793a\u9ad8\u7ea7\u9009\u9879\u3002
+APOC.search.advanced.hide.button=\u9690\u85cf\u9ad8\u7ea7\u9009\u9879
+APOC.search.advanced.hide.help=\u9690\u85cf\u9ad8\u7ea7\u9009\u9879\u3002
+APOC.search.advanced.start.label=\u641c\u7d22\u533a\u57df\uff1a
+APOC.search.advanced.restrict.label=\u9650\u5b9a\u4e3a\uff1a
+APOC.search.advanced.browse.help=\u6253\u5f00\u4e00\u4e2a\u7a97\u53e3\uff0c\u53ef\u4ee5\u5728\u8be5\u7a97\u53e3\u4e2d\u66f4\u6539\u7528\u4e8e\u786e\u5b9a\u641c\u7d22\u8d77\u59cb\u70b9\u7684\u8def\u5f84\u3002
+APOC.search.advanced.start.label=\u641c\u7d22\u533a\u57df\uff1a
+APOC.search.help.title=\u5173\u4e8e\u641c\u5bfb
+APOC.search.help.text1=\u641c\u7d22\u4e0d\u533a\u5206\u5927\u5c0f\u5199\uff0c\u5e76\u4e14\u4e0d\u662f\u5168\u5b57\u5339\u914d\u3002\u4f8b\u5982\uff0c\u8f93\u5165\u641c\u7d22\u5b57\u7b26\u4e32 "bc" \u5c06\u4f1a\u627e\u5230 "ABC" \u548c "bcd"\u3002
+APOC.search.help.text2=\u661f\u53f7 (*) \u5728\u641c\u7d22\u5b57\u7b26\u4e32\u4e2d\u8868\u793a\u4efb\u610f\u5b57\u7b26\u5e8f\u5217\u3002\u53ef\u4ee5\u5728\u641c\u7d22\u5b57\u7b26\u4e32\u4e2d\u7684\u4efb\u610f\u4f4d\u7f6e\u4f7f\u7528\u591a\u4e2a\u661f\u53f7\u3002
+APOC.search.help.text3=\u7a7a\u767d\u5b57\u6bb5\u7b49\u540c\u4e8e\u5177\u6709\u641c\u7d22\u5b57\u7b26\u4e32 "*" \u7684\u5b57\u6bb5\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6700\u591a\u53ef\u4ee5\u8fd4\u56de 100 \u6761\u7ed3\u679c\uff0c\u4f46\u53ef\u4ee5\u914d\u7f6e\u6b64\u53c2\u6570\u3002\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u67e5\u9605\u5b89\u88c5\u6307\u5357\u3002
+APOC.search.help.inline=\u8f93\u5165\u540d\u79f0\u3002\u53ef\u4ee5\u5c06 * \u7528\u4f5c\u901a\u914d\u7b26\u3002
+APOC.search.help.inlineUser=\u8f93\u5165\u7528\u6237 ID\u3002\u53ef\u4ee5\u5c06 * \u7528\u4f5c\u901a\u914d\u7b26\u3002
+
+#*******************************************************************************
+# Content Area - Profiles
+#*******************************************************************************
+APOC.profile.inherited.table=\u7ee7\u627f\u7684\u914d\u7f6e\u6587\u4ef6
+APOC.profile.page.title=\u6b64\u9009\u9879\u5361\u9875\u9762\u5217\u51fa\u4e86\u9009\u5b9a\u5143\u7d20\u7684\u5185\u5bb9\u3002
+APOC.profile.name.text=\uff08\u914d\u7f6e\u6587\u4ef6 {0}\uff09
+APOC.profilemgr.assigned=\u6307\u5b9a\u7684
+APOC.profilemgr.assign=\u6307\u5b9a\u914d\u7f6e\u6587\u4ef6...
+APOC.profilemgr.pending=\u73b0\u6709\u7684\u66f4\u6539
+APOC.profilemgr.author=\u4f5c\u8005
+APOC.profilemgr.lastMod=\u4e0a\u6b21\u4fee\u6539\u65f6\u95f4
+APOC.profilemgr.delete=\u5220\u9664
+APOC.profilemgr.moreActions=&#8212;&nbsp; \u66f4\u591a\u64cd\u4f5c&nbsp;&#8212;
+APOC.profilemgr.yes=\u662f
+APOC.profileassi.unassign=\u53d6\u6d88\u6307\u5b9a\u914d\u7f6e\u6587\u4ef6
+APOC.profileassi.manage=\u7ba1\u7406\u914d\u7f6e\u6587\u4ef6...
+APOC.profileassi.release=\u91ca\u653e\u66f4\u6539...
+APOC.profileassi.releaseNow=\u91ca\u653e
+APOC.profileassi.showResults=\u6709\u6548\u8bbe\u7f6e...
+APOC.profileassi.title=\u91ca\u653e\u66f4\u6539
+APOC.profileassi.table.empty=\u672a\u6307\u5b9a\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.profileavail.title=\u53ef\u7528\u7684\u914d\u7f6e\u6587\u4ef6
+APOC.profileavail.help=\u53ef\u4ee5\u4f7f\u7528\u6b64\u7a97\u53e3\u6307\u5b9a\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.profileavail.assigning=\u6b63\u5728\u6307\u5b9a\u914d\u7f6e\u6587\u4ef6
+APOC.profileall.title=\u6240\u6709\u914d\u7f6e\u6587\u4ef6
+APOC.profileall.help=\u6b64\u9009\u9879\u5361\u9875\u9762\u5217\u51fa\u4e86\u6240\u6709\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.profileall.domtable.title=\u6240\u6709\u57df\u914d\u7f6e\u6587\u4ef6
+APOC.profileall.orgtable.title=\u6240\u6709\u7ec4\u7ec7\u914d\u7f6e\u6587\u4ef6
+APOC.profile.search.profile=\u641c\u7d22\u914d\u7f6e\u6587\u4ef6
+APOC.profile.error.storing=\u5b58\u50a8\u914d\u7f6e\u6587\u4ef6\u65f6\u51fa\u9519\u3002
+APOC.profile.assigned.delete=\u9009\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6\u81f3\u5c11\u5df2\u6307\u5b9a\u7ed9\u4e00\u4e2a\u5143\u7d20\u3002\\n\
+ \\n\
+\u662f\u5426\u786e\u5b9e\u8981\u5220\u9664\u8fd9\u4e9b\u914d\u7f6e\u6587\u4ef6\uff1f
+APOC.profile.unassigned.delete=\u9009\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6\u7684\u6240\u6709\u914d\u7f6e\u6587\u4ef6\u6570\u636e\u90fd\u5c06\u88ab\u5220\u9664\u3002\u662f\u5426\u7ee7\u7eed\uff1f
+APOC.profiles.default.msg=\u8868\u793a\u9ed8\u8ba4\u503c
+
+#*******************************************************************************
+# Configure Report
+#
+#*******************************************************************************
+
+APOC.configrep.title=\u4fee\u6539\u6709\u6548\u8bbe\u7f6e\u53c2\u6570
+APOC.configrep.help=\u6307\u5b9a\u7528\u4e8e\u751f\u6210\u6709\u6548\u8bbe\u7f6e\u7684\u53c2\u6570\u3002\u53ef\u4f7f\u7528\u4ee5\u4e0b\u5217\u8868\u6765\u5b9a\u4e49\u751f\u6210\u6709\u6548\u8bbe\u7f6e\u7684\u76f8\u5173\u5143\u7d20\u3002\u53ef\u4ee5\u9488\u5bf9\u6bcf\u79cd\u7c7b\u578b\u9009\u62e9\u4e00\u4e2a\u5143\u7d20\uff0c\u6709\u6548\u8bbe\u7f6e\u662f\u7b56\u7565\u8bbe\u7f6e\uff08\u5305\u542b\u5728\u4e3a\u6240\u9009\u5143\u7d20\
+\u6307\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\uff09\u5408\u5e76\u7684\u7ed3\u679c\u3002
+APOC.configrep.effective.settings=\u6709\u6548\u8bbe\u7f6e
+APOC.configrep.columns=\u5728\u8bbe\u7f6e\u6458\u8981\u4e2d\u663e\u793a\uff1a
+APOC.configrep.statepath=\u72b6\u6001\u8def\u5f84
+APOC.configrep.des=\u8bf4\u660e
+APOC.configrep.reptype=\u9009\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6\u6e90\u5408\u5e76\u987a\u5e8f
+APOC.configrep.orgtree=\u4ece\u7ec4\u7ec7\u6811\u4e2d\u9009\u62e9\u5143\u7d20\uff1a
+APOC.configrep.domtree=\u4ece\u57df\u6811\u4e2d\u9009\u62e9\u5143\u7d20\uff1a
+APOC.configrep.typeorg=\u7ec4\u7ec7\u6811\u4e2d\u7684\u8bbe\u5b9a
+APOC.configrep.typedom=\u57df\u6811\u4e2d\u7684\u8bbe\u5b9a
+APOC.configrep.typeboth=\u4e24\u79cd\u6811\u4e2d\u7684\u8bbe\u5b9a
+APOC.configrep.button.report=\u751f\u6210\u6709\u6548\u8bbe\u7f6e
+
+#*******************************************************************************
+# Report
+#
+#*******************************************************************************
+APOC.report.button.tooltip=\u6253\u5f00\u5305\u542b\u62a5\u8868\u7684\u7a97\u53e3\u3002
+APOC.report.onetree.title=\u4e3b\u673a "{2}" \u4e0a {0} "{1}" \u7684\u6709\u6548\u8bbe\u7f6e
+APOC.report.twotree.title=\u4e3b\u673a "{4}" \u4e0a {0} "{1}" \u548c {2} "{3}" \u7684\u6709\u6548\u8bbe\u7f6e
+APOC.report.multipletree.title=\u4e3b\u673a "{1}" \u4e0a {0} \u7684\u6709\u6548\u8bbe\u7f6e
+APOC.report.involved.profiles.entity={0} \u4e2a\u914d\u7f6e\u6587\u4ef6
+APOC.report.locorg={0} \u662f {1} \u4e0b\u7684\u7ec4\u7ec7
+APOC.report.locrole={0} \u662f {1} \u4e0b\u7684\u89d2\u8272
+APOC.report.locuserid={0} \u662f {1} \u4e0b\u7684\u7528\u6237
+APOC.report.lochost={0} \u662f {1} \u4e0b\u7684\u4e3b\u673a
+APOC.report.locdomain={0} \u662f {1} \u4e0b\u7684\u57df
+APOC.report.rootlocorg={0} \u662f\u7ec4\u7ec7
+APOC.report.rootlocuserid={0} \u662f\u7528\u6237
+APOC.report.rootlocrole={0} \u662f\u89d2\u8272
+APOC.report.rootlochost={0} \u662f\u4e3b\u673a
+APOC.report.rootlocdomain={0} \u662f\u57df
+APOC.report.policygrouploc={0} \u662f\u914d\u7f6e\u6587\u4ef6
+APOC.report.bothand=\u548c
+APOC.report.creator=\u5efa\u7acb\u8005\u662f {1} \u4e0a\u7684 {0}
+APOC.report.createdate=\u5efa\u7acb\u65e5\u671f\u662f {0}
+APOC.report.backendtype=\u540e\u7aef\u7c7b\u578b\u662f {0}
+APOC.report.backendhost=\u540e\u7aef\u4e3b\u673a\u662f {0}
+APOC.report.unknown=\u672a\u77e5
+APOC.report.startcat=\u5f00\u59cb\u7684\u79cd\u7c7b\u662f {0}
+APOC.report.contitle=\u76ee\u5f55
+APOC.report.isbelow=\u5728 {0} \u4e0b
+APOC.report.table.summary=\u6b64\u8868\u683c\u5217\u51fa\u4e86\u914d\u7f6e\u8bbe\u7f6e\u3002\u6bcf\u4e00\u884c\u90fd\u5305\u62ec\u5c5e\u6027\u7684\u72b6\u6001\u3001\u540d\u79f0\u548c\u503c\u3002
+APOC.report.table.nameheading=\u540d\u79f0
+APOC.report.table.valueheading=\u503c
+APOC.report.table.statusheading=\u72b6\u6001
+APOC.report.table.statuspheading=\u72b6\u6001\u8def\u5f84
+APOC.report.table.desheading=\u8bf4\u660e
+APOC.report.table.defined=\u5df2\u5b9a\u4e49
+APOC.report.table.protected=\u5df2\u5f3a\u5236
+APOC.report.table.readonly=\u53ea\u8bfb
+APOC.report.table.defined.in=\u5b9a\u4e49\u4e8e
+APOC.report.table.protected.in=\u7528\u6237\u4e0d\u53ef\u8986\u76d6
+APOC.report.table.readonly.in=\u53ea\u8bfb
+APOC.report.table.pathPG=\u6982\u8981\u6587\u4ef6\uff1a
+APOC.report.table.empty={0} \u4e2d\u4e0d\u5305\u62ec\u503c\u3002
+APOC.report.buttons.print=\u6253\u5370
+APOC.report.assigned.profiles.title=\u76f8\u5173\u7684\u914d\u7f6e\u6587\u4ef6
+APOC.report.settings.summary.title=\u8bbe\u7f6e\u6458\u8981
+APOC.report.addremove.elements=\u76f8\u5173\u7684\u5143\u7d20\uff1a
+APOC.report.elements.table.heading=\u76f8\u5173\u7684\u5143\u7d20
+APOC.report.elements.table.summary=\u6b64\u8868\u683c\u6307\u5b9a\u751f\u6210\u6709\u6548\u8bbe\u7f6e\u7ed3\u679c\u7684\u76f8\u5173\u5143\u7d20\u3002
+APOC.report.elements.table.title=\u53ef\u4ee5\u4f7f\u7528\u6b64\u5217\u8868\u6307\u5b9a\u751f\u6210\u6709\u6548\u8bbe\u7f6e\u7684\u76f8\u5173\u5143\u7d20\u3002
+APOC.report.add.element=\u6dfb\u52a0\u5143\u7d20
+APOC.report.remove.element=\u5220\u9664\u5143\u7d20
+APOC.report.novalues=\u76f8\u5173\u7684\u5143\u7d20\u4e0d\u5305\u542b\u4efb\u4f55\u503c\u3002
+APOC.report.xml.parsing.error=\u8bfb\u53d6\u914d\u7f6e\u6587\u4ef6\u6570\u636e\u65f6\u51fa\u73b0 XML \u89e3\u6790\u9519\u8bef\uff01
+
+#*******************************************************************************
+# Full-Page Error Alert
+#
+#*******************************************************************************
+
+APOC.pageerror.title=\u64cd\u4f5c\u5931\u8d25
+APOC.pageerror.comment=\u5728\u6b64\u9875\u9762\u4e0a\u53ef\u4ee5\u627e\u5230\u6b64\u9519\u8bef\u7684 HTML \u6ce8\u89e3\u5f62\u5f0f\u7684\u5806\u6808\u8ddf\u8e2a\u3002
+
+#*******************************************************************************
+# PolicyMgr Error Messages
+#
+#*******************************************************************************
+
+APOC.error.occurred=\u53d1\u751f\u9519\u8bef\u3002
+APOC.error.open.connection=\u7528\u6237\u65e0\u6cd5\u5efa\u7acb\u8fde\u63a5\u3002
+APOC.error.close.connection=\u5173\u95ed\u8fde\u63a5\u65f6\u53d1\u751f\u9519\u8bef\u3002
+APOC.error.user.invalid=\u4f7f\u7528\u540d\u65e0\u6548\u3002
+APOC.error.unsupported.datastore=\u5f15\u5bfc\u4fe1\u606f\u4e2d\u6307\u5b9a\u7684\u6570\u636e\u5b58\u50a8\u7c7b\u578b\u4e0d\u53d7\u652f\u6301\u3002
+APOC.error.application.initialize=\u65e0\u6cd5\u521d\u59cb\u5316\u5e94\u7528\u7a0b\u5e8f\u3002
+APOC.error.bootstrap.incomplete=\u5f15\u5bfc\u4fe1\u606f\u4e0d\u5b8c\u6574\u3002
+APOC.error.bootstrap.unavailable=\u5f15\u5bfc\u4fe1\u606f\u4e0d\u53ef\u7528\u3002
+APOC.error.ldap.bootstrap=LDAP \u76ee\u5f55\u670d\u52a1\u5668\u7684\u5f15\u5bfc\u4fe1\u606f\u4e0d\u5b8c\u6574\u3002
+APOC.error.org.settings=\u7ec4\u7ec7\u8bbe\u5b9a\u5728\u5143\u914d\u7f6e\u4e2d\u65e0\u6548\u3002
+APOC.error.role.settings=\u89d2\u8272\u8bbe\u5b9a\u5728\u5143\u914d\u7f6e\u4e2d\u65e0\u6548\u3002
+APOC.error.user.settings=\u7528\u6237\u8bbe\u5b9a\u5728\u5143\u914d\u7f6e\u4e2d\u65e0\u6548\u3002
+APOC.error.create.parser=\u65e0\u6cd5\u521b\u5efa XML \u89e3\u6790\u5668\u3002
+APOC.error.filter=\u8be5\u7b5b\u9009\u8bed\u6cd5\u4e0d\u6b63\u786e\u3002
+APOC.error.policy.read=\u65e0\u6cd5\u8bfb\u53d6\u7b56\u7565\u6570\u636e\u3002
+APOC.error.policy.data.invalid=\u7b56\u7565\u6570\u636e\u65e0\u6548\u3002
+APOC.error.policy.invalid=\u7b56\u7565\u65e0\u6548\u3002
+APOC.error.path.invalid=\u8def\u5f84\u65e0\u6548\u3002
+APOC.error.userprofile.attribute=\u7528\u6237\u521d\u59cb\u914d\u7f6e\u4e2d\u4e0d\u5305\u62ec\u8be5\u5c5e\u6027\u3002
+APOC.error.locale.support=\u6b64\u8bed\u8a00\u73af\u5883\u4e0d\u53d7\u652f\u6301\u3002
+APOC.error.ldap.read=\u53d1\u751f LDAP \u8bfb\u53d6\u9519\u8bef\u3002
+APOC.error.ldap.write=\u53d1\u751f LDAP \u5199\u5165\u9519\u8bef\u3002
+APOC.error.ldap.search=\u641c\u5bfb\u65f6\u53d1\u751f LDAP \u9519\u8bef\u3002
+APOC.error.ldap.results.size=\u7531\u4e8e\u4ea7\u751f\u7684\u6761\u76ee\u6570\u5927\u4e8e LDAP \u670d\u52a1\u5668\u6240\u8bbe\u5b9a\u7684\u9650\u5ea6\uff0c\u5bfc\u81f4\u5728\u641c\u5bfb\u65f6\u53d1\u751f LDAP \u9519\u8bef\u3002
+APOC.error.ldap.policygroup.creation=\u521b\u5efa\u914d\u7f6e\u6587\u4ef6\u65f6\u53d1\u751f LDAP \u9519\u8bef\u3002
+APOC.error.ldap.policygroup.deletion=\u5220\u9664\u914d\u7f6e\u6587\u4ef6\u65f6\u53d1\u751f LDAP \u9519\u8bef\u3002
+APOC.error.ldap.policygroup.rename=\u91cd\u547d\u540d\u914d\u7f6e\u6587\u4ef6\u65f6\u53d1\u751f LDAP \u9519\u8bef\u3002
+APOC.error.unprotect.item=\u7531\u4e8e\u7236\u9879\u53d7\u4fdd\u62a4\uff0c\u6b64\u9879\u4e0d\u80fd\u88ab\u53d6\u6d88\u4fdd\u62a4\u3002
+APOC.error.readonly.item=\u65e0\u6cd5\u7f16\u8f91\u53ea\u8bfb\u9879\u3002
+APOC.error.mandatory.remove=\u65e0\u6cd5\u5220\u9664\u5f3a\u5236\u9879\u3002
+APOC.error.comply.constraints=\u8be5\u503c\u4e0d\u7b26\u5408\u5c5e\u6027\u7ea6\u675f\u3002
+APOC.error.nillable=\u8be5\u9879\u4e0d\u80fd\u8bbe\u5b9a\u6210 NIL\u3002
+APOC.error.mandatory.setting=\u65e0\u6cd5\u66f4\u6539\u6b64\u9879\u7684\u5f3a\u5236\u8bbe\u5b9a\u3002
+APOC.error.policygroup.priority.exists=\u5177\u6709\u6b64\u4f18\u5148\u7ea7\u7684\u914d\u7f6e\u6587\u4ef6\u5df2\u5b58\u5728\u3002
+APOC.error.policygroup.name.exists=\u5177\u6709\u6b64\u540d\u79f0\u7684\u914d\u7f6e\u6587\u4ef6\u5df2\u5b58\u5728\u3002
+APOC.error.policygroup.not.exists=\u914d\u7f6e\u6587\u4ef6\u4e0d\u5b58\u5728\u3002
+APOC.error.priorities.incorrect=\u914d\u7f6e\u6587\u4ef6\u4f18\u5148\u7ea7\u4e0d\u6b63\u786e\u3002
+APOC.error.policygroup.invalid=\u914d\u7f6e\u6587\u4ef6\u65e0\u6548\u3002
+APOC.error.host.invalid=\u4e3b\u673a\u540d\u65e0\u6548\u3002
+APOC.error.domain.settings=\u57df\u8bbe\u5b9a\u5728\u5143\u914d\u7f6e\u4e2d\u65e0\u6548\u3002
+APOC.error.host.settings=\u4e3b\u673a\u8bbe\u5b9a\u5728\u5143\u914d\u7f6e\u4e2d\u65e0\u6548\u3002
+APOC.error.export.policygroup=\u5bfc\u51fa\u914d\u7f6e\u6587\u4ef6\u65f6\u53d1\u751f\u9519\u8bef\u3002
+APOC.error.import.policygroup=\u5bfc\u5165\u914d\u7f6e\u6587\u4ef6\u65f6\u53d1\u751f\u9519\u8bef\u3002
+APOC.error.export.policygroup_data=\u6ca1\u6709\u53ef\u7528\u4e8e\u5bfc\u51fa\u7684\u914d\u7f6e\u6587\u4ef6\u6570\u636e\u3002
+APOC.error.import.policygroup_data=\u6ca1\u6709\u53ef\u7528\u4e8e\u5bfc\u5165\u7684\u914d\u7f6e\u6587\u4ef6\u6570\u636e\u3002
+
+#*******************************************************************************
+# Profile Window Profile
+#
+#*******************************************************************************
+
+APOC.profilewnd.buttons.save=\u4fdd\u5b58
+APOC.profilewnd.buttons.close=\u5173\u95ed
+
+# General Settings Tab
+APOC.profilewnd.general.tab=\u5e38\u89c4\u5c5e\u6027
+APOC.profilewnd.general.title=\u5e38\u89c4\u8bbe\u7f6e
+APOC.profilewnd.general.help=\u4e3a\u6b64\u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u5e38\u89c4\u5c5e\u6027\u3002
+APOC.profilewnd.general.name=\u540d\u79f0
+APOC.profilewnd.general.namecol=\u540d\u79f0\uff1a
+APOC.profilewnd.general.comment=\u6ce8\u91ca
+APOC.profilewnd.general.commentcol=\u6ce8\u91ca\uff1a
+APOC.profilewnd.general.applicable=\u5e94\u7528\u4e8e
+APOC.profilewnd.general.browse=\u66f4\u6539...
+APOC.profilewnd.general.pending=\u5f85\u5b9a\u66f4\u6539
+APOC.profilewnd.general.author=\u4f5c\u8005
+APOC.profilewnd.general.modified=\u4e0a\u6b21\u4fee\u6539\u65f6\u95f4
+APOC.profilewnd.general.new_profile_instructions=\u5c06\u521b\u5efa\u65b0\u7684\u914d\u7f6e\u6587\u4ef6\u3002\u6b64\u8fc7\u7a0b\u4e3b\u8981\u5206\u4e3a\u4e09\u6b65\uff1a<br><br>1. \u4e3a\u914d\u7f6e\u6587\u4ef6\u5b9a\u4e49\u4e00\u4e2a\u552f\u4e00\u7684\u540d\u79f0 \uff08\u89c1\u4e0b\u6587\uff09\u3002<\
+br>2. \u914d\u7f6e\u4e00\u4e9b\u9ed8\u8ba4\u8bbe\u7f6e\u548c/\u6216\u5f3a\u5236\u6027\u8bbe\u7f6e\uff08\u53c2\u89c1\u201c\u914d\u7f6e\u8bbe\u7f6e\u201d\u9009\u9879\u5361\uff09\u3002<br>3. \u5c06\u65b0\u7684\u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u7ed9\u6240\u9700\u7684 \
+{0} \u548c/\u6216 {1} \uff08\u53c2\u89c1\u201c\u6307\u5b9a\u7684\u5143\u7d20\u201d\u9009\u9879\u5361\uff09\u3002
+APOC.profilewnd.lc_domains=\u57df
+APOC.profilewnd.lc_hosts=\u4e3b\u673a
+APOC.profilewnd.lc_orgs=\u7ec4\u7ec7
+APOC.profilewnd.lc_users=\u7528\u6237
+APOC.profilewnd.creating_new=\u521b\u5efa\u65b0\u7684\u914d\u7f6e\u6587\u4ef6
+
+# Assignees Tab
+APOC.profilewnd.assignees.tab=\u6307\u5b9a\u7684\u5143\u7d20
+APOC.profilewnd.assignees.title=\u6307\u5b9a\u7684\u5143\u7d20
+APOC.profilewnd.assignees.help=\u5c06\u5143\u7d20\u6307\u5b9a\u7ed9\u6b64\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.profilewnd.assignees.noorgs=\u672a\u6307\u5b9a\u4efb\u4f55\u5143\u7d20\u3002
+APOC.profilewnd.assignees.assign=\u6307\u5b9a\u5143\u7d20...
+APOC.profilewnd.assignees.unassign=\u53d6\u6d88\u6307\u5b9a\u5143\u7d20
+APOC.profilewnd.assignees.nameColumn=\u540d\u79f0
+
+# Configuration Settings Tab
+APOC.profilewnd.settings.tab=\u914d\u7f6e\u8bbe\u7f6e
+APOC.profilewnd.settings.title=\u914d\u7f6e\u8bbe\u7f6e
+APOC.profilewnd.settings.Enable=\u542f\u7528
+APOC.profilewnd.settings.Disable=\u7981\u7528
+APOC.profilewnd.settings.Edit=\u7f16\u8f91\u503c...
+APOC.profilewnd.settings.title.help=\u4ece\u4e0b\u5217\u7c7b\u522b\u4e2d\u9009\u62e9\u4e00\u4e2a\u3002
+APOC.profilewnd.settings.Actions=\u9ad8\u7ea7...
+APOC.profilewnd.settings.more=&#8212;&nbsp; \u66f4\u591a\u64cd\u4f5c&nbsp;&#8212;
+APOC.profilewnd.settings.enforce=\u5f3a\u5236
+APOC.profilewnd.settings.unenforce=\u91cd\u8bbe\u5f3a\u5236
+APOC.profilewnd.settings.undo=\u64a4\u6d88\u5f85\u5b9a\u66f4\u6539
+APOC.profilewnd.settings.default=\u6062\u590d\u9ed8\u8ba4\u503c
+APOC.profilewnd.settings.nameColumn=\u540d\u79f0
+APOC.profilewnd.settings.valueColumn=\u503c
+APOC.profilewnd.settings.enabledColumn=\u5df2\u542f\u7528
+APOC.profilewnd.settings.enforcedColumn=\u5df2\u5f3a\u5236
+APOC.profilewnd.settings.pendingColumn=\u5f85\u5b9a\u66f4\u6539
+APOC.profilewnd.settings.overwrite=\u7528\u6237\u53ef\u4ee5\u8986\u76d6
+APOC.profilewnd.settings.defaultLabel=\u9ed8\u8ba4\u503c\uff1a
+APOC.profilewnd.settings.setToDefaultLabel=\u8bbe\u4e3a\u9ed8\u8ba4\u503c
+
+# Configuration Tree
+APOC.profilewnd.tree.view.all=\u5168\u90e8
+APOC.profilewnd.tree.view.pending=\u5f85\u5b9a\u66f4\u6539
+APOC.profilewnd.advanced.tab=\u9ad8\u7ea7\u9009\u9879
+APOC.profilewnd.advanced.pagetitle_help=\u6307\u5b9a\u9ad8\u7ea7\u9009\u9879\uff0c\u5982\u914d\u7f6e\u6587\u4ef6\u7684\u5408\u5e76\u987a\u5e8f\u3002
+APOC.profilewnd.advanced.merge_order=\u5408\u5e76\u987a\u5e8f\uff1a
+APOC.profilewnd.buttons.save.help=\u4fdd\u5b58\u66f4\u6539\u3002
+APOC.profilewnd.buttons.close.help=\u5173\u95ed\u6b64\u7a97\u53e3\u3002
+APOC.profilewnd.buttons.ok_assign.help=\u5c06\u9009\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u7ed9\u5f53\u524d\u5143\u7d20\u3002
+
+APOC.profilewnd.js.alert1=\u6b64\u9875\u9762\u5305\u542b\u672a\u4fdd\u5b58\u7684\u66f4\u6539\u3002\u662f\u5426\u4fdd\u5b58\u66f4\u6539\u5e76\u5173\u95ed\u6b64\u7a97\u53e3\uff1f
+APOC.profilewnd.js.alert2=\u6b64\u9009\u9879\u5361\u5305\u542b\u672a\u4fdd\u5b58\u7684\u66f4\u6539\u3002\u662f\u5426\u4fdd\u5b58\u66f4\u6539\u5e76\u7ee7\u7eed\uff1f
+APOC.profilewnd.js.alert3=\u6b64\u7c7b\u522b\u5305\u542b\u672a\u4fdd\u5b58\u7684\u66f4\u6539\u3002\u662f\u5426\u4fdd\u5b58\u66f4\u6539\u5e76\u7ee7\u7eed\uff1f
+APOC.profilewnd.js.alert4=\u6b64\u9875\u9762\u5305\u542b\u672a\u4fdd\u5b58\u7684\u66f4\u6539\u3002\u662f\u5426\u4fdd\u5b58\u66f4\u6539\u5e76\u6dfb\u52a0\u65b0\u6761\u76ee\uff1f
+APOC.profilewnd.js.alert5=\u8bf7\u8f93\u5165\u65b0\u7684\u5217\u8868\u9879\uff1a
+
+#Settings Summary
+APOC.profilewnd.summary.help=\u67e5\u770b\u4e3a\u6b64\u914d\u7f6e\u6587\u4ef6\u914d\u7f6e\u7684\u8bbe\u7f6e\u3002
+
+# Add Context Wizard
+APOC.wiz.title=\u65b0\u5efa\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u5411\u5bfc
+APOC.wiz.edit.title=\u7f16\u8f91\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u5411\u5bfc
+APOC.wiz.steptext.2=\u7cfb\u7edf\u4fe1\u606f\u5e93\u8be6\u7ec6\u4fe1\u606f
+APOC.wiz.steptext.3=LDAP \u8be6\u7ec6\u4fe1\u606f
+APOC.wiz.steptext.4=LDAP \u8bc1\u4e66
+APOC.wiz.steptext.5=LDAP \u670d\u52a1\u5668\u7c7b\u578b
+APOC.wiz.steptext.6=LDAP \u5143\u914d\u7f6e\u9009\u9879
+APOC.wiz.steptext.7=LDAP \u5143\u914d\u7f6e\u7f16\u8f91\u5668
+APOC.wiz.steptext.8=\u57fa DN \u9009\u62e9
+APOC.wiz.steptext.9=\u57fa DN
+APOC.wiz.steptext.10=\u68c0\u67e5
+APOC.wiz.steptext.11=\u7ed3\u679c
+APOC.wiz.steptext.12=\u6570\u636e\u76ee\u5f55\u9009\u62e9
+APOC.wiz.steptext.13=\u73b0\u6709\u5b89\u88c5\u9009\u9879
+APOC.wiz.steptext.14=\u79fb\u690d\u914d\u7f6e\u6587\u4ef6\u4fe1\u606f
+APOC.wiz.steptext.15=LDAP \u7ba1\u7406\u5458\u8bc1\u4e66
+APOC.wiz.help.2=<p>\u9009\u62e9\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u540d\u79f0\uff0c\u4ee5\u53ca\u7528\u4e8e\u7cfb\u7edf\u4fe1\u606f\u5e93\u4e2d\u7684\u57df\u548c\u7ec4\u7ec7\u5143\u7d20\u7684\u5c42\u6b21\u7ed3\u6784\u548c\u5b58\u50a8\u7c7b\u578b\uff08LDAP \u5f0f\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u3001\u6587\u4ef6\u5f0f\u914d\u7f6e\u7cfb\u7edf\
+\u4fe1\u606f\u5e93\u6216\u6df7\u5408\u5f0f\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff09\u3002</p><p>\u5bf9\u4e8e LDAP \u5f0f\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u6709\u5173\u7ec4\u7ec7\u5c42\u6b21\u7ed3\u6784\u3001\u914d\u7f6e\u6587\u4ef6\u8bbe\u7f6e\u548c\u914d\
+\u7f6e\u6587\u4ef6\u6307\u5b9a\u7684\u6240\u6709\u4fe1\u606f\u90fd\u5b58\u50a8\u5728 LDAP \u670d\u52a1\u5668\u4e0a\u3002\u540c\u6837\uff0c\u5bf9\u4e8e\u6587\u4ef6\u5f0f\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u6240\u6709\u4fe1\u606f\u90fd\u5b58\u50a8\u5728\u7528\u6237\u6307\u5b9a\u7684\u76ee\u5f55\u4e2d\uff0c\u6b64\u76ee\u5f55\u4f4d\u4e8e\u5b89\u88c5\u6709 \
+Sun Java Web Console \u7684\u8ba1\u7b97\u673a\u4e2d\u3002<br>\u5bf9\u4e8e\u6df7\u5408\u5f0f\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u53ef\u4ece LDAP \u670d\u52a1\u5668\u4e2d\u83b7\u53d6\u7ec4\u7ec7\u5c42\u6b21\u7ed3\
+\u6784\u4fe1\u606f\uff0c\u4f46\u6240\u6709\u914d\u7f6e\u6587\u4ef6\u8bbe\u7f6e\u548c\u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u4fe1\u606f\u7684\u5b58\u50a8\u65b9\u5f0f\u90fd\u4e0e\u6587\u4ef6\u5f0f\u7cfb\u7edf\u4fe1\u606f\u5e93\u76f8\u540c\u3002</p>
+APOC.wiz.help.3=<p>\u952e\u5165\u8981\u7528\u4e8e LDAP \u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684 LDAP \u670d\u52a1\u5668\u7684\u4e3b\u673a\u540d\u548c\u7aef\u53e3\u3002</p><p>\u5982\u679c\u8981\u914d\u7f6e\
+\u4f7f\u7528 SSL \u7684 LDAP \u670d\u52a1\u5668\uff0c\u8bf7\u9009\u4e2d\u201c\u4f7f\u7528 SSL\u201d\u590d\u9009\u6846\u3002</p>
+APOC.wiz.help.4=<p>\u5982\u679c\u65e0\u6cd5\u4ee5\u533f\u540d\u8bbf\u95ee\u65b9\u5f0f\u4ece LDAP \u670d\u52a1\u5668\u8fdb\u884c\u8bfb\u53d6\uff0c \u5219\u5e94\u8be5\u5728\u201c\u7528\u6237 DN\u201d\u548c\u201c\u7528\u6237\u5bc6\u7801\u201d\u5b57\u6bb5\u4e2d\u8f93\u5165\u5177\u6709\u8bfb\u53d6\u6743\u9650\u7684\u7528\u6237\u7684\
+\u5168\u9650\u5b9a DN \u548c\u5bc6\u7801\u3002<br>\u6b64\u4fe1\u606f\u5c06\u88ab\u4fdd\u7559\uff0c\u5982\u679c\u5141\u8bb8\u7528\u6237\u4f7f\u7528 uid\uff08\u800c\u975e\u5168\u9650\u5b9a DN\uff09\u767b\u5f55\u6b64\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u5219\u9700\u8981\u4f7f\u7528\u6b64\u4fe1\
+\u606f\u3002</p>
+APOC.wiz.help.5=<p>\u9009\u62e9\u8981\u914d\u7f6e\u7684 LDAP \u670d\u52a1\u5668\u7684\u7c7b\u578b\u3002\u6b64\u4fe1\u606f\u7528\u4e8e\u786e\u5b9a\u4e3a\u670d\u52a1\u5668\u63d0\u4f9b\u7684\u9ed8\u8ba4\u5143\u914d\u7f6e\u3002</p><p>\u5143\u914d\
+\u7f6e\u5b9a\u4e49\u4e86\u7528\u4e8e\u6807\u8bc6 LDAP \u5143\u7d20\uff08\u7528\u6237\u3001\u89d2\u8272\u3001\u7ec4\u7ec7\u3001\u57df\u548c\u4e3b\u673a\uff09\u7684\u5c5e\u6027\u548c\u5bf9\u8c61\u7c7b\u3002</p>
+APOC.wiz.help.6=<p>\u8bf7\u9009\u62e9\u662f\u5426\u7f16\u8f91\u9ed8\u8ba4\u5143\u914d\u7f6e\u3002</p><p>\u5143\u914d\u7f6e\u5b9a\u4e49\u4e86\u7528\u4e8e\u6807\u8bc6 LDAP \u5b9e\u4f53\uff08\u7528\u6237\u3001\u89d2\u8272\u3001\u7ec4\u7ec7\u3001\
+\u57df\u548c\u4e3b\u673a\uff09\u7684\u5c5e\u6027\u548c\u5bf9\u8c61\u7c7b\u3002</p>
+APOC.wiz.help.7=<p>\u5728\u6240\u63d0\u4f9b\u7684\u6587\u672c\u533a\u57df\u4e2d\u7f16\u8f91\u5143\u914d\u7f6e\u3002</p><p>\u5143\u914d\u7f6e\u5b9a\u4e49\u4e86\u7528\u4e8e\u6807\u8bc6 LDAP \u5143\u7d20\uff08\u7528\u6237\u3001\u89d2\
+\u8272\u3001\u7ec4\u7ec7\u3001\u57df\u548c\u4e3b\u673a\uff09\u7684\u5c5e\u6027\u548c\u5bf9\u8c61\u7c7b\u3002</p>
+APOC.wiz.help.8=<p>\u4ece\u6240\u63d0\u4f9b\u7684\u5217\u8868\u4e2d\u9009\u62e9\u8981\u7528\u4e8e\u6b64\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u57fa DN\u3002</p>
+APOC.wiz.help.9=<p>\u9009\u62e9\u8981\u7528\u4e8e\u6b64\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u57fa DN\u3002</p>
+APOC.wiz.help.10=<p>\u67e5\u770b\u6240\u63d0\u4f9b\u7684\u8bbe\u7f6e\uff0c\u7136\u540e\u6309\u201c\u5b8c\u6210\u201d\u4ee5\u5b8c\u6210\u65b0\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u521b\u5efa\u3002</p><p>\u8bf7\u6ce8\u610f\uff0c\u5bf9\u4e8e \
+LDAP \u5b89\u88c5\uff0c\u6309\u4e0b\u201c\u5b8c\u6210\u201d\u6309\u94ae\u540e\u5c06\u5f00\u59cb\u66f4\u65b0 LDAP \u670d\u52a1\u5668\u67b6\u6784\uff0c\u5e76\u5728 LDAP \u5c42\u6b21\u7ed3\u6784\u4e2d\u6dfb\u52a0\u201c\u670d\u52a1\u201d\u5206\u652f\u3002</p>
+APOC.wiz.help.edit.10=<p>\u67e5\u770b\u6240\u63d0\u4f9b\u7684\u8bbe\u7f6e\uff0c\u7136\u540e\u6309\u201c\u5b8c\u6210\u201d\u4ee5\u5b8c\u6210\u73b0\u6709\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u66f4\u65b0\u3002</p><p>\u8bf7\u6ce8\u610f\uff0c\u5bf9\u4e8e \
+LDAP \u5b89\u88c5\uff0c\u6309\u4e0b\u201c\u5b8c\u6210\u201d\u6309\u94ae\u540e\u5c06\u5f00\u59cb\u66f4\u65b0 LDAP \u670d\u52a1\u5668\u67b6\u6784\uff0c\u5e76\u5728 LDAP \u5c42\u6b21\u7ed3\u6784\u4e2d\u6dfb\u52a0\u201c\u670d\u52a1\u201d\u5206\u652f\u3002</p>
+APOC.wiz.help.11=<p>\u5b89\u88c5\u7ed3\u679c\u5c06\u5728\u6240\u63d0\u4f9b\u7684\u533a\u57df\u4e2d\u663e\u793a\u3002</p>
+APOC.wiz.help.12=<p>\u9009\u62e9\u7528\u4e8e\u5b58\u50a8\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6307\u5b9a\u6570\u636e\u7684\u76ee\u5f55\u3002\u6b64\u5b89\u88c5\u8fc7\u7a0b\u5c06\u521b\u5efa\u540d\u4e3a "profiles" \u548c \
+"assignments" \u7684\u76ee\u5f55\uff0c\u7528\u4e8e\u5b58\u50a8\u914d\u7f6e\u6587\u4ef6\u548c\u6307\u5b9a\u4fe1\u606f\u3002\u5bf9\u4e8e\u6587\u4ef6\u5f0f\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u5c42\u6b21\u7ed3\u6784\u4fe1\u606f\u5c06\u5b58\u50a8\u5728\u540d\u4e3a "entities.\
+txt." \u7684\u53ef\u7f16\u8f91\u6587\u4ef6\u4e2d\u3002\u5bf9\u4e8e\u6df7\u5408\u5f0f\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u5b9a\u4e49\u5c5e\u6027\u548c\u5bf9\u8c61\u7c7b\uff08\u7528\u4e8e\u6807\u8bc6 LDAP \u5b9e\u4f53\uff09\u7684\u5143\u914d\u7f6e\u5c06\u5b58\u50a8\u5728\u540d\u4e3a \
+"OrganizationMapping.properties" \u548c "UserProfileMapping.properties" \u7684\u53ef\
+\u7f16\u8f91\u6587\u4ef6\u4e2d\u3002</p>
+APOC.wiz.help.13=<p>\u5c06\u5728\u6307\u5b9a\u76ee\u5f55\u4e2d\u5b89\u88c5\u73b0\u6709\u7684 Desktop Manager \u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u3002\u6b64\u7cfb\u7edf\u4fe1\u606f\u5e93\u53ef\u80fd\u5305\u542b\u60a8\u8981\u4fdd\u7559\u7684\u5c42\u6b21\u7ed3\u6784\u3001\u914d\u7f6e\u6587\
+\u4ef6\u548c\u6307\u5b9a\u4fe1\u606f\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u8bf7\u9009\u62e9\u4fdd\u7559\u73b0\u6709\u7684\u5b89\u88c5\u6570\u636e\u3002\u5426\u5219\uff0c\u5982\u679c\u8981\u521b\u5efa\u5168\u65b0\u7684\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u8bf7\u9009\u62e9\u8986\u76d6\u73b0\u6709\u5b89\u88c5\u3002</p>
+APOC.wiz.help.14=<p>2.0 \u7248 Desktop Manager \u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6307\u5b9a\u4fe1\u606f\u5728 LDAP \u4e2d\u7684\u5b58\u50a8\u4f4d\u7f6e\u4e0e\u5148\u524d\u7248\u672c\u4e0d\u540c\u3002\u8bf7\u9009\u62e9\u662f\u5426\u5c06\u4f7f\
+\u7528\u5148\u524d\u7248\u672c\u7684 Desktop Manager \u5b58\u50a8\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6307\u5b9a\u4fe1\u606f\u79fb\u690d\u5230\u6b64\u7248\u672c\u7684\u65b0\u4f4d\u7f6e\u3002</p><p>\u8bf7\u6ce8\u610f\uff0c\
+\u4f7f\u7528\u5148\u524d\u7248\u672c\u5b58\u50a8\u7684\u914d\u7f6e\u6587\u4ef6\u4ecd\u53ef\u901a\u8fc7 Desktop Manager \u67e5\u770b\uff0c\u4f46\u5b83\u5728 LDAP \u4e2d\u7684\u5b58\u50a8\u4f4d\u7f6e\u5c06\u4fdd\u6301\u4e0d\u53d8 - \u79fb\u690d\u914d\u7f6e\u6587\u4ef6\u6709\u52a9\u4e8e\
+\u7ef4\u62a4\u7ed3\u6784\u6bd4\u8f83\u6e05\u6670\u7684 LDAP \u670d\u52a1\u5668\uff0c\u800c\u4e0d\u4f1a\u5c06 1.x \u7248\u7684\u914d\u7f6e\u6587\u4ef6\u4fe1\u606f\u5b58\u50a8\u5728\u4e00\u4e2a\u4f4d\u7f6e\uff0c\u5c06 2.0 \u7248\u7684\u914d\u7f6e\u6587\u4ef6\u4fe1\u606f\u5b58\u50a8\u5728\u53e6\u4e00\u4e2a\u4f4d\u7f6e\u3002\
+</p>
+APOC.wiz.help.15=<p>\u5728\u201c\u7ba1\u7406\u5458 DN\u201d\u548c\u201c\u7ba1\u7406\u5458\u5bc6\u7801\u201d\u5b57\u6bb5\u4e2d\uff0c\u8f93\u5165\u5177\u6709 LDAP \u670d\u52a1\u5668\u8bfb/\u5199\u6743\u9650\u7684\u7528\u6237\u7684 DN \u548c\u5bc6\u7801\u3002<\
+br>\u8fd9\u4e9b\u8bc1\u4e66\u4ec5\u7528\u4e8e\u5b89\u88c5\u5fc5\u9700\u7684\u67b6\u6784\u3001\u5c5e\u6027\u3001\u5bf9\u8c61\u7c7b\u4ee5\u53ca Desktop Manager \u5728 LDAP \u670d\u52a1\u5668\u4e0a\u6240\u9700\u7684\u5b9e\u4f53\u3002\u4e0d\u4f1a\u4fdd\u7559\u8fd9\u4e9b\
+\u8bc1\u4e66\u3002</p>
+APOC.wiz.help.15a=<p>\u5728\u201c\u7ba1\u7406\u5458 DN\u201d\u548c\u201c\u7ba1\u7406\u5458\u5bc6\u7801\u201d\u5b57\u6bb5\u4e2d\uff0c\u8f93\u5165\u5177\u6709 LDAP \u670d\u52a1\u5668\u8bfb/\u5199\u6743\u9650\u7684\u7528\u6237\u7684 DN \u548c\u5bc6\u7801\u3002<\
+br>\u8fd9\u4e9b\u8bc1\u4e66\u4ec5\u7528\u4e8e\u79fb\u690d LDAP \u670d\u52a1\u5668\u4e0a\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6307\u5b9a\u4fe1\u606f\u3002\u4e0d\u4f1a\u4fdd\u7559\u8fd9\u4e9b\u8bc1\u4e66\u3002</p>
+APOC.wiz.instruction.2=\u9009\u62e9\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u540d\u79f0\uff0c\u5e76\u9009\u62e9\u8981\u7528\u4e8e\u57df\u548c\u7ec4\u7ec7\u5143\u7d20\u7684\u5c42\u6b21\u7ed3\u6784\u548c\u5b58\u50a8\u9009\u9879\u3002
+APOC.wiz.instruction.3=\u8f93\u5165\u8981\u4e3a\u6b64\u7cfb\u7edf\u4fe1\u606f\u5e93\u914d\u7f6e\u7684 LDAP \u670d\u52a1\u5668\u7684\u8be6\u7ec6\u4fe1\u606f\u3002\u9700\u8981\u8f93\u5165\u8fd0\u884c\u8be5\u670d\u52a1\u5668\u7684\u4e3b\u673a\u540d\u548c\u7aef\u53e3\u3002\u8fd8\u53ef\u4ee5\u9009\u62e9\u662f\u5426\u4f7f\u7528 SSL \u8fde\u63a5\u5230\u6b64\u670d\u52a1\u5668\u3002
+APOC.wiz.instruction.4=\u8981\u5141\u8bb8\u7528\u6237\u4f7f\u7528 uid\uff08\u800c\u975e\u5168\u9650\u5b9a DN\uff09\u767b\u5f55\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u5fc5\u987b\u542f\u7528\u201c\u533f\u540d\u8bbf\u95ee\u201d\uff0c\u6216\u8005\u5728\u201c\u7528\u6237 DN\u201d\u548c\u201c\u7528\u6237\u5bc6\u7801\u201d\u5b57\u6bb5\u4e2d\u8f93\u5165\u5177\u6709\u8bfb\u53d6\u6743\u9650\u7684\
+\u7528\u6237\u7684\u5168\u9650\u5b9a DN \u548c\u5bc6\u7801\u3002
+APOC.wiz.instruction.5=\u4e0d\u540c\u54c1\u724c\u7684 LDAP \u670d\u52a1\u5668\u7684\u5b89\u88c5\u8fc7\u7a0b\u4e0d\u540c\u3002\u8bf7\u9009\u62e9\u8981\u7528\u4e8e\u65b0\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684 LDAP \u670d\u52a1\u5668\u7c7b\u578b\u3002
+APOC.wiz.instruction.6=\u5143\u914d\u7f6e\u5b9a\u4e49\u4e86\u7528\u4e8e\u6807\u8bc6 LDAP \u5b9e\u4f53\uff08\u5373\u7528\u6237\u3001\u89d2\u8272\u3001\u7ec4\u7ec7\u3001\u57df\u548c\u4e3b\u673a\uff09\u7684\u5c5e\u6027\u548c\u5bf9\u8c61\u7c7b\u3002\u7cfb\u7edf\u5728\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u63d0\u4f9b\u4e86\u9002\u5f53\u7684\u503c\uff0c\u4f46\u7528\u6237\u81ea\u5df1\u53ef\u4ee5\u6839\u636e\u9700\u8981\
+\u6dfb\u52a0\u503c\u3002\u8bf7\u9009\u62e9\u662f\u5426\u7f16\u8f91\u7528\u4e8e\u6b64 LDAP \u670d\u52a1\u5668\u7c7b\u578b\u7684\u9ed8\u8ba4\u5143\u914d\u7f6e\u3002
+APOC.wiz.instruction.7=\u5728\u4e0b\u65b9\u7684\u6587\u672c\u533a\u57df\u4e2d\u7f16\u8f91\u9ed8\u8ba4\u7684\u5143\u914d\u7f6e\u3002
+APOC.wiz.instruction.8=\u4ee5\u4e0b\u5217\u8868\u5305\u542b\u4e86\u6307\u5b9a LDAP \u670d\u52a1\u5668\u4e0a\u6240\u6709\u53ef\u7528\u7684\u57fa DN\u3002\u8bf7\u9009\u62e9\u8981\u7528\u4e8e\u6b64\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u57fa DN\u3002
+APOC.wiz.instruction.9=\u8981\u5b89\u88c5\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u5fc5\u987b\u63d0\u4f9b\u6307\u5b9a LDAP \u670d\u52a1\u5668\u4e0a\u7684\u6709\u6548\u57fa DN\u3002\u8bf7\u8f93\u5165\u8981\u7528\u4e8e\u6b64\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u57fa DN\u3002
+APOC.wiz.instruction.10=\u67e5\u770b\u6240\u8f93\u5165\u7684\u8bbe\u7f6e\u3002\u5355\u51fb\u201c\u5b8c\u6210\u201d\u53ef\u5b8c\u6210\u65b0\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u521b\u5efa\u3002
+APOC.wiz.instruction.edit.10=\u67e5\u770b\u6240\u8f93\u5165\u7684\u8bbe\u7f6e\u3002\u5355\u51fb\u201c\u5b8c\u6210\u201d\u53ef\u5b8c\u6210\u73b0\u6709\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u66f4\u65b0\u3002
+APOC.wiz.instruction.11=
+APOC.wiz.instruction.12=\u9009\u62e9\u7528\u4e8e\u5b58\u50a8\u6b64\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6307\u5b9a\u6570\u636e\u7684\u76ee\u5f55\u3002
+APOC.wiz.instruction.13=\u5728\u6307\u5b9a\u76ee\u5f55\u4e2d\u627e\u5230\u73b0\u6709\u7684 Desktop Manager \u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u3002\u8bf7\u9009\u62e9\u662f\u4f7f\u7528\u6b64\u76ee\u5f55\u4e2d\u7684\u73b0\u6709\u6570\u636e\u6267\u884c\u6b64\u5b89\u88c5\uff0c\u8fd8\u662f\u5220\u9664\u6240\u6709\u4fe1\u606f\u5e76\u521b\u5efa\u5168\
+\u65b0\u7684\u7cfb\u7edf\u4fe1\u606f\u5e93\u3002
+APOC.wiz.instruction.14=\u5728\u6b64 LDAP \u670d\u52a1\u5668\u4e0a\u627e\u5230\u5148\u524d\u7248\u672c\u7684 Desktop Manager\u3002\u8bf7\u9009\u62e9\u662f\u5426\u5c06\u4f7f\u7528\u5148\u524d\u7248\u672c\u5b58\u50a8\u7684\u914d\u7f6e\u6587\u4ef6\u548c\u6307\u5b9a\u4fe1\u606f\u79fb\u690d\u5230\u6b64\u5b89\u88c5\u4e2d\u7684\u65b0\
+\u5b58\u50a8\u4f4d\u7f6e\u3002
+APOC.wiz.instruction.15=\u914d\u7f6e\u8fc7\u7a0b\u9700\u8981\u6269\u5c55 LDAP \u67b6\u6784\u5e76\u5728 LDAP \u6811\u4e2d\u6dfb\u52a0\u65b0\u7684\u5206\u652f\u3002\u56e0\u6b64\u5fc5\u987b\u5728\u201c\u7ba1\u7406\u5458 DN\u201d\u548c\u201c\u7ba1\u7406\u5458\u5bc6\u7801\u201d\u5b57\u6bb5\u4e2d\u8f93\u5165\u7528\u6237\uff08\u8be5\u7528\u6237\u5bf9 \
+LDAP \u670d\u52a1\u5668\u5177\u6709\u76f8\u5e94\u7684\u8bbf\u95ee\u6743\u9650\uff09\u7684 DN \u548c\u5bc6\u7801\u3002
+APOC.wiz.instruction.15a=\u79fb\u690d\u914d\u7f6e\u6587\u4ef6\u7684\u5b58\u50a8\u4f4d\u7f6e\u9700\u8981\u4fee\u6539\u73b0\u6709\u7684 LDAP \u6811\u3002\u56e0\u6b64\u5fc5\u987b\u5728\u201c\u7ba1\u7406\u5458 DN\u201d\u548c\u201c\u7ba1\u7406\u5458\u5bc6\u7801\u201d\u5b57\u6bb5\u4e2d\u8f93\u5165\u7528\u6237\uff08\u8be5\u7528\u6237\u5bf9 LDAP \u670d\u52a1\u5668\u5177\
+\u6709\u76f8\u5e94\u7684\u8bbf\u95ee\u6743\u9650\uff09\u7684 DN \u548c\u5bc6\u7801\u3002
+APOC.wiz.placeholder=[\u7531\u4e0a\u4e00\u6b65\u4e2d\u6240\u505a\u7684\u9009\u62e9\u786e\u5b9a\u7684\u6b65\u9aa4\u3002]
+
+APOC.wiz.2.name=\u7cfb\u7edf\u4fe1\u606f\u5e93\u540d\u79f0\uff1a
+APOC.wiz.2.type=\u7cfb\u7edf\u4fe1\u606f\u5e93\u7c7b\u578b\uff1a
+APOC.wiz.2.ldap=LDAP\uff1aLDAP \u5c42\u6b21\u7ed3\u6784\u548c\u5b58\u50a8
+APOC.wiz.2.file=\u6587\u4ef6\u5f0f\uff1a\u6587\u4ef6\u5f0f\u5c42\u6b21\u7ed3\u6784\u548c\u5b58\u50a8
+APOC.wiz.2.hybrid=\u6df7\u5408\u5f0f\uff1aLDAP \u5c42\u6b21\u7ed3\u6784\u548c\u6587\u4ef6\u5f0f\u5b58\u50a8
+APOC.wiz.2.alert=\u8bf7\u8f93\u5165\u65b0\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u540d\u79f0\u3002
+APOC.wiz.3.host=\u4e3b\u673a\uff1a
+APOC.wiz.3.port=\u7aef\u53e3\uff1a
+APOC.wiz.3.ssl=\u4f7f\u7528SSL
+APOC.wiz.3.alert1={0} \u662f\u65e0\u6548\u7684 LDAP \u7aef\u53e3\u53f7\uff01\u7aef\u53e3\u53f7\u5fc5\u987b\u662f\u4ecb\u4e8e 0 \u5230 65535 \u4e4b\u95f4\u7684\u6574\u6570\u3002
+APOC.wiz.3.alert2=\u65e0\u6cd5\u8fde\u63a5\u5230 {0} \u4e0a\u7684 LDAP \u670d\u52a1\u5668\uff01
+APOC.wiz.4.admin.dn=\u7ba1\u7406\u5458 DN\uff1a
+APOC.wiz.4.admin.pw=\u7ba1\u7406\u5458\u5bc6\u7801\uff1a
+APOC.wiz.4.anon=\u4f7f\u7528\u533f\u540d\u8bbf\u95ee
+APOC.wiz.4.user.dn=\u7528\u6237 DN\uff1a
+APOC.wiz.4.user.pw=\u7528\u6237\u5bc6\u7801\uff1a
+APOC.wiz.4.alert1=\u4f7f\u7528\u6307\u5b9a\u7684\u5bc6\u7801\u65e0\u6cd5\u4f5c\u4e3a {0} \u901a\u8fc7 {1} \u7684\u9a8c\u8bc1 \uff01
+APOC.wiz.4.alert3={0} \u6ca1\u6709\u8bfb\u53d6 {1} \u6240\u9700\u7684\u6743\u9650\uff01\u8bf7\u63d0\u4f9b\u5bf9\u670d\u52a1\u5668\u5177\u6709\u8bfb\u53d6\u6743\u9650\u7684\u7528\u6237\u7684\u8bc1\u4e66\u3002
+APOC.wiz.5.type=LDAP \u670d\u52a1\u5668\u7c7b\u578b\uff1a
+APOC.wiz.5.sun=Sun Java System Directory Server
+APOC.wiz.5.openldap=OpenLDAP
+APOC.wiz.5.ad=Active Directory
+APOC.wiz.5.other=\u5176\u4ed6
+APOC.wiz.6.question=\u662f\u5426\u8c03\u6574\u5143\u914d\u7f6e\uff1a
+APOC.wiz.6.no=\u5426
+APOC.wiz.6.yes=\u662f
+APOC.wiz.7.adapt=\u8c03\u6574\u4ee5\u4e0b\u5143\u914d\u7f6e\uff1a
+APOC.wiz.8.basedn=\u9009\u62e9\u57fa DN\uff1a
+APOC.wiz.8.alert=\u57fa DN {0} \u5728\u670d\u52a1\u5668 {1} \u4e0a\u4e0d\u5b58\u5728\uff01 LDAP \u670d\u52a1\u5668\u914d\u7f6e\u9519\u8bef\u3002\u8bf7\u91cd\u65b0\u914d\u7f6e\u670d\u52a1\u5668\u5e76\u91cd\u65b0\u542f\u52a8\u5411\u5bfc\uff01
+APOC.wiz.9.basedn=\u8f93\u5165 LDAP \u670d\u52a1\u5668\u7684\u57fa DN\uff1a
+APOC.wiz.9.alert=\u57fa DN {0} \u5728\u670d\u52a1\u5668 {1} \u4e0a\u4e0d\u5b58\u5728\uff01\u8bf7\u68c0\u67e5 LDAP \u670d\u52a1\u5668\u5e76\u8f93\u5165\u73b0\u6709\u7684\u57fa DN\u3002
+APOC.wiz.10.anonymous=\u533f\u540d
+APOC.wiz.10.vendor=\u5382\u5546\u540d\uff1a
+APOC.wiz.10.metaconfig=\u5143\u914d\u7f6e\uff1a
+APOC.wiz.10.basedn=\u57fa DN\uff1a
+APOC.wiz.10.path=\u6587\u4ef6\u5f0f\u6570\u636e\u76ee\u5f55\uff1a
+APOC.wiz.10.migrate=\u79fb\u690d\u914d\u7f6e\u6587\u4ef6\uff1a
+APOC.wiz.10.orgdom.section=\u57df\u548c\u7ec4\u7ec7\u4fe1\u606f\uff1a
+APOC.wiz.10.general.section=\u4e00\u822c\u4fe1\u606f\uff1a
+APOC.wiz.10.noaction=\u5df2\u7ecf\u4e3a\u3000Desktop Manager \u914d\u7f6e\u4e86 {0} \u4e2d\u7684\u73b0\u6709\u670d\u52a1\u5668\u3002\u4e0d\u9700\u8981\u518d\u6267\u884c\u8fdb\u4e00\u6b65\u7684\u64cd\u4f5c\u3002\u5355\u51fb\u201c\u5b8c\u6210\u201d\u6309\u94ae\u53ef\u5b8c\u6210\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u521b\
+\u5efa\uff0c\u5e76\u5c06\u6b64\u6761\u76ee\u6dfb\u52a0\u5230\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u8868\u683c\u4e2d\u3002
+APOC.wiz.10.edit.noaction=\u5df2\u7ecf\u4e3a Desktop Manager \u914d\u7f6e\u4e86 {0} \u4e2d\u7684\u73b0\u6709\u670d\u52a1\u5668\u3002\u4e0d\u9700\u8981\u518d\u6267\u884c\u8fdb\u4e00\u6b65\u7684\u64cd\u4f5c\u3002\u5355\u51fb\u201c\u5b8c\u6210\u201d\u6309\u94ae\u53ef\u66f4\u65b0\u6b64\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\
+\u8be6\u7ec6\u4fe1\u606f\u3002
+APOC.wiz.10.alert=\u5fc5\u987b\u4f7f\u7528 Desktop Manager \u67b6\u6784\u624b\u52a8\u6269\u5c55 {0} \u670d\u52a1\u5668\u7684\u67b6\u6784\uff0c\u7136\u540e\u624d\u80fd\u7ee7\u7eed\u64cd\u4f5c\uff01
+APOC.wiz.10.fail1= - \u66f4\u65b0\u6307\u5b9a LDAP \u670d\u52a1\u5668\u7684\u67b6\u6784\u5c5e\u6027\u548c\u5bf9\u8c61\u7c7b\u65f6\u53d1\u751f\u9519\u8bef\u3002
+APOC.wiz.10.fail2= - \u5728\u6307\u5b9a\u7684 LDAP \u670d\u52a1\u5668\u4e2d\u521b\u5efa\u670d\u52a1\u5206\u652f\u65f6\u53d1\u751f\u9519\u8bef\u3002
+APOC.wiz.10.fail3= - \u5728\u6307\u5b9a\u7684 LDAP \u670d\u52a1\u5668\u4e2d\u5199\u5165\u5143\u914d\u7f6e\u5c5e\u6027\u65f6\u53d1\u751f\u9519\u8bef\u3002
+APOC.wiz.10.fail4= - \u65e0\u6cd5\u5c06 {0} \u5c5e\u6027\u6dfb\u52a0\u5230\u6761\u76ee {1}\u3002
+APOC.wiz.10.fail5= - \u5220\u9664\u73b0\u6709\u5b89\u88c5\u65f6\u53d1\u751f\u9519\u8bef\u3002
+APOC.wiz.10.fail6= - \u66f4\u65b0\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93 {0} \u7684\u914d\u7f6e\u6587\u4ef6\u65f6\u53d1\u751f\u9519\u8bef\u3002
+APOC.wiz.10.fail7=\u8bf7\u786e\u4fdd {0} \u53ef\u4ee5\u8fdb\u884c\u9a8c\u8bc1\u5e76\u5177\u6709\u5bf9 {1} \u7684\u5199\u5165\u6743\u9650\u3002
+APOC.wiz.10.fail8= - \u521b\u5efa\u9ed8\u8ba4\u5c42\u6b21\u7ed3\u6784\u6587\u4ef6\u65f6\u53d1\u751f\u9519\u8bef\u3002
+APOC.wiz.10.fail9= - \u521b\u5efa\u5143\u914d\u7f6e\u6587\u4ef6\u65f6\u53d1\u751f\u9519\u8bef\u3002
+APOC.wiz.10.fail10= - \u79fb\u690d\u5143\u7d20 {0} \u7684\u914d\u7f6e\u6587\u4ef6\u65f6\u53d1\u751f\u9519\u8bef\u3002
+APOC.wiz.11.title=\u65b0\u7684\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u5df2\u6210\u529f\u521b\u5efa
+APOC.wiz.11.text=\u73b0\u5728\u5df2\u7ecf\u53ef\u4ee5\u4f7f\u7528\u521a\u521a\u521b\u5efa\u7684\u65b0\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u3002\u8981\u8bbf\u95ee\u8fd9\u4e2a\u65b0\u7684\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u8bf7\u5728\u201c\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u201d\u8868\u683c\u4e2d\u5355\u51fb\u5176\u540d\u79f0\u3002\u5982\u679c\u5f53\u524d\u767b\u5f55\u7684\u7528\u6237\u4e0d\u662f\u6b64\
+\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u7ba1\u7406\u5458\uff0c\u7cfb\u7edf\u5c06\u63d0\u793a\u60a8\u4f7f\u7528\u6709\u6548\u7684\u7ba1\u7406\u5458\u8bc1\u4e66\u8fdb\u884c\u767b\u5f55\u3002
+APOC.wiz.11.alert.title=\u65b0\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u521b\u5efa\u5931\u8d25
+APOC.wiz.11.edit.title=\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u5df2\u6210\u529f\u66f4\u65b0
+APOC.wiz.11.edit.text=\u73b0\u5728\u5df2\u7ecf\u53ef\u4ee5\u4f7f\u7528\u521a\u521a\u66f4\u65b0\u7684\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u3002\u8981\u8bbf\u95ee\u8fd9\u4e2a\u65b0\u7684\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u8bf7\u5728\u201c\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u201d\u8868\u683c\u4e2d\u5355\u51fb\u5176\u540d\u79f0\u3002\u5982\u679c\u5f53\u524d\u767b\u5f55\u7684\u7528\u6237\u4e0d\u662f\u6b64\u914d\
+\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u7ba1\u7406\u5458\uff0c\u7cfb\u7edf\u5c06\u63d0\u793a\u60a8\u4f7f\u7528\u6709\u6548\u7684\u7ba1\u7406\u5458\u8bc1\u4e66\u767b\u5f55\u3002
+APOC.wiz.11.alert.edit.title=\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u66f4\u65b0\u5931\u8d25
+APOC.wiz.12.alert1={0} \u4e0d\u5b58\u5728\uff01
+APOC.wiz.12.alert2={0} \u4e0d\u662f\u76ee\u5f55\uff01
+APOC.wiz.12.alert3=\u65e0\u6cd5\u5199\u5165\u5230\u76ee\u5f55 {0} \u4e2d\uff01
+APOC.wiz.13.existing=\u9009\u62e9\u64cd\u4f5c\uff1a
+APOC.wiz.13.overwrite=\u8986\u76d6\u73b0\u6709\u6570\u636e\u5e76\u521b\u5efa\u65b0\u5b89\u88c5
+APOC.wiz.13.update=\u4fdd\u7559\u73b0\u6709\u5b89\u88c5\u6570\u636e
+APOC.wiz.14.existing=\u79fb\u690d\u914d\u7f6e\u6587\u4ef6\u548c\u6307\u5b9a\u4fe1\u606f\uff1a
+APOC.wiz.14.username=\u7528\u6237\u540d\uff08\u5177\u6709\u5199\u5165\u6743\u9650\u7684\u7528\u6237\uff09\uff1a
+APOC.wiz.14.password=\u5bc6\u7801\uff1a
+APOC.wiz.ldap.err.nosuchattr=LDAP \u5f02\u5e38 (16)\uff1a \u627e\u4e0d\u5230\u6307\u5b9a\u7684\u5c5e\u6027\u3002
+APOC.wiz.ldap.err.valueexists=LDAP \u5f02\u5e38 (20)\uff1a\u4e3a\u5c5e\u6027\u6dfb\u52a0\u7684\u503c\u5df2\u5b58\u5728\u4e8e\u8be5\u5c5e\u6027\u4e2d\u3002
+APOC.wiz.ldap.err.attrsyntax=LDAP \u5f02\u5e38 (21)\uff1a\u8bf7\u6c42\u5305\u542b\u65e0\u6548\u8bed\u6cd5\u3002
+APOC.wiz.ldap.err.nosuchobj=LDAP \u5f02\u5e38 (32)\uff1a\u8bf7\u6c42\u4e2d\u6307\u5b9a\u7684\u6761\u76ee\u4e0d\u5b58\u5728\u3002
+APOC.wiz.ldap.err.invaliddn=LDAP \u5f02\u5e38 (34)\uff1a\u6307\u5b9a\u7684\u6807\u8bc6\u540d (Distinguished Name, DN) \u4f7f\u7528\u4e86\u65e0\u6548\u7684\u8bed\u6cd5\u3002
+APOC.wiz.ldap.err.invalidcred=LDAP \u5f02\u5e38 (49)\uff1a\u63d0\u4f9b\u7ed9\u670d\u52a1\u5668\u7528\u4e8e\u9a8c\u8bc1\u7684\u8bc1\u4e66\u65e0\u6548\u3002
+APOC.wiz.ldap.err.noaccessrights=LDAP \u5f02\u5e38 (50)\uff1a\u6b64\u5ba2\u6237\u7aef\u88ab\u9a8c\u8bc1\u4e3a\u65e0\u6743\u6267\u884c\u6b64\u64cd\u4f5c\u7684\u7528\u6237\u3002
+APOC.wiz.ldap.err.entryexists=LDAP \u5f02\u5e38 (68)\uff1a\u6307\u5b9a\u7684\u6761\u76ee\u5df2\u5b58\u5728\u3002
+APOC.wiz.ldap.err.serverdown=LDAP \u5f02\u5e38 (81)\uff1a\u65e0\u6cd5\u8fde\u63a5 LDAP \u670d\u52a1\u5668\u3002
+APOC.wiz.ldap.err.timeout=LDAP \u5f02\u5e38 (85)\uff1a\u6b64\u64cd\u4f5c\u65e0\u6cd5\u5728\u6700\u957f\u65f6\u95f4\u9650\u5236\u5185\u5b8c\u6210\u3002
+APOC.wiz.ldap.err.connecterror=LDAP \u5f02\u5e38 (91)\uff1aLDAP \u5ba2\u6237\u7aef\u65e0\u6cd5\u8fde\u63a5\u5230 LDAP \u670d\u52a1\u5668\u3002
+
+#Copy Move Wizard
+APOC.wiz.copy.copymove=\u590d\u5236/\u79fb\u52a8...
+APOC.wiz.copy.copymove.tooltip=\u590d\u5236\u6216\u79fb\u52a8\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.wiz.copy.copymove.disabled.tooltip=\u590d\u5236\u6216\u79fb\u52a8\u914d\u7f6e\u6587\u4ef6\uff08\u4e0d\u53ef\u7528\uff09\u3002
+APOC.wiz.copy.title=\u590d\u5236/\u79fb\u52a8\u5411\u5bfc
+APOC.wiz.copy.steptext.1=\u9009\u62e9\u6e90\u914d\u7f6e\u6587\u4ef6
+APOC.wiz.copy.steptext.2=\u9009\u62e9\u64cd\u4f5c
+APOC.wiz.copy.steptext.3=\u9009\u62e9\u76ee\u6807\u5143\u7d20
+APOC.wiz.copy.instruction.1=\u4ece\u6b64\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u4e2d\u9009\u62e9\u8981\u590d\u5236\u6216\u79fb\u52a8\u7684\u6e90\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u548c\u6e90\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.wiz.copy.instruction.2=\u9009\u62e9\u8981\u5bf9\u6307\u5b9a\u914d\u7f6e\u6587\u4ef6\u6267\u884c\u7684\u64cd\u4f5c\u3002\u8bf7\u9009\u62e9\u662f\u5426\u5ffd\u7565\u6b64\u914d\u7f6e\u6587\u4ef6\u7684\u6307\u5b9a\u4fe1\u606f\u3002
+APOC.wiz.copy.instruction.3=\u4ece\u6b64\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u4e2d\u9009\u62e9\u8981\u590d\u5236\u5230\u6216\u79fb\u52a8\u5230\u7684\u76ee\u6807\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u548c\u76ee\u6807\u5143\u7d20\u3002
+APOC.wiz.copy.instruction.4=\u67e5\u770b\u8f93\u5165\u7684\u8bbe\u7f6e\u3002\u5355\u51fb\u201c\u5b8c\u6210\u201d\u53ef\u4ee5\u590d\u5236/\u79fb\u52a8\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.wiz.copy.help.1=<p>\u901a\u8fc7\u5355\u51fb\u201c\u66f4\u6539...\u201d\u6309\u94ae\u5e76\u4ece\u5217\u8868\u4e2d\u9009\u62e9\u6240\u9700\u7684\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u53ef\u4ee5\u9009\u62e9\u5305\u542b\u8981\u590d\u5236/\u79fb\u52a8\u7684\u914d\u7f6e\u6587\u4ef6\u7684\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u3002\
+</p><p>\u7c7b\u4f3c\u5730\uff0c\u901a\u8fc7\u5355\u51fb\u201c\u66f4\u6539...\u201d\u6309\u94ae\u5e76\u4ece\u5217\u8868\u4e2d\u9009\u62e9\u6240\u9700\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u53ef\u4ee5\u9009\u62e9\u8981\u590d\u5236/\u79fb\u52a8\u7684\u914d\u7f6e\u6587\u4ef6\u3002\
+</p>
+APOC.wiz.copy.help.2=<p>\u9009\u62e9\u8981\u5bf9\u9009\u5b9a\u914d\u7f6e\u6587\u4ef6\u6267\u884c\u7684\u64cd\u4f5c\u3002</p><p>\u8bf7\u9009\u62e9\u6267\u884c\u6307\u5b9a\u64cd\u4f5c\u65f6\u662f\u5426\u5ffd\u7565\u6b64\u914d\u7f6e\u6587\u4ef6\u7684\u73b0\u6709\u6307\u5b9a\u4fe1\
+\u606f\u3002</p>
+APOC.wiz.copy.help.3=<p>\u901a\u8fc7\u5355\u51fb\u201c\u66f4\u6539...\u201d\u6309\u94ae\u5e76\u4ece\u5217\u8868\u4e2d\u9009\u62e9\u6240\u9700\u7684\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u53ef\u4ee5\u9009\u62e9\u8981\u590d\u5236/\u79fb\u52a8\u7684\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u3002</p>\
+<p>\u7c7b\u4f3c\u5730\uff0c\u901a\u8fc7\u5355\u51fb\u201c\u66f4\u6539...\u201d\u6309\u94ae\u5e76\u4ece\u5217\u8868\u4e2d\u9009\u62e9\u6240\u9700\u7684\u5143\u7d20\uff0c\u53ef\u4ee5\u9009\u62e9\u8981\u590d\u5236/\u79fb\u52a8\u7684\u5143\u7d20\u3002</p>
+APOC.wiz.copy.source.context=\u6e90\u7cfb\u7edf\u4fe1\u606f\u5e93\uff1a
+APOC.wiz.copy.source.profile=\u6e90\u914d\u7f6e\u6587\u4ef6\uff1a
+APOC.wiz.copy.1.alert=\u5fc5\u987b\u9009\u62e9\u6e90\u914d\u7f6e\u6587\u4ef6\uff01
+APOC.wiz.copy.2.alert=\u5df2\u901a\u8fc7\u9a8c\u8bc1\u7684\u7528\u6237 {0} \u6ca1\u6709\u79fb\u52a8\u6e90\u914d\u7f6e\u6587\u4ef6 {1} \u6240\u9700\u7684\u6743\u9650\uff01
+APOC.wiz.copy.select.action=\u9009\u62e9\u64cd\u4f5c\uff1a
+APOC.wiz.copy.copy=\u590d\u5236(P)
+APOC.wiz.copy.move=\u79fb\u52a8
+APOC.wiz.copy.assignments=\u5305\u542b\u6307\u5b9a
+APOC.wiz.copy.target.context=\u76ee\u6807\u7cfb\u7edf\u4fe1\u606f\u5e93\uff1a
+APOC.wiz.copy.target.entity=\u76ee\u6807\u5143\u7d20\uff1a
+APOC.wiz.copy.3.alert=\u5fc5\u987b\u9009\u62e9\u76ee\u6807\u5143\u7d20\uff01
+APOC.wiz.copy.action=\u64cd\u4f5c\uff1a
+APOC.wiz.copy.assignments.assignments=\u5305\u542b\u6307\u5b9a\uff1a
+APOC.wiz.copy.3.alert1=\u5982\u679c\u6e90\u5143\u7d20\u548c\u76ee\u6807\u5143\u7d20\u76f8\u540c\uff0c\u5c06\u65e0\u6cd5\u79fb\u52a8\u914d\u7f6e\u6587\u4ef6\uff01
+APOC.wiz.copy.3.alert2=\u914d\u7f6e\u6587\u4ef6 {0} \u4e0d\u80fd\u662f {1}\uff01\u76ee\u6807\u5143\u7d20 {2} \u4e2d\u5df2\u7ecf\u5b58\u5728\u5177\u6709\u76f8\u540c\u540d\u79f0\u7684\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.wiz.copy.3.alert3=\u5df2\u901a\u8fc7\u9a8c\u8bc1\u7684\u7528\u6237 {0} \u6ca1\u6709\u5c06\u914d\u7f6e\u6587\u4ef6 {2} {1} \u5230\u5143\u7d20 {3} \u6240\u9700\u7684\u6743\u9650\uff01
+APOC.wiz.copy.4.alert=\u914d\u7f6e\u6587\u4ef6 {0} \u4e0d\u80fd\u662f {1}\uff01\u914d\u7f6e\u6587\u4ef6\u81f3\u5c11\u5df2\u6307\u5b9a\u7ed9\u4f4d\u4e8e\u76ee\u6807\u5143\u7d20 {2} \u4e0a\u65b9\u7684\u4e00\u4e2a\u5143\u7d20\u3002
+APOC.wiz.copy.copyof=\u590d\u5236 {1} \u7684 {0}
+APOC.wiz.copy.overview.title=\u590d\u5236/\u79fb\u52a8\u5411\u5bfc\u6982\u8ff0
+APOC.wiz.copy.overview.text=<p>\u914d\u7f6e\u6587\u4ef6\u53ef\u4ee5\u5b58\u50a8\u5728\u7ec4\u7ec7\u5c42\u6b21\u7ed3\u6784\u5185\u7684\u4efb\u610f\u5143\u7d20\u4e2d\uff0c\u590d\u5236/\u79fb\u52a8\u5411\u5bfc\u5c06\u9010\u6b65\u6307\u5bfc\u60a8\u5b8c\u6210\u4ee5\u4e0b\u64cd\u4f5c\uff1a\u5c06\u5b58\u50a8\u5728\u67d0\u4e2a\u5143\u7d20\u4e0b\u7684\u914d\u7f6e\u6587\u4ef6\u590d\u5236\u5230\
+\u53e6\u4e00\u4e2a\u5143\u7d20\u4e0b\u7684\u65b0\u5b58\u50a8\u4f4d\u7f6e\uff08\u5373\u5728\u65b0\u4f4d\u7f6e\u4e2d\u521b\u5efa\u8be5\u914d\u7f6e\u6587\u4ef6\u7684\u526f\u672c\uff09\uff1b\u5c06\u914d\u7f6e\u6587\u4ef6\u7684\u5b58\u50a8\u4f4d\u7f6e\u4ece\u4e00\u4e2a\u5143\u7d20\u79fb\u52a8\u5230\u53e6\u4e00\u4e2a\u5143\u7d20\u3002\u5728\u590d\u5236/\u79fb\u52a8\u64cd\u4f5c\u4e2d\u4f7f\u7528\u201c\u5305\u542b\
+\u6307\u5b9a\u201d\u9009\u9879\u65f6\u5b58\u5728\u67d0\u4e9b\u9650\u5236\uff0c\u5373\u53ea\u5141\u8bb8\u5c06\u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u7ed9\u4f4d\u4e8e\u8be5\u914d\u7f6e\u6587\u4ef6\u5b58\u50a8\u4f4d\u7f6e\u6216\u5728\u6b64\u4f4d\u7f6e\u4e4b\u4e0b\u7684\u5143\u7d20\u3002\u5411\u5bfc\u5c06\u8981\u6c42\u60a8\u63d0\u4f9b\u4ee5\u4e0b\u4fe1\u606f\uff1a<\
+/p><p><ul><li>\u6e90\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u548c\u6e90\u914d\u7f6e\u6587\u4ef6\u3002</li><\
+li>\u8981\u6267\u884c\u7684\u64cd\u4f5c\uff0c\u4ee5\u53ca\u5728\u6267\u884c\u6b64\u64cd\u4f5c\u65f6\u662f\u5426\u8fd8\u8981\u5305\u542b\u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u4fe1\u606f\u3002 </li><li>\u76ee\u6807\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u548c\
+\u76ee\u6807\u5143\u7d20\u3002</li></ul></p><p>\u63d0\u4f9b\u4ee5\u4e0a\u4fe1\u606f\u4e4b\u540e\uff0c\u5411\u5bfc\u5c06\u5bf9\u9009\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6\u6267\u884c\u8bf7\
+\u6c42\u7684\u64cd\u4f5c\u3002</p>
+APOC.wiz.copy.steptext.overview= \u6982\u8ff0
+APOC.wiz.copy.results.text.assigned=\u914d\u7f6e\u6587\u4ef6 {0} \u5df2\u88ab {1} \u5230\u4f4d\u4e8e\u5143\u7d20 {2} \u7684\u65b0\u5b58\u50a8\u4f4d\u7f6e\uff0c\u5e76\u5df2\u6307\u5b9a\u7ed9\u6b64\u5143\u7d20\u3002
+APOC.wiz.copy.results.text.unassigned=\u914d\u7f6e\u6587\u4ef6 {0} \u5df2\u88ab {1} \u5230\u4f4d\u4e8e\u5143\u7d20 {2} \u7684\u65b0\u5b58\u50a8\u4f4d\u7f6e\u3002
+APOC.wiz.copy.results.title=\u914d\u7f6e\u6587\u4ef6 {0} \u6210\u529f
+APOC.wiz.copy.results.alert.title=\u914d\u7f6e\u6587\u4ef6 {0} \u5931\u8d25
+APOC.wiz.copy.results.copied=\u5df2\u590d\u5236
+APOC.wiz.copy.results.moved=\u5df2\u79fb\u52a8
+APOC.wiz.copy.results.copied.lc=\u5df2\u590d\u5236
+APOC.wiz.copy.results.moved.lc=\u5df2\u79fb\u52a8
+APOC.wiz.copy.4.fail1=\u590d\u5236\u914d\u7f6e\u6587\u4ef6\u65f6\u53d1\u751f\u9519\u8bef\u3002
+APOC.wiz.copy.4.fail2=\u5220\u9664\u914d\u7f6e\u6587\u4ef6\u65f6\u53d1\u751f\u9519\u8bef\u3002
+APOC.wiz.copy.4.fail3=\u8bbe\u7f6e\u65b0\u914d\u7f6e\u6587\u4ef6\u7684\u663e\u793a\u540d\u79f0\u65f6\u53d1\u751f\u9519\u8bef\u3002
+APOC.wiz.copy.4.fail4=\u5c06\u65b0\u7684\u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u7ed9\u76ee\u6807\u5143\u7d20\u65f6\u53d1\u751f\u9519\u8bef\u3002
+
+# Browse Tree
+APOC.browse.title.org=\u9009\u62e9\u7ec4\u7ec7
+APOC.browse.title.dom=\u9009\u62e9\u57df
+APOC.browse.title=\u9009\u62e9\u5143\u7d20
+APOC.browse.title.text=\u5728\u6811\u4e2d\u5bfc\u822a\u5e76\u9009\u62e9\u6240\u9700\u5143\u7d20\u3002\u5355\u51fb\u201c\u786e\u5b9a\u201d\u6309\u94ae\u4ee5\u786e\u8ba4\u9009\u62e9\u3002
+APOC.browse.cancel.help=\u53d6\u6d88\u9009\u62e9\u5e76\u5173\u95ed\u7a97\u53e3\u3002
+APOC.browse.ok.help=\u786e\u8ba4\u9009\u62e9\u5e76\u5173\u95ed\u7a97\u53e3\u3002
+APOC.browse.tree.nav=\u6811\u5bfc\u822a
+
+#*******************************************************************************
+# Syncronization
+#*******************************************************************************
+APOC.sync.title=\u540c\u6b65
+APOC.sync.help=\u4f7f\u7528\u6b64\u9875\u9762\u53ef\u4ee5\u4f7f\u4e24\u4e2a\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u540c\u6b65\u3002
+APOC.sync.sourcerep.label=\u6e90\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff1a
+APOC.sync.sourcerep.help=\u53ef\u7528\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u83dc\u5355\u3002
+APOC.sync.sourcepath.label=\u6e90\u8d77\u59cb\u70b9\uff1a
+APOC.sync.sourcepath.button=\u66f4\u6539...
+APOC.sync.sourcepath.help=\u6253\u5f00\u7528\u4e8e\u66f4\u6539\u6e90\u4e0a\u4e0b\u6587\u8def\u5f84\u7684\u7a97\u53e3\u3002
+APOC.sync.targetrep.label=\u76ee\u6807\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff1a
+APOC.sync.targetrep.help=\u53ef\u7528\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u83dc\u5355\u3002
+APOC.sync.targetpath.label=\u76ee\u6807\u8d77\u59cb\u70b9\uff1a
+APOC.sync.targetpath.button=\u66f4\u6539...
+APOC.sync.targetpath.help=\u6253\u5f00\u7528\u4e8e\u66f4\u6539\u76ee\u6807\u4e0a\u4e0b\u6587\u8def\u5f84\u7684\u7a97\u53e3\u3002
+APOC.sync.sync.button=\u540c\u6b65
+APOC.sync.sync.help=\u6309\u7167\u9009\u5b9a\u7684\u64cd\u4f5c\u5bf9\u5217\u51fa\u7684\u914d\u7f6e\u6587\u4ef6\u8fdb\u884c\u540c\u6b65\u3002
+APOC.sync.reset.button=\u91cd\u8bbe
+APOC.sync.reset.help=\u5c06\u64cd\u4f5c\u91cd\u8bbe\u4e3a\u914d\u7f6e\u7ba1\u7406\u5668\u5efa\u8bae\u7684\u9ed8\u8ba4\u64cd\u4f5c\u3002
+APOC.sync.cancel.help=\u5173\u95ed\u6b64\u7a97\u53e3\u3002
+APOC.sync.login.title=\u4e0a\u4e0b\u6587\u767b\u5f55
+APOC.sync.login.pagetitle=\u767b\u5f55 - \u6e90\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93
+APOC.sync.login.pagetitle2=\u767b\u5f55 - \u76ee\u6807\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93
+APOC.sync.login.pagehelp=\u4f7f\u7528\u914d\u7f6e\u7ba1\u7406\u5668\u53ef\u4ee5\u7ba1\u7406\u591a\u4e2a\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u8fd9\u4e9b\u7cfb\u7edf\u4fe1\u606f\u5e93\u53ef\u80fd\u9700\u8981\u5355\u72ec\u767b\u5f55\u3002\u5982\u679c\u53ef\u4ee5\u91cd\u590d\u4f7f\u7528\u767b\u5f55 Java Web Console \u65f6\u6240\u7528\u7684\
+\u8bc1\u4e66\uff0c\u5219\u8fd9\u4e9b\u8bc1\u4e66\u5c06\u6210\u4e3a\u9ed8\u8ba4\u4f7f\u7528\u7684\u8bc1\u4e66\u3002\u5982\u679c\u5728\u5f53\u524d\u4f1a\u8bdd\u4e2d\u5df2\u6210\u529f\u901a\u8fc7\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u9a8c\u8bc1\uff0c\u5219\u4e0d\u4f1a\u663e\u793a\u6b64\u767b\u5f55\u9875\u9762\u3002\u5982\u679c\u8981\u4f7f\u7528\u5176\u4ed6\u8bc1\u4e66\u767b\u5f55\u5230\u914d\u7f6e\u7cfb\
+\u7edf\u4fe1\u606f\u5e93\uff0c\u5219\u9700\u8981\u6ce8\u9500 Java Web Console \u4ee5\u7ed3\u675f\u8be5\u4f1a\u8bdd\u3002
+APOC.sync.compare.button=\u6bd4\u8f83
+APOC.sync.compare.help=\u6bd4\u8f83\u6e90\u548c\u76ee\u6807\u3002
+APOC.sync.result.empty=\u627e\u4e0d\u5230\u4efb\u4f55\u5dee\u5f02\u3002
+APOC.sync.result.summary=\u6b64\u8868\u683c\u5217\u51fa\u4e86\u6e90\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u548c\u76ee\u6807\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u4e4b\u95f4\u7684\u5dee\u5f02\u3002
+APOC.sync.result.title=\u914d\u7f6e\u6587\u4ef6
+APOC.sync.result.title2=\u4e0d\u540c\u7684\u914d\u7f6e\u6587\u4ef6
+APOC.sync.result.help0=\u5173\u4e8e\u540c\u6b65
+APOC.sync.result.help1=\u4f7f\u7528\u6b64\u7a97\u53e3\u53ef\u4ee5\u4f7f\u4e24\u4e2a\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u540c\u6b65\u3002
+APOC.sync.result.help2=\u53ef\u4ee5\u5bf9\u4f5c\u4e3a\u66f4\u6539\u6e90\u7684\u6e90\u7cfb\u7edf\u4fe1\u606f\u5e93\u8fdb\u884c\u66f4\u6539\u3002\u6b64\u7cfb\u7edf\u4fe1\u606f\u5e93\u4e0d\u4f1a\u66f4\u6539\u3002\u60a8\u53ef\u4ee5\u901a\u8fc7\u5c06\u5143\u7d20\uff08\u800c\u4e0d\u662f\u6839\uff09\u6307\u5b9a\u4e3a\u540c\u6b65\u7684\u8d77\u59cb\u70b9\u6765\u9650\u5236\u6e90\u7cfb\u7edf\u4fe1\u606f\u5e93\uff08\u53ef\u9009\uff09\u3002
+APOC.sync.result.help3=\u53ef\u4ee5\u5bf9\u4f5c\u4e3a\u66f4\u6539\u76ee\u6807\u7684\u76ee\u6807\u7cfb\u7edf\u4fe1\u606f\u5e93\u8fdb\u884c\u66f4\u6539\u3002\u6b64\u7cfb\u7edf\u4fe1\u606f\u5e93\u4e0d\u4f1a\u66f4\u6539\u3002\u60a8\u53ef\u4ee5\u901a\u8fc7\u5c06\u5143\u7d20\uff08\u800c\u4e0d\u662f\u6839\uff09\u6307\u5b9a\u4e3a\u540c\u6b65\u7684\u8d77\u59cb\u70b9\u6765\u9650\u5236\u76ee\u6807\u7cfb\u7edf\u4fe1\u606f\u5e93\uff08\u53ef\
+\u9009\uff09\u3002
+APOC.sync.result.help4=\u6307\u5b9a\u6e90\u6811\u548c\u76ee\u6807\u6811\u540e\u5355\u51fb\u201c\u6bd4\u8f83\u201d\u6309\u94ae\u3002\u5c06\u5bf9\u8fd9\u4e24\u4e2a\u6811\u8fdb\u884c\u6bd4\u8f83\uff0c\u5e76\u5728\u4e00\u4e2a\u8868\u683c\u4e2d\u5217\u51fa\u6240\u6709\u5dee\u5f02\u3002\u52fe\u9009\u5305\u542b\u8981\u540c\u6b65\u7684\u914d\u7f6e\u6587\u4ef6\u7684\u8868\u683c\u884c\uff0c\u7136\u540e\u6309\u201c\u540c\u6b65\u201d\u6309\
+\u94ae\u3002
+APOC.sync.result.help5=\u5b8c\u6210\u540c\u6b65\u540e\uff0c\u76ee\u6807\u7cfb\u7edf\u4fe1\u606f\u5e93\u5c06\u6309\u7167\u9009\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6\u4e0e\u6e90\u7cfb\u7edf\u4fe1\u606f\u5e93\u8fdb\u884c\u5339\u914d\u3002
+APOC.sync.busymsg.text=\u6b63\u5728\u5904\u7406...
+APOC.sync.result.column1=\u914d\u7f6e\u6587\u4ef6
+APOC.sync.result.column2=\u5bf9\u76ee\u6807\u7cfb\u7edf\u4fe1\u606f\u5e93\u6267\u884c\u7684\u64cd\u4f5c
+APOC.sync.action.copycontent=\u590d\u5236\u5185\u5bb9\u3002
+APOC.sync.action.copycomment=\u590d\u5236\u6ce8\u91ca\u3002
+APOC.sync.action.alignassign=\u8c03\u6574\u6307\u5b9a\u3002
+APOC.sync.action.changeprios=\u66f4\u6539\u4f18\u5148\u7ea7\u3002
+APOC.sync.action.create=\u521b\u5efa\u5177\u6709\u5185\u5bb9\u548c\u6307\u5b9a\u4fe1\u606f\u7684\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.sync.action.delete=\u5220\u9664\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.sync.msg.orgdomcomapre=\u65e0\u6cd5\u5c06\u7ec4\u7ec7\u6811\u4e0e\u57df\u6811\u8fdb\u884c\u6bd4\u8f83\u3002
+APOC.sync.msg.noprofiles=\u627e\u4e0d\u5230\u4efb\u4f55\u914d\u7f6e\u6587\u4ef6\u3002
+APOC.sync.msg.allequal=\u6240\u6709\u7ecf\u8fc7\u6bd4\u8f83\u7684\u914d\u7f6e\u6587\u4ef6\u90fd\u662f\u76f8\u540c\u7684\uff0c\u65e0\u9700\u8fdb\u884c\u540c\u6b65\u3002
+APOC.sync.msg.nocompare=\u627e\u5230\u914d\u7f6e\u6587\u4ef6\u4f46\u90fd\u65e0\u6cd5\u8fdb\u884c\u6bd4\u8f83\u3002
+APOC.sync.msg.partialcompare=\u81f3\u5c11\u6709\u4e00\u4e2a\u627e\u5230\u7684\u914d\u7f6e\u6587\u4ef6\u65e0\u6cd5\u8fdb\u884c\u6bd4\u8f83\u3002
+APOC.sync.msg.compare.detail=\u5bf9\u4e8e\u8981\u6bd4\u8f83\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u4ece\u8d77\u59cb\u70b9\u5230\u5b58\u50a8\u4f4d\u7f6e\u7684\u76f8\u5bf9\u8def\u5f84\u5fc5\u987b\u5b58\u5728\u4e8e\u5176\u4ed6\u7cfb\u7edf\u4fe1\u606f\u5e93\u4e2d\u3002
+APOC.sync.waitmsg.prepare=\u6b63\u5728\u51c6\u5907
+APOC.sync.waitmsg.retsource=\u6b63\u5728\u68c0\u7d22\u6e90\u914d\u7f6e\u6587\u4ef6
+APOC.sync.waitmsg.rettarget=\u6b63\u5728\u68c0\u7d22\u76ee\u6807\u914d\u7f6e\u6587\u4ef6
+APOC.sync.waitmsg.prepx=\u6b63\u5728\u51c6\u5907\u914d\u7f6e\u6587\u4ef6\u6bd4\u8f83\uff08\u5df2\u51c6\u5907 {0} \u4e2a\u914d\u7f6e\u6587\u4ef6\uff09
+APOC.sync.waitmsg.compx=\u6b63\u5728\u6bd4\u8f83\u914d\u7f6e\u6587\u4ef6\uff08\u5df2\u6bd4\u8f83 {0} \u4e2a\u914d\u7f6e\u6587\u4ef6\uff0c\u5171\u6709 {1} \u4e2a\uff09
+APOC.sync.waitmsg.sync=\u6b63\u5728\u540c\u6b65\u914d\u7f6e\u6587\u4ef6\uff08\u5df2\u540c\u6b65 {0} \u4e2a\u914d\u7f6e\u6587\u4ef6\uff0c\u5171\u6709 {1} \u4e2a\uff09
+APOC.sync.waitmsg.time=\u6240\u7528\u65f6\u95f4\uff1a{0}:{1}.{2}
+
+APOC.tabs.tree.title=\u914d\u7f6e\u6587\u4ef6 - \u6811\u89c6\u56fe
+APOC.tabs.tree.help=\u5728\u7ec4\u7ec7\u6811\u548c\u57df\u6811\u4e2d\u663e\u793a\u6307\u5b9a\u7684\u914d\u7f6e\u6587\u4ef6
+APOC.tabs.all.title=\u914d\u7f6e\u6587\u4ef6 - \u6240\u6709
+APOC.tabs.all.help=\u663e\u793a\u6240\u6709\u914d\u7f6e\u6587\u4ef6\u7684\u5217\u8868\u3002
+
+APOC.find.title=\u67e5\u627e
+APOC.find.button=\u67e5\u627e
+
+#*******************************************************************************
+# Contexts
+#*******************************************************************************
+APOC.contexts.title=\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93
+APOC.contexts.details.title=\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u8be6\u7ec6\u4fe1\u606f
+APOC.contexts.details.name=\u7cfb\u7edf\u4fe1\u606f\u5e93\u540d\u79f0
+APOC.contexts.details.domorg.info=\u57df/\u7ec4\u7ec7\u4fe1\u606f\u7684\u4f4d\u7f6e
+APOC.contexts.details.domorg.profile.info=\u57df/\u7ec4\u7ec7\u6570\u636e\u7684\u5b58\u50a8\u4f4d\u7f6e
+APOC.contexts.details.property=\u5c5e\u6027
+APOC.contexts.details.view=\u67e5\u770b\u8be6\u7ec6\u4fe1\u606f
+APOC.contexts.help=\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u662f\u5b58\u50a8\u914d\u7f6e\u6570\u636e\u7684\u4f4d\u7f6e\uff0c\u60a8\u9700\u8981\u4f7f\u7528\u914d\u7f6e\u6570\u636e\u6765\u914d\u7f6e\u5e94\u7528\u7a0b\u5e8f\u3002
+APOC.contexts.table.title=\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93
+APOC.contexts.config.error=\u65e0\u6cd5\u8bbf\u95ee\u9009\u5b9a\u7684\u7cfb\u7edf\u4fe1\u606f\u5e93\u3002\u914d\u7f6e\u6587\u4ef6 {0} \u4e2d\u5b58\u5728\u8bed\u6cd5\u9519\u8bef\u3002
+APOC.contexts.table.summary=\u6b64\u8868\u683c\u5217\u51fa\u4e86\u6240\u6709\u53ef\u7528\u7684\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u3002\u201c\u7c7b\u578b\u201d\u5217\u5217\u51fa\u4e86\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u7c7b\u578b\u3002\u201c\u7ec4\u7ec7\u6570\u636e\u4f4d\u7f6e\u201d\u5217\u5217\u51fa\u4e86\u6307\u5411\u5b58\u50a8\u4f4d\u7f6e\uff08\u63d0\u4f9b\u7ec4\u7ec7\u6570\u636e\uff09\u7684 URL\u3002\
+\u201c\u914d\u7f6e\u6587\u4ef6\u6570\u636e\u4f4d\u7f6e\u201d\u5217\u5217\u51fa\u4e86\u6307\u5411\u5b58\u50a8\u4f4d\u7f6e\uff08\u63d0\u4f9b\u914d\u7f6e\u6587\u4ef6\u6570\u636e\uff09\u7684 URL\u3002\u5355\u51fb\u540d\u79f0\u94fe\u63a5\u53ef\u4ee5\u4f7f\u7528\u8be5\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u3002
+APOC.contexts.details.table.summary=\u6b64\u8868\u683c\u5217\u51fa\u4e86\u9009\u5b9a\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u5c5e\u6027\u3002\u5176\u4e2d\u5217\u51fa\u4e86\u540d\u79f0\u3001\u5c42\u6b21\u7ed3\u6784\u4fe1\u606f\u7684\u4f4d\u7f6e\u4ee5\u53ca\u5b58\u50a8\u4fe1\u606f\u7684\u4f4d\u7f6e\u3002
+APOC.contexts.table.empty=\u65e0\u53ef\u7528\u7684\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u3002\u4f7f\u7528\u201c\u65b0\u5efa...\u201d\u6309\u94ae\u53ef\u4ee5\u521b\u5efa\u65b0\u7684\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u3002
+APOC.contexts.menu.create=\u521b\u5efa...
+APOC.contexts.menu.remove=\u5220\u9664
+APOC.contexts.menu.rename=\u91cd\u547d\u540d...
+APOC.contexts.menu.synchronize=\u540c\u6b65...
+APOC.contexts.column.name=\u540d\u79f0
+APOC.contexts.column.type=\u7c7b\u578b
+APOC.contexts.column.locorg=\u7ec4\u7ec7\u6570\u636e\u4f4d\u7f6e
+APOC.contexts.column.locpro=\u914d\u7f6e\u6587\u4ef6\u6570\u636e\u4f4d\u7f6e
+APOC.contexts.hybrid.text=\u6df7\u5408\u5f0f
+APOC.contexts.create.button=\u521b\u5efa\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93
+APOC.contexts.login.context=\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff1a
+APOC.contexts.login.title=\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93 - \u767b\u5f55
+APOC.contexts.login.help=\u4f7f\u7528\u914d\u7f6e\u7ba1\u7406\u5668\u53ef\u4ee5\u7ba1\u7406\u591a\u4e2a\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u8fd9\u4e9b\u7cfb\u7edf\u4fe1\u606f\u5e93\u53ef\u80fd\u9700\u8981\u5355\u72ec\u767b\u5f55\u3002\u5982\u679c\u53ef\u4ee5\u91cd\u590d\u4f7f\u7528\u767b\u5f55 Java Web Console \u65f6\u6240\u7528\u7684\
+\u8bc1\u4e66\uff0c\u5219\u8fd9\u4e9b\u8bc1\u4e66\u5c06\u6210\u4e3a\u9ed8\u8ba4\u4f7f\u7528\u7684\u8bc1\u4e66\u3002\u5982\u679c\u5728\u5f53\u524d\u4f1a\u8bdd\u4e2d\u5df2\u6210\u529f\u901a\u8fc7\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u9a8c\u8bc1\uff0c\u5219\u4e0d\u4f1a\u663e\u793a\u6b64\u767b\u5f55\u9875\u9762\u3002\u5982\u679c\u8981\u4f7f\u7528\u5176\u4ed6\u8bc1\u4e66\u767b\u5f55\u5230\u914d\u7f6e\u7cfb\
+\u7edf\u4fe1\u606f\u5e93\uff0c\u5219\u9700\u8981\u6ce8\u9500 Java Web Console \u4ee5\u7ed3\u675f\u8be5\u4f1a\u8bdd\u3002
+APOC.select.contexts.login.help=\u8981\u9009\u62e9\u65b0\u7684\u914d\u7f6e\u7cfb\u7edf\u4fe1\u606f\u5e93\uff0c\u5fc5\u987b\u63d0\u4f9b\u65b0\u7684\u767b\u5f55\u8bc1\u4e66\u3002\u5148\u524d\u7528\u4e8e\u767b\u5f55\u5230\u9009\u5b9a\u7cfb\u7edf\u4fe1\u606f\u5e93\u7684\u8bc1\u4e66\u662f\u9ed8\u8ba4\u4f7f\u7528\u7684\u8bc1\u4e66\uff08\u5982\u679c\u53ef\u7528\uff09\u3002
+APOC.relocate.error.summary=\u64cd\u4f5c\u5df2\u53d6\u6d88\uff01
+APOC.relocate.error.detail=\u81f3\u5c11\u6709\u4e00\u4e2a\u88ab\u6307\u5b9a\u4e86\u6b64\u914d\u7f6e\u6587\u4ef6\u7684\u7ec4\u7ec7\u6216\u57df\u5c06\u4f4d\u4e8e\u914d\u7f6e\u6587\u4ef6\u65b0\u4f4d\u7f6e\u7684\u4e0a\u65b9\u3002
+APOC.relocate.trace.text=\u65e0\u53ef\u7528\u7684\u5806\u6808\u8ddf\u8e2a\u3002
+
diff --git a/src/com/sun/apoc/manager/resource/apoc_manager_zh_TW.properties b/src/com/sun/apoc/manager/resource/apoc_manager_zh_TW.properties
new file mode 100644
index 0000000..a1dcd36
--- /dev/null
+++ b/src/com/sun/apoc/manager/resource/apoc_manager_zh_TW.properties
@@ -0,0 +1,1062 @@
+#*******************************************************************************
+#
+# $RCSfile: apoc_manager_zh_TW.properties,v $
+#
+# Description: Resource bundle for the Sun Java(tm) Desktop System
+# Configuration Manager
+#
+# Last change: $Date: 2007/05/18 14:41:03 $ $Revision: 1.13 $
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use of this
+# product is subject to license terms.
+#
+#*******************************************************************************
+
+#*******************************************************************************
+# Common
+#
+#*******************************************************************************
+
+APOC.framelongdesc=\u6b64\u61c9\u7528\u7a0b\u5f0f\u7684\u7d50\u69cb\u5305\u542b\u4e09\u500b\u6846\u67b6\u3002\u6a19\u982d\u6846\u67b6\u6a6b\u8de8\u9801\u9762\u9802\u7aef\u3002\u700f\u89bd\u6846\u67b6\u4f4d\u65bc\u5de6\u5074\uff0c\u53ef\u8b93\u60a8\u5728 [\u4f7f\u7528\u8005] \u548c [\u4e3b\u6a5f] \u4e2d\u700f\u89bd\u3002\u5728\u700f\u89bd\u6846\u67b6\u4e2d\u9078\u53d6\u5143\u7d20\u6703\u66f4\
+\u65b0\u5167\u5bb9\u6846\u67b6\uff0c\u6216\u540c\u6642\u66f4\u65b0\u5167\u5bb9\u6846\u67b6\u548c\u700f\u89bd\u6846\u67b6\u3002\u5167\u5bb9\u5340\u57df\u4f4d\u65bc\u53f3\u5074\uff0c\u986f\u793a\u76ee\u524d\u6240\u9078\u5143\u7d20\u7684\u8cc7\u8a0a\u3002
+APOC.so7=StarSuite 7
+APOC.button.remove=\u79fb\u9664
+APOC.button.close=\u95dc\u9589
+APOC.button.OK=\u78ba\u5b9a
+APOC.button.cancel=\u53d6\u6d88
+APOC.button.browse=\u8b8a\u66f4...
+APOC.headings.name=\u540d\u7a31
+APOC.login.username=\u4f7f\u7528\u8005\u540d\u7a31\uff1a
+APOC.login.password=\u5bc6\u78bc\uff1a
+APOC.infoAlert.success=\u52d5\u4f5c\u5df2\u6210\u529f\u5b8c\u6210\u3002
+APOC.noframes=\u4f7f\u7528\u6b64\u61c9\u7528\u7a0b\u5f0f\u9700\u8981\u6846\u67b6\u3002
+APOC.settings.notset=-- \u672a\u8a2d\u5b9a --
+APOC.profiles.profile=\u8a2d\u5b9a\u6a94
+APOC.help.more.on=>> \u66f4\u591a\u6709\u95dc {0} \u7684\u8cc7\u8a0a
+APOC.help.more=>> \u66f4\u591a
+APOC.pool.renameContextMessage=\u8f38\u5165\u5132\u5b58\u5eab\u7684\u65b0\u540d\u7a31\uff1a
+APOC.pool.removeContextMessage=\u60a8\u662f\u5426\u8981\u522a\u9664\u6240\u9078\u7684\u914d\u7f6e\u5132\u5b58\u5eab\uff1f
+APOC.helpwindow.tooltip=\u8aaa\u660e (\u958b\u555f\u65b0\u8996\u7a97)
+
+#*******************************************************************************
+# Masthead
+#
+#*******************************************************************************
+
+APOC.frame.masthead=\u6a19\u982d\u6846\u67b6
+APOC.masthead.altTextVer=Sun Desktop Manager 1.0.1
+APOC.masthead.altText=Sun Desktop Manager 1.0.1
+APOC.masthead.altTextForSub={0}
+APOC.masthead.packages.alt=\u7b56\u7565\u5957\u88dd\u8edf\u9ad4 (\u958b\u555f\u65b0\u8996\u7a97)
+APOC.masthead.path.link=\u5132\u5b58\u5eab
+APOC.masthead.path.help=\u8fd4\u56de\u914d\u7f6e\u5132\u5b58\u5eab\u9801\u9762
+
+#*******************************************************************************
+# Packages Dialog Strings
+#
+#*******************************************************************************
+
+APOC.packages.title=\u7b56\u7565\u5957\u88dd\u8edf\u9ad4
+APOC.packages.introtext=\u60a8\u53ef\u4ee5\u5728\u6b64\u8655\u5b89\u88dd\u6216\u89e3\u9664\u5b89\u88dd\u7b56\u7565\u5957\u88dd\u8edf\u9ad4\u3002\u7b56\u7565\u5957\u88dd\u8edf\u9ad4\u7531 Sun Microsystems \u6216\u5354\u529b\u5ee0\u5546\u63d0\u4f9b\uff0c\u4e26\u5305\u542b {0} \u4e2d\u8981\u4f7f\u7528\u7684\u5176\u4ed6\u7b56\
+\u7565\u3002
+APOC.packages.tabletitle=\u5df2\u5b89\u88dd\u7684\u7b56\u7565\u5957\u88dd\u8edf\u9ad4
+APOC.packages.headings.adddate=\u52a0\u5165\u65e5\u671f
+APOC.packages.action.file=\u5f9e\u4f3a\u670d\u5668\u5b89\u88dd...
+APOC.packages.action.url=\u5f9e\u7528\u6236\u7aef\u5b89\u88dd...
+APOC.packages.action.uninstall=\u89e3\u9664\u5b89\u88dd
+APOC.packages.uninstall.confirm=\u60a8\u78ba\u5b9a\u8981\u89e3\u9664\u5b89\u88dd\u6240\u9078\u7684\u5957\u88dd\u8edf\u9ad4\u55ce\uff1f
+APOC.packages.filechooser.addfile=\u5f9e\u4f3a\u670d\u5668\u6a94\u6848\u5b89\u88dd\u7b56\u7565\u5957\u88dd\u8edf\u9ad4
+APOC.packages.filechooser.button=\u9078\u64c7\u6a94\u6848
+APOC.packages.localchooser.title=\u5f9e\u672c\u6a5f\u6a94\u6848\u5b89\u88dd\u7b56\u7565\u5957\u88dd\u8edf\u9ad4
+APOC.packages.localchooser.upload=\u4e0a\u8f09
+APOC.packages.localchooser.choosetext=\u8981\u4e0a\u8f09\u7684\u6a94\u6848\uff1a
+
+#*******************************************************************************
+# Users Page Tab
+#
+#*******************************************************************************
+
+APOC.users.title=\u4f7f\u7528\u8005
+APOC.users.introtext=\u6b64\u6a19\u7c64\u9801\u9762\u5217\u51fa\u4f5c\u70ba\u6240\u9078\u89d2\u8272\u4e4b\u6210\u54e1\u7684\u4f7f\u7528\u8005\u3002[\u8def\u5f91] \u6b04\u4f4d\u5217\u51fa\u7d55\u5c0d\u8def\u5f91\u3002
+APOC.users.tableSummary=\u6b64\u8868\u683c\u5217\u51fa\u4f5c\u70ba\u6240\u9078\u89d2\u8272\u4e4b\u6210\u54e1\u7684\u4f7f\u7528\u8005\u3002[\u8def\u5f91] \u6b04\u5217\u51fa\u7d55\u5c0d\u8def\u5f91\u3002\u5728\u5de6\u5074\u6846\u67b6\u4e2d\u6309\u4e00\u4e0b\u4f7f\u7528\u8005\u540d\u7a31\u4ee5\u9078\u53d6\u8a72\u4f7f\u7528\u8005\u3002
+
+#*******************************************************************************
+# Roles Page Tab
+#
+#*******************************************************************************
+
+APOC.roles.title=\u89d2\u8272
+APOC.roles.introtext=\u6b64\u6a19\u7c64\u9801\u9762\u5217\u51fa\u6240\u9078\u4f7f\u7528\u8005\u5f9e\u5c6c\u7684\u89d2\u8272\u3002[\u8def\u5f91] \u6b04\u4f4d\u5217\u51fa\u7d55\u5c0d\u8def\u5f91\u3002
+APOC.roles.tableSummary=\u6b64\u8868\u683c\u5217\u51fa\u6240\u9078\u4f7f\u7528\u8005\u5f9e\u5c6c\u7684\u89d2\u8272\u3002[\u8def\u5f91] \u6b04\u5217\u51fa\u7d55\u5c0d\u8def\u5f91\u3002\u5728\u5de6\u5074\u6846\u67b6\u4e2d\u6309\u4e00\u4e0b\u89d2\u8272\u540d\u7a31\u4ee5\u9078\u53d6\u8a72\u89d2\u8272\u3002
+
+#*******************************************************************************
+# Assignees Page Tab
+#
+#*******************************************************************************
+
+APOC.assignees.title=\u88ab\u6307\u5b9a\u5be6\u9ad4
+APOC.assignees.introtext=\u6b64\u6a19\u7c64\u9801\u9762\u5217\u51fa\u6240\u9078\u8a2d\u5b9a\u6a94\u88ab\u6307\u5b9a\u5230\u7684\u5be6\u9ad4\u3002[\u8def\u5f91] \u6b04\u4f4d\u5217\u51fa\u7d55\u5c0d\u8def\u5f91\u3002
+APOC.assignees.tableSummary=\u6b64\u8868\u683c\u5217\u51fa\u6240\u9078\u8a2d\u5b9a\u6a94\u88ab\u6307\u5b9a\u5230\u7684\u5be6\u9ad4\u3002[\u8def\u5f91] \u6b04\u4f4d\u5217\u51fa\u7d55\u5c0d\u8def\u5f91\u3002\u5728\u5de6\u5074\u6846\u67b6\u4e2d\u6309\u4e00\u4e0b\u5143\u7d20\u540d\u7a31\u5373\u53ef\u9078\u53d6\u8a72\u5143\u7d20\u3002
+
+#*******************************************************************************
+# Profiles Tab page
+#
+#*******************************************************************************
+
+APOC.policysets.title=\u6307\u5b9a\u7684\u8a2d\u5b9a\u6a94
+APOC.policysets.label=\u8a2d\u5b9a\u6a94\uff1a
+APOC.policysets.introtext=\u5728\u6b64\u6a19\u7c64\u9801\u9762\u4e0a\uff0c\u60a8\u53ef\u4ee5\u5c07\u8a2d\u5b9a\u6a94\u6307\u5b9a\u7d66\u6240\u9078\u7684\u5143\u7d20\u3002
+APOC.policysets.save=\u5132\u5b58
+APOC.policysets.infoAlert.saveSuccess=\u5df2\u5132\u5b58\u8a2d\u5b9a\u6a94\u6307\u5b9a\u7684\u8b8a\u66f4\u3002
+
+#*******************************************************************************
+# Policies Tab page
+#
+#*******************************************************************************
+
+APOC.policies.title=\u6307\u5b9a\u7684\u7b56\u7565
+APOC.policies.subcategories=\u5b50\u985e\u5225
+APOC.policies.nameCol=\u540d\u7a31
+APOC.policies.commentCol=\u8a3b\u91cb
+APOC.policies.actionCol=\u52d5\u4f5c
+APOC.policies.toggle.button=\u5207\u63db\u52d5\u4f5c
+APOC.policies.introtext=\u6b64\u9801\u9762\u5217\u51fa\u914d\u7f6e\u7b56\u7565\u6a39\u72c0\u7d50\u69cb\u548c\u6240\u9078\u5143\u7d20\u7684\u914d\u7f6e\u8a2d\u5b9a\u3002
+APOC.policies.tableSummary=\u6b64\u8868\u683c\u5217\u51fa\u53ef\u7528\u7b56\u7565\u3002\u6bcf\u5217\u5747\u5305\u542b\u7b56\u7565\u7684\u540d\u7a31\u548c\u7c21\u77ed\u63cf\u8ff0\u3002\u6309\u4e00\u4e0b\u540d\u7a31\u4ee5\u9010\u5c64\u986f\u793a\u5176\u5b50\u7b56\u7565\u3002
+APOC.properties.tableSummary=\u6b64\u8868\u683c\u5217\u51fa\u914d\u7f6e\u8a2d\u5b9a\u3002\u6bcf\u5217\u5747\u5305\u542b\u7279\u6027\u72c0\u614b\u3001\u540d\u7a31\u548c\u503c\u3002
+APOC.policies.stateCol=\u72c0\u614b
+APOC.policies.value=\u503c
+APOC.policies.value.notconfig=\u672a\u914d\u7f6e
+APOC.policies.value.config=\u5df2\u914d\u7f6e
+APOC.policies.status=\u72c0\u614b
+APOC.policies.root=\u7b56\u7565
+APOC.policies.actions=&#8212;&nbsp;\u7b56\u7565\u52d5\u4f5c&nbsp;&#8212;
+APOC.policies.actions.protect=\u4fdd\u8b77
+APOC.policies.actions.unprotect=\u89e3\u9664\u4fdd\u8b77
+APOC.policies.actions.default=\u5957\u7528\u9810\u8a2d
+APOC.policies.actions.clear=\u6e05\u9664
+APOC.policies.enable=\u555f\u7528
+APOC.policies.enabled=\u5df2\u555f\u7528
+APOC.policies.disabled=\u5df2\u505c\u7528
+APOC.policies.clear.button=\u6e05\u9664\u8a2d\u5b9a...
+APOC.policies.createrep.button=\u5efa\u7acb\u5831\u544a...
+APOC.policies.createrep.tooltip=\u5efa\u7acb\u5831\u544a (\u958b\u555f\u65b0\u8996\u7a97)
+APOC.policies.clear.confirmation=\u6b64\u52d5\u4f5c\u5c07\u522a\u9664\u672c\u5c64\u53ca\u5176\u4e0b\u9762\u6240\u6709\u5c64\u4e2d\u7684\u6240\u6709\u8a2d\u5b9a\u3002\u60a8\u78ba\u5b9a\u8981\u7e7c\u7e8c\u55ce\uff1f
+APOC.policies.backToTop=\u8fd4\u56de\u9802\u7aef
+APOC.policies.backToTop.tooltip=\u8fd4\u56de\u9802\u7aef
+APOC.policies.jumpDown.tooltip={0} (\u8df3\u63db\u81f3\u6b64\u7bc0)
+APOC.policies.save.button=\u5132\u5b58
+APOC.policies.reset.button=\u91cd\u8a2d
+APOC.policies.navigation.table.empty=\u672a\u6307\u5b9a\u7b56\u7565\u3002
+APOC.policies.set.table.empty=\u672a\u627e\u5230\u9805\u76ee\u3002
+APOC.policies.new.button=\u65b0\u589e...
+APOC.policies.delete.button=\u522a\u9664
+APOC.policies.name.question=\u8acb\u8f38\u5165\u65b0\u9805\u76ee\u7684\u540d\u7a31\u3002
+APOC.policies.rename.set=\u8acb\u8f38\u5165\u9805\u76ee\u7684\u65b0\u540d\u7a31\u3002
+APOC.policies.status.defined_here=\u8a72\u9805\u76ee\u5df2\u5728\u672c\u5c64\u4e2d\u5b9a\u7fa9\u3002
+APOC.policies.status.defined_above=\u8a72\u9805\u76ee\u5df2\u5728\u4e0a\u9762\u7684\u5c64\u4e2d\u5b9a\u7fa9\u3002
+APOC.policies.status.noprotection=\u7121\u4fdd\u8b77\u72c0\u614b\u3002
+APOC.policies.status.nodefinition=\u7121\u5b9a\u7fa9\u72c0\u614b\u3002
+APOC.policies.status.jumpto=\u6309\u4e00\u4e0b\u6b64\u9023\u7d50\u4ee5\u79fb\u81f3 {0}\u3002
+APOC.policies.status.protected_here=\u8a72\u9805\u76ee\u5df2\u5728\u672c\u5c64\u4e2d\u88ab\u4fdd\u8b77\u3002
+APOC.policies.status.protected_above=\u8a72\u9805\u76ee\u5df2\u5728\u4e0a\u9762\u7684\u5c64\u4e2d\u88ab\u4fdd\u8b77\u3002
+APOC.policies.status.policygroup=\u8a2d\u5b9a\u6a94 {0}
+APOC.policies.info.general=\u52d5\u4f5c\u5df2\u6210\u529f\u5b8c\u6210\u3002
+APOC.policies.info.stored=\u6240\u6709\u8a2d\u5b9a\u5747\u5df2\u5132\u5b58\u3002
+APOC.policies.info.removed=\u6240\u6709\u8a2d\u5b9a\u5747\u5df2\u79fb\u9664\u3002
+APOC.policies.error.general=\u767c\u751f\u932f\u8aa4\u3002
+APOC.policies.error.removing=\u79fb\u9664\u8a2d\u5b9a\u6642\u767c\u751f\u932f\u8aa4\uff1a {0}
+APOC.policies.error.storing=\u5132\u5b58\u8a2d\u5b9a\u6642\u767c\u751f\u932f\u8aa4\uff1a {0}
+APOC.policies.confirmation.storechanges=\u60a8\u5df2\u9032\u884c\u591a\u9805\u8b8a\u66f4\u3002\u60a8\u73fe\u5728\u8981\u5132\u5b58\u8b8a\u66f4\u55ce\uff1f
+APOC.policies.info.readonly.access=\u6b64\u9801\u9762\u662f\u552f\u8b80\u9801\u9762\uff0c\u56e0\u70ba\u60a8\u6c92\u6709\u9032\u884c\u4fee\u6539\u6240\u5fc5\u9700\u7684\u5b58\u53d6\u6b0a\u9650\u3002
+APOC.policies.info.readonly.maybe=\u986f\u793a\u7684\u8a2d\u5b9a\u6a94\u81f3\u5c11\u6709\u4e00\u500b\u662f\u552f\u8b80\u6a94\uff0c\u56e0\u70ba\u60a8\u6c92\u6709\u9032\u884c\u4fee\u6539\u6240\u5fc5\u9700\u7684\u5b58\u53d6\u6b0a\u9650\u3002
+APOC.policies.info.readonly.roles=\u6b64\u9801\u9762\u662f\u552f\u8b80\u9801\u9762\uff0c\u56e0\u70ba\u7121\u6cd5\u5c07\u672c\u6a5f\u7b56\u7565\u6307\u5b9a\u7d66\u89d2\u8272\u3002
+APOC.policies.edit.button=\u7de8\u8f2f...
+APOC.policies.include_in=\u5305\u542b
+APOC.policies.exclude_from=\u6392\u9664
+APOC.policies.footnote=* \u8868\u793a\u5982\u679c\u6c92\u6709\u660e\u78ba\u5b9a\u7fa9\u5176\u4ed6\u8a2d\u5b9a\u6642\uff0c\u61c9\u7528\u7a0b\u5f0f\u6703\u81ea\u52d5\u4f7f\u7528\u7684\u9810\u8a2d\u503c\u3002
+APOC.policies.settings_title=\u8a2d\u5b9a (\u8a2d\u5b9a\u6a94 {0})
+
+#*******************************************************************************
+# Content Area
+#
+#*******************************************************************************
+
+APOC.frame.contentarea=\u5167\u5bb9\u5340\u57df\u6846\u67b6
+APOC.catabs.policy.des=\u7b56\u7565 (\u958b\u555f\u6a19\u7c64\u9801\u9762)
+APOC.catabs.policysets.des=\u6307\u5b9a\u7684\u8a2d\u5b9a\u6a94 (\u958b\u555f\u6a19\u7c64\u9801\u9762)
+APOC.catabs.users.des=\u4f7f\u7528\u8005 (\u958b\u555f\u6a19\u7c64\u9801\u9762)
+APOC.catabs.roles.des=\u89d2\u8272 (\u958b\u555f\u6a19\u7c64\u9801\u9762)
+APOC.catabs.assignees.des=\u88ab\u6307\u5b9a\u5be6\u9ad4 (\u958b\u555f\u6a19\u7c64\u9801\u9762)
+APOC.ca.backtop=\u8fd4\u56de\u9802\u7aef
+APOC.ca.locale=\u8a9e\u8a00\u74b0\u5883
+APOC.ca.path=\u8def\u5f91
+
+#*******************************************************************************
+# Help
+#
+#*******************************************************************************
+
+APOC.help.helpTooltip=\u8aaa\u660e (\u958b\u555f\u65b0\u8996\u7a97)
+APOC.help.windowTitle=\u8aaa\u660e
+
+#*******************************************************************************
+# Navigation Area Common
+#
+#*******************************************************************************
+
+APOC.navigation.search=\u641c\u5c0b
+APOC.navigation.reset=\u91cd\u8a2d
+APOC.navigation.search.help=\u958b\u555f\u4e00\u500b\u53ef\u9032\u884c\u641c\u5c0b\u7684\u8996\u7a97\u3002
+APOC.navigation.edit.help=\u8f38\u5165\u641c\u5c0b\u5b57\u4e32\u3002
+APOC.navigation.close=\u95dc\u9589
+APOC.navigation.organization=\u7d44\u7e54
+APOC.navigation.organization.with=\u5177\u6709\u6307\u5b9a\u7684\u7d44\u7e54
+APOC.navigation.organizations=\u7d44\u7e54
+APOC.navigation.organizations.help=\u7d44\u7e54\u6a39\u72c0\u7d50\u69cb\u7684\u6839\u3002
+APOC.navigation.user=\u4f7f\u7528\u8005
+APOC.navigation.user.with=\u5177\u6709\u6307\u5b9a\u7684\u4f7f\u7528\u8005
+APOC.navigation.users=\u4f7f\u7528\u8005
+APOC.navigation.role=\u89d2\u8272
+APOC.navigation.role.with=\u5177\u6709\u6307\u5b9a\u7684\u89d2\u8272
+APOC.navigation.roles=\u89d2\u8272
+APOC.navigation.domain=\u7db2\u57df
+APOC.navigation.domain.with=\u5177\u6709\u6307\u5b9a\u7684\u7db2\u57df
+APOC.navigation.domains=\u7db2\u57df
+APOC.navigation.domains.help=\u7db2\u57df\u6a39\u72c0\u7d50\u69cb\u7684\u6839\u3002
+APOC.navigation.host=\u4e3b\u6a5f
+APOC.navigation.host.with=\u5177\u6709\u6307\u5b9a\u7684\u4e3b\u6a5f
+APOC.navigation.hosts=\u4e3b\u6a5f
+APOC.navigation.name=\u540d\u7a31
+APOC.navigation.actions=\u52d5\u4f5c
+APOC.navigation.view=\u6aa2\u8996
+APOC.navigation.view.tooltip=\u5728\u53f3\u5074\u6846\u67b6\u4e2d\u986f\u793a\u6b64\u5143\u7d20
+APOC.navigation.area=\u5c0e\u822a\u7a97\u683c
+APOC.navigation.empty=\u6c92\u6709\u53ef\u7528\u7684\u5be6\u9ad4\u3002
+APOC.navigation.name.label=\u540d\u7a31\uff1a
+APOC.navigation.type=\u985e\u578b
+APOC.navigation.userTooltip=\u4f7f\u7528\u8005 (\u958b\u555f [\u4f7f\u7528\u8005] \u6a19\u7c64\u9801\u9762)
+APOC.navigation.hostTooltip=\u4e3b\u6a5f (\u958b\u555f [\u4e3b\u6a5f] \u6a19\u7c64\u9801\u9762)
+APOC.navigation.breadcrumb.tooltip=\u8fd4\u56de {0}
+APOC.navigation.show=\u986f\u793a\ufe30
+APOC.navigation.showDirsOnly=\u50c5\u76ee\u9304
+APOC.navigation.showAll=All
+APOC.navigation.ellipsis=... \u67d0\u4e9b\u5143\u7d20\u672a\u986f\u793a
+APOC.navigation.openfind=\u958b\u555f\u5c0b\u627e\u8996\u7a97
+APOC.navigation.search.target.alert1=\u7121\u6cd5\u6c7a\u5b9a\u6240\u9078\u9805\u76ee\u7684\u76ee\u6a19\u8996\u7a97\u3002\\n\
+\u8acb\u95dc\u9589\u641c\u5c0b\u8996\u7a97\uff0c\u7136\u5f8c\u5f9e\u6240\u9700\u7684\u76ee\u6a19\u8996\u7a97\u4e2d\u91cd\u65b0\u958b\u555f\u641c\u5c0b\u8996\u7a97\u3002
+
+#*******************************************************************************
+# Navigation Area User Tree Tab
+#
+#*******************************************************************************
+
+APOC.usertree.title=\u7d44\u7e54\u6a39\u72c0\u7d50\u69cb
+APOC.usertree.tooltip=\u7d44\u7e54\u6a39\u72c0\u7d50\u69cb (\u958b\u555f [\u7d44\u7e54\u6a39\u72c0\u7d50\u69cb] \u6a19\u7c64\u9801\u9762)
+APOC.usertree.tableSummary=\u6b64\u8868\u683c\u63d0\u4f9b\u76ee\u524d\u7d44\u7e54\u7684\u5b50\u9805\u6e05\u55ae\u3002\u6bcf\u5217\u5747\u5305\u542b\u5b50\u9805\u7684\u540d\u7a31\u3001\u985e\u578b (\u7d44\u7e54\u3001\u4f7f\u7528\u8005\u6216\u89d2\u8272) \u548c\u9023\u7d50\u3002\u6309\u4e00\u4e0b\u9023\u7d50\u53ef\u4ee5\u5728\u53f3\u5074\u6846\u67b6\u4e2d\u986f\u793a\u7d44\u7e54\u7684\u5167\u5bb9\u3002
+
+#*******************************************************************************
+# Navigation Area Host Tree Tab
+#
+#*******************************************************************************
+
+APOC.hosttree.title=\u7db2\u57df\u6a39\u72c0\u7d50\u69cb
+APOC.hosttree.tooltip=\u7db2\u57df\u6a39\u72c0\u7d50\u69cb (\u958b\u555f [\u7db2\u57df\u6a39\u72c0\u7d50\u69cb] \u6a19\u7c64\u9801\u9762)
+APOC.hosttree.tableSummary=\u6b64\u8868\u683c\u63d0\u4f9b\u76ee\u524d\u7db2\u57df\u7684\u5b50\u9805\u6e05\u55ae\u3002\u6bcf\u5217\u5747\u5305\u542b\u5b50\u9805\u7684\u540d\u7a31\u3001\u985e\u578b (\u53ef\u4ee5\u662f\u7db2\u57df\u6216\u4f7f\u7528\u8005) \u548c\u6aa2\u8996\u9023\u7d50\uff0c\u6309\u4e00\u4e0b\u9023\u7d50\u53ef\u4ee5\u5728\u53f3\u5074\u6846\u67b6\u4e2d\u986f\u793a\u5176\u5167\u5bb9\u3002
+
+#*******************************************************************************
+# Navigation Area Entities Table Filter
+#
+#*******************************************************************************
+
+APOC.entityfilter.titleUsers=\u9032\u968e\u7be9\u9078\u5668 - \u4f7f\u7528\u8005
+APOC.entityfilter.titleHosts=\u9032\u968e\u7be9\u9078\u5668 - \u4e3b\u6a5f
+APOC.entityfilter.help.title=\u8aaa\u660e
+APOC.entityfilter.type.label=\u985e\u578b\uff1a
+APOC.entityfilter.filter=\u7be9\u9078\u5668
+APOC.entityfilter.placeholder=<\u8981\u7be9\u9078\u7684\u540d\u7a31>
+
+#*******************************************************************************
+# Set Color Dialog
+#
+#*******************************************************************************
+
+APOC.setcolor.edit.alt=\u7de8\u8f2f\u8abf\u8272\u677f (\u958b\u555f\u65b0\u8996\u7a97)
+APOC.setcolor.title=\u7de8\u8f2f\u8abf\u8272\u677f
+APOC.setcolor.introtext=\u76ee\u524d\u8272\u5f69\u6703\u5728\u4e2d\u9593\u7684\u6b04\u4e2d\u5217\u51fa\u3002\u7136\u5f8c\u53ef\u4f7f\u7528\u589e\u52a0\u8272\u5f69\u6216\u66ff\u4ee3\u8272\u5f69\u6309\u9215\u5c07\u6b64\u8272\u5f69\u589e\u52a0\u81f3\u8abf\u8272\u677f\u3002\u900f\u904e\u5728 [\u540d\u7a31] \u6b04\u4f4d\u4e2d\u8f38\u5165\u540d\u7a31\uff0c\u53ef\u4f7f\u540d\u7a31\u8207\u8272\u5f69\u95dc\u806f\u3002\u5b8c\
+\u6210\u5f8c\uff0c\u6309\u4e00\u4e0b [\u78ba\u5b9a] \u53ef\u4ee5\u5132\u5b58\u60a8\u5c0d\u8abf\u8272\u677f\u7684\u8b8a\u66f4\u3002
+APOC.setcolor.palette.heading=\u8abf\u8272\u677f\uff1a
+APOC.setcolor.color.heading=\u8272\u5f69\uff1a
+APOC.setcolor.color.alt=\u76ee\u524d\u8272\u5f69\u70ba {0}
+APOC.setcolor.red.heading=\u7d05\u8272\uff1a
+APOC.setcolor.red.increase=\u589e\u5f37\u7d05\u8272
+APOC.setcolor.red.decrease=\u6e1b\u5f31\u7d05\u8272
+APOC.setcolor.green.heading=\u7da0\u8272\uff1a
+APOC.setcolor.green.increase=\u589e\u5f37\u7da0\u8272
+APOC.setcolor.green.decrease=\u6e1b\u5f31\u7da0\u8272
+APOC.setcolor.blue.heading=\u85cd\u8272\uff1a
+APOC.setcolor.blue.increase=\u589e\u5f37\u85cd\u8272
+APOC.setcolor.blue.decrease=\u6e1b\u5f31\u85cd\u8272
+APOC.setcolor.hue.heading=\u8272\u8abf\uff1a
+APOC.setcolor.hue.increase=\u589e\u5f37\u8272\u8abf
+APOC.setcolor.hue.decrease=\u6e1b\u5f31\u8272\u8abf
+APOC.setcolor.sat.heading=\u98fd\u548c\u5ea6\uff1a
+APOC.setcolor.sat.increase=\u589e\u5f37\u98fd\u548c\u5ea6
+APOC.setcolor.sat.decrease=\u6e1b\u5f31\u98fd\u548c\u5ea6
+APOC.setcolor.lum.heading=\u4eae\u5ea6\uff1a
+APOC.setcolor.lum.increase=\u589e\u5f37\u4eae\u5ea6
+APOC.setcolor.lum.decrease=\u6e1b\u5f31\u4eae\u5ea6
+APOC.setcolor.html.heading=\u5341\u516d\u9032\u5236\u7684\u503c\uff1a
+APOC.setcolor.original.heading=\u539f\u59cb\u8272\u5f69\uff1a
+APOC.setcolor.original.alt=\u539f\u59cb\u8272\u5f69\u70ba {0}\u3002
+APOC.setcolor.wheel.heading=\u8272\u5f69\u7bc4\u570d\uff1a
+APOC.setcolor.wheel.alt=\u5728\u5f71\u50cf\u4e0a\u6309\u4e00\u4e0b\uff0c\u4ee5\u5f9e\u7bc4\u570d\u4e2d\u9078\u53d6\u8272\u5f69\uff0c\u8272\u8abf\u4f4d\u65bc X \u8ef8\u4e0a\uff0c\u98fd\u548c\u5ea6\u4f4d\u65bc Y \u8ef8\u4e0a\u3002\u5728\u7bc4\u570d\u4e2d\u7684\u7279\u5b9a\u8272\u5f69\u4e0a\u6309\u4e00\u4e0b\uff0c\u5c07\u6703\u66f4\u65b0\u4e2d\u9593\u7684\u6b04\uff0c\u4ee5\u4f7f\u5176\u986f\u793a\u8a72\u8272\
+\u5f69\u3002
+APOC.setcolor.slider.summary=\u6309\u4e00\u4e0b\u6b64\u8868\u683c\u4e2d\u7684\u4efb\u4f55\u4f4d\u7f6e\uff0c\u4ee5\u8abf\u6574\u76ee\u524d\u8272\u5f69\u7684\u4eae\u5ea6\u3002\u4eae\u5ea6\u5f9e\u53f3\u5411\u5de6\u9010\u6f38\u6e1b\u5c0f\u3002
+APOC.setcolor.add.button=\u589e\u52a0\u8272\u5f69 >
+APOC.setcolor.replace.button=\u66ff\u4ee3\u8272\u5f69 >
+APOC.setcolor.remove.button=\u522a\u9664\u8272\u5f69
+APOC.setcolor.remove.alert=\u6240\u9078\u65b9\u584a\u4e0d\u5305\u542b\u5df2\u5132\u5b58\u7684\u8abf\u8272\u677f\u8272\u5f69\uff0c\u56e0\u6b64\u7121\u6cd5\u79fb\u9664\u3002
+APOC.setcolor.name.alert=\u6307\u5b9a\u7684\u8272\u5f69\u540d\u7a31\u5df2\u5728\u4f7f\u7528\uff0c\u8acb\u9078\u64c7\u4e0d\u540c\u7684\u8272\u5f69\u540d\u7a31\u3002
+APOC.setcolor.restoreorigcolor.button=\u5fa9\u539f\u8272\u5f69
+APOC.setcolor.restore.button=\u5fa9\u539f\u9810\u8a2d\u503c
+APOC.setcolor.restore.confirm=\u60a8\u662f\u5426\u7684\u78ba\u8981\u5fa9\u539f\u9810\u8a2d\u8272\u5f69\uff1f
+APOC.setcolor.increase.tooltip=\u589e\u5f37
+APOC.setcolor.decrease.tooltip=\u6e1b\u5f31
+APOC.setcolor.tooltip=[\u7de8\u8f2f\u8272\u5f69] \u5c0d\u8a71\u65b9\u584a (\u5728\u65b0\u8996\u7a97\u4e2d\u958b\u555f)
+APOC.setcolor.replace.alert=\u5982\u679c\u60a8\u8981\u589e\u52a0\u9644\u52a0\u8272\u5f69\uff0c\u8acb\u4f7f\u7528 [\u589e\u52a0\u8272\u5f69] \u6309\u9215\u3002
+APOC.setcolor.add.alert=\u5982\u679c\u60a8\u8981\u66ff\u4ee3\u73fe\u6709\u8272\u5f69\uff0c\u8acb\u4f7f\u7528 [\u66ff\u4ee3\u8272\u5f69] \u6309\u9215\u3002
+APOC.setcolor.noname=\u6c92\u6709\u540d\u7a31
+APOC.setcolor.invalid.hex=\u5341\u516d\u9032\u4f4d\u503c\u7121\u6548\uff0c\u8acb\u8f38\u5165\u4e00\u500b\u6709\u6548\u503c
+
+#*******************************************************************************
+# Chooser
+#
+#*******************************************************************************
+
+APOC.page.chooser.list.editor=\u7de8\u8f2f\u6e05\u55ae
+APOC.page.chooser.list.help=\u900f\u904e\u7de8\u8f2f\u4e0b\u9762\u7684\u6e05\u55ae\u4f86\u589e\u52a0\u6216\u79fb\u9664\u5167\u5bb9\u7a97\u683c\u7684\u4e0b\u62c9\u5f0f\u529f\u80fd\u8868\u4e2d\u986f\u793a\u7684\u5143\u7d20\u3002\u6309\u4e00\u4e0b [\u5fa9\u539f\u9810\u8a2d\u503c] \u6309\u9215\uff0c\u53ef\u4ee5\u5f9e\u6e05\u55ae\u4e2d\u79fb\u9664\u6240\u6709\u7684\u4f7f\u7528\u8005\u8b8a\u66f4\u3002\u6309\u4e00\u4e0b \
+[\u78ba\u5b9a] \u6309\u9215\uff0c\u53ef\u4ee5\u5c07\u8b8a\u66f4\u5132\u5b58\u81f3\u6e05\u55ae\u3002
+APOC.chooser.add=\u589e\u52a0
+APOC.chooser.system_added=(*) \u8868\u793a\u7cfb\u7d71\u589e\u52a0\u81f3\u6e05\u55ae\u7684\u5143\u7d20\u3002\u5982\u679c\u5143\u7d20\u662f\u9810\u8a2d\u503c\u6216\u70ba\u76ee\u524d\u986f\u793a\u7684\u7279\u6027\u5132\u5b58\u7684\u503c\uff0c\u5247\u7cfb\u7d71\u6703\u5c07\u5143\u7d20\u589e\u52a0\u81f3\u6e05\u55ae\u3002
+APOC.chooser.protected.alert=\u7531\u65bc\u6b64\u5143\u7d20\u662f\u9810\u8a2d\u503c\u6216\u70ba\u6b64\u9801\u9762\u4e0a\u7684\u8a2d\u5b9a\u5132\u5b58\u7684\u503c\uff0c\u56e0\u6b64\u7121\u6cd5\u5c07\u5176\u5f9e\u6e05\u55ae\u4e2d\u79fb\u9664
+APOC.chooser.selected.alert=\u7531\u65bc\u6b64\u5143\u7d20\u662f\u6b64\u9801\u9762\u4e0a\u7684\u7279\u6027\u7684\u76ee\u524d\u6240\u9078\u503c\uff0c\u56e0\u6b64\u7121\u6cd5\u5c07\u5176\u5f9e\u6e05\u55ae\u4e2d\u79fb\u9664
+APOC.chooser.edit.alt=\u7de8\u8f2f\u6e05\u55ae (\u958b\u555f\u65b0\u8996\u7a97)
+APOC.font.chooser.title=\u7de8\u8f2f\u5b57\u578b\u6e05\u55ae
+APOC.window.border.chooser.title=\u7de8\u8f2f\u8996\u7a97\u908a\u6846\u4e3b\u984c\u6e05\u55ae
+APOC.window.controls.chooser.title=\u7de8\u8f2f\u63a7\u5236\u4e3b\u984c\u6e05\u55ae
+APOC.window.icon.chooser.title=\u7de8\u8f2f\u5716\u793a\u4e3b\u984c\u6e05\u55ae
+
+#*******************************************************************************
+# Navigation Area Repository Tab
+#
+#*******************************************************************************
+
+APOC.pool.title=\u7b56\u7565\u5132\u5b58\u5eab
+APOC.pool.all_profiles=\u6240\u6709\u8a2d\u5b9a\u6a94
+APOC.pool.all_profiles.help=\u6b64\u6a19\u7c64\u9801\u9762\u5217\u51fa\u6240\u6709\u8a2d\u5b9a\u6a94\u3002
+APOC.pool.all_domain_profiles=\u6240\u6709\u7db2\u57df\u8a2d\u5b9a\u6a94
+APOC.pool.all_org_profiles=\u6240\u6709\u7d44\u7e54\u8a2d\u5b9a\u6a94
+APOC.pool.tooltip=\u7b56\u7565\u5132\u5b58\u5eab (\u958b\u555f [\u7b56\u7565\u5132\u5b58\u5eab] \u6a19\u7c64\u9801\u9762)
+APOC.pool.sets=\u6307\u5b9a\u7684\u8a2d\u5b9a\u6a94
+APOC.pool.setsHost=\u4e3b\u6a5f\u8a2d\u5b9a\u6a94
+APOC.pool.priority=\u512a\u5148\u6b0a
+APOC.pool.actions=&#8212;&nbsp;\u8a2d\u5b9a\u6a94\u52d5\u4f5c&nbsp;&#8212;
+APOC.pool.new=\u65b0\u589e...
+APOC.pool.delete=\u522a\u9664...
+APOC.pool.import=\u532f\u5165...
+APOC.pool.export=\u532f\u51fa...
+APOC.pool.rename=\u91cd\u65b0\u547d\u540d...
+APOC.pool.edit=\u7de8\u8f2f\u512a\u5148\u6b0a...
+APOC.pool.add_assignment=\u6307\u5b9a\u8a2d\u5b9a\u6a94
+APOC.pool.available_profiles=\u53ef\u7528\u7684\u8a2d\u5b9a\u6a94
+APOC.pool.add_assignment_help=\u60a8\u53ef\u4ee5\u4f7f\u7528\u6b64\u8996\u7a97\u4f86\u6307\u5b9a\u8a2d\u5b9a\u6a94\u3002
+APOC.pool.new_button.help=\u5efa\u7acb\u65b0\u7684\u8a2d\u5b9a\u6a94\u3002
+APOC.pool.delete_button.help=\u522a\u9664\u8a2d\u5b9a\u6a94\u3002
+APOC.pool.assign_button.help=\u958b\u555f\u53ef\u9078\u53d6\u8981\u6307\u5b9a\u4e4b\u8a2d\u5b9a\u6a94\u7684\u65b0\u8996\u7a97\u3002
+APOC.pool.unassign_button.help=\u4ee5\u76ee\u524d\u7684\u7d44\u7e54\u64a4\u92b7\u6240\u9078\u8a2d\u5b9a\u6a94\u7684\u6307\u5b9a\u3002
+APOC.pool.report_button.help=\u958b\u555f\u5305\u542b\u8a72\u5831\u544a\u7684\u8996\u7a97\u3002
+APOC.pool.tableSummary=\u6b64\u8868\u683c\u63d0\u4f9b\u5168\u57df\u8a2d\u5b9a\u6a94\u7684\u6e05\u55ae\u3002\u6bcf\u5217\u5747\u5305\u542b\u8a2d\u5b9a\u6a94\u7684\u540d\u7a31\u3001\u512a\u5148\u6b0a\u548c\u9023\u7d50\u3002\u6309\u4e00\u4e0b\u9023\u7d50\u53ef\u5728\u53f3\u5074\u6846\u67b6\u4e2d\u986f\u793a\u8a72\u8a2d\u5b9a\u6a94\u7684\u5167\u5bb9\u3002
+APOC.pool.empty=\u6c92\u6709\u53ef\u7528\u7684\u8a2d\u5b9a\u6a94\u3002
+APOC.pool.deleteMessage=\u78ba\u5b9a\u8981\u522a\u9664\u6240\u9078\u7684\u8a2d\u5b9a\u6a94\u55ce\uff1f
+APOC.pool.tableSummary=\u6b64\u8868\u683c\u63d0\u4f9b\u8a2d\u5b9a\u6a94\u7684\u6e05\u55ae\u3002\u6bcf\u5217\u5747\u5305\u542b\u8a2d\u5b9a\u6a94\u7684\u540d\u7a31\u3001\u4f5c\u8005\u548c\u4e0a\u6b21\u4fee\u6539\u7684\u65e5\u671f\u3002\u6309\u4e00\u4e0b\u540d\u7a31\u5373\u53ef\u986f\u793a\u8a2d\u5b9a\u6a94\u7684\u5167\u5bb9\u3002
+APOC.pool.empty=\u6c92\u6709\u53ef\u7528\u7684\u8a2d\u5b9a\u6a94\u3002
+APOC.pool.deleteMessage=\u78ba\u5b9a\u8981\u522a\u9664\u6240\u9078\u7684\u8a2d\u5b9a\u6a94\u55ce\uff1f
+APOC.pool.newMessage=\u8f38\u5165\u65b0\u8a2d\u5b9a\u6a94\u7684\u540d\u7a31\uff1a
+APOC.pool.newDefault=NewPolicyGroup
+APOC.pool.renameMessage=\u8f38\u5165\u8a2d\u5b9a\u6a94\u7684\u65b0\u540d\u7a31\uff1a
+APOC.pool.help.title=\u7b56\u7565\u5132\u5b58\u5eab\u8aaa\u660e
+APOC.pool.help.text1=\u7b56\u7565\u5132\u5b58\u5eab\u7528\u4ee5\u5132\u5b58\u60a8\u7684\u8a2d\u5b9a\u6a94\u3002\u8a2d\u5b9a\u6a94\u662f\u5305\u542b\u7b56\u7565\u7684\u5df2\u547d\u540d\u5bb9\u5668\u3002\u8a2d\u5b9a\u6a94\u7684\u540d\u7a31\u5fc5\u9808\u662f\u552f\u4e00\u7684\u3002
+APOC.pool.help.text2=\u5efa\u7acb\u65b0\u8a2d\u5b9a\u6a94\u5f8c\uff0c\u60a8\u53ef\u4ee5\u5728\u5176\u4e2d\u5132\u5b58\u914d\u7f6e\u8a2d\u5b9a\uff0c\u4e26\u5c07\u6b64\u8a2d\u5b9a\u6a94\u52a0\u5165\u4efb\u4e00\u7d44\u7e54\u3001\u4f7f\u7528\u8005\u3001\u89d2\u8272\u3001\u7db2\u57df\u6216\u4e3b\u6a5f\u3002\u60a8\u53ef\u5728\u700f\u89bd\u7a97\u683c\u4e2d\u6aa2\u8996\u5143\u7d20\uff0c\u4e26\u5728\u5167\u5bb9\u7a97\u683c\u4e2d\u9078\
+\u53d6 [\u8a2d\u5b9a\u6a94] \u6a19\u7c64\u9801\u9762\uff0c\u5373\u53ef\u57f7\u884c\u4ee5\u4e0a\u4f5c\u696d\u3002
+APOC.pool.help.text3=\u96d6\u7136\u914d\u7f6e\u7ba1\u7406\u4e0d\u4e00\u5b9a\u8981\u4f7f\u7528\u8a2d\u5b9a\u6a94\uff0c\u4f46\u662f\u8a2d\u5b9a\u6a94\u53ef\u8b93\u60a8\u4ee5\u66f4\u9748\u6d3b\u7684\u65b9\u5f0f\u7ba1\u7406\u914d\u7f6e\u8a2d\u5b9a\u3002\u4f8b\u5982\uff0c\u60a8\u53ef\u4ee5\u5efa\u7acb\u8a2d\u5b9a\u6a94\u300cNovice\u300d\uff0c\u5c07\u9069\u7528\u65bc\u521d\u5b78\u8005\u7684\u914d\u7f6e\u8a2d\
+\u5b9a\u5132\u5b58\u5728\u8a72\u8a2d\u5b9a\u6a94\u4e2d\uff0c\u7136\u5f8c\u5c07\u8a72\u8a2d\u5b9a\u6a94\u52a0\u5165\u7d44\u7e54\u6a39\u72c0\u7d50\u69cb\u6216\u7db2\u57df\u6a39\u72c0\u7d50\u69cb\u4e2d\u7684\u4efb\u4e00\u6210\u54e1\u3002
+APOC.pool.import.tooltip=\u5c07\u8a2d\u5b9a\u6a94\u532f\u5165\u81f3\u5132\u5b58\u5eab\u3002
+APOC.pool.export.tooltip=\u532f\u51fa\u8a2d\u5b9a\u6a94\u3002
+APOC.pool.rename.tooltip=\u91cd\u65b0\u547d\u540d\u8a2d\u5b9a\u6a94\u3002
+APOC.pool.import.disabled.tooltip=\u5c07\u8a2d\u5b9a\u6a94\u532f\u5165\u81f3\u5132\u5b58\u5eab (\u4e0d\u53ef\u7528)\u3002
+APOC.pool.export.disabled.tooltip=\u532f\u51fa\u8a2d\u5b9a\u6a94 (\u4e0d\u53ef\u7528)\u3002
+APOC.pool.rename.disabled.tooltip=\u91cd\u65b0\u547d\u540d\u8a2d\u5b9a\u6a94 (\u4e0d\u53ef\u7528)\u3002
+
+#*******************************************************************************
+# Navigation Area Priorities
+#
+#*******************************************************************************
+
+APOC.prios.title=\u8a2d\u5b9a\u6a94\u512a\u5148\u6b0a
+APOC.prios.help=\u6b64\u6a19\u7c64\u9801\u9762\u53ef\u8b93\u60a8\u8b8a\u66f4\u8a2d\u5b9a\u6a94\u7684\u512a\u5148\u6b0a\u3002\u70ba\u67d0\u5143\u7d20\u6307\u5b9a\u5177\u6709\u76f8\u540c\u9069\u7528\u6027\u7684\u591a\u500b\u8a2d\u5b9a\u6a94\u6642\uff0c\u512a\u5148\u6b0a\u6703\u5b9a\u7fa9\u9019\u4e9b\u8a2d\u5b9a\u6a94\u7684\u5408\u4f75\u9806\u5e8f\u3002
+APOC.prios.up=\u4e0a\u79fb
+APOC.prios.down=\u4e0b\u79fb
+
+#*******************************************************************************
+# Navigation Area Profile Import
+#
+#*******************************************************************************
+
+APOC.groupimport.title=\u5f9e\u672c\u6a5f\u6a94\u6848\u532f\u5165\u8a2d\u5b9a\u6a94
+APOC.groupimport.help=\u9078\u53d6\u8981\u532f\u5165\u81f3\u76ee\u524d\u7684\u914d\u7f6e\u5132\u5b58\u5eab\u4e4b\u672c\u6a5f\u8a2d\u5b9a\u6a94\u6a94\u6848
+APOC.groupimport.choosetext=\u8981\u532f\u5165\u7684\u6a94\u6848\uff1a
+APOC.groupimport.defaulttext=<\u6a94\u6848\u540d\u7a31>
+APOC.groupimport.import=\u532f\u5165
+APOC.groupimport.error.zip=\u932f\u8aa4\uff1a\u6a94\u6848\u5fc5\u9808\u662f Zip \u683c\u5f0f\u3002
+APOC.importwnd.js.overwrite_alert=\u5df2\u5b58\u5728\u5177\u6709\u6b64\u540d\u7a31\u7684\u8a2d\u5b9a\u6a94\u3002\u662f\u5426\u8981\u8986\u5beb\u6b64\u8a2d\u5b9a\u6a94\uff1f
+APOC.groupimport.importing=\u6b63\u5728\u532f\u5165\u8a2d\u5b9a\u6a94
+
+#*******************************************************************************
+# Navigation Area Search
+#
+#*******************************************************************************
+
+APOC.search.search=\u641c\u5c0b
+APOC.search.param.help=\u6b64\u641c\u5c0b\u6db5\u84cb\u6574\u500b\u6a39\u72c0\u7d50\u69cb\u3002
+APOC.search.userid.label=\u4f7f\u7528\u8005 ID\uff1a
+APOC.search.firstname.label=\u540d\u5b57\uff1a
+APOC.search.lastname.label=\u59d3\u6c0f\uff1a
+APOC.search.point.label=\u8d77\u59cb\u9ede\uff1a
+APOC.search.perpage.label=\u6bcf\u9801\u986f\u793a\u7d50\u679c\u6578\u76ee\uff1a
+APOC.search.results=\u7d50\u679c
+APOC.search.result.help=\u672c\u9801\u5217\u51fa\u641c\u5c0b\u7d50\u679c\u3002\u8def\u5f91\u6b04\u5217\u51fa\u8207\u8d77\u59cb\u9ede\u76f8\u5c0d\u7684\u8def\u5f91\u3002
+APOC.search.entitiesFound=\u627e\u5230\u5143\u7d20
+APOC.search.param.title.help=\u6307\u5b9a\u641c\u5c0b\u7684\u53c3\u6578\u3002
+APOC.search.usersFound=\u627e\u5230\u4f7f\u7528\u8005
+APOC.search.rolesFound=\u627e\u5230\u89d2\u8272
+APOC.search.organizationsFound=\u627e\u5230\u7d44\u7e54
+APOC.search.domainsFound=\u627e\u5230\u7db2\u57df
+APOC.search.hostsFound=\u627e\u5230\u4e3b\u6a5f
+APOC.search.all=\u641c\u5c0b\u5168\u90e8
+APOC.search.users=\u641c\u5c0b\u4f7f\u7528\u8005
+APOC.search.roles=\u641c\u5c0b\u89d2\u8272
+APOC.search.organizations=\u641c\u5c0b\u7d44\u7e54
+APOC.search.domains=\u641c\u5c0b\u7db2\u57df
+APOC.search.hosts=\u641c\u5c0b\u4e3b\u6a5f
+APOC.search.tableSummary=\u6b64\u8868\u683c\u63d0\u4f9b\u641c\u5c0b\u7d50\u679c\u6e05\u55ae\u3002\u6bcf\u5217\u5747\u5305\u542b\u8a72\u5143\u7d20\u7684\u540d\u7a31\u3001\u985e\u578b (\u7d44\u7e54\u3001\u4f7f\u7528\u8005\u6216\u89d2\u8272) \u548c\u5b8c\u6574\u8def\u5f91\u3002\u5728\u4e3b\u61c9\u7528\u7a0b\u5f0f\u8996\u7a97\u7684\u5de6\u5074\u6846\u67b6\u4e2d\u6309\u4e00\u4e0b\u540d\u7a31\u5373\u53ef\u9078\u53d6\u8a72\
+\u5143\u7d20\u3002
+APOC.search.path=\u8def\u5f91
+APOC.search.userid=\u4f7f\u7528\u8005 ID
+APOC.search.title.text=\u641c\u5c0b
+APOC.search.search.help=\u641c\u5c0b\u5132\u5b58\u5eab\u3002
+APOC.search.reset.help=\u5c07\u641c\u5c0b\u53c3\u6578\u91cd\u8a2d\u70ba\u9810\u8a2d\u503c\u3002
+APOC.search.cancel.help=\u95dc\u9589\u6b64\u8996\u7a97\u3002
+APOC.search.advanced.show.button=\u986f\u793a\u9032\u968e\u9078\u9805
+APOC.search.advanced.show.help=\u986f\u793a\u9032\u968e\u9078\u9805\u3002
+APOC.search.advanced.hide.button=\u96b1\u85cf\u9032\u968e\u9078\u9805
+APOC.search.advanced.hide.help=\u96b1\u85cf\u9032\u968e\u9078\u9805\u3002
+APOC.search.advanced.start.label=\u641c\u5c0b\u5340\u57df\uff1a
+APOC.search.advanced.restrict.label=\u9650\u5236\u5728\uff1a
+APOC.search.advanced.browse.help=\u958b\u555f\u53ef\u8b8a\u66f4\u6c7a\u5b9a\u641c\u5c0b\u8d77\u59cb\u9ede\u7684\u8def\u5f91\u4e4b\u8996\u7a97\u3002
+APOC.search.advanced.start.label=\u641c\u5c0b\u5340\u57df\uff1a
+APOC.search.help.title=\u95dc\u65bc\u641c\u5c0b
+APOC.search.help.text1=\u641c\u5c0b\u4e0d\u5340\u5206\u5927\u5c0f\u5beb\u4e14\u4e0d\u56b4\u683c\uff0c\u4f8b\u5982\u641c\u5c0b\u5b57\u4e32\u300cbc\u300d\u6703\u627e\u5230\u300cABC\u300d\u548c\u300cbcd\u300d\u3002
+APOC.search.help.text2=\u661f\u865f (*) \u8868\u793a\u641c\u5c0b\u5b57\u4e32\u5167\u7684\u5b57\u5143\u9806\u5e8f\u4e0d\u62d8\u3002\u60a8\u53ef\u4ee5\u5728\u641c\u5c0b\u5b57\u4e32\u4e2d\u7684\u4efb\u4f55\u4f4d\u7f6e\u4f7f\u7528\u591a\u500b\u661f\u865f\u3002
+APOC.search.help.text3=\u7a7a\u767d\u6b04\u4f4d\u7b49\u65bc\u8a72\u6b04\u4f4d\u7684\u641c\u5c0b\u5b57\u4e32\u70ba\u300c*\u300d\u3002\u4f9d\u9810\u8a2d\uff0c\u50b3\u56de\u7684\u7d50\u679c\u6578\u76ee\u4e0a\u9650\u662f 100 \u7b46\uff0c\u4f46\u662f\u60a8\u53ef\u4ee5\u5c0d\u6b64\u53c3\u6578\u9032\u884c\u914d\u7f6e\u3002\u5982\u9700\u66f4\u591a\u8cc7\u8a0a\uff0c\u8acb\u53c3\u95b1\u300c\u5b89\u88dd\u6307\
+\u5357\u300d\u3002
+APOC.search.help.inline=\u8f38\u5165\u540d\u7a31\u3002\u60a8\u53ef\u4ee5\u6307\u5b9a * \u4f5c\u70ba\u842c\u7528\u5b57\u5143\u3002
+APOC.search.help.inlineUser=\u8f38\u5165\u4f7f\u7528\u8005 ID\u3002\u60a8\u53ef\u4ee5\u6307\u5b9a * \u4f5c\u70ba\u842c\u7528\u5b57\u5143\u3002
+
+#*******************************************************************************
+# Content Area - Profiles
+#*******************************************************************************
+APOC.profile.inherited.table=\u7e7c\u627f\u7684\u8a2d\u5b9a\u6a94
+APOC.profile.page.title=\u6b64\u6a19\u7c64\u9801\u9762\u5217\u51fa\u6240\u9078\u5143\u7d20\u7684\u5167\u5bb9\u3002
+APOC.profile.name.text=(\u8a2d\u5b9a\u6a94 {0})
+APOC.profilemgr.assigned=\u6307\u5b9a\u7684
+APOC.profilemgr.assign=\u6307\u5b9a\u8a2d\u5b9a\u6a94...
+APOC.profilemgr.pending=\u73fe\u6709\u7684\u8b8a\u66f4
+APOC.profilemgr.author=\u4f5c\u8005
+APOC.profilemgr.lastMod=\u4e0a\u6b21\u4fee\u6539
+APOC.profilemgr.delete=\u522a\u9664
+APOC.profilemgr.moreActions=&#8212;&nbsp;\u66f4\u591a\u52d5\u4f5c&nbsp;&#8212;
+APOC.profilemgr.yes=\u662f
+APOC.profileassi.unassign=\u672a\u6307\u5b9a\u8a2d\u5b9a\u6a94
+APOC.profileassi.manage=\u7ba1\u7406\u8a2d\u5b9a\u6a94...
+APOC.profileassi.release=\u91cb\u653e\u8b8a\u66f4...
+APOC.profileassi.releaseNow=\u91cb\u653e
+APOC.profileassi.showResults=\u6709\u6548\u7684\u8a2d\u5b9a...
+APOC.profileassi.title=\u91cb\u653e\u8b8a\u66f4
+APOC.profileassi.table.empty=\u672a\u6307\u5b9a\u8a2d\u5b9a\u6a94\u3002
+APOC.profileavail.title=\u53ef\u7528\u7684\u8a2d\u5b9a\u6a94
+APOC.profileavail.help=\u60a8\u53ef\u4ee5\u4f7f\u7528\u6b64\u8996\u7a97\u4f86\u6307\u5b9a\u8a2d\u5b9a\u6a94\u3002
+APOC.profileavail.assigning=\u6b63\u5728\u6307\u5b9a\u8a2d\u5b9a\u6a94
+APOC.profileall.title=\u6240\u6709\u8a2d\u5b9a\u6a94
+APOC.profileall.help=\u6b64\u6a19\u7c64\u9801\u9762\u5217\u51fa\u6240\u6709\u8a2d\u5b9a\u6a94\u3002
+APOC.profileall.domtable.title=\u6240\u6709\u7db2\u57df\u8a2d\u5b9a\u6a94
+APOC.profileall.orgtable.title=\u6240\u6709\u7d44\u7e54\u8a2d\u5b9a\u6a94
+APOC.profile.search.profile=\u641c\u5c0b\u8a2d\u5b9a\u6a94
+APOC.profile.error.storing=\u5132\u5b58\u8a2d\u5b9a\u6a94\u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.profile.assigned.delete=\u60a8\u9078\u53d6\u7684\u8a2d\u5b9a\u6a94\u5df2\u6307\u5b9a\u7d66\u81f3\u5c11\u4e00\u500b\u5143\u7d20\u3002\\n\
+ \\n\
+ \u60a8\u78ba\u5b9a\u8981\u522a\u9664\u9019\u4e9b\u8a2d\u5b9a\u6a94\u55ce\uff1f
+APOC.profile.unassigned.delete=\u5c07\u6703\u522a\u9664\u6240\u9078\u8a2d\u5b9a\u6a94\u7684\u6240\u6709\u8a2d\u5b9a\u6a94\u8cc7\u6599\u3002\u60a8\u78ba\u5b9a\u8981\u7e7c\u7e8c\u55ce\uff1f
+APOC.profiles.default.msg=\u8868\u793a\u9810\u8a2d\u503c
+
+#*******************************************************************************
+# Configure Report
+#
+#*******************************************************************************
+
+APOC.configrep.title=\u4fee\u6539\u6709\u6548\u7684\u8a2d\u5b9a\u53c3\u6578
+APOC.configrep.help=\u6307\u5b9a\u7528\u65bc\u7522\u751f\u6709\u6548\u8a2d\u5b9a\u7684\u53c3\u6578\u3002\u60a8\u53ef\u4ee5\u4f7f\u7528\u4e0b\u5217\u6e05\u55ae\uff0c\u4ee5\u5b9a\u7fa9\u5728\u7522\u751f\u6709\u6548\u8a2d\u5b9a\u7684\u7a0b\u5e8f\u4e2d\u76f8\u95dc\u7684\u5143\u7d20\u3002\u6bcf\u500b\u985e\u578b\u53ef\u8b93\u60a8\u9078\u64c7\u4e00\u500b\u5143\u7d20\uff0c\u800c\u5c07\u6240\u9078\u5143\u7d20\u6307\u5b9a\u4e4b\u8a2d\u5b9a\
+\u6a94\u4e2d\u5305\u542b\u7684\u7b56\u7565\u8a2d\u5b9a\u5408\u4f75\u5f8c\u7684\u7d50\u679c\uff0c\u5c31\u662f\u6709\u6548\u7684\u8a2d\u5b9a\u3002
+APOC.configrep.effective.settings=\u6709\u6548\u7684\u8a2d\u5b9a
+APOC.configrep.columns=\u5728 [\u8a2d\u5b9a\u6458\u8981] \u4e2d\u986f\u793a\uff1a
+APOC.configrep.statepath=\u72c0\u614b\u8def\u5f91
+APOC.configrep.des=\u63cf\u8ff0
+APOC.configrep.reptype=\u6240\u9078\u7684\u8a2d\u5b9a\u6a94\u4f86\u6e90\u5408\u4f75\u9806\u5e8f
+APOC.configrep.orgtree=\u5f9e\u7d44\u7e54\u6a39\u72c0\u7d50\u69cb\u9078\u53d6\u5143\u7d20\uff1a
+APOC.configrep.domtree=\u5f9e\u7db2\u57df\u6a39\u72c0\u7d50\u69cb\u9078\u53d6\u5143\u7d20\uff1a
+APOC.configrep.typeorg=\u7d44\u7e54\u6a39\u72c0\u7d50\u69cb\u4e2d\u7684\u8a2d\u5b9a
+APOC.configrep.typedom=\u7db2\u57df\u6a39\u72c0\u7d50\u69cb\u4e2d\u7684\u8a2d\u5b9a
+APOC.configrep.typeboth=\u9019\u5169\u500b\u6a39\u72c0\u7d50\u69cb\u4e2d\u7684\u8a2d\u5b9a
+APOC.configrep.button.report=\u7522\u751f\u6709\u6548\u7684\u8a2d\u5b9a
+
+#*******************************************************************************
+# Report
+#
+#*******************************************************************************
+APOC.report.button.tooltip=\u958b\u555f\u5305\u542b\u8a72\u5831\u544a\u7684\u8996\u7a97\u3002
+APOC.report.onetree.title=\u4e3b\u6a5f "{2}" \u4e0a {0} "{1}" \u7684\u6709\u6548\u8a2d\u5b9a
+APOC.report.twotree.title=\u4e3b\u6a5f "{4}" \u4e0a {0} "{1}" \u548c {2} "{3}" \u7684\u6709\u6548\u8a2d\u5b9a
+APOC.report.multipletree.title=\u4e3b\u6a5f "{1}" \u4e0a {0} \u7684\u6709\u6548\u8a2d\u5b9a
+APOC.report.involved.profiles.entity={0} \u500b\u8a2d\u5b9a\u6a94
+APOC.report.locorg={0} \u662f {1} \u4e0b\u9762\u7684\u7d44\u7e54
+APOC.report.locrole={0} \u662f {1} \u4e0b\u9762\u7684\u89d2\u8272
+APOC.report.locuserid={0} \u662f {1} \u4e0b\u9762\u7684\u4f7f\u7528\u8005
+APOC.report.lochost={0} \u662f {1} \u4e0b\u9762\u7684\u4e3b\u6a5f
+APOC.report.locdomain={0} \u662f {1} \u4e0b\u9762\u7684\u7db2\u57df
+APOC.report.rootlocorg={0} \u662f\u7d44\u7e54
+APOC.report.rootlocuserid={0} \u662f\u4f7f\u7528\u8005
+APOC.report.rootlocrole={0} \u662f\u89d2\u8272
+APOC.report.rootlochost={0} \u662f\u4e3b\u6a5f
+APOC.report.rootlocdomain={0} \u662f\u7db2\u57df
+APOC.report.policygrouploc={0} \u662f\u8a2d\u5b9a\u6a94
+APOC.report.bothand=\u548c
+APOC.report.creator=\u5efa\u7acb\u8005\u662f {1} \u4e0a\u7684 {0}
+APOC.report.createdate=\u5efa\u7acb\u65e5\u671f\u662f {0}
+APOC.report.backendtype=\u5f8c\u7aef\u985e\u578b\u662f {0}
+APOC.report.backendhost=\u5f8c\u7aef\u4e3b\u6a5f\u662f {0}
+APOC.report.unknown=\u672a\u77e5
+APOC.report.startcat=\u8d77\u59cb\u985e\u5225\u662f {0}
+APOC.report.contitle=\u76ee\u9304
+APOC.report.isbelow=\u4f4d\u65bc {0} \u4e0b\u9762
+APOC.report.table.summary=\u6b64\u8868\u683c\u5217\u51fa\u914d\u7f6e\u8a2d\u5b9a\u3002\u6bcf\u5217\u5747\u5305\u542b\u7279\u6027\u72c0\u614b\u3001\u540d\u7a31\u548c\u503c\u3002
+APOC.report.table.nameheading=\u540d\u7a31
+APOC.report.table.valueheading=\u503c
+APOC.report.table.statusheading=\u72c0\u614b
+APOC.report.table.statuspheading=\u72c0\u614b\u8def\u5f91
+APOC.report.table.desheading=\u63cf\u8ff0
+APOC.report.table.defined=\u5df2\u5b9a\u7fa9
+APOC.report.table.protected=\u5df2\u5f37\u5236
+APOC.report.table.readonly=\u552f\u8b80
+APOC.report.table.defined.in=\u5df2\u5b9a\u7fa9\u65bc
+APOC.report.table.protected.in=\u4f7f\u7528\u8005\u7121\u6cd5\u8986\u5beb
+APOC.report.table.readonly.in=\u5728\u4e0b\u5217\u9805\u76ee\u4e2d\u662f\u552f\u8b80\uff1a
+APOC.report.table.pathPG=\u8a2d\u5b9a\u6a94\uff1a
+APOC.report.table.empty={0} \u4e0d\u5305\u542b\u503c\u3002
+APOC.report.buttons.print=\u5217\u5370
+APOC.report.assigned.profiles.title=\u76f8\u95dc\u7684\u8a2d\u5b9a\u6a94
+APOC.report.settings.summary.title=\u8a2d\u5b9a\u6458\u8981
+APOC.report.addremove.elements=\u76f8\u95dc\u7684\u5143\u7d20\uff1a
+APOC.report.elements.table.heading=\u76f8\u95dc\u7684\u5143\u7d20
+APOC.report.elements.table.summary=\u6b64\u8868\u683c\u6307\u5b9a\u5728\u7522\u751f\u6709\u6548\u8a2d\u5b9a\u7d50\u679c\u7684\u7a0b\u5e8f\u4e2d\u76f8\u95dc\u7684\u5143\u7d20\u3002
+APOC.report.elements.table.title=\u6b64\u6e05\u55ae\u53ef\u7528\u4f86\u6307\u5b9a\u5728\u7522\u751f\u6709\u6548\u8a2d\u5b9a\u7684\u7a0b\u5e8f\u4e2d\u76f8\u95dc\u7684\u5143\u7d20\u3002
+APOC.report.add.element=\u589e\u52a0\u5143\u7d20
+APOC.report.remove.element=\u79fb\u9664\u5143\u7d20
+APOC.report.novalues=\u76f8\u95dc\u7684\u5143\u7d20\u4e0d\u5305\u542b\u4efb\u4f55\u503c\u3002
+APOC.report.xml.parsing.error=\u8b80\u53d6\u8a2d\u5b9a\u6a94\u8cc7\u6599\u6642\u767c\u751f XML \u5256\u6790\u932f\u8aa4\uff01
+
+#*******************************************************************************
+# Full-Page Error Alert
+#
+#*******************************************************************************
+
+APOC.pageerror.title=\u4f5c\u696d\u5931\u6557
+APOC.pageerror.comment=\u60a8\u53ef\u4ee5\u5728\u6b64\u9801\u9762\u4e0a\u627e\u5230\u4ee5 HTML \u8a3b\u91cb\u986f\u793a\u7684\u6b64\u932f\u8aa4\u7684\u5806\u758a\u8ffd\u8e64\u3002
+
+#*******************************************************************************
+# PolicyMgr Error Messages
+#
+#*******************************************************************************
+
+APOC.error.occurred=\u767c\u751f\u932f\u8aa4\u3002
+APOC.error.open.connection=\u7121\u6cd5\u70ba\u4f7f\u7528\u8005\u5efa\u7acb\u9023\u7dda\u3002
+APOC.error.close.connection=\u95dc\u9589\u9023\u7dda\u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.error.user.invalid=\u4f7f\u7528\u8005\u540d\u7a31\u7121\u6548\u3002
+APOC.error.unsupported.datastore=\u555f\u52d5\u7a0b\u5f0f\u8cc7\u8a0a\u4e2d\u6307\u5b9a\u7684\u8cc7\u6599\u5132\u5b58\u985e\u578b\u4e0d\u53d7\u652f\u63f4\u3002
+APOC.error.application.initialize=\u7121\u6cd5\u521d\u59cb\u5316\u61c9\u7528\u7a0b\u5f0f\u3002
+APOC.error.bootstrap.incomplete=\u555f\u52d5\u7a0b\u5f0f\u8cc7\u8a0a\u4e0d\u5b8c\u6574\u3002
+APOC.error.bootstrap.unavailable=\u555f\u52d5\u7a0b\u5f0f\u8cc7\u8a0a\u4e0d\u53ef\u7528\u3002
+APOC.error.ldap.bootstrap=LDAP \u76ee\u9304\u4f3a\u670d\u5668\u7684\u555f\u52d5\u7a0b\u5f0f\u8cc7\u8a0a\u4e0d\u5b8c\u6574\u3002
+APOC.error.org.settings=\u8907\u5408\u914d\u7f6e\u4e2d\u7684\u7d44\u7e54\u8a2d\u5b9a\u7121\u6548\u3002
+APOC.error.role.settings=\u8907\u5408\u914d\u7f6e\u4e2d\u7684\u89d2\u8272\u8a2d\u5b9a\u7121\u6548\u3002
+APOC.error.user.settings=\u8907\u5408\u914d\u7f6e\u4e2d\u7684\u4f7f\u7528\u8005\u8a2d\u5b9a\u7121\u6548\u3002
+APOC.error.create.parser=\u7121\u6cd5\u5efa\u7acb XML \u5256\u6790\u5668\u3002
+APOC.error.filter=\u7be9\u9078\u5668\u7684\u8a9e\u6cd5\u7d50\u69cb\u4e0d\u6b63\u78ba\u3002
+APOC.error.policy.read=\u7121\u6cd5\u8b80\u53d6\u7b56\u7565\u8cc7\u6599\u3002
+APOC.error.policy.data.invalid=\u7b56\u7565\u8cc7\u6599\u7121\u6548\u3002
+APOC.error.policy.invalid=\u7b56\u7565\u7121\u6548\u3002
+APOC.error.path.invalid=\u8def\u5f91\u7121\u6548\u3002
+APOC.error.userprofile.attribute=\u8a72\u5c6c\u6027\u4e0d\u662f\u4f7f\u7528\u8005\u8a2d\u5b9a\u6a94\u7684\u4e00\u90e8\u5206\u3002
+APOC.error.locale.support=\u6b64\u8a9e\u8a00\u74b0\u5883\u4e0d\u53d7\u652f\u63f4\u3002
+APOC.error.ldap.read=\u767c\u751f LDAP \u8b80\u53d6\u932f\u8aa4\u3002
+APOC.error.ldap.write=\u767c\u751f LDAP \u5beb\u5165\u932f\u8aa4\u3002
+APOC.error.ldap.search=\u5728\u641c\u5c0b\u904e\u7a0b\u4e2d\u767c\u751f LDAP \u932f\u8aa4\u3002
+APOC.error.ldap.results.size=\u5728\u641c\u5c0b\u904e\u7a0b\u4e2d\u767c\u751f LDAP \u932f\u8aa4\uff0c\u56e0\u70ba\u7d50\u679c\u9805\u76ee\u7684\u6578\u76ee\u5927\u65bc LDAP \u4f3a\u670d\u5668\u8a2d\u5b9a\u7684\u9650\u5236\u3002
+APOC.error.ldap.policygroup.creation=\u5728\u5efa\u7acb\u8a2d\u5b9a\u6a94\u904e\u7a0b\u4e2d\u767c\u751f LDAP \u932f\u8aa4\u3002
+APOC.error.ldap.policygroup.deletion=\u5728\u522a\u9664\u8a2d\u5b9a\u6a94\u904e\u7a0b\u4e2d\u767c\u751f LDAP \u932f\u8aa4\u3002
+APOC.error.ldap.policygroup.rename=\u5728\u91cd\u65b0\u547d\u540d\u8a2d\u5b9a\u6a94\u904e\u7a0b\u4e2d\u767c\u751f LDAP \u932f\u8aa4\u3002
+APOC.error.unprotect.item=\u7121\u6cd5\u5c07\u9805\u76ee\u89e3\u9664\u4fdd\u8b77\uff0c\u56e0\u70ba\u7236\u9805\u76ee\u8655\u65bc\u4fdd\u8b77\u72c0\u614b\u3002
+APOC.error.readonly.item=\u7121\u6cd5\u7de8\u8f2f\u552f\u8b80\u9805\u76ee\u3002
+APOC.error.mandatory.remove=\u7121\u6cd5\u79fb\u9664\u5f37\u5236\u9805\u76ee\u3002
+APOC.error.comply.constraints=\u503c\u4e0d\u7b26\u5408\u7279\u6027\u9650\u5236\u3002
+APOC.error.nillable=\u8a72\u9805\u76ee\u4e0d\u53ef\u62d2\u7d55\u3002
+APOC.error.mandatory.setting=\u7121\u6cd5\u8b8a\u66f4\u6b64\u9805\u76ee\u7684\u5f37\u5236\u8a2d\u5b9a\u3002
+APOC.error.policygroup.priority.exists=\u5177\u6709\u6b64\u512a\u5148\u6b0a\u7684\u8a2d\u5b9a\u6a94\u5df2\u5b58\u5728\u3002
+APOC.error.policygroup.name.exists=\u5df2\u5b58\u5728\u540c\u540d\u7684\u8a2d\u5b9a\u6a94\u3002
+APOC.error.policygroup.not.exists=\u8a2d\u5b9a\u6a94\u4e0d\u5b58\u5728\u3002
+APOC.error.priorities.incorrect=\u8a2d\u5b9a\u6a94\u512a\u5148\u6b0a\u4e0d\u6b63\u78ba\u3002
+APOC.error.policygroup.invalid=\u8a2d\u5b9a\u6a94\u7121\u6548\u3002
+APOC.error.host.invalid=\u4e3b\u6a5f\u540d\u7a31\u7121\u6548\u3002
+APOC.error.domain.settings=\u8907\u5408\u914d\u7f6e\u4e2d\u7684\u7db2\u57df\u8a2d\u5b9a\u7121\u6548\u3002
+APOC.error.host.settings=\u8907\u5408\u914d\u7f6e\u4e2d\u7684\u4e3b\u6a5f\u8a2d\u5b9a\u7121\u6548\u3002
+APOC.error.export.policygroup=\u532f\u51fa\u8a2d\u5b9a\u6a94\u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.error.import.policygroup=\u532f\u5165\u8a2d\u5b9a\u6a94\u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.error.export.policygroup_data=\u7121\u8a2d\u5b9a\u6a94\u8cc7\u6599\u53ef\u4f9b\u532f\u51fa\u3002
+APOC.error.import.policygroup_data=\u7121\u8a2d\u5b9a\u6a94\u8cc7\u6599\u53ef\u4f9b\u532f\u5165\u3002
+
+#*******************************************************************************
+# Profile Window Profile
+#
+#*******************************************************************************
+
+APOC.profilewnd.buttons.save=\u5132\u5b58
+APOC.profilewnd.buttons.close=\u95dc\u9589
+
+# General Settings Tab
+APOC.profilewnd.general.tab=\u4e00\u822c\u7279\u6027
+APOC.profilewnd.general.title=\u4e00\u822c\u8a2d\u5b9a
+APOC.profilewnd.general.help=\u6307\u5b9a\u6b64\u8a2d\u5b9a\u6a94\u7684\u4e00\u822c\u7279\u6027\u3002
+APOC.profilewnd.general.name=\u540d\u7a31
+APOC.profilewnd.general.namecol=\u540d\u7a31\uff1a
+APOC.profilewnd.general.comment=\u8a3b\u91cb
+APOC.profilewnd.general.commentcol=\u8a3b\u91cb\uff1a
+APOC.profilewnd.general.applicable=\u9069\u7528\u4f86\u6e90
+APOC.profilewnd.general.browse=\u8b8a\u66f4...
+APOC.profilewnd.general.pending=\u64f1\u7f6e\u8b8a\u66f4
+APOC.profilewnd.general.author=\u4f5c\u8005
+APOC.profilewnd.general.modified=\u4e0a\u6b21\u4fee\u6539
+APOC.profilewnd.general.new_profile_instructions=\u60a8\u5c07\u8981\u5efa\u7acb\u65b0\u8a2d\u5b9a\u6a94\uff0c\u800c\u5efa\u7acb\u7a0b\u5e8f\u57fa\u672c\u4e0a\u6709\u4e09\u500b\u6b65\u9a5f\uff1a<br><br>1. \u5b9a\u7fa9\u8a2d\u5b9a\u6a94\u7684\u552f\u4e00\u540d\u7a31 (\u5982\u4e0b\u6240\u793a)\u3002<\
+br>2. \u914d\u7f6e\u5e7e\u500b\u9810\u8a2d\u53ca (\u6216) \u5fc5\u8981 (\u5f37\u5236) \u8a2d\u5b9a (\u8acb\u53c3\u95b1 [\u914d\u7f6e\u8a2d\u5b9a] \u6a19\u7c64)\u3002<br>3. \u6307\u5b9a\u65b0\u8a2d\u5b9a\u6a94\u7d66\u60f3\
+\u8981\u7684 {0} \u53ca (\u6216) {1} (\u8acb\u53c3\u95b1 [\u6307\u5b9a\u7684\u5143\u7d20] \u6a19\u7c64)\u3002
+APOC.profilewnd.lc_domains=\u7db2\u57df
+APOC.profilewnd.lc_hosts=\u4e3b\u6a5f
+APOC.profilewnd.lc_orgs=\u7d44\u7e54
+APOC.profilewnd.lc_users=\u4f7f\u7528\u8005
+APOC.profilewnd.creating_new=\u5efa\u7acb\u65b0\u8a2d\u5b9a\u6a94
+
+# Assignees Tab
+APOC.profilewnd.assignees.tab=\u6307\u5b9a\u7684\u5143\u7d20
+APOC.profilewnd.assignees.title=\u6307\u5b9a\u7684\u5143\u7d20
+APOC.profilewnd.assignees.help=\u6307\u5b9a\u5143\u7d20\u81f3\u6b64\u8a2d\u5b9a\u6a94\u3002
+APOC.profilewnd.assignees.noorgs=\u7121\u6307\u5b9a\u7684\u5143\u7d20\u3002
+APOC.profilewnd.assignees.assign=\u6307\u5b9a\u5143\u7d20...
+APOC.profilewnd.assignees.unassign=\u53d6\u6d88\u6307\u5b9a\u5143\u7d20
+APOC.profilewnd.assignees.nameColumn=\u540d\u7a31
+
+# Configuration Settings Tab
+APOC.profilewnd.settings.tab=\u914d\u7f6e\u8a2d\u5b9a
+APOC.profilewnd.settings.title=\u914d\u7f6e\u8a2d\u5b9a
+APOC.profilewnd.settings.Enable=\u555f\u7528
+APOC.profilewnd.settings.Disable=\u505c\u7528
+APOC.profilewnd.settings.Edit=\u7de8\u8f2f\u503c...
+APOC.profilewnd.settings.title.help=\u9078\u53d6\u4ee5\u4e0b\u6240\u5217\u7684\u5176\u4e2d\u4e00\u500b\u7a2e\u985e\u3002
+APOC.profilewnd.settings.Actions=\u9032\u968e...
+APOC.profilewnd.settings.more=&#8212;&nbsp;\u66f4\u591a\u52d5\u4f5c&nbsp;&#8212;
+APOC.profilewnd.settings.enforce=\u5f37\u5236
+APOC.profilewnd.settings.unenforce=\u91cd\u8a2d\u5f37\u5236
+APOC.profilewnd.settings.undo=\u9084\u539f\u64f1\u7f6e\u8b8a\u66f4
+APOC.profilewnd.settings.default=\u5fa9\u539f\u9810\u8a2d
+APOC.profilewnd.settings.nameColumn=\u540d\u7a31
+APOC.profilewnd.settings.valueColumn=\u503c
+APOC.profilewnd.settings.enabledColumn=\u5df2\u555f\u7528
+APOC.profilewnd.settings.enforcedColumn=\u5df2\u5f37\u5236
+APOC.profilewnd.settings.pendingColumn=\u64f1\u7f6e\u8b8a\u66f4
+APOC.profilewnd.settings.overwrite=\u4f7f\u7528\u8005\u53ef\u4ee5\u8986\u5beb
+APOC.profilewnd.settings.defaultLabel=\u9810\u8a2d\uff1a
+APOC.profilewnd.settings.setToDefaultLabel=\u8a2d\u70ba\u9810\u8a2d
+
+# Configuration Tree
+APOC.profilewnd.tree.view.all=All
+APOC.profilewnd.tree.view.pending=\u64f1\u7f6e\u8b8a\u66f4
+APOC.profilewnd.advanced.tab=\u9032\u968e\u9078\u9805
+APOC.profilewnd.advanced.pagetitle_help=\u6307\u5b9a\u9032\u968e\u9078\u9805\uff0c\u4f8b\u5982\u8a2d\u5b9a\u6a94\u7684\u5408\u4f75\u9806\u5e8f\u3002
+APOC.profilewnd.advanced.merge_order=\u5408\u4f75\u9806\u5e8f\uff1a
+APOC.profilewnd.buttons.save.help=\u5132\u5b58\u8b8a\u66f4\u3002
+APOC.profilewnd.buttons.close.help=\u95dc\u9589\u6b64\u8996\u7a97\u3002
+APOC.profilewnd.buttons.ok_assign.help=\u5c07\u6240\u9078\u8a2d\u5b9a\u6a94\u6307\u5b9a\u7d66\u76ee\u524d\u7684\u5143\u7d20\u3002
+
+APOC.profilewnd.js.alert1=\u6b64\u9801\u9762\u6709\u672a\u5132\u5b58\u7684\u8b8a\u66f4\u3002\u662f\u5426\u8981\u5132\u5b58\u8b8a\u66f4\u4e26\u95dc\u9589\u6b64\u8996\u7a97\uff1f
+APOC.profilewnd.js.alert2=\u6b64\u6a19\u7c64\u6709\u672a\u5132\u5b58\u7684\u8b8a\u66f4\u3002\u662f\u5426\u8981\u5132\u5b58\u8b8a\u66f4\u4e26\u7e7c\u7e8c\uff1f
+APOC.profilewnd.js.alert3=\u6b64\u7a2e\u985e\u6709\u672a\u5132\u5b58\u7684\u8b8a\u66f4\u3002\u662f\u5426\u8981\u5132\u5b58\u8b8a\u66f4\u4e26\u7e7c\u7e8c\uff1f
+APOC.profilewnd.js.alert4=\u6b64\u9801\u9762\u6709\u672a\u5132\u5b58\u7684\u8b8a\u66f4\u3002\u662f\u5426\u8981\u5132\u5b58\u8b8a\u66f4\u4e26\u589e\u52a0\u65b0\u9805\u76ee\uff1f
+APOC.profilewnd.js.alert5=\u8acb\u8f38\u5165\u65b0\u6e05\u55ae\u9805\u76ee\uff1a
+
+#Settings Summary
+APOC.profilewnd.summary.help=\u6aa2\u8996\u70ba\u6b64\u8a2d\u5b9a\u6a94\u914d\u7f6e\u7684\u8a2d\u5b9a\u3002
+
+# Add Context Wizard
+APOC.wiz.title=\u65b0\u589e\u914d\u7f6e\u5132\u5b58\u5eab\u7cbe\u9748
+APOC.wiz.edit.title=\u7de8\u8f2f\u914d\u7f6e\u5132\u5b58\u5eab\u7cbe\u9748
+APOC.wiz.steptext.2=\u5132\u5b58\u5eab\u8a73\u7d30\u8cc7\u8a0a
+APOC.wiz.steptext.3=LDAP \u8a73\u7d30\u8cc7\u8a0a
+APOC.wiz.steptext.4=LDAP \u6191\u8b49
+APOC.wiz.steptext.5=LDAP \u4f3a\u670d\u5668\u985e\u578b
+APOC.wiz.steptext.6=LDAP \u8907\u5408\u914d\u7f6e\u9078\u9805
+APOC.wiz.steptext.7=LDAP \u8907\u5408\u914d\u7f6e\u7de8\u8f2f\u5668
+APOC.wiz.steptext.8=\u57fa\u5e95 DN \u9078\u53d6\u9805\u76ee
+APOC.wiz.steptext.9=\u57fa\u5e95 DN
+APOC.wiz.steptext.10=\u6aa2\u67e5
+APOC.wiz.steptext.11=\u7d50\u679c
+APOC.wiz.steptext.12=\u8cc7\u6599\u76ee\u9304\u9078\u53d6\u9805\u76ee
+APOC.wiz.steptext.13=\u73fe\u6709\u5b89\u88dd\u9078\u9805
+APOC.wiz.steptext.14=\u9077\u79fb\u8a2d\u5b9a\u6a94\u8cc7\u8a0a
+APOC.wiz.steptext.15=LDAP \u7ba1\u7406\u54e1\u6191\u8b49
+APOC.wiz.help.2=<p>\u9078\u64c7\u5132\u5b58\u5eab\u7684\u540d\u7a31\uff0c\u4ee5\u53ca\u8981\u7528\u65bc\u5132\u5b58\u5eab\u4e2d\u7db2\u57df\u5143\u7d20\u548c\u7d44\u7e54\u5143\u7d20\u7684\u968e\u5c64\u53ca\u5132\u5b58\u985e\u578b\uff0c\u53ef\u4ee5\u662f\u7d14 LDAP \u578b\u914d\u7f6e\u5132\u5b58\u5eab\u3001\u7d14\u6a94\u6848\u578b\u914d\u7f6e\u5132\
+\u5b58\u5eab\u6216\u6df7\u5408\u578b\u914d\u7f6e\u5132\u5b58\u5eab\u3002</p><p>\u5728\u7d14 LDAP \u914d\u7f6e\u5132\u5b58\u5eab\u4e2d\uff0c\u8207\u7d44\u7e54\u968e\u5c64\u3001\u8a2d\u5b9a\u6a94\u8a2d\u5b9a\u4ee5\u53ca\u8a2d\u5b9a\u6a94\u6307\u5b9a\u76f8\u95dc\u7684\u6240\u6709\
+\u8cc7\u8a0a\u90fd\u6703\u5132\u5b58\u5728 LDAP \u4f3a\u670d\u5668\u4e0a\u3002\u7d14\u6a94\u6848\u578b\u914d\u7f6e\u5132\u5b58\u5eab\u8207\u4e4b\u985e\u4f3c\uff0c\u6240\u6709\u8cc7\u8a0a\u90fd\u6703\u5132\u5b58\u5728\u4f7f\u7528\u8005\u6307\u5b9a\u7684\u76ee\u9304\u4e2d\uff0c\u8a72\u76ee\u9304\u4f4d\u65bc\u5b89\u88dd Sun Java \
+Web Console \u7684\u6a5f\u5668\u4e0a\u3002<br>\u5728\u6df7\u5408\u578b\u914d\u7f6e\u5132\u5b58\u5eab\u4e2d\uff0c\u7d44\u7e54\u968e\u5c64\u8cc7\u8a0a\u53ef\u5f9e LDAP \u4f3a\u670d\u5668\u53d6\u5f97\uff0c\u4f46\u662f\u5c0d\u65bc\u6240\u6709\u8a2d\u5b9a\u6a94\u8a2d\u5b9a\
+\u548c\u8a2d\u5b9a\u6a94\u6307\u5b9a\uff0c\u5176\u5132\u5b58\u65b9\u5f0f\u548c\u5728\u6a94\u6848\u578b\u5132\u5b58\u5eab\u4e2d\u4e00\u6a23\u3002</p>
+APOC.wiz.help.3=<p>\u9375\u5165 LDAP \u914d\u7f6e\u5132\u5b58\u5eab\u6240\u4f7f\u7528\u7684 LDAP \u4f3a\u670d\u5668\u4e4b\u4e3b\u6a5f\u540d\u7a31\u548c\u9023\u63a5\u57e0\u3002</p><p>\u82e5\u60f3\u8981\u914d\u7f6e\
+\u4f7f\u7528 SSL \u7684 LDAP \u4f3a\u670d\u5668\uff0c\u8acb\u6838\u53d6 [\u4f7f\u7528 SSL] \u6838\u53d6\u65b9\u584a\u3002</p>
+APOC.wiz.help.4=<p>\u82e5\u7121\u6cd5\u4f7f\u7528 [\u533f\u540d\u5b58\u53d6] \u5f9e LDAP \u4f3a\u670d\u5668\u9032\u884c\u8b80\u53d6\uff0c\u5247\u61c9\u8a72\u5728 [\u4f7f\u7528\u8005 DN] \u548c [\u4f7f\u7528\u8005\u5bc6\u78bc] \u6b04\u4f4d\u4e2d\uff0c\u5206\u5225\u8f38\u5165\
+\u5177\u6709\u8b80\u53d6\u6b0a\u9650\u7684\u4f7f\u7528\u8005\u4e4b\u5b8c\u5168\u5408\u683c\u7684 DN \u548c\u5bc6\u78bc\u3002<br>\u6b64\u8cc7\u8a0a\u6703\u4e88\u4ee5\u4fdd\u7559\uff0c\u4ee5\u4f9b\u4f7f\u7528\u8005\u4f7f\u7528\u5176 UID \u800c\u4e0d\u662f\u5b8c\u5168\u5408\u683c\u7684 DN \u767b\
+\u5165\u6b64\u914d\u7f6e\u5132\u5b58\u5eab\u3002</p>
+APOC.wiz.help.5=<p>\u9078\u64c7\u5c07\u8981\u914d\u7f6e\u7684 LDAP \u4f3a\u670d\u5668\u985e\u578b\u3002\u9700\u8981\u6b64\u8cc7\u8a0a\u4ee5\u6c7a\u5b9a\u8981\u63d0\u4f9b\u7d66\u4f3a\u670d\u5668\u7684\u9810\u8a2d\u8907\u5408\u914d\u7f6e\u3002</p><\
+p>\u8907\u5408\u914d\u7f6e\u6703\u5b9a\u7fa9\u7528\u4ee5\u8b58\u5225 LDAP \u5143\u7d20 (\u4f7f\u7528\u8005\u3001\u89d2\u8272\u3001\u7d44\u7e54\u3001\u7db2\u57df\u548c\u4e3b\u6a5f) \u7684\u5c6c\u6027\u548c\u7269\u4ef6\u985e\u5225\u3002</p>
+APOC.wiz.help.6=<p>\u9078\u64c7\u662f\u5426\u8981\u7de8\u8f2f\u9810\u8a2d\u7684\u8907\u5408\u914d\u7f6e\u3002</p><p>\u8907\u5408\u914d\u7f6e\u6703\u5b9a\u7fa9\u7528\u4ee5\u8b58\u5225 LDAP \u5be6\u9ad4 (\u4f7f\u7528\u8005\u3001\u89d2\
+\u8272\u3001\u7d44\u7e54\u3001\u7db2\u57df\u548c\u4e3b\u6a5f) \u7684\u5c6c\u6027\u548c\u7269\u4ef6\u985e\u5225\u3002</p>
+APOC.wiz.help.7=<p>\u5728\u63d0\u4f9b\u7684\u6587\u5b57\u5340\u4e2d\u7de8\u8f2f\u8907\u5408\u914d\u7f6e\u3002</p><p>\u8907\u5408\u914d\u7f6e\u6703\u5b9a\u7fa9\u7528\u4ee5\u8b58\u5225 LDAP \u5143\u7d20 (\u4f7f\u7528\u8005\u3001\u89d2\
+\u8272\u3001\u7d44\u7e54\u3001\u7db2\u57df\u548c\u4e3b\u6a5f) \u7684\u5c6c\u6027\u548c\u7269\u4ef6\u985e\u5225\u3002</p>
+APOC.wiz.help.8=<p>\u5f9e\u63d0\u4f9b\u7684\u6e05\u55ae\u4e2d\u9078\u64c7\u6b64\u914d\u7f6e\u5132\u5b58\u5eab\u6240\u4f7f\u7528\u7684\u57fa\u5e95 DN\u3002</p>
+APOC.wiz.help.9=<p>\u9078\u64c7\u6b64\u914d\u7f6e\u5132\u5b58\u5eab\u6240\u4f7f\u7528\u7684\u57fa\u5e95 DN\u3002</p>
+APOC.wiz.help.10=<p>\u6aa2\u8996\u6240\u63d0\u4f9b\u7684\u8a2d\u5b9a\uff0c\u4e26\u6309 [\u5b8c\u6210] \u4ee5\u5b8c\u6210\u5efa\u7acb\u65b0\u7684\u914d\u7f6e\u5132\u5b58\u5eab\u3002</p><p>\u8acb\u6ce8\u610f\uff0c\u9032\u884c\u7d14 \
+LDAP \u5b89\u88dd\u6642\uff0c\u6309 [\u5b8c\u6210] \u6309\u9215\u6703\u958b\u59cb\u66f4\u65b0 LDAP \u4f3a\u670d\u5668\u6a21\u5f0f\uff0c\u4e26\u5728 LDAP \u968e\u5c64\u589e\u52a0\u300c\u670d\u52d9\u300d\u5206\u652f\u3002</p>
+APOC.wiz.help.edit.10=<p>\u6aa2\u8996\u6240\u63d0\u4f9b\u7684\u8a2d\u5b9a\uff0c\u4e26\u6309 [\u5b8c\u6210] \u4ee5\u5b8c\u6210\u66f4\u65b0\u73fe\u6709\u7684\u914d\u7f6e\u5132\u5b58\u5eab\u3002</p><p>\u8acb\u6ce8\u610f\uff0c\u9032\u884c\u7d14 \
+LDAP \u5b89\u88dd\u6642\uff0c\u6309 [\u5b8c\u6210] \u6309\u9215\u6703\u958b\u59cb\u66f4\u65b0 LDAP \u4f3a\u670d\u5668\u6a21\u5f0f\uff0c\u4e26\u5728 LDAP \u968e\u5c64\u589e\u52a0\u300c\u670d\u52d9\u300d\u5206\u652f\u3002</p>
+APOC.wiz.help.11=<p>\u5b89\u88dd\u7d50\u679c\u6703\u986f\u793a\u5728\u6240\u63d0\u4f9b\u7684\u5340\u57df\u4e2d\u3002</p>
+APOC.wiz.help.12=<p>\u9078\u64c7\u8981\u5132\u5b58\u914d\u7f6e\u5132\u5b58\u5eab\u8a2d\u5b9a\u6a94\u548c\u6307\u5b9a\u8cc7\u6599\u7684\u76ee\u9304\u3002\u5b89\u88dd\u7a0b\u5e8f\u6703\u5efa\u7acb\u76ee\u9304\u300cprofiles\u300d\u548c\u300cassignments\u300d\uff0c\u4ee5\u5132\u5b58\u8a2d\
+\u5b9a\u6a94\u548c\u6307\u5b9a\u8cc7\u8a0a\u3002\u5728\u7d14\u6a94\u6848\u578b\u5132\u5b58\u5eab\u4e2d\uff0c\u968e\u5c64\u8cc7\u8a0a\u6703\u5132\u5b58\u5728\u53ef\u7de8\u8f2f\u7684\u6a94\u6848\u300centities.txt\u300d\u4e2d\u3002\u5728\u6df7\u5408\u578b\u5132\u5b58\u5eab\u4e2d\uff0c\u5b9a\u7fa9\u7528\u4ee5\u8b58\u5225 LDAP \
+\u5be6\u9ad4\u4e4b\u5c6c\u6027\u548c\u7269\u4ef6\u985e\u5225\u7684\u8907\u5408\u914d\u7f6e\uff0c\u6703\u5132\u5b58\u5728\u53ef\u7de8\u8f2f\u7684\u6a94\u6848\u300cOrganizationMapping.properties\u300d\u548c\
+\u300cUserProfileMapping.properties\u300d\u4e2d\u3002</p>
+APOC.wiz.help.13=<p>\u73fe\u6709\u7684 Desktop Manager \u914d\u7f6e\u5132\u5b58\u5eab\u5df2\u5b89\u88dd\u5728\u6307\u5b9a\u7684\u76ee\u9304\u4e2d\u3002\u6b64\u5132\u5b58\u5eab\u53ef\u80fd\u5305\u542b\u60a8\u8981\u4fdd\u7559\u7684\u968e\u5c64\u3001\u8a2d\u5b9a\u6a94\u548c\u6307\u5b9a\u8cc7\
+\u8a0a\u3002\u6b64\u7a2e\u60c5\u6cc1\u4e0b\uff0c\u8acb\u9078\u64c7\u4fdd\u7559\u73fe\u6709\u7684\u5b89\u88dd\u8cc7\u6599\uff1b\u5426\u5247\uff0c\u8acb\u9078\u64c7\u8986\u5beb\u73fe\u6709\u7684\u5b89\u88dd\uff0c\u4ee5\u5efa\u7acb\u5168\u65b0\u7684\u5132\u5b58\u5eab\u3002</p>
+APOC.wiz.help.14=<p>\u5728 Desktop Manager 2.0 \u7248\u4e2d\uff0c\u8a2d\u5b9a\u6a94\u548c\u6307\u5b9a\u8cc7\u8a0a\u5728 LDAP \u4e2d\u7684\u5132\u5b58\u4f4d\u7f6e\u4e0d\u540c\u65bc\u5148\u524d\u7248\u672c\u3002\u8acb\u9078\u64c7\u662f\u5426\u8981\
+\u5c07\u4f7f\u7528\u524d\u4e00\u7248 Desktop Manager \u6240\u5132\u5b58\u7684\u8a2d\u5b9a\u6a94\u548c\u6307\u5b9a\uff0c\u9077\u79fb\u5230\u6b64\u7248\u672c\u4e2d\u7684\u65b0\u4f4d\u7f6e\u3002</p><p>\u8acb\u6ce8\u610f\uff0c\
+\u96d6\u7136\u4f7f\u7528\u5148\u524d\u7248\u672c\u6240\u5132\u5b58\u7684\u8a2d\u5b9a\u6a94\u4ecd\u53ef\u900f\u904e Desktop Manager \u4f86\u6aa2\u8996\uff0c\u4f46\u662f\u5728 LDAP \u4e2d\u7684\u5132\u5b58\u4f4d\u7f6e\u6703\u7dad\u6301\u4e0d\u8b8a\uff0c\u56e0\u6b64\u9077\u79fb\u8a2d\u5b9a\u6a94\u6709\
+\u52a9\u65bc\u7dad\u6301\u7d50\u69cb\u66f4\u6e05\u6670\u7684 LDAP \u4f3a\u670d\u5668\uff0c\u9019\u6a23\u4fbf\u4e0d\u6703\u5c07 1.x \u7248\u7684\u8a2d\u5b9a\u6a94\u8cc7\u8a0a\u548c 2.0 \u7248\u7684\u8a2d\u5b9a\u6a94\u8cc7\u8a0a\u5132\u5b58\u5728\u4e0d\u540c\u7684\u5169\u500b\u4f4d\u7f6e\u3002<\
+/p>
+APOC.wiz.help.15=<p>\u5728 [\u7ba1\u7406\u54e1 DN] \u548c [\u7ba1\u7406\u54e1\u5bc6\u78bc] \u6b04\u4f4d\u4e2d\uff0c\u8f38\u5165\u5177\u6709 LDAP \u4f3a\u670d\u5668\u8b80\u5beb\u6b0a\u9650\u7684\u4f7f\u7528\u8005\u4e4b DN \u548c\u5bc6\u78bc\u3002<\
+br>\u9019\u4e9b\u6191\u8b49\u50c5\u6703\u7528\u65bc\u5b89\u88dd\u5fc5\u8981\u7684\u6a21\u5f0f\u3001\u5c6c\u6027\u3001\u7269\u4ef6\u985e\u5225\u548c Desktop Manager \u5728 LDAP \u4f3a\u670d\u5668\u4e0a\u6240\u9700\u7684\u5be6\u9ad4\u3002\u4e0d\u6703\u4fdd\u7559\u9019\
+\u4e9b\u6191\u8b49\u3002</p>
+APOC.wiz.help.15a=<p>\u5728 [\u7ba1\u7406\u54e1 DN] \u548c [\u7ba1\u7406\u54e1\u5bc6\u78bc] \u6b04\u4f4d\u4e2d\uff0c\u8f38\u5165\u5177\u6709 LDAP \u4f3a\u670d\u5668\u8b80\u5beb\u6b0a\u9650\u7684\u4f7f\u7528\u8005\u4e4b DN \u548c\u5bc6\u78bc\u3002<\
+br>\u9019\u4e9b\u6191\u8b49\u50c5\u6703\u7528\u65bc\u9077\u79fb LDAP \u4f3a\u670d\u5668\u4e0a\u7684\u8a2d\u5b9a\u6a94\u548c\u6307\u5b9a\u8cc7\u8a0a\u3002\u4e0d\u6703\u4fdd\u7559\u9019\u4e9b\u6191\u8b49\u3002</p>
+APOC.wiz.instruction.2=\u9078\u64c7\u5132\u5b58\u5eab\u7684\u540d\u7a31\uff0c\u4e26\u9078\u53d6\u8981\u7528\u65bc\u7db2\u57df\u5143\u7d20\u548c\u7d44\u7e54\u5143\u7d20\u7684\u968e\u5c64\u53ca\u5132\u5b58\u9078\u9805\u3002
+APOC.wiz.instruction.3=\u8f38\u5165\u8981\u914d\u7f6e\u6b64\u5132\u5b58\u5eab\u4e4b LDAP \u4f3a\u670d\u5668\u7684\u8a73\u7d30\u8cc7\u8a0a\u3002\u6240\u57f7\u884c\u4e4b\u4f3a\u670d\u5668\u7684\u4e3b\u6a5f\u540d\u7a31\u548c\u9023\u63a5\u57e0\u70ba\u5fc5\u8981\u8cc7\u8a0a\u3002\u60a8\u4e5f\u53ef\u4ee5\u9078\u64c7\u662f\u5426\u8981\u4f7f\u7528 SSL \u9023\u7dda\u81f3\u6b64\u4f3a\u670d\
+\u5668\u3002
+APOC.wiz.instruction.4=\u70ba\u4e86\u8b93\u4f7f\u7528\u8005\u53ef\u4ee5\u4f7f\u7528 UID \u800c\u4e0d\u662f\u5b8c\u5168\u5408\u683c\u7684 DN \u767b\u5165\u5132\u5b58\u5eab\uff0c\u60a8\u5fc5\u9808\u555f\u7528 [\u533f\u540d\u5b58\u53d6]\uff0c\u6216\u5728\u9069\u7576\u7684 [\u4f7f\u7528\u8005 DN] \u548c [\u4f7f\u7528\u8005\u5bc6\
+\u78bc] \u6b04\u4f4d\u4e2d\uff0c\u8f38\u5165\u5177\u6709\u8b80\u53d6\u6b0a\u9650\u7684\u4f7f\u7528\u8005\u4e4b\u5b8c\u5168\u5408\u683c\u7684 DN \u548c\u5bc6\u78bc\u3002
+APOC.wiz.instruction.5=LDAP \u4f3a\u670d\u5668\u7684\u4e0d\u540c\u5206\u652f\u9700\u8981\u4e0d\u540c\u7684\u5b89\u88dd\u7a0b\u5e8f\u3002\u8acb\u9078\u53d6\u65b0\u914d\u7f6e\u5132\u5b58\u5eab\u6240\u4f7f\u7528\u7684 LDAP \u4f3a\u670d\u5668\u985e\u578b\u3002
+APOC.wiz.instruction.6=\u8907\u5408\u914d\u7f6e\u6703\u5b9a\u7fa9\u7528\u4ee5\u8b58\u5225 LDAP \u5be6\u9ad4 (\u4ea6\u5373\u4f7f\u7528\u8005\u3001\u89d2\u8272\u3001\u7d44\u7e54\u3001\u7db2\u57df\u548c\u4e3b\u6a5f) \u7684\u5c6c\u6027\u548c\u7269\u4ef6\u985e\u5225\u3002\u9810\u8a2d\u6703\u63d0\u4f9b\u9069\u7576\u7684\u503c\uff0c\u4e0d\u904e\u4f7f\u7528\u8005\u53ef\u4ee5\u96a8\u5fc3\u6240\
+\u6b32\u5730\u81ea\u884c\u589e\u52a0\u503c\u3002\u9078\u64c7\u662f\u5426\u8981\u7de8\u8f2f\u6b64\u985e\u578b\u7684 LDAP \u4f3a\u670d\u5668\u6240\u7528\u7684\u9810\u8a2d\u8907\u5408\u914d\u7f6e\u3002
+APOC.wiz.instruction.7=\u5728\u4ee5\u4e0b\u7684\u6587\u5b57\u5340\u4e2d\u7de8\u8f2f\u9810\u8a2d\u7684\u8907\u5408\u914d\u7f6e\u3002
+APOC.wiz.instruction.8=\u4ee5\u4e0b\u7684\u6e05\u55ae\u5305\u542b\u6307\u5b9a\u4e4b LDAP \u4f3a\u670d\u5668\u4e0a\u53ef\u7528\u7684\u6240\u6709\u57fa\u5e95 DN\u3002\u9078\u53d6\u6b64\u914d\u7f6e\u5132\u5b58\u5eab\u6240\u4f7f\u7528\u7684\u57fa\u5e95 DN\u3002
+APOC.wiz.instruction.9=\u6307\u5b9a\u7684 LDAP \u4f3a\u670d\u5668\u4e0a\u5fc5\u9808\u5177\u5099\u6709\u6548\u7684\u57fa\u5e95 DN \u624d\u80fd\u5b89\u88dd\u300c\u914d\u7f6e\u5132\u5b58\u5eab\u300d\u3002\u8acb\u8f38\u5165\u6b64\u300c\u914d\u7f6e\u5132\u5b58\u5eab\u300d\u6240\u4f7f\u7528\u7684\u57fa\u5e95 DN\u3002
+APOC.wiz.instruction.10=\u6aa2\u8996\u8f38\u5165\u7684\u8a2d\u5b9a\u3002\u6309\u4e00\u4e0b [\u5b8c\u6210] \u4ee5\u5b8c\u6210\u5efa\u7acb\u65b0\u7684\u914d\u7f6e\u5132\u5b58\u5eab\u3002
+APOC.wiz.instruction.edit.10=\u6aa2\u8996\u8f38\u5165\u7684\u8a2d\u5b9a\u3002\u6309\u4e00\u4e0b [\u5b8c\u6210] \u4ee5\u5b8c\u6210\u66f4\u65b0\u73fe\u6709\u7684\u914d\u7f6e\u5132\u5b58\u5eab\u3002
+APOC.wiz.instruction.11=
+APOC.wiz.instruction.12=\u9078\u53d6\u8981\u5132\u5b58\u6b64\u914d\u7f6e\u5132\u5b58\u5eab\u8a2d\u5b9a\u6a94\u548c\u6307\u5b9a\u8cc7\u6599\u7684\u76ee\u9304\u3002
+APOC.wiz.instruction.13=\u5728\u6307\u5b9a\u76ee\u9304\u4e2d\u627e\u5230\u73fe\u6709\u7684 Desktop Manager \u914d\u7f6e\u5132\u5b58\u5eab\u3002\u8acb\u9078\u64c7\u662f\u8981\u4f7f\u7528\u6b64\u76ee\u9304\u4e2d\u73fe\u6709\u7684\u8cc7\u6599\u9032\u884c\u6b64\u5b89\u88dd\uff0c\u6216\u662f\u8981\u522a\u9664\u6240\u6709\u8cc7\u8a0a\u518d\u5efa\u7acb\u65b0\
+\u7684\u5132\u5b58\u5eab\u3002
+APOC.wiz.instruction.14=\u5728\u6b64 LDAP \u4f3a\u670d\u5668\u4e0a\u627e\u5230\u5148\u524d\u7248\u672c\u7684 Desktop Manager\u3002\u8acb\u9078\u64c7\u662f\u5426\u5c07\u4f7f\u7528\u5148\u524d\u7248\u672c\u6240\u5132\u5b58\u7684\u8a2d\u5b9a\u6a94\u548c\u6307\u5b9a\u8cc7\u8a0a\uff0c\u9077\u79fb\u81f3\u6b64\u5b89\u88dd\u4e2d\u7528\
+\u65bc\u5132\u5b58\u7684\u65b0\u4f4d\u7f6e\u3002
+APOC.wiz.instruction.15=\u914d\u7f6e\u7a0b\u5e8f\u9700\u8981\u5ef6\u4f38 LDAP \u6a21\u5f0f\uff0c\u4e26\u5728 LDAP \u6a39\u72c0\u7d50\u69cb\u4e2d\u589e\u52a0\u65b0\u5206\u652f\u3002\u56e0\u6b64\uff0c\u5fc5\u9808\u5728 [\u7ba1\u7406\u54e1 DN] \u548c [\u7ba1\u7406\u54e1\u5bc6\u78bc] \u6b04\u4f4d\u4e2d\uff0c\u63d0\u4f9b\u5177\
+\u6709 LDAP \u4f3a\u670d\u5668\u9069\u7576\u5b58\u53d6\u6b0a\u9650\u7684\u4f7f\u7528\u8005\u4e4b DN \u548c\u5bc6\u78bc\u3002
+APOC.wiz.instruction.15a=\u9077\u79fb\u8a2d\u5b9a\u6a94\u7684\u5132\u5b58\u4f4d\u7f6e\u9700\u8981\u4fee\u6539\u73fe\u6709\u7684 LDAP \u6a39\u72c0\u7d50\u69cb\u3002\u56e0\u6b64\uff0c\u5fc5\u9808\u5728 [\u7ba1\u7406\u54e1 DN] \u548c [\u7ba1\u7406\u54e1\u5bc6\u78bc] \u6b04\u4f4d\u4e2d\uff0c\u63d0\u4f9b\u5177\u6709 LDAP \u4f3a\
+\u670d\u5668\u9069\u7576\u5b58\u53d6\u6b0a\u9650\u7684\u4f7f\u7528\u8005\u4e4b DN \u548c\u5bc6\u78bc\u3002
+APOC.wiz.placeholder=[\u4e0a\u4e00\u6b65\u7684\u9078\u64c7\u6240\u6c7a\u5b9a\u7684\u6b65\u9a5f\u3002]
+
+APOC.wiz.2.name=\u5132\u5b58\u5eab\u540d\u7a31\uff1a
+APOC.wiz.2.type=\u5132\u5b58\u5eab\u985e\u578b\uff1a
+APOC.wiz.2.ldap=LDAP \u578b\uff1aLDAP \u968e\u5c64\u548c\u5132\u5b58
+APOC.wiz.2.file=\u6a94\u6848\u578b\uff1a\u6a94\u6848\u578b\u968e\u5c64\u548c\u5132\u5b58
+APOC.wiz.2.hybrid=\u6df7\u5408\u578b\uff1aLDAP \u968e\u5c64\u548c\u6a94\u6848\u578b\u5132\u5b58
+APOC.wiz.2.alert=\u8acb\u8f38\u5165\u65b0\u914d\u7f6e\u5132\u5b58\u5eab\u7684\u540d\u7a31\u3002
+APOC.wiz.3.host=\u4e3b\u6a5f\uff1a
+APOC.wiz.3.port=\u9023\u63a5\u57e0\uff1a
+APOC.wiz.3.ssl=\u4f7f\u7528 SSL
+APOC.wiz.3.alert1={0} \u662f\u7121\u6548\u7684 LDAP \u9023\u63a5\u57e0\u865f\u78bc\uff01\u9023\u63a5\u57e0\u865f\u78bc\u5fc5\u9808\u662f\u4ecb\u65bc 0 \u548c 65535 \u4e4b\u9593\u7684\u6574\u6578\u3002
+APOC.wiz.3.alert2=\u7121\u6cd5\u9023\u7dda\u81f3 {0} \u4e0a\u7684 LDAP \u4f3a\u670d\u5668\uff01
+APOC.wiz.4.admin.dn=\u7ba1\u7406\u54e1 DN\uff1a
+APOC.wiz.4.admin.pw=\u7ba1\u7406\u54e1\u5bc6\u78bc\uff1a
+APOC.wiz.4.anon=\u4f7f\u7528\u533f\u540d\u5b58\u53d6
+APOC.wiz.4.user.dn=\u4f7f\u7528\u8005 DN\uff1a
+APOC.wiz.4.user.pw=\u4f7f\u7528\u8005\u5bc6\u78bc\uff1a
+APOC.wiz.4.alert1=\u7121\u6cd5\u4f7f\u7528\u6307\u5b9a\u7684\u5bc6\u78bc\u8a8d\u8b49 {0} \u5230 {1}\uff01
+APOC.wiz.4.alert3={0} \u6c92\u6709\u5f9e {1} \u8b80\u53d6\u7684\u5fc5\u8981\u6b0a\u9650\uff01\u8acb\u63d0\u4f9b\u5177\u6709\u4f3a\u670d\u5668\u8b80\u53d6\u6b0a\u9650\u7684\u4f7f\u7528\u8005\u6191\u8b49\u3002
+APOC.wiz.5.type=LDAP \u4f3a\u670d\u5668\u985e\u578b\uff1a
+APOC.wiz.5.sun=Sun ONE Directory Server
+APOC.wiz.5.openldap=OpenLDAP
+APOC.wiz.5.ad=Active Directory
+APOC.wiz.5.other=\u5176\u4ed6
+APOC.wiz.6.question=\u60a8\u662f\u5426\u8981\u8abf\u6574\u8907\u5408\u914d\u7f6e\uff1a
+APOC.wiz.6.no=\u5426
+APOC.wiz.6.yes=\u662f
+APOC.wiz.7.adapt=\u8abf\u6574\u4ee5\u4e0b\u7684\u8907\u5408\u914d\u7f6e\uff1a
+APOC.wiz.8.basedn=\u9078\u53d6\u57fa\u5e95 DN\uff1a
+APOC.wiz.8.alert=\u57fa\u5e95 DN {0} \u4e0d\u5b58\u5728\u65bc\u4f3a\u670d\u5668 {1} \u4e0a\uff01LDAP \u4f3a\u670d\u5668\u914d\u7f6e\u932f\u8aa4\u3002\u8acb\u91cd\u65b0\u914d\u7f6e\u4f3a\u670d\u5668\u4e26\u91cd\u65b0\u555f\u52d5\u7cbe\u9748\uff01
+APOC.wiz.9.basedn=\u8f38\u5165 LDAP \u4f3a\u670d\u5668\u7684\u57fa\u5e95 DN\u3002
+APOC.wiz.9.alert=\u57fa\u5e95 DN {0} \u4e0d\u5b58\u5728\u65bc\u4f3a\u670d\u5668 {1} \u4e0a\uff01\u8acb\u6aa2\u67e5 LDAP \u4f3a\u670d\u5668\u4e26\u8f38\u5165\u73fe\u6709\u7684\u57fa\u5e95 DN\u3002
+APOC.wiz.10.anonymous=\u533f\u540d
+APOC.wiz.10.vendor=\u4f9b\u61c9\u5546\u540d\u7a31\uff1a
+APOC.wiz.10.metaconfig=\u8907\u5408\u914d\u7f6e\uff1a
+APOC.wiz.10.basedn=\u57fa\u5e95 DN\uff1a
+APOC.wiz.10.path=\u6a94\u6848\u578b\u8cc7\u6599\u76ee\u9304\uff1a
+APOC.wiz.10.migrate=\u9077\u79fb\u8a2d\u5b9a\u6a94\uff1a
+APOC.wiz.10.orgdom.section=\u7db2\u57df\u548c\u7d44\u7e54\u8cc7\u8a0a\uff1a
+APOC.wiz.10.general.section=\u4e00\u822c\u8cc7\u8a0a\uff1a
+APOC.wiz.10.noaction=\u5df2\u70ba Desktop Manager \u5c0d {0} \u4e0a\u73fe\u6709\u7684\u4f3a\u670d\u5668\u9032\u884c\u4e86\u914d\u7f6e\uff0c\u4e0d\u9700\u8981\u4efb\u4f55\u9032\u4e00\u6b65\u7684\u52d5\u4f5c\u3002\u6309\u4e00\u4e0b [\u5b8c\u6210] \u6309\u9215\uff0c\u4ee5\u5b8c\u6210\u5efa\u7acb\u914d\u7f6e\
+\u5132\u5b58\u5eab\u4e26\u5c07\u6b64\u9805\u76ee\u52a0\u5165 [\u914d\u7f6e\u5132\u5b58\u5eab] \u8868\u683c\u4e2d\u3002
+APOC.wiz.10.edit.noaction=\u5df2\u70ba Desktop Manager \u5c0d {0} \u4e0a\u73fe\u6709\u7684\u4f3a\u670d\u5668\u9032\u884c\u4e86\u914d\u7f6e\uff0c\u4e0d\u9700\u8981\u4efb\u4f55\u9032\u4e00\u6b65\u7684\u52d5\u4f5c\u3002\u6309\u4e00\u4e0b [\u5b8c\u6210] \u6309\u9215\u4ee5\u5b8c\u6210\u66f4\u65b0\u914d\u7f6e\u5132\
+\u5b58\u5eab\u7684\u8a73\u7d30\u8cc7\u8a0a\u3002
+APOC.wiz.10.alert=\u5fc5\u9808\u4f7f\u7528 Desktop Manager \u6a21\u5f0f\u624b\u52d5\u5ef6\u4f38 {0} \u4f3a\u670d\u5668\u7684\u6a21\u5f0f\uff0c\u624d\u80fd\u7e7c\u7e8c\u9032\u884c\uff01
+APOC.wiz.10.fail1= - \u66f4\u65b0\u6307\u5b9a\u7684 LDAP \u4f3a\u670d\u5668\u4e4b\u6a21\u5f0f\u5c6c\u6027\u548c\u7269\u4ef6\u985e\u5225\u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.wiz.10.fail2= - \u5728\u6307\u5b9a\u7684 LDAP \u4f3a\u670d\u5668\u4e2d\u5efa\u7acb\u670d\u52d9\u5206\u652f\u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.wiz.10.fail3= - \u5728\u6307\u5b9a\u7684 LDAP \u4f3a\u670d\u5668\u4e2d\u5beb\u5165\u8907\u5408\u914d\u7f6e\u5c6c\u6027\u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.wiz.10.fail4= - \u7121\u6cd5\u5c07 {0} \u5c6c\u6027\u589e\u52a0\u5230\u9805\u76ee {1}\u3002
+APOC.wiz.10.fail5= - \u522a\u9664\u73fe\u6709\u7684\u5b89\u88dd\u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.wiz.10.fail6= - \u66f4\u65b0\u914d\u7f6e\u5132\u5b58\u5eab\u7684\u914d\u7f6e\u6a94\u6848 {0} \u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.wiz.10.fail7=\u8acb\u78ba\u5b9a {0} \u53ef\u901a\u904e\u8a8d\u8b49\u4e26\u5177\u6709 {1} \u7684\u5beb\u5165\u6b0a\u9650\u3002
+APOC.wiz.10.fail8= - \u5efa\u7acb\u9810\u8a2d\u7684\u968e\u5c64\u7d50\u69cb\u6a94\u6848\u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.wiz.10.fail9= - \u5efa\u7acb\u8907\u5408\u914d\u7f6e\u6a94\u6848\u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.wiz.10.fail10= - \u9077\u79fb\u5143\u7d20 {0} \u7684\u8a2d\u5b9a\u6a94\u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.wiz.11.title=\u6210\u529f\u5efa\u7acb\u65b0\u7684\u914d\u7f6e\u5132\u5b58\u5eab
+APOC.wiz.11.text=\u60a8\u73fe\u5728\u53ef\u4ee5\u4f7f\u7528\u525b\u5efa\u7acb\u7684\u65b0\u914d\u7f6e\u5132\u5b58\u5eab\u3002\u82e5\u8981\u5b58\u53d6\u6b64\u65b0\u914d\u7f6e\u5132\u5b58\u5eab\uff0c\u8acb\u5728 [\u914d\u7f6e\u5132\u5b58\u5eab] \u8868\u683c\u4e2d\u6309\u4e00\u4e0b\u8a72\u5132\u5b58\u5eab\u7684\u540d\u7a31\u3002\u5982\u679c\u76ee\u524d\u767b\u5165\u7684\u4f7f\u7528\u8005\u4e0d\u662f\u6b64\u914d\
+\u7f6e\u5132\u5b58\u5eab\u7684\u7ba1\u7406\u54e1\uff0c\u5247\u6703\u63d0\u793a\u60a8\u4f7f\u7528\u6709\u6548\u7684\u7ba1\u7406\u54e1\u6191\u8b49\u767b\u5165\u3002
+APOC.wiz.11.alert.title=\u5efa\u7acb\u65b0\u7684\u914d\u7f6e\u5132\u5b58\u5eab\u5931\u6557
+APOC.wiz.11.edit.title=\u6210\u529f\u66f4\u65b0\u914d\u7f6e\u5132\u5b58\u5eab
+APOC.wiz.11.edit.text=\u60a8\u73fe\u5728\u53ef\u4ee5\u4f7f\u7528\u525b\u66f4\u65b0\u7684\u914d\u7f6e\u5132\u5b58\u5eab\u3002\u82e5\u8981\u5b58\u53d6\u6b64\u65b0\u914d\u7f6e\u5132\u5b58\u5eab\uff0c\u8acb\u5728 [\u914d\u7f6e\u5132\u5b58\u5eab] \u8868\u683c\u4e2d\u6309\u4e00\u4e0b\u8a72\u5132\u5b58\u5eab\u7684\u540d\u7a31\u3002\u5982\u679c\u76ee\u524d\u767b\u5165\u7684\u4f7f\u7528\u8005\u4e0d\u662f\u6b64\u914d\u7f6e\
+\u5132\u5b58\u5eab\u7684\u7ba1\u7406\u54e1\uff0c\u5247\u6703\u63d0\u793a\u60a8\u4f7f\u7528\u6709\u6548\u7684\u7ba1\u7406\u54e1\u6191\u8b49\u767b\u5165\u3002
+APOC.wiz.11.alert.edit.title=\u914d\u7f6e\u5132\u5b58\u5eab\u66f4\u65b0\u5931\u6557
+APOC.wiz.12.alert1={0} \u4e0d\u5b58\u5728\uff01
+APOC.wiz.12.alert2={0} \u4e0d\u662f\u76ee\u9304\uff01
+APOC.wiz.12.alert3=\u7121\u6cd5\u5beb\u5165\u76ee\u9304 {0}\uff01
+APOC.wiz.13.existing=\u9078\u64c7\u52d5\u4f5c\uff1a
+APOC.wiz.13.overwrite=\u8986\u5beb\u73fe\u6709\u7684\u8cc7\u6599\u4e26\u5efa\u7acb\u65b0\u7684\u5b89\u88dd
+APOC.wiz.13.update=\u4fdd\u7559\u73fe\u6709\u7684\u5b89\u88dd\u8cc7\u6599
+APOC.wiz.14.existing=\u9077\u79fb\u8a2d\u5b9a\u6a94\u548c\u6307\u5b9a\u8cc7\u8a0a\uff1a
+APOC.wiz.14.username=\u4f7f\u7528\u8005\u540d\u7a31 (\u5177\u6709\u5beb\u5165\u6b0a\u9650\u7684\u4f7f\u7528\u8005)\uff1a
+APOC.wiz.14.password=\u5bc6\u78bc\uff1a
+APOC.wiz.ldap.err.nosuchattr=LDAP \u7570\u5e38 (16)\uff1a\u627e\u4e0d\u5230\u6307\u5b9a\u7684\u5c6c\u6027\u3002
+APOC.wiz.ldap.err.valueexists=LDAP \u7570\u5e38 (20)\uff1a\u589e\u52a0\u81f3\u5c6c\u6027\u7684\u503c\u5df2\u5b58\u5728\u65bc\u5c6c\u6027\u4e2d\u3002
+APOC.wiz.ldap.err.attrsyntax=LDAP \u7570\u5e38 (21)\uff1a\u8acb\u6c42\u5305\u542b\u7121\u6548\u7684\u8a9e\u6cd5\u3002
+APOC.wiz.ldap.err.nosuchobj=LDAP \u7570\u5e38 (32)\uff1a\u8acb\u6c42\u4e2d\u6307\u5b9a\u7684\u9805\u76ee\u4e0d\u5b58\u5728\u3002
+APOC.wiz.ldap.err.invaliddn=LDAP \u7570\u5e38 (34)\uff1a\u6307\u5b9a\u7684\u8fa8\u5225\u540d\u7a31 (DN) \u4f7f\u7528\u7121\u6548\u7684\u8a9e\u6cd5\u3002
+APOC.wiz.ldap.err.invalidcred=LDAP \u7570\u5e38 (49)\uff1a\u5448\u73fe\u7d66\u4f3a\u670d\u5668\u9032\u884c\u8a8d\u8b49\u7684\u6191\u8b49\u7121\u6548\u3002
+APOC.wiz.ldap.err.noaccessrights=LDAP \u7570\u5e38 (50)\uff1a\u6b64\u7528\u6236\u7aef\u88ab\u8a8d\u8b49\u70ba\u4e0d\u5177\u5099\u57f7\u884c\u6b64\u4f5c\u696d\u4e4b\u5b58\u53d6\u6b0a\u9650\u7684\u4f7f\u7528\u8005\u3002
+APOC.wiz.ldap.err.entryexists=LDAP \u7570\u5e38 (68)\uff1a\u6307\u5b9a\u7684\u9805\u76ee\u5df2\u5b58\u5728\u3002
+APOC.wiz.ldap.err.serverdown=LDAP \u7570\u5e38 (81)\uff1a\u7121\u6cd5\u9023\u7d61 LDAP \u4f3a\u670d\u5668\u3002
+APOC.wiz.ldap.err.timeout=LDAP \u7570\u5e38 (85)\uff1a\u6642\u9593\u9650\u5236\u4e0a\u9650\u5167\u7121\u6cd5\u5b8c\u6210\u8a72\u4f5c\u696d\u3002
+APOC.wiz.ldap.err.connecterror=LDAP \u7570\u5e38 (91)\uff1a\u60a8\u7684 LDAP \u7528\u6236\u7aef\u7121\u6cd5\u9023\u7dda\u81f3 LDAP \u4f3a\u670d\u5668\u3002
+
+#Copy Move Wizard
+APOC.wiz.copy.copymove=\u8907\u88fd\u8207\u79fb\u52d5...
+APOC.wiz.copy.copymove.tooltip=\u8907\u88fd\u6216\u79fb\u52d5\u8a2d\u5b9a\u6a94\u3002
+APOC.wiz.copy.copymove.disabled.tooltip=\u8907\u88fd\u6216\u79fb\u52d5\u8a2d\u5b9a\u6a94 (\u4e0d\u53ef\u7528)\u3002
+APOC.wiz.copy.title=\u8907\u88fd\u8207\u79fb\u52d5\u7cbe\u9748
+APOC.wiz.copy.steptext.1=\u9078\u64c7\u4f86\u6e90\u8a2d\u5b9a\u6a94
+APOC.wiz.copy.steptext.2=\u9078\u64c7\u52d5\u4f5c
+APOC.wiz.copy.steptext.3=\u9078\u64c7\u76ee\u6a19\u5143\u7d20
+APOC.wiz.copy.instruction.1=\u9078\u64c7\u8981\u9032\u884c\u8907\u88fd\u6216\u79fb\u52d5\u4f5c\u696d\u4e4b\u914d\u7f6e\u5132\u5b58\u5eab\u7684\u4f86\u6e90\u914d\u7f6e\u5132\u5b58\u5eab\u53ca\u4f86\u6e90\u8a2d\u5b9a\u6a94\u3002
+APOC.wiz.copy.instruction.2=\u9078\u53d6\u8981\u5728\u6307\u5b9a\u7684\u8a2d\u5b9a\u6a94\u4e0a\u63a1\u53d6\u7684\u52d5\u4f5c\u3002\u9078\u64c7\u662f\u5426\u8981\u5ffd\u7565\u6b64\u8a2d\u5b9a\u6a94\u7684\u6307\u5b9a\u3002
+APOC.wiz.copy.instruction.3=\u9078\u64c7\u8981\u9032\u884c\u8907\u88fd\u6216\u79fb\u52d5\u4f5c\u696d\u4e4b\u914d\u7f6e\u5132\u5b58\u5eab\u7684\u76ee\u6a19\u914d\u7f6e\u5132\u5b58\u5eab\u53ca\u76ee\u6a19\u5143\u7d20\u3002
+APOC.wiz.copy.instruction.4=\u6aa2\u8996\u6240\u8f38\u5165\u7684\u8a2d\u5b9a\u3002\u6309\u4e00\u4e0b [\u5b8c\u6210] \u4ee5\u8907\u88fd/\u79fb\u52d5\u8a72\u8a2d\u5b9a\u6a94\u3002
+APOC.wiz.copy.help.1=<p>\u82e5\u8981\u9078\u64c7\u5305\u542b\u8981\u8907\u88fd/\u79fb\u52d5\u7684\u8a2d\u5b9a\u6a94\u4e4b\u914d\u7f6e\u5132\u5b58\u5eab\uff0c\u8acb\u6309\u4e00\u4e0b [\u8b8a\u66f4...] \u6309\u9215\u4e26\u5f9e\u6e05\u55ae\u4e2d\u9078\u53d6\u6240\u9700\u7684\u914d\u7f6e\u5132\u5b58\u5eab\u3002<\
+/p><p>\u540c\u7406\uff0c\u82e5\u8981\u9078\u64c7\u8981\u8907\u88fd/\u79fb\u52d5\u7684\u8a2d\u5b9a\u6a94\uff0c\u8acb\u6309\u4e00\u4e0b [\u8b8a\u66f4...] \u6309\u9215\u4e26\u5f9e\u6e05\u55ae\u4e2d\u9078\u53d6\u6240\u9700\u7684\u8a2d\u5b9a\u6a94\u3002<\
+/p>
+APOC.wiz.copy.help.2=<p>\u9078\u64c7\u8981\u5728\u6240\u9078\u7684\u8a2d\u5b9a\u6a94\u4e0a\u57f7\u884c\u7684\u52d5\u4f5c\u3002</p><p>\u9078\u64c7\u57f7\u884c\u8a72\u6307\u5b9a\u52d5\u4f5c\u6642\uff0c\u662f\u5426\u8981\u5ffd\u7565\u6b64\u8a2d\u5b9a\u6a94\u73fe\u6709\u7684\u6307\
+\u5b9a\u3002</p>
+APOC.wiz.copy.help.3=<p>\u82e5\u8981\u9078\u64c7\u8981\u8907\u88fd/\u79fb\u52d5\u7684\u914d\u7f6e\u5132\u5b58\u5eab\uff0c\u8acb\u6309\u4e00\u4e0b [\u8b8a\u66f4...] \u6309\u9215\u4e26\u5f9e\u6e05\u55ae\u4e2d\u9078\u53d6\u6240\u9700\u7684\u914d\u7f6e\u5132\u5b58\u5eab\u3002</p>\
+<p>\u540c\u7406\uff0c\u82e5\u8981\u9078\u64c7\u8981\u8907\u88fd/\u79fb\u52d5\u7684\u5143\u7d20\uff0c\u8acb\u6309\u4e00\u4e0b [\u8b8a\u66f4...] \u6309\u9215\u4e26\u5f9e\u6e05\u55ae\u4e2d\u9078\u53d6\u6240\u9700\u7684\u5143\u7d20\u3002</p>
+APOC.wiz.copy.source.context=\u4f86\u6e90\u5132\u5b58\u5eab\uff1a
+APOC.wiz.copy.source.profile=\u4f86\u6e90\u8a2d\u5b9a\u6a94\uff1a
+APOC.wiz.copy.1.alert=\u5fc5\u9808\u9078\u53d6\u4f86\u6e90\u8a2d\u5b9a\u6a94\uff01
+APOC.wiz.copy.2.alert=\u8a8d\u8b49\u7684\u4f7f\u7528\u8005 {0} \u4e0d\u5177\u5099\u79fb\u52d5\u4f86\u6e90\u8a2d\u5b9a\u6a94 {1} \u7684\u5fc5\u8981\u6b0a\u9650\uff01
+APOC.wiz.copy.select.action=\u9078\u53d6\u52d5\u4f5c\uff1a
+APOC.wiz.copy.copy=\u8907\u88fd(P)
+APOC.wiz.copy.move=\u79fb\u52d5
+APOC.wiz.copy.assignments=\u5305\u542b\u6307\u5b9a
+APOC.wiz.copy.target.context=\u76ee\u6a19\u5132\u5b58\u5eab\uff1a
+APOC.wiz.copy.target.entity=\u76ee\u6a19\u5143\u7d20\uff1a
+APOC.wiz.copy.3.alert=\u5fc5\u9808\u9078\u53d6\u76ee\u6a19\u5143\u7d20\uff01
+APOC.wiz.copy.action=\u52d5\u4f5c\uff1a
+APOC.wiz.copy.assignments.assignments=\u5305\u542b\u6307\u5b9a\uff1a
+APOC.wiz.copy.3.alert1=\u5982\u679c\u4f86\u6e90\u5143\u7d20\u548c\u76ee\u6a19\u5143\u7d20\u76f8\u540c\uff0c\u5247\u7121\u6cd5\u79fb\u52d5\u8a2d\u5b9a\u6a94\uff01
+APOC.wiz.copy.3.alert2=\u8a2d\u5b9a\u6a94 {0} \u4e0d\u80fd\u662f {1}\uff01\u76ee\u6a19\u5143\u7d20 {2} \u5df2\u7d93\u5b58\u5728\u76f8\u540c\u540d\u7a31\u7684\u8a2d\u5b9a\u6a94\u3002
+APOC.wiz.copy.3.alert3=\u8a8d\u8b49\u7684\u4f7f\u7528\u8005 {0} \u4e0d\u5177\u5099\u5c07\u8a2d\u5b9a\u6a94 {2} {1} \u5230\u5143\u7d20 {3} \u7684\u5fc5\u8981\u6b0a\u9650\uff01
+APOC.wiz.copy.4.alert=\u8a2d\u5b9a\u6a94 {0} \u4e0d\u80fd\u662f {1}\uff01\u8a72\u8a2d\u5b9a\u6a94\u5df2\u6307\u5b9a\u7d66\u81f3\u5c11\u4e00\u500b\u4f4d\u65bc\u76ee\u6a19\u5143\u7d20 {2} \u4e0a\u65b9\u7684\u5143\u7d20\u3002
+APOC.wiz.copy.copyof=\u8907\u88fd {0} / {1}
+APOC.wiz.copy.overview.title=\u8907\u88fd\u8207\u79fb\u52d5\u7cbe\u9748\u7c21\u4ecb
+APOC.wiz.copy.overview.text=<p>\u8a2d\u5b9a\u6a94\u53ef\u4ee5\u5132\u5b58\u5728\u7d44\u7e54\u968e\u5c64\u5167\u7684\u4efb\u4f55\u5143\u7d20\uff0c[\u8907\u88fd\u8207\u79fb\u52d5\u7cbe\u9748] \u6703\u9010\u6b65\u5f15\u5c0e\u60a8\u5efa\u7acb\u8a2d\u5b9a\u6a94\u7684\u526f\u672c (\u8a72\u526f\u672c\u6703\u5132\u5b58\u5728\u4e0d\u540c\u5143\u7d20\u4e0b\u7684\u65b0\u5132\
+\u5b58\u4f4d\u7f6e\u4e4b\u67d0\u500b\u5143\u7d20\u4e0b)\uff0c\u6216\u5c07\u8a2d\u5b9a\u6a94\u7684\u5132\u5b58\u4f4d\u7f6e\u5f9e\u4e00\u500b\u5143\u7d20\u79fb\u52d5\u81f3\u53e6\u4e00\u500b\u5143\u7d20\u3002\u4f7f\u7528\u8907\u88fd/\u79fb\u52d5\u52d5\u4f5c\u4e2d\u7684 [\u5305\u542b\u6307\u5b9a] \u9078\u9805\u6642\u8981\u6ce8\u610f\u67d0\u4e9b\u9650\u5236\uff0c\u4ea6\u5373\u8a2d\u5b9a\
+\u6a94\u53ea\u80fd\u6307\u5b9a\u7d66\u4f4d\u65bc\u8a72\u8a2d\u5b9a\u6a94\u5132\u5b58\u4f4d\u7f6e\u6216\u5132\u5b58\u4f4d\u7f6e\u4ee5\u4e0b\u7684\u5143\u7d20\u3002\u60a8\u5fc5\u9808\u63d0\u4f9b\uff1a</p><p><ul><\
+li>\u4f86\u6e90\u914d\u7f6e\u5132\u5b58\u5eab\u548c\u4f86\u6e90\u8a2d\u5b9a\u6a94\u3002</li><li>\u8981\u57f7\u884c\u7684\u52d5\u4f5c\uff0c\u4ee5\u53ca\u57f7\u884c\u8a72\u52d5\u4f5c\u6642\u662f\u5426\u4e5f\u8981\u5305\u542b\u8a2d\u5b9a\u6a94\u6307\u5b9a\u3002\
+</li><li>\u76ee\u6a19\u914d\u7f6e\u5132\u5b58\u5eab\u548c\u76ee\u6a19\u5143\u7d20</li></ul></p><\
+p>\u4e00\u65e6\u63d0\u4f9b\u4e86\u4e0a\u8ff0\u8cc7\u8a0a\uff0c\u7cbe\u9748\u4fbf\u6703\u5728\u6240\u9078\u7684\u8a2d\u5b9a\u6a94\u4e0a\u57f7\u884c\u6240\u8acb\u6c42\u7684\u52d5\u4f5c\u3002</p>
+APOC.wiz.copy.steptext.overview= \u7c21\u4ecb
+APOC.wiz.copy.results.text.assigned=\u8a2d\u5b9a\u6a94 {0} \u5df2{1}\u5230\u5143\u7d20 {2} \u7684\u65b0\u5132\u5b58\u4f4d\u7f6e\uff0c\u4e14\u5df2\u6307\u5b9a\u7d66\u6b64\u5143\u7d20\u3002
+APOC.wiz.copy.results.text.unassigned=\u8a2d\u5b9a\u6a94 {0} \u5df2{1}\u5230\u5143\u7d20 {2} \u7684\u65b0\u5132\u5b58\u4f4d\u7f6e\u3002
+APOC.wiz.copy.results.title=\u8a2d\u5b9a\u6a94{0}\u6210\u529f
+APOC.wiz.copy.results.alert.title=\u8a2d\u5b9a\u6a94{0}\u5931\u6557
+APOC.wiz.copy.results.copied=\u5df2\u8907\u88fd
+APOC.wiz.copy.results.moved=\u5df2\u79fb\u52d5
+APOC.wiz.copy.results.copied.lc=\u5df2\u8907\u88fd
+APOC.wiz.copy.results.moved.lc=\u5df2\u79fb\u52d5
+APOC.wiz.copy.4.fail1=\u8907\u88fd\u8a2d\u5b9a\u6a94\u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.wiz.copy.4.fail2=\u522a\u9664\u8a2d\u5b9a\u6a94\u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.wiz.copy.4.fail3=\u8a2d\u5b9a\u65b0\u7684\u8a2d\u5b9a\u6a94\u986f\u793a\u540d\u7a31\u6642\u767c\u751f\u932f\u8aa4\u3002
+APOC.wiz.copy.4.fail4=\u6307\u5b9a\u65b0\u7684\u8a2d\u5b9a\u6a94\u7d66\u76ee\u6a19\u5143\u7d20\u6642\u767c\u751f\u932f\u8aa4\u3002
+
+# Browse Tree
+APOC.browse.title.org=\u9078\u53d6\u7d44\u7e54
+APOC.browse.title.dom=\u9078\u53d6\u7db2\u57df
+APOC.browse.title=\u9078\u53d6\u5143\u7d20
+APOC.browse.title.text=\u700f\u89bd\u6a39\u72c0\u7d50\u69cb\u4e26\u9078\u53d6\u60f3\u8981\u7684\u5143\u7d20\u3002\u6309\u4e00\u4e0b [\u78ba\u5b9a] \u6309\u9215\u4ee5\u78ba\u8a8d\u9078\u53d6\u3002
+APOC.browse.cancel.help=\u53d6\u6d88\u9078\u53d6\u4e26\u95dc\u9589\u8996\u7a97\u3002
+APOC.browse.ok.help=\u78ba\u8a8d\u9078\u53d6\u4e26\u95dc\u9589\u8996\u7a97\u3002
+APOC.browse.tree.nav=\u6a39\u72c0\u7d50\u69cb\u700f\u89bd
+
+#*******************************************************************************
+# Syncronization
+#*******************************************************************************
+APOC.sync.title=\u540c\u6b65
+APOC.sync.help=\u6b64\u9801\u9762\u53ef\u8b93\u60a8\u540c\u6b65\u5169\u500b\u300c\u914d\u7f6e\u5132\u5b58\u5eab\u300d\u3002
+APOC.sync.sourcerep.label=\u4f86\u6e90\u914d\u7f6e\u5132\u5b58\u5eab\uff1a
+APOC.sync.sourcerep.help=\u53ef\u7528\u914d\u7f6e\u5132\u5b58\u5eab\u7684\u529f\u80fd\u8868\u3002
+APOC.sync.sourcepath.label=\u4f86\u6e90\u8d77\u59cb\u9ede\uff1a
+APOC.sync.sourcepath.button=\u8b8a\u66f4...
+APOC.sync.sourcepath.help=\u958b\u555f\u53ef\u8b8a\u66f4\u4f86\u6e90\u74b0\u5883\u8def\u5f91\u7684\u8996\u7a97\u3002
+APOC.sync.targetrep.label=\u76ee\u6a19\u914d\u7f6e\u5132\u5b58\u5eab\uff1a
+APOC.sync.targetrep.help=\u53ef\u7528\u914d\u7f6e\u5132\u5b58\u5eab\u7684\u529f\u80fd\u8868\u3002
+APOC.sync.targetpath.label=\u76ee\u6a19\u8d77\u59cb\u9ede\uff1a
+APOC.sync.targetpath.button=\u8b8a\u66f4...
+APOC.sync.targetpath.help=\u958b\u555f\u53ef\u8b8a\u66f4\u76ee\u6a19\u74b0\u5883\u8def\u5f91\u7684\u8996\u7a97\u3002
+APOC.sync.sync.button=\u540c\u6b65
+APOC.sync.sync.help=\u6839\u64da\u6240\u9078\u53d6\u7684\u52d5\u4f5c\u540c\u6b65\u6240\u5217\u51fa\u7684\u8a2d\u5b9a\u6a94\u3002
+APOC.sync.reset.button=\u91cd\u8a2d
+APOC.sync.reset.help=\u5c07\u52d5\u4f5c\u91cd\u8a2d\u70ba Configuration Manager \u5efa\u8b70\u7684\u9810\u8a2d\u52d5\u4f5c\u3002
+APOC.sync.cancel.help=\u95dc\u9589\u6b64\u8996\u7a97\u3002
+APOC.sync.login.title=\u74b0\u5883\u767b\u5165
+APOC.sync.login.pagetitle=\u767b\u5165 - \u4f86\u6e90\u914d\u7f6e\u5132\u5b58\u5eab
+APOC.sync.login.pagetitle2=\u767b\u5165 - \u76ee\u6a19\u914d\u7f6e\u5132\u5b58\u5eab
+APOC.sync.login.pagehelp=Configuration Manager \u53ef\u8b93\u60a8\u7ba1\u7406\u591a\u500b\u9700\u8981\u500b\u5225\u767b\u5165\u7684\u914d\u7f6e\u5132\u5b58\u5eab\u3002\u5982\u679c\u7528\u4ee5\u767b\u5165 Java Web Console \u7684\u6191\u8b49\
+\u53ef\u4ee5\u91cd\u8907\u4f7f\u7528\uff0c\u5247\u6703\u8a2d\u70ba\u9810\u8a2d\u503c\u3002\u5982\u679c\u60a8\u5df2\u7d93\u5728\u6b64\u968e\u6bb5\u4f5c\u696d\u671f\u9593\u6210\u529f\u901a\u904e\u914d\u7f6e\u5132\u5b58\u5eab\u7684\u8a8d\u8b49\uff0c\u5247\u4e0d\u6703\u51fa\u73fe\u6b64\u767b\u5165\u9801\u9762\u3002\u5982\u679c\u60a8\u60f3\u4f7f\u7528\u4e0d\u540c\u7684\u6191\u8b49\u767b\u5165\u914d\u7f6e\u5132\u5b58\
+\u5eab\uff0c\u5247\u9700\u8981\u767b\u51fa Java Web Console\uff0c\u7d50\u675f\u968e\u6bb5\u4f5c\u696d\u3002
+APOC.sync.compare.button=\u6bd4\u8f03
+APOC.sync.compare.help=\u6bd4\u8f03\u4f86\u6e90\u548c\u76ee\u6a19\u3002
+APOC.sync.result.empty=\u627e\u4e0d\u5230\u5dee\u7570\u3002
+APOC.sync.result.summary=\u6b64\u8868\u683c\u5217\u51fa\u4f86\u6e90\u914d\u7f6e\u5132\u5b58\u5eab\u548c\u76ee\u6a19\u914d\u7f6e\u5132\u5b58\u5eab\u4e4b\u9593\u7684\u5dee\u7570\u3002
+APOC.sync.result.title=\u8a2d\u5b9a\u6a94
+APOC.sync.result.title2=\u4e0d\u540c\u7684\u8a2d\u5b9a\u6a94
+APOC.sync.result.help0=\u95dc\u65bc\u540c\u6b65
+APOC.sync.result.help1=\u6b64\u8996\u7a97\u53ef\u8b93\u60a8\u540c\u6b65\u5169\u500b\u914d\u7f6e\u5132\u5b58\u5eab\u3002
+APOC.sync.result.help2=\u60a8\u53ef\u4ee5\u8b8a\u66f4\u4f5c\u70ba\u8b8a\u66f4\u4f86\u6e90\u7684\u4f86\u6e90\u5132\u5b58\u5eab\u3002\u6b64\u5132\u5b58\u5eab\u4e0d\u6703\u8b8a\u66f4\u3002\u6216\u8005\u60a8\u53ef\u4ee5\u6307\u5b9a\u6839\u4ee5\u5916\u7684\u5143\u7d20\u4f5c\u70ba\u540c\u6b65\u7684\u8d77\u59cb\u9ede\uff0c\u4ee5\u9650\u5236\u4f86\u6e90\u5132\u5b58\u5eab\u3002
+APOC.sync.result.help3=\u60a8\u53ef\u4ee5\u8b8a\u66f4\u4f5c\u70ba\u8b8a\u66f4\u76ee\u6a19\u7684\u76ee\u6a19\u5132\u5b58\u5eab\u3002\u6b64\u5132\u5b58\u5eab\u6703\u8b8a\u66f4\u3002\u6216\u8005\u60a8\u53ef\u4ee5\u6307\u5b9a\u6839\u4ee5\u5916\u7684\u5143\u7d20\u4f5c\u70ba\u540c\u6b65\u7684\u8d77\u59cb\u9ede\uff0c\u4ee5\u9650\u5236\u76ee\u6a19\u5132\u5b58\u5eab\u3002
+APOC.sync.result.help4=\u6307\u5b9a\u4f86\u6e90\u548c\u76ee\u6a19\u6a39\u72c0\u7d50\u69cb\u4e4b\u5f8c\uff0c\u6309\u4e00\u4e0b [\u6bd4\u8f03] \u6309\u9215\uff0c\u5373\u6703\u6bd4\u8f03\u5169\u500b\u6a39\u72c0\u7d50\u69cb\uff0c\u4e26\u5728\u8868\u683c\u4e2d\u5217\u51fa\u6240\u6709\u5dee\u7570\u3002\u5728\u8868\u683c\u4e2d\u52fe\u9078\u5305\u542b\u8981\u540c\u6b65\u7684\u8a2d\u5b9a\u6a94\u4e4b\u5217\uff0c\u7136\u5f8c\
+\u6309 [\u540c\u6b65] \u6309\u9215\u3002
+APOC.sync.result.help5=\u540c\u6b65\u5b8c\u6210\u6642\uff0c\u76ee\u6a19\u5132\u5b58\u5eab\u8207\u4f86\u6e90\u5132\u5b58\u5eab\u4e2d\u6240\u9078\u53d6\u7684\u8a2d\u5b9a\u6a94\u6703\u76f8\u7b26\u3002
+APOC.sync.busymsg.text=\u8655\u7406\u4e2d...
+APOC.sync.result.column1=\u8a2d\u5b9a\u6a94
+APOC.sync.result.column2=\u76ee\u6a19\u5132\u5b58\u5eab\u7684\u52d5\u4f5c
+APOC.sync.action.copycontent=\u8907\u88fd\u5167\u5bb9\u3002
+APOC.sync.action.copycomment=\u8907\u88fd\u8a3b\u91cb\u3002
+APOC.sync.action.alignassign=\u5c0d\u9f4a\u6307\u5b9a\u3002
+APOC.sync.action.changeprios=\u8b8a\u66f4\u512a\u5148\u6b0a\u3002
+APOC.sync.action.create=\u5efa\u7acb\u5177\u5099\u5167\u5bb9\u548c\u6307\u5b9a\u7684\u8a2d\u5b9a\u6a94\u3002
+APOC.sync.action.delete=\u522a\u9664\u8a2d\u5b9a\u6a94\u3002
+APOC.sync.msg.orgdomcomapre=\u60a8\u7121\u6cd5\u6bd4\u8f03\u7d44\u7e54\u6a39\u72c0\u7d50\u69cb\u548c\u7db2\u57df\u6a39\u72c0\u7d50\u69cb\u3002
+APOC.sync.msg.noprofiles=\u627e\u4e0d\u5230\u8a2d\u5b9a\u6a94\u3002
+APOC.sync.msg.allequal=\u6240\u6709\u6bd4\u8f03\u7684\u8a2d\u5b9a\u6a94\u5747\u76f8\u540c\uff0c\u7121\u9700\u9032\u884c\u540c\u6b65\u3002
+APOC.sync.msg.nocompare=\u5df2\u627e\u5230\u8a2d\u5b9a\u6a94\uff0c\u4f46\u662f\u7121\u6cd5\u91dd\u5c0d\u5176\u4e2d\u4efb\u4f55\u8a2d\u5b9a\u6a94\u9032\u884c\u6bd4\u8f03\u3002
+APOC.sync.msg.partialcompare=\u627e\u5230\u7684\u8a2d\u5b9a\u6a94\u4e2d\u81f3\u5c11\u6709\u4e00\u500b\u7121\u6cd5\u9032\u884c\u6bd4\u8f03\u3002
+APOC.sync.msg.compare.detail=\u8981\u9032\u884c\u6bd4\u8f03\u7684\u8a2d\u5b9a\u6a94\uff0c\u5176\u5f9e\u8d77\u59cb\u9ede\u5230\u5132\u5b58\u4f4d\u7f6e\u7684\u76f8\u5c0d\u8def\u5f91\uff0c\u5fc5\u9808\u4f4d\u5728\u5176\u4ed6\u5132\u5b58\u5eab\u4e2d\u3002
+APOC.sync.waitmsg.prepare=\u6e96\u5099\u4e2d
+APOC.sync.waitmsg.retsource=\u6b63\u5728\u64f7\u53d6\u4f86\u6e90\u8a2d\u5b9a\u6a94
+APOC.sync.waitmsg.rettarget=\u6b63\u5728\u64f7\u53d6\u76ee\u6a19\u8a2d\u5b9a\u6a94
+APOC.sync.waitmsg.prepx=\u6b63\u5728\u6e96\u5099\u6bd4\u8f03\u8a2d\u5b9a\u6a94 (\u5df2\u6e96\u5099 {0} \u500b\u8a2d\u5b9a\u6a94)
+APOC.sync.waitmsg.compx=\u6b63\u5728\u6bd4\u8f03\u8a2d\u5b9a\u6a94 (\u5df2\u6bd4\u8f03 {0} \u500b\u8a2d\u5b9a\u6a94\uff0c\u5171 {1} \u500b\u8a2d\u5b9a\u6a94)
+APOC.sync.waitmsg.sync=\u6b63\u5728\u540c\u6b65\u5316\u8a2d\u5b9a\u6a94 (\u5df2\u540c\u6b65\u5316 {0} \u500b\u8a2d\u5b9a\u6a94\uff0c\u5171 {1} \u500b\u8a2d\u5b9a\u6a94)
+APOC.sync.waitmsg.time=\u5df2\u7528\u6642\u9593\uff1a{0}:{1}.{2}
+
+APOC.tabs.tree.title=\u8a2d\u5b9a\u6a94 - \u6a39\u72c0\u7d50\u69cb\u6aa2\u8996
+APOC.tabs.tree.help=\u5728\u7d44\u7e54\u548c\u7db2\u57df\u6a39\u72c0\u7d50\u69cb\u4e2d\u986f\u793a\u6307\u5b9a\u7684\u8a2d\u5b9a\u6a94\u3002
+APOC.tabs.all.title=\u8a2d\u5b9a\u6a94 - \u5168\u90e8
+APOC.tabs.all.help=\u986f\u793a\u6240\u6709\u8a2d\u5b9a\u6a94\u7684\u6e05\u55ae\u3002
+
+APOC.find.title=\u5c0b\u627e
+APOC.find.button=\u5c0b\u627e
+
+#*******************************************************************************
+# Contexts
+#*******************************************************************************
+APOC.contexts.title=\u914d\u7f6e\u5132\u5b58\u5eab
+APOC.contexts.details.title=\u914d\u7f6e\u5132\u5b58\u5eab\u8a73\u7d30\u8cc7\u8a0a
+APOC.contexts.details.name=\u5132\u5b58\u5eab\u540d\u7a31
+APOC.contexts.details.domorg.info=\u7db2\u57df/\u7d44\u7e54\u8cc7\u8a0a\u7684\u4f4d\u7f6e
+APOC.contexts.details.domorg.profile.info=\u7db2\u57df/\u7d44\u7e54\u8cc7\u6599\u7684\u5132\u5b58\u4f4d\u7f6e
+APOC.contexts.details.property=\u7279\u6027
+APOC.contexts.details.view=\u6aa2\u8996\u8a73\u7d30\u8cc7\u8a0a
+APOC.contexts.help=\u914d\u7f6e\u5132\u5b58\u5eab\u662f\u914d\u7f6e\u61c9\u7528\u7a0b\u5f0f\u6240\u9700\u7684\u914d\u7f6e\u8cc7\u6599\u4e4b\u5132\u5b58\u4f4d\u7f6e\u3002
+APOC.contexts.table.title=\u914d\u7f6e\u5132\u5b58\u5eab
+APOC.contexts.config.error=\u7121\u6cd5\u5b58\u53d6\u6240\u9078\u7684\u5132\u5b58\u5eab\u3002\u914d\u7f6e\u6a94 {0} \u4e2d\u51fa\u73fe\u8a9e\u6cd5\u932f\u8aa4\u3002
+APOC.contexts.table.summary=\u6b64\u8868\u683c\u5217\u51fa\u6240\u6709\u53ef\u7528\u7684\u914d\u7f6e\u5132\u5b58\u5eab\u3002[\u985e\u578b] \u6b04\u4f4d\u5217\u51fa\u5132\u5b58\u5eab\u7684\u985e\u578b\u3002[\u7d44\u7e54\u8cc7\u6599\u7684\u4f4d\u7f6e] \u6b04\u4f4d\u5217\u51fa\u6307\u5411\u63d0\u4f9b\u7d44\u7e54\u8cc7\u6599\u7684\u5132\u5b58\u4f4d\u7f6e\u4e4b URL\u3002[\u8a2d\u5b9a\u6a94\
+\u8cc7\u6599\u7684\u4f4d\u7f6e] \u6b04\u4f4d\u5217\u51fa\u6307\u5411\u63d0\u4f9b\u8a2d\u5b9a\u6a94\u8cc7\u6599\u7684\u5132\u5b58\u4f4d\u7f6e\u4e4b URL\u3002\u5728\u540d\u7a31\u9023\u7d50\u4e0a\u6309\u4e00\u4e0b\u5373\u53ef\u4f7f\u7528\u8a72\u300c\u914d\u7f6e\u5132\u5b58\u5eab\u300d\u3002
+APOC.contexts.details.table.summary=\u6b64\u8868\u683c\u5217\u51fa\u6240\u9078\u914d\u7f6e\u5132\u5b58\u5eab\u7684\u7279\u6027\u3002\u5176\u4e2d\u5217\u51fa\u540d\u7a31\u3001\u968e\u5c64\u8cc7\u8a0a\u7684\u4f4d\u7f6e\u548c\u5132\u5b58\u8cc7\u8a0a\u7684\u4f4d\u7f6e\u3002
+APOC.contexts.table.empty=\u6c92\u6709\u53ef\u7528\u7684\u914d\u7f6e\u5132\u5b58\u5eab\uff0c\u8acb\u4f7f\u7528 [\u65b0\u589e...] \u6309\u9215\u5efa\u7acb\u65b0\u914d\u7f6e\u5132\u5b58\u5eab\u3002
+APOC.contexts.menu.create=\u5efa\u7acb...
+APOC.contexts.menu.remove=\u79fb\u9664...
+APOC.contexts.menu.rename=\u91cd\u65b0\u547d\u540d...
+APOC.contexts.menu.synchronize=\u540c\u6b65\u5316...
+APOC.contexts.column.name=\u540d\u7a31
+APOC.contexts.column.type=\u985e\u578b
+APOC.contexts.column.locorg=\u7d44\u7e54\u8cc7\u6599\u7684\u4f4d\u7f6e
+APOC.contexts.column.locpro=\u8a2d\u5b9a\u6a94\u8cc7\u6599\u7684\u4f4d\u7f6e
+APOC.contexts.hybrid.text=\u6df7\u5408\u578b
+APOC.contexts.create.button=\u5efa\u7acb\u914d\u7f6e\u5132\u5b58\u5eab
+APOC.contexts.login.context=\u914d\u7f6e\u5132\u5b58\u5eab\uff1a
+APOC.contexts.login.title=\u914d\u7f6e\u5132\u5b58\u5eab - \u767b\u5165
+APOC.contexts.login.help=Configuration Manager \u53ef\u8b93\u60a8\u7ba1\u7406\u591a\u500b\u9700\u8981\u500b\u5225\u767b\u5165\u7684\u914d\u7f6e\u5132\u5b58\u5eab\u3002\u5982\u679c\u7528\u4ee5\u767b\u5165 Java Web Console \u7684\u6191\u8b49\
+\u53ef\u4ee5\u91cd\u8907\u4f7f\u7528\uff0c\u5247\u6703\u8a2d\u70ba\u9810\u8a2d\u503c\u3002\u5982\u679c\u60a8\u5df2\u7d93\u5728\u6b64\u968e\u6bb5\u4f5c\u696d\u671f\u9593\u6210\u529f\u901a\u904e\u914d\u7f6e\u5132\u5b58\u5eab\u7684\u8a8d\u8b49\uff0c\u5247\u4e0d\u6703\u51fa\u73fe\u6b64\u767b\u5165\u9801\u9762\u3002\u5982\u679c\u60a8\u60f3\u4f7f\u7528\u4e0d\u540c\u7684\u6191\u8b49\u767b\u5165\u914d\u7f6e\u5132\u5b58\
+\u5eab\uff0c\u5247\u9700\u8981\u767b\u51fa Java Web Console\uff0c\u7d50\u675f\u968e\u6bb5\u4f5c\u696d\u3002
+APOC.select.contexts.login.help=\u70ba\u4e86\u9078\u53d6\u65b0\u7684\u914d\u7f6e\u5132\u5b58\u5eab\uff0c\u60a8\u5fc5\u9808\u63d0\u4f9b\u65b0\u7684\u767b\u5165\u6191\u8b49\u3002\u5982\u679c\u9078\u64c7\u7684\u5132\u5b58\u5eab\u6709\u5148\u524d\u7528\u4f86\u767b\u5165\u7684\u6191\u8b49\uff0c\u5247\u9810\u8a2d\u6703\u4f7f\u7528\u8a72\u6191\u8b49\u3002
+APOC.relocate.error.summary=\u4f5c\u696d\u5df2\u53d6\u6d88\uff01
+APOC.relocate.error.detail=\u6b64\u8a2d\u5b9a\u6a94\u6307\u5b9a\u5230\u7684\u7d44\u7e54\u548c\u7db2\u57df\u81f3\u5c11\u6709\u4e00\u500b\u6703\u4f4d\u5728\u8a72\u8a2d\u5b9a\u6a94\u65b0\u4f4d\u7f6e\u7684\u4e0a\u65b9\u3002
+APOC.relocate.trace.text=\u6c92\u6709\u53ef\u7528\u7684\u5806\u758a\u8ffd\u8e64\u3002
+
diff --git a/src/com/sun/apoc/manager/settings/ColorChooserTag.java b/src/com/sun/apoc/manager/settings/ColorChooserTag.java
new file mode 100644
index 0000000..9492563
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/ColorChooserTag.java
@@ -0,0 +1,375 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import java.net.URLEncoder;
+import java.util.StringTokenizer;
+import java.util.LinkedList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.Arrays;
+import java.util.HashMap;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.tagext.Tag;
+
+import com.iplanet.jato.util.NonSyncStringBuffer;
+import com.iplanet.jato.view.View;
+
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.taglib.common.CCDisplayFieldTagBase;
+
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.cfgtree.policynode.PolicyNode;
+import com.sun.apoc.spi.cfgtree.property.Property;
+import com.sun.apoc.spi.cfgtree.PolicyTree;
+
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.manager.settings.ColorChooserView;
+import com.sun.apoc.manager.settings.SectionModel;
+import com.sun.apoc.manager.ProfileWindowFramesetViewBean;
+
+
+
+
+public class ColorChooserTag extends CCDisplayFieldTagBase {
+
+ public static final String[] colorNames = {
+ "lightsalmon", "salmon", "redlight", "red", "darkred", "redbrown", "redblack",
+ "black",
+ "lightlemon", "lemon", "yellowlight", "yellow", "darkyellow", "yellowbrown", "yellowblack",
+ "nearlyblack",
+ "lightlime", "lime", "greenlight", "green", "darkgreen", "greenbrown", "greenblack",
+ "lightestblack",
+ "lightbabyblue", "babyblue", "brightbluelight", "brightblue", "darkbrightblue", "brightbluebrown", "brightblueblack",
+ "darkgrey",
+ "lightpurpleblue", "purpleblue", "bluelight", "blue", "darkblue", "bluebrown", "blueblack",
+ "lightgrey",
+ "lightbabypink", "babypink", "pinklight", "pink", "darkpink", "pinkbrown", "pinkblack",
+ "white"};
+ public static final String[] hexColors = {
+ "#ffc0c0", "#ff8080", "#ff4040", "#ff0000", "#c00000", "#800000", "#400000", "#000000",
+ "#ffffc0", "#ffff80", "#ffff40", "#ffff00", "#c0c000", "#808000", "#404000", "#202020",
+ "#c0ffc0", "#80ff80", "#40ff40", "#00ff00", "#00c000", "#008000", "#004000", "#404040",
+ "#c0ffff", "#80ffff", "#40ffff", "#00ffff", "#00c0c0", "#008080", "#004040", "#808080",
+ "#c0c0ff", "#8080ff", "#4040ff", "#0000ff", "#0000c0", "#000080", "#000040", "#c0c0c0",
+ "#ffc0ff", "#ff80ff", "#ff40ff", "#ff00ff", "#c000c0", "#800080", "#400040", "#ffffff"};
+
+ private boolean m_isValueSet = true;
+
+ public ColorChooserTag() {
+ super();
+ }
+
+ protected String getHTMLStringInternal(Tag parent, PageContext pageContext,
+ View view) throws JspException {
+ if (parent == null) {
+ throw new IllegalArgumentException("parent cannot be null.");
+ } else if (pageContext == null) {
+ throw new IllegalArgumentException("pageContext cannot be null.");
+ } else if (view == null) {
+ throw new IllegalArgumentException("view cannot be null.");
+ }
+
+ checkChildType(view, ColorChooserView.class);
+ ColorChooserView field = (ColorChooserView) view;
+ CCI18N i18N = new CCI18N(pageContext, "apocBundle");
+ String notSet = SectionModel.getUndefinedValue();
+
+ setParent(parent);
+ setPageContext(pageContext);
+ // get value
+ String value = (String) field.getValue();
+
+ NonSyncStringBuffer buffer =
+ new NonSyncStringBuffer(DEFAULT_BUFFER_SIZE);
+
+ String forId = field.getQualifiedName();
+ String qualNameEncoded = URLEncoder.encode(forId);
+
+ // color chooser area
+ buffer.append("<table title=\"\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
+ buffer.append("<tr>\r\n");
+ // editable textfield for normal use
+ if (field.isEnabled()) {
+ StringBuffer buffer2 = new StringBuffer();
+ buffer2.append("javascript: var qualName='")
+ .append(qualNameEncoded)
+ .append("'; ")
+ .append("setTimeout('updateSaveStatus(this.name), 0')")
+ .append("; setTimeout(toggleOverwriteCheckbox(this), 0);");
+
+
+ buffer.append("<td valign=\"top\" style=\"border:none;padding:0px\">");
+ buffer.append("<input name=\"")
+ .append(field.getQualifiedName()).append("\"");
+ buffer.append(" type=\"text\" value=\"").append(value).append("\"");
+ buffer.append(" size=\"15\" onChange=\"")
+ .append(buffer2.toString())
+ .append(" checkValidHexValue(this.name, qualName);\" ")
+ .append("onKeyPress=\"")
+ .append(buffer2.toString())
+ .append("\" id=\"newColor")
+ .append(qualNameEncoded).append("\" />");
+ } else {
+ // readonly gets a text field
+ buffer.append("<td valign=\"bottom\" style=\"border:none;padding:0px\">");
+ buffer.append(value);
+ }
+ buffer.append("</td>\r\n");
+ // Space between value and color square
+ buffer.append("<td valign=\"top\" style=\"border:none;padding:0px\">");
+ buffer.append("<img src=\"/com_sun_web_ui/images/other/dot.gif\" alt=\"\" border=\"0\" height=\"1\" width=\"10\"/>");
+ buffer.append("</td>\r\n");
+ // color square
+ buffer.append("<td valign=\"top\" style=\"border:none;padding:0px;background-color:")
+ .append(value)
+ .append(";\" ");
+ buffer.append("id=\"colorsquare")
+ .append(qualNameEncoded);
+ buffer.append("\" height=\"20\" width=\"29\" border=\"0\">");
+ buffer.append("<img src=\"/com_sun_web_ui/images/other/dot.gif\" alt=\"\" border=\"0\" height=\"20\" width=\"29\"/>");
+ buffer.append("</td>\r\n");
+ //Space between color square and drop down menu
+ buffer.append("<td valign=\"top\" style=\"border:none;padding:0px\">");
+ buffer.append("<img src=\"/com_sun_web_ui/images/other/dot.gif\" alt=\"\" border=\"0\" height=\"1\" width=\"10\"/>");
+ buffer.append("</td>\r\n");
+
+ if (field.isEnabled()) {
+ // Drop down name menu
+ buffer.append("<td valign=\"top\" style=\"border:none;padding:0px\">");
+ buffer.append("<select name=\"")
+ .append(field.getQualifiedName().substring(0, field.getQualifiedName().lastIndexOf(".")).concat(".ColorNameDropDown"))
+ .append("\" ");
+ buffer.append("id=\"colorNameDropDown")
+ .append(qualNameEncoded).append("\"");
+ buffer.append(" onChange=\"javascript:setFromDropDown('")
+ .append(qualNameEncoded).append("');\">\n");
+
+ // Check to see if names are stored in the backend
+ try {
+ // Get the Hex values as well so that the current value can be
+ // found in the hex values list and displayed as the selected
+ // name
+ String nameColorList = null;
+ // nameColorArray is of length +2 beacuse need to add the 'not set'
+ // option and the 'no name' option
+ String[] nameColorArray = new String[colorNames.length+2];
+ String hexColorList = null;
+ String[] hexColorArray = null;
+ String localizedNoName = i18N.getMessage("APOC.setcolor.noname") ;
+ PolicyManager pmgr = Toolbox2.getPolicyManager();
+ PolicyMgrHelper pmgrHelper = ProfileWindowFramesetViewBean.getProfileHelper();
+
+ Property nameProp = pmgrHelper.getProperty("com.sun.apoc.manager" +
+ PolicyTree.PATH_SEPARATOR +
+ "colorlistName");
+ Property hexProp = pmgrHelper.getProperty("com.sun.apoc.manager" +
+ PolicyTree.PATH_SEPARATOR +
+ "colorlistHex");
+ if (nameProp != null) {
+ nameColorList = nameProp.getValue();
+ nameColorList = notSet + ";" + localizedNoName + ";" + nameColorList;
+ nameColorArray = nameColorList.split(";");
+ } else {
+ nameColorArray[0] = notSet ;
+ nameColorArray[1] = localizedNoName ;
+ System.arraycopy(colorNames, 0, nameColorArray, 2, colorNames.length);
+ }
+ if (hexProp != null) {
+ hexColorList = hexProp.getValue();
+ hexColorArray = hexColorList.split(";");
+ } else {
+ hexColorArray = hexColors;
+ }
+ boolean selectedHasName = false;
+ // To sort put them into a hashmap so that the names relate to the
+ // hex values #b5056344
+ HashMap nameHex = new HashMap(nameColorArray.length);
+ nameHex.put((String)nameColorArray[0], (String)nameColorArray[0]);
+ nameHex.put((String)nameColorArray[1], "");
+ for (int i = 2; i<nameColorArray.length; i++) {
+ nameHex.put((String)nameColorArray[i], (String)hexColorArray[i-2]);
+ }
+
+ Arrays.sort(nameColorArray, 2, nameColorArray.length);
+ StringBuffer optionsBuffer = new StringBuffer();
+ if(m_isValueSet) {
+ for (int j = 2; j<nameColorArray.length; j++) {
+ String lowercasehex = null;
+ String name = nameColorArray[j];
+
+ lowercasehex = ((String)nameHex.get(name)).toLowerCase();
+
+ // need to get the location in the hex array where the current
+ // value is stored and set that location to be selected in the
+ // names drop down
+ if (!name.equals("") && name != null) {
+ optionsBuffer.append("<option value=\"");
+ if (lowercasehex.equals(value.toLowerCase())) {
+ optionsBuffer.append(lowercasehex)
+ .append("\" selected >");
+ selectedHasName = true;
+ } else {
+ optionsBuffer.append(lowercasehex)
+ .append("\">");
+ }
+ optionsBuffer.append(name);
+ optionsBuffer.append("</option>\n");
+ }
+ }
+ StringBuffer tempBuffer = new StringBuffer();
+ tempBuffer.append("<option value=\"")
+ .append(nameColorArray[0])
+ .append("\">") ;
+ tempBuffer.append(nameColorArray[0]);
+ tempBuffer.append("</option>\n");
+ tempBuffer.append("<option value=\"");
+ if (selectedHasName) {
+ tempBuffer.append("\">") ;
+ } else {
+ tempBuffer.append("\" selected >");
+ }
+ tempBuffer.append(nameColorArray[1]);
+ tempBuffer.append("</option>\n");
+ optionsBuffer.insert(0, tempBuffer.toString());
+ } else {
+ optionsBuffer.append("<option value=\"")
+ .append(nameColorArray[0])
+ .append("\" selected >") ;
+ optionsBuffer.append(nameColorArray[0]);
+ optionsBuffer.append("</option>\n");
+ optionsBuffer.append("<option value=\"")
+ .append("\">") ;
+ optionsBuffer.append(nameColorArray[1]);
+ optionsBuffer.append("</option>\n");
+ for (int j = 2; j<nameColorArray.length; j++) {
+ String lowercasehex = null;
+ String name = nameColorArray[j];
+
+ lowercasehex = ((String)nameHex.get(name)).toLowerCase();
+
+ // need to get the location in the hex array where the current
+ // value is stored and set that location to be selected in the
+ // names drop down
+ if (!name.equals("") && name != null) {
+ optionsBuffer.append("<option value=\"");
+ optionsBuffer.append(lowercasehex)
+ .append("\">");
+ }
+ optionsBuffer.append(name);
+ optionsBuffer.append("</option>\n");
+ }
+ }
+ buffer.append(optionsBuffer.toString());
+ } catch (SPIException re) {
+ CCDebug.trace1("RegistryException caught: "+re);
+ }
+ buffer.append("</select>");
+ buffer.append("</td>\r\n");
+
+ // original value field
+ buffer.append("<input name=\"")
+ .append(field.getQualifiedName().substring(0, field.getQualifiedName().lastIndexOf(".")).concat(".OriginalValue"))
+ .append("\" type=\"hidden\"")
+ .append("value=\"")
+ .append(value)
+ .append("\" />");
+
+ // Space between drop down menu and Edit button
+ buffer.append("<td valign=\"top\" style=\"border:none;padding:0px\">");
+ buffer.append("<img src=\"/com_sun_web_ui/images/other/dot.gif\" alt=\"\" border=\"0\" height=\"1\" width=\"10\"/>");
+ buffer.append("</td>\r\n");
+ // As passing the initial value to display there needs to be some
+ // shown thus setting the empty string value to white
+ if (value.equals("")){
+ value = "#ffffff";
+ }
+ if (value != null)
+ value = value.substring(1);
+
+
+ // edit button
+ buffer.append("<td align=\"center\" valign=\"top\" style=\"border:none;padding:0px\">\r\n");
+ buffer.append("");
+ buffer.append("<input name=\"")
+ .append(field.getQualifiedName().substring(0, field.getQualifiedName().lastIndexOf(".")).concat(".EditButton"))
+ .append("\" type=\"submit\"")
+ .append("title=\"")
+ .append(i18N.getMessage("APOC.setcolor.edit.alt"))
+ .append("\" class=\"Btn2\" value=\"");
+ buffer.append(i18N.getMessage("APOC.policies.edit.button"));
+ buffer.append("\" onclick=\"var color = document.getElementById('newColor")
+ .append(qualNameEncoded).append("').value;")
+ .append("if(color[0]=='#') {color = color.substring(1)};color = encodeURI(color);\n")
+ .append("var selIndex = document.getElementById('colorNameDropDown")
+ .append(qualNameEncoded).append("').selectedIndex;\n")
+ .append("var name = document.getElementById('colorNameDropDown")
+ .append(qualNameEncoded).append("').options[selIndex].text; if((name == '")
+ .append(i18N.getMessage("APOC.setcolor.noname"))
+ .append("') || (name == '")
+ .append(notSet)
+ .append("')) { name ='';};\n")
+ .append("parent.parent.parent.opener.EditColorWindow = window.open(")
+ .append("'../manager/EditColor?OrgColor='+color+")
+ .append("'&Prop=").append(qualNameEncoded)
+ .append("&Name='+name,");
+ buffer.append("'editColorWindow', 'height=560,width=580,top='+((screen.height-(screen.height/1.618))-(500/2))+',left='+((screen.width-750)/2)+',scrollbars=no,resizable=yes');");
+ buffer.append("parent.parent.parent.opener.EditColorWindow.focus();");
+ buffer.append("setColorChooserName('")
+ .append(field.getQualifiedName())
+ .append("');return false;\"");
+ buffer.append(" onmouseover=\"javascript:if (this.disabled==0) this.className='Btn2Hov';window.status=this.title;return true;\"")
+ .append("onmouseout=\"javascript:if (this.disabled==0) this.className='Btn2';window.status='';return true;\"")
+ .append("onblur=\"javascript: if (this.disabled==0) this.className='Btn2'\"")
+ .append("onfocus=\"javascript: if (this.disabled==0) this.className='Btn2Hov'\"/>\r\n");
+ buffer.append("");
+ buffer.append("</td>");
+
+ }
+ buffer.append("</tr>");
+ buffer.append("</table>");
+
+ return buffer.toString();
+ }
+
+ public void setValueSet(boolean isValueSet) {
+ m_isValueSet = isValueSet;
+ }
+
+}
diff --git a/src/com/sun/apoc/manager/settings/ColorChooserView.java b/src/com/sun/apoc/manager/settings/ColorChooserView.java
new file mode 100644
index 0000000..e3e2196
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/ColorChooserView.java
@@ -0,0 +1,59 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.DisplayFieldImpl;
+
+
+public class ColorChooserView extends DisplayFieldImpl {
+
+ private boolean m_bEnabled = true;
+
+ public ColorChooserView(ContainerView parent, SectionModel model, String name) {
+ super(parent, model, name, null);
+ }
+
+
+ public void setEnabled(boolean enabled) {
+ m_bEnabled = enabled;
+ }
+
+
+ public boolean isEnabled() {
+ return m_bEnabled;
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/JumpLinks.java b/src/com/sun/apoc/manager/settings/JumpLinks.java
new file mode 100644
index 0000000..2044525
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/JumpLinks.java
@@ -0,0 +1,65 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+
+
+public class JumpLinks extends RequestHandlingViewBase {
+
+ private boolean m_hasSubCategories = false;
+
+ public JumpLinks(ContainerView parent,
+ SheetModel model, String name, boolean hasSubCategories) {
+ super(parent, name);
+ if (model == null) {
+ throw new IllegalArgumentException("Model must not be null.");
+ }
+ setDefaultModel(model);
+ m_hasSubCategories = hasSubCategories;
+ }
+
+
+ public boolean hasSubCategories() {
+ return m_hasSubCategories;
+ }
+
+
+ public SheetModel getModel() {
+ return (SheetModel)super.getDefaultModel();
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/JumpLinksTag.java b/src/com/sun/apoc/manager/settings/JumpLinksTag.java
new file mode 100644
index 0000000..6873035
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/JumpLinksTag.java
@@ -0,0 +1,178 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.tagext.Tag;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.util.NonSyncStringBuffer;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.JspDisplayEvent;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.templates.parsing.TemplateElement;
+import com.sun.apoc.manager.resource.ResourceRepository;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.common.CCStyle;
+import com.sun.web.ui.taglib.common.CCDescriptorTagBase;
+import com.sun.web.ui.taglib.common.CCTagBase;
+
+
+public class JumpLinksTag extends CCDescriptorTagBase {
+
+ private CCI18N m_I18N = null;
+
+ public JumpLinksTag() {
+ super();
+ }
+
+
+ public void reset() {
+ super.reset();
+ }
+
+
+ protected String getHTMLStringInternal(Tag parent, PageContext pageContext,
+ View view) throws JspException {
+ if (parent == null) {
+ throw new IllegalArgumentException("parent cannot be null.");
+ } else if (pageContext == null) {
+ throw new IllegalArgumentException("pageContext cannot be null.");
+ } else if (view == null) {
+ throw new IllegalArgumentException("view cannot be null.");
+ }
+
+ checkChildType(view, JumpLinks.class);
+ JumpLinks field = (JumpLinks) view;
+ SheetModel model = field.getModel();
+ if (model == null) {
+ throw new IllegalArgumentException("Model cannot be null");
+ }
+
+ setParent(parent);
+ setPageContext(pageContext);
+ m_I18N = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ NonSyncStringBuffer buffer =
+ new NonSyncStringBuffer(DEFAULT_BUFFER_SIZE);
+
+ try {
+ field.beginDisplay(new JspDisplayEvent(this, pageContext));
+ int count = 0;
+ boolean hasSubCategories = field.hasSubCategories();
+ if (hasSubCategories) {
+ count++;
+ }
+ count += model.getNumRows();
+ if (count <= 1) {
+ return "<br>";
+ }
+ String names [] = new String [count];
+ String anchors [] = new String [count];
+ int i = 0;
+ if (hasSubCategories) {
+ names[i] = m_I18N.getMessage("APOC.policies.subcategories");
+ anchors[i] = "Policies";
+ i++;
+ }
+ for (int index = 0; i < count; i++, index++) {
+ model.setRowIndex(i);
+ TemplateElement element = (TemplateElement) model.getValue(SheetModel.TEMPLATE_SECTION);
+ ResourceRepository resources = ResourceRepository.getDefaultRepository();
+ names[i] = resources.getMessage(element.getResourceId(),
+ element.getResourceBundle(),
+ (HttpServletRequest) pageContext.getRequest());
+ anchors[i] = element.getDefaultName();
+ }
+ // start jump table part
+ buffer.append("<div class=\"" +
+ CCStyle.CONTENT_JUMP_SECTION_DIV +
+ "\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">" +
+ "<tr>\n");
+
+ // This implements the layout for the jump links as specified by
+ // HCI Admin. Should have 2, 3, or 4 links per row depending on the
+ // number of total links. Should never have any more that 4 links
+ // per row. At least that's what the current guideline says.
+ if (count < 5)
+ appendJumpLinks(buffer, names, anchors, count, 2);
+ else if (count < 10)
+ appendJumpLinks(buffer, names, anchors, count, 3);
+ else
+ appendJumpLinks(buffer, names, anchors, count, 4);
+
+ // end jump table part
+ buffer.append("</tr></table></div>");
+ } catch (ModelControlException e) {
+ throw new JspException(e.getRootCause());
+ }
+ return buffer.toString();
+ }
+
+
+ protected void setTagAttributes(View child, CCTagBase tag, String element)
+ throws JspException {
+ }
+
+
+ private void appendJumpLinks(NonSyncStringBuffer buffer, String [] names,
+ String [] anchors, int count, int linksPerRow) throws JspException {
+
+ int numRows = (count+linksPerRow-1) / linksPerRow;
+ for (int k = 0; k < numRows; k++) {
+ if (k != 0)
+ buffer.append("</tr><tr>");
+ for (int i = k; i < k + linksPerRow*numRows; i = i + numRows) {
+ if (i >= count) break;
+
+ Object[] replace = new Object[1];
+ replace[0] = names[i];
+
+ // Todo use Lockhart tags here
+ buffer.append("<td><div class=\"ConJmpLnkDiv\">");
+ buffer.append("<a href=\"#");
+ buffer.append(anchors[i]);
+ buffer.append(" \" class=\"JmpLnk\" title=\"");
+ buffer.append(m_I18N.getMessage("APOC.policies.jumpDown.tooltip", replace));
+ buffer.append("\" >");
+ buffer.append("<img src=\"/com_sun_web_ui/images/href/to_anchor.gif\" alt=\"\" border=\"0\" height=\"10\" width=\"16\" />");
+ buffer.append(names[i]);
+ buffer.append("</a></div></td>");
+ }
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/ListTag.java b/src/com/sun/apoc/manager/settings/ListTag.java
new file mode 100644
index 0000000..66d1ebe
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/ListTag.java
@@ -0,0 +1,219 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import com.sun.web.ui.taglib.common.CCDisplayFieldTagBase;
+import com.iplanet.jato.util.NonSyncStringBuffer;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.tagext.Tag;
+import com.iplanet.jato.view.View;
+import com.sun.apoc.templates.parsing.TemplateProperty;
+import java.util.StringTokenizer;
+import java.util.LinkedList;
+import java.util.Collections;
+import java.util.Iterator;
+import com.sun.web.ui.common.CCI18N;
+
+
+public class ListTag extends CCDisplayFieldTagBase {
+
+ private static final short MIN_SIZE = 5;
+ private static final short MAX_SIZE = 12;
+
+
+ public ListTag() {
+ super();
+ }
+
+
+ protected String getHTMLStringInternal(Tag parent, PageContext pageContext,
+ View view) throws JspException {
+ if (parent == null) {
+ throw new IllegalArgumentException("parent cannot be null.");
+ } else if (pageContext == null) {
+ throw new IllegalArgumentException("pageContext cannot be null.");
+ } else if (view == null) {
+ throw new IllegalArgumentException("view cannot be null.");
+ }
+
+ checkChildType(view, ListView.class);
+ ListView field = (ListView) view;
+ CCI18N i18N = new CCI18N(pageContext, "apocBundle");
+ String notSet = SectionModel.getUndefinedValue();
+
+ setParent(parent);
+ setPageContext(pageContext);
+ SectionModel model = (SectionModel) field.getModel();
+ if (model == null) {
+ throw new IllegalArgumentException("Model cannot be null");
+ }
+ TemplateProperty prop = (TemplateProperty) model.getValue(SectionModel.PROPERTY);
+ String separator = prop.getSeparator();
+ if (separator == null) {
+ separator = " ";
+ }
+ // parse values
+ String values = (String) field.getValue();
+ LinkedList list = new LinkedList();
+ if (values.equals(notSet)) {
+ list.add(values);
+ } else {
+ if (values.length() > 0) {
+ String options = values; //old with []: values.substring(1, values.length() - 1);
+ StringTokenizer st = new StringTokenizer(options, separator);
+ while(st.hasMoreTokens()) {
+ list.add(st.nextToken());
+ }
+ Collections.sort(list);
+ }
+ }
+
+ // calculate list size
+ int size = MIN_SIZE;
+ if (list.size() > MIN_SIZE) {
+ if (list.size() < MAX_SIZE) {
+ size = list.size();
+ } else {
+ size = MAX_SIZE;
+ }
+ }
+
+ NonSyncStringBuffer buffer =
+ new NonSyncStringBuffer(DEFAULT_BUFFER_SIZE);
+
+
+ // list area
+ buffer.append("<table title=\"\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">");
+ buffer.append("<tr>\r\n");
+ buffer.append("<td valign=\"top\" style=\"border:none;padding:0px\">");
+ buffer.append("<select name=\"");
+ buffer.append("List");
+ buffer.append(field.getQualifiedName());
+ buffer.append("\" class=\"Lst\" size=\"");
+ buffer.append(size);
+ buffer.append("\" multiple=\"multiple\">\r\n");
+ addOptions(buffer, list);
+ buffer.append("</select>");
+ buffer.append("</td>\r\n");
+
+ if (field.isEnabled()) {
+ // new and delete button
+ buffer.append("<td align=\"center\" valign=\"top\" style=\"border:none;padding:0px\">\r\n");
+ buffer.append("<table title=\"\" class=\"AddRmvBtnTbl\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border:none\">\r\n");
+ buffer.append("<tr>\r\n");
+ buffer.append("<td align=\"center\" style=\"border:none;padding:0px\">");
+ buffer.append("<img src=\"/com_sun_web_ui/images/other/dot.gif\" alt=\"\" border=\"0\" height=\"1\" width=\"10\"/>");
+ buffer.append("</td>\r\n");
+ buffer.append("<td style=\"width:80px;border:none;padding:0px\" align=\"center\">\r\n");
+ buffer.append("<input name=\"AddButton\" type=\"submit\" class=\"Btn1\" value=\"");
+ buffer.append(i18N.getMessage("APOC.policies.new.button"));
+ buffer.append("\" id=\"" + field.getQualifiedName() + ".AddButton\"");
+ buffer.append("\" onclick=\"");
+ buffer.append("addNewListItem('");
+ buffer.append(field.getQualifiedName());
+ buffer.append("'); return false;\" onmouseover=\"javascript: if (this.disabled==0) this.className='Btn1Hov'\" onmouseout=\"javascript: if (this.disabled==0) this.className='Btn1'\" onblur=\"javascript: if (this.disabled==0) this.className='Btn1'\" onfocus=\"javascript: if (this.disabled==0) this.className='Btn1Hov'\"/>\r\n");
+ if (isNav()) {
+ buffer.append("<br>");
+ }
+ buffer.append("<div style=\"margin-top:3px;width:80px\">\r\n");
+ buffer.append("<input name=\"RemoveButton\" type=\"submit\" class=\"Btn2\" value=\"");
+ buffer.append(i18N.getMessage("APOC.policies.delete.button"));
+ buffer.append("\" id=\"" + field.getQualifiedName() + ".RemoveButton");
+ buffer.append("\" onclick=\"");
+ buffer.append("removeListItem('");
+ buffer.append(field.getQualifiedName());
+ buffer.append("'); return false;\" onmouseover=\"javascript: if (this.disabled==0) this.className='Btn2Hov'\" onmouseout=\"javascript: if (this.disabled==0) this.className='Btn2'\" onblur=\"javascript: if (this.disabled==0) this.className='Btn2'\" onfocus=\"javascript: if (this.disabled==0) this.className='Btn2Hov'\"/>\r\n");
+ buffer.append("</div>\r\n");
+ if (isNav()) {
+ buffer.append("<br>");
+ }
+ buffer.append("<div style=\"margin-top:3px;width:80px\">\r\n");
+ buffer.append("<input name=\"RemoveButton\" type=\"submit\" class=\"Btn2\" value=\"");
+ buffer.append(i18N.getMessage("APOC.policies.actions.clear"));
+ buffer.append("\" id=\"" + field.getQualifiedName() + ".ClearButton");
+ buffer.append("\" onclick=\"");
+ buffer.append("clearList('");
+ buffer.append(field.getQualifiedName());
+ buffer.append("'); return false;\" onmouseover=\"javascript: if (this.disabled==0) this.className='Btn2Hov'\" onmouseout=\"javascript: if (this.disabled==0) this.className='Btn2'\" onblur=\"javascript: if (this.disabled==0) this.className='Btn2'\" onfocus=\"javascript: if (this.disabled==0) this.className='Btn2Hov'\"/>\r\n");
+ buffer.append("</div>\r\n");
+
+ buffer.append("</td>\r\n");
+ buffer.append("<td align=\"center\" style=\"border:none;\">");
+ buffer.append("<img src=\"/com_sun_web_ui/images/other/dot.gif\" alt=\"\" border=\"0\" height=\"1\" width=\"10\"/>");
+ buffer.append("</td>");
+ buffer.append("</tr>");
+ buffer.append("</table></td>");
+ }
+ buffer.append("</tr>");
+ buffer.append("</table>");
+ // separator hidden field
+ buffer.append("<input type=\"hidden\" name=\"");
+ buffer.append("Separator");
+ buffer.append(field.getQualifiedName());
+ buffer.append("\" value=\"");
+ buffer.append(separator);
+ buffer.append("\" />");
+ // hidden field
+ StringBuffer buffer2 = new StringBuffer();
+ buffer2.append("javascript:ssetTimeout('updateSaveStatus(this.name), 0')");
+ buffer2.append("setTimeout(toggleOverwriteCheckbox(this), 0);");
+
+ buffer.append("<input type=\"hidden\" name=\"");
+ buffer.append(field.getQualifiedName());
+ buffer.append("\" value=\"");
+ buffer.append(field.getValue());
+ buffer.append("\" onChange=\"");
+ buffer.append(buffer2.toString());
+ buffer.append("\" onKeyPress=\"");
+ buffer.append(buffer2.toString());
+ buffer.append("\" />");
+ return buffer.toString();
+ }
+
+
+ protected void addOptions(NonSyncStringBuffer buffer, LinkedList list) {
+ Iterator it = list.iterator();
+ while(it.hasNext()) {
+ String value = (String) it.next();
+ buffer.append("<option value=\"");
+ buffer.append(value);
+ buffer.append("\">");
+ buffer.append(value);
+ buffer.append("</option>\r\n");
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/ListView.java b/src/com/sun/apoc/manager/settings/ListView.java
new file mode 100644
index 0000000..bee9acd
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/ListView.java
@@ -0,0 +1,59 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.DisplayFieldImpl;
+
+
+public class ListView extends DisplayFieldImpl {
+
+ private boolean m_bEnabled = true;
+
+ public ListView(ContainerView parent, SectionModel model, String name) {
+ super(parent, model, name, null);
+ }
+
+
+ public void setEnabled(boolean enabled) {
+ m_bEnabled = enabled;
+ }
+
+
+ public boolean isEnabled() {
+ return m_bEnabled;
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/PolicyMgrHelper.java b/src/com/sun/apoc/manager/settings/PolicyMgrHelper.java
new file mode 100644
index 0000000..bf42e43
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/PolicyMgrHelper.java
@@ -0,0 +1,336 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Vector;
+import java.net.URLEncoder;
+import java.net.URLDecoder;
+import java.io.UnsupportedEncodingException;
+
+import com.sun.apoc.spi.cfgtree.policynode.PolicyNode;
+import com.sun.apoc.spi.cfgtree.PolicyTree;
+import com.sun.apoc.spi.cfgtree.property.Property;
+import com.sun.apoc.spi.cfgtree.readwrite.ReadWritePolicyTreeConverterImpl;
+import com.sun.apoc.spi.cfgtree.readwrite.ReadWritePolicyTreeFactoryImpl;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.policies.Policy;
+import com.sun.apoc.spi.profiles.Profile;
+
+/**
+ * A helper class containing convenience methods for common SPI operations
+ */
+public class PolicyMgrHelper {
+
+ public static final String SEPARATOR = "/";
+
+ private PolicyManager m_mgr = null;
+ private Profile m_pg = null;
+ private HashMap m_treeCache = new HashMap();
+
+ public PolicyMgrHelper() {
+ }
+
+ public PolicyMgrHelper(PolicyManager mgr, Profile pg) {
+ initialize(mgr, pg);
+ }
+
+ /**
+ * Returns the PolicyMgrHelper object.
+ */
+ public PolicyManager getManager() {
+ return m_mgr;
+ }
+
+ /**
+ * Returns the current Profile object.
+ */
+ public Profile getPolicyGroup() {
+ return m_pg;
+ }
+
+ public void initialize(PolicyManager mgr, Profile pg) {
+ m_mgr = mgr;
+ m_pg = pg;
+ m_treeCache.clear();
+ }
+
+
+ /**
+ * Returns the Property from the backend specified by the path
+ * parameter.
+ *
+ * @param path - the dataPath defining the property to return
+ * @return an SPI Property object or null if it does not exist
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public Property getProperty(String path) throws SPIException {
+ String propertyName = decodePath(path.substring(path.lastIndexOf(SEPARATOR) + 1, path.length()));
+ String nodePath = path.substring(0, path.lastIndexOf(SEPARATOR));
+ PolicyNode node = getNode(nodePath);
+ if (node != null) {
+ return node.getProperty(propertyName);
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Compares 2 Property objects for equality
+ *
+ * @param 2 SPI Property objects for comparisonthe dataPath defining the property to return
+ * @return true if the SPI Propertys are equal
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public boolean equalProperties(Property prop1, Property prop2) throws SPIException {
+ if ((prop1 == null) || (prop2 == null)) {
+ return false;
+ } else if (prop1.isProtected() != prop2.isProtected()) {
+ return false;
+ } else if (prop1.getValue() == null) {
+ if (prop2.getValue() != null) {
+ return false;
+ }
+ } else if (!prop1.getValue().equals(prop2.getValue())) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Creates the specified Property in the backend.
+ *
+ * @param path - the dataPath defining the property to create
+ * @return an SPI Property object
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public Property createProperty(String path) throws SPIException {
+ String propertyName = decodePath(path.substring(path.lastIndexOf(SEPARATOR) + 1, path.length()));
+ String nodePath = path.substring(0, path.lastIndexOf(SEPARATOR));
+ PolicyNode node = createNode(nodePath);
+ if (node != null) {
+ return node.addProperty(propertyName);
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Removes the specified Property from the backend.
+ *
+ * @param path - the dataPath defining the property to remove
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public void removeProperty(String path) throws SPIException {
+ String propertyName = decodePath(path.substring(path.lastIndexOf(SEPARATOR) + 1, path.length()));
+ String nodePath = path.substring(0, path.lastIndexOf(SEPARATOR));
+ PolicyNode node = getNode(nodePath);
+ if (node != null) {
+ node.removeProperty(propertyName);
+ }
+ }
+
+ /**
+ * Checks for the existance of the specified node in the backend.
+ *
+ * @param path - the dataPath defining the node to check for
+ * @return true if node exists in the backend
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public boolean nodeExists(String path) throws SPIException {
+ String policyId = path.substring(0, path.indexOf(SEPARATOR));
+ PolicyTree policyTree = getTree(policyId);
+ if (policyTree != null) {
+ return policyTree.nodeExists(path);
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Returns the specified PolicyNode from the backend.
+ *
+ * @param path - the dataPath defining the PolicyNode to return
+ * @return an SPI PolicyNode object or null if it does not exist
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public PolicyNode getNode(String path) throws SPIException {
+ int pos = path.indexOf(SEPARATOR);
+ String policyId = path;
+ if (pos != -1) {
+ policyId = path.substring(0, path.indexOf(SEPARATOR));
+ }
+ PolicyTree policyTree = getTree(policyId);
+ if (policyTree != null) {
+ return policyTree.getNode(path);
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Creates the specified PolicyNode in the backend.
+ *
+ * @param path - the dataPath defining the PolicyNode to create
+ * @return an SPI PolicyNode object
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public PolicyNode createNode(String path) throws SPIException {
+ return createNode(path, false);
+ }
+
+ /**
+ * Creates the specified PolicyNode in the backend. This node will have the oor:replace
+ * attribute as used by template set elements.
+ *
+ * @param path - the dataPath defining the PolicyNode to create
+ * @return an SPI PolicyNode object
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public PolicyNode createReplaceNode(String path) throws SPIException {
+ return createNode(path, true);
+ }
+
+ /**
+ * Creates the specified PolicyNode in the backend.
+ *
+ * @param path - the dataPath defining the PolicyNode to create
+ * @param replace - whether to add the oor:replace attribute to the node
+ * @return an SPI PolicyNode object
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public PolicyNode createNode(String path, boolean replace) throws SPIException {
+ int pos = path.indexOf(SEPARATOR);
+ String policyId = path;
+ if (pos != -1) {
+ policyId = path.substring(0, path.indexOf(SEPARATOR));
+ }
+ PolicyTree policyTree = getTree(policyId);
+ if (policyTree != null) {
+ if (replace) {
+ return policyTree.createReplaceNode(path);
+ } else {
+ return policyTree.createNode(path);
+ }
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Writes all newly created/edited PolicyNodes/Propertys to the backend.
+ *
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public void flushAllChanges() throws SPIException {
+ Iterator it = m_treeCache.keySet().iterator();
+ while (it.hasNext()) {
+ PolicyTree policyTree = getTree((String) it.next());
+ if (policyTree.hasBeenModified()) {
+ ReadWritePolicyTreeConverterImpl converter = new ReadWritePolicyTreeConverterImpl();
+ Policy policy = converter.getPolicy(policyTree);
+ getPolicyGroup().storePolicy(policy);
+ }
+ }
+ }
+
+ /**
+ * Removes from the cache any PolicyNodes/Propertys objects which were created/edited since the last
+ * call to flushAllChanges().
+ */
+ public void resetAllChanges() {
+ m_treeCache.clear();
+ }
+
+ /**
+ * Returns the specified PolicyTree object.
+ *
+ * @param policyId - the policy path defining the PolicyTree to return
+ * @return an SPI PolicyTree object
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public PolicyTree getTree(String policyId) throws SPIException {
+ PolicyTree policyTree = null;
+ if (m_treeCache.containsKey(policyId)) {
+ policyTree = (PolicyTree) m_treeCache.get(policyId);
+ } else {
+ ReadWritePolicyTreeFactoryImpl factory = new ReadWritePolicyTreeFactoryImpl();
+ Policy policy = null;
+ if (getPolicyGroup() != null) {
+ policy = getPolicyGroup().getPolicy(policyId);
+ }
+ if (policy == null) {
+ policy = new Policy(policyId, m_pg.getId(), null);
+ }
+ Vector policies = new Vector();
+ policies.add(policy);
+ policyTree = factory.getPolicyTree(policies.iterator());
+ m_treeCache.put(policyId, policyTree);
+ }
+ return policyTree;
+ }
+
+
+ // The below methods are just helpers to implement the enconding
+ // decoding of path elements. A similar functionality is already available
+ // within the SPI - but not public API yet.
+ public static String decodePath(String pathElement) throws SPIException {
+ try {
+ if (pathElement.indexOf('%') == -1) {
+ return pathElement;
+ } else {
+ return URLDecoder.decode(pathElement, "UTF-8");
+ }
+ } catch (UnsupportedEncodingException ex) {
+ throw new SPIException(ex);
+ }
+ }
+
+
+ public static String encodePath(String pathElement) throws SPIException {
+ try {
+ if (pathElement.indexOf('/') != -1) {
+ return URLEncoder.encode(pathElement, "UTF-8");
+ } else {
+ return pathElement;
+ }
+ } catch (UnsupportedEncodingException ex) {
+ throw new SPIException(ex);
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/PropertyHelper.java b/src/com/sun/apoc/manager/settings/PropertyHelper.java
new file mode 100644
index 0000000..1d3129c
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/PropertyHelper.java
@@ -0,0 +1,78 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import com.sun.apoc.spi.cfgtree.property.Property;
+import com.sun.apoc.spi.SPIException;
+
+public class PropertyHelper {
+
+ private String m_path = null;
+ private Property m_property = null;
+ private boolean m_bPending = false;
+ private boolean m_bDisabled = false;
+
+ public PropertyHelper(Property prop, String path, boolean isPending, boolean isDisabled) {
+ m_property = prop;
+ m_path = path;
+ m_bPending = isPending;
+ m_bDisabled = isDisabled;
+ }
+
+ public boolean isPending() {
+ return m_bPending;
+ }
+
+ public boolean isDisabled() {
+ return m_bDisabled;
+ }
+
+ public String getPath() {
+ return m_path;
+ }
+
+ public Property getProperty() {
+ return m_property;
+ }
+
+ public String getValue() throws SPIException {
+ return m_property.getValue();
+ }
+
+ public boolean isEnforced() throws SPIException {
+ return m_property.isProtected();
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/PropertyTag.java b/src/com/sun/apoc/manager/settings/PropertyTag.java
new file mode 100644
index 0000000..f4b5022
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/PropertyTag.java
@@ -0,0 +1,598 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import java.io.IOException;
+import java.util.ArrayList;
+
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.tagext.BodyContent;
+import javax.servlet.jsp.tagext.Tag;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.util.NonSyncStringBuffer;
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.html.OptionList;
+import com.sun.apoc.templates.parsing.TemplateProperty;
+import com.sun.apoc.templates.parsing.TemplatePropertyConstraint;
+import com.sun.apoc.manager.resource.ResourceRepository;
+import com.sun.web.ui.common.CCBodyContentImpl;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.common.CCJspWriterImpl;
+import com.sun.web.ui.common.CCStyle;
+import com.sun.web.ui.taglib.common.CCDisplayFieldTagBase;
+import com.sun.web.ui.taglib.common.CCTagBase;
+import com.sun.web.ui.taglib.help.CCHelpInlineTag;
+import com.sun.web.ui.taglib.help.CCHelpTag;
+import com.sun.web.ui.taglib.html.CCDropDownMenuTag;
+import com.sun.web.ui.taglib.html.CCPasswordTag;
+import com.sun.web.ui.taglib.html.CCRadioButtonTag;
+import com.sun.web.ui.taglib.html.CCTextAreaTag;
+import com.sun.web.ui.taglib.html.CCTextFieldTag;
+import com.sun.web.ui.taglib.html.CCStaticTextFieldTag;
+import com.sun.web.ui.taglib.html.CCButtonTag;
+import com.sun.web.ui.view.html.CCDropDownMenu;
+import com.sun.web.ui.view.html.CCPassword;
+import com.sun.web.ui.view.html.CCRadioButton;
+import com.sun.web.ui.view.html.CCTextArea;
+import com.sun.web.ui.view.html.CCTextField;
+import com.sun.web.ui.view.html.CCStaticTextField;
+import com.sun.web.ui.view.html.CCButton;
+
+import com.sun.apoc.manager.ChooserHelper;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.Toolbox2;
+
+
+public class PropertyTag extends CCTagBase {
+
+ private static final int MIN_TEXT_LENGTH = 28;
+ private static final int MIN_NUM_LENGTH = 4;
+ private static final int MAX_LENGTH = 60;
+
+ private CCI18N m_i18N = null;
+ private String m_notSet = "";
+
+ public PropertyTag() {
+ super();
+ }
+
+ public void reset() {
+ super.reset();
+ }
+
+ protected String getHTMLStringInternal(Tag parent, PageContext pageContext,
+ View view) throws JspException {
+ if (parent == null) {
+ throw new IllegalArgumentException("parent cannot be null.");
+ } else if (pageContext == null) {
+ throw new IllegalArgumentException("pageContext cannot be null.");
+ } else if (view == null) {
+ throw new IllegalArgumentException("view cannot be null.");
+ }
+ m_i18N = new CCI18N(RequestManager.getRequestContext(),
+ Constants.RES_BASE_NAME);
+ checkChildType(view, PropertyView.class);
+ PropertyView field = (PropertyView) view;
+ SectionModel model = (SectionModel) field.getModel();
+ if (model == null) {
+ throw new IllegalArgumentException("Model cannot be null");
+ }
+ setParent(parent);
+ setPageContext(pageContext);
+
+ m_notSet = SectionModel.getUndefinedValue();
+ NonSyncStringBuffer buffer = new NonSyncStringBuffer(DEFAULT_BUFFER_SIZE);
+ TemplateProperty prop = (TemplateProperty) model.getValue(SectionModel.PROPERTY);
+ boolean readonly = model.getSheetModel().getEditorModel().isReadOnlyProfile();
+
+ if (prop.getVisualType().equals(TemplateProperty.STRING_LIST)) {
+ renderStringList(buffer, field, model, prop, readonly);
+
+ } else if (prop.getVisualType().equals(TemplateProperty.PASSWORD)) {
+ renderPasswordField(buffer, field, model, prop, readonly);
+
+ } else if (prop.getVisualType().equals(TemplateProperty.TEXTAREA)) {
+ renderTextArea(buffer, field, model, prop, readonly);
+
+ } else if (prop.getVisualType().equals(TemplateProperty.CHECKBOX)) {
+ renderCheckBox(buffer, field, model, prop, readonly);
+
+ } else if (prop.getVisualType().equals(TemplateProperty.RADIOBUTTONS)) {
+ renderRadioButtons(buffer, field, model, prop, readonly);
+
+ } else if (prop.getVisualType().equals(TemplateProperty.COMBOBOX)) {
+ renderDropDownMenu(buffer, field, model, prop, readonly);
+
+ } else if (prop.getVisualType().equals(TemplateProperty.COLOR_CHOOSER)) {
+ renderColorChooser(buffer, field, model, prop, readonly);
+
+ } else if (prop.getVisualType().equals(TemplateProperty.CHOOSER)) {
+ renderChooser(buffer, field, model, prop);
+
+ } else {
+ renderTextField(buffer, field, model, prop, readonly);
+ }
+ renderDescription(buffer, field, prop);
+
+ return buffer.toString();
+ }
+
+
+ protected int getSize(int minSize, int defaultSize, int valueSize) {
+ int size = 0;
+ if (defaultSize < valueSize) {
+ size = valueSize + 1;
+ } else {
+ size = defaultSize + 1;
+ }
+ if (size < minSize) {
+ size = minSize;
+ } else if (size > MAX_LENGTH) {
+ size = MAX_LENGTH;
+ }
+ return size;
+ }
+
+ protected void addCommonRenderParts(CCDisplayFieldTagBase tag,
+ View propView, TemplateProperty prop) {
+ if (prop.getExtraHtml() != null) {
+ StringBuffer extraHtml = new StringBuffer();
+ if (tag.getExtraHtml() != null) {
+ extraHtml.append(tag.getExtraHtml());
+ }
+ extraHtml.append(" ");
+ extraHtml.append(prop.getExtraHtml());
+ tag.setExtraHtml(extraHtml.toString());
+ }
+ StringBuffer buffer2 = new StringBuffer();
+ buffer2.append("javascript:setTimeout(\"updateSaveStatus('");
+ buffer2.append(propView.getQualifiedName());
+ buffer2.append("');\",0);");
+ buffer2.append("setTimeout(toggleOverwriteCheckbox(this), 0);");
+ tag.setOnChange(buffer2.toString());
+ tag.setOnKeyPress(buffer2.toString());
+ if(prop.getXmlHandler() != null) {
+ String handlerName = prop.getXmlHandler() ;
+ tag.setOnChange(handlerName + "();" + buffer2.toString());
+ tag.setOnKeyPress(handlerName + "();" + buffer2.toString());
+ }
+ }
+
+
+ protected void renderDescription(NonSyncStringBuffer buffer, PropertyView view,
+ TemplateProperty prop) throws JspException {
+ StringBuffer descr = new StringBuffer();
+ if (prop.getDescriptionId() != null) {
+ ResourceRepository resources = ResourceRepository.getDefaultRepository();
+ String descriptionString = resources.getMessage(
+ prop.getDescriptionId(),
+ prop.getResourceBundle(),
+ RequestManager.getRequest());
+ descr.append(descriptionString);
+ descr.append("<br>");
+ }
+ if ((prop.getVisualType().equals(TemplateProperty.TEXTAREA)) ||
+ (prop.getVisualType().equals(TemplateProperty.TEXTFIELD))) {
+ String defaultValue = prop.getDefaultValue();
+ if ((defaultValue != null) && (defaultValue.length() > 0)) {
+ defaultValue = defaultValue.replaceAll("<", "&#60;");
+ defaultValue = defaultValue.replaceAll(">", "&#62;");
+ if (descr.length() > 0) {
+ descr.append(" ");
+ }
+ descr.append(m_i18N.getMessage("APOC.profilewnd.settings.defaultLabel"));
+ descr.append(" <a ");
+ descr.append("class=\"HlpFldTxt\" href=\"javascript:;\" ");
+ descr.append("onClick=\"setDefaultFieldValue('");
+ descr.append(view.getQualifiedName());
+ descr.append("','");
+ descr.append(defaultValue);
+ descr.append("');\">");
+ descr.append(defaultValue);
+ descr.append("</a>");
+ }
+ }
+ if ((prop.getVisualType().equals(TemplateProperty.STRING_LIST))) {
+ String defaultValue = prop.getDefaultValue();
+ if (descr.length() > 0) {
+ descr.append(" ");
+ }
+ String separator = prop.getSeparator();
+ descr.append("<a class=\"HlpFldTxt\" href='' onClick=\"javascript: var defaultValue ='")
+ .append(defaultValue)
+ .append("'; var separator = '")
+ .append(separator)
+ .append("'; setListToDefault('")
+ .append(view.getQualifiedName())
+ .append("', defaultValue, separator); return false;\">")
+ .append(m_i18N.getMessage("APOC.profilewnd.settings.setToDefaultLabel"))
+ .append("</a>");
+ }
+ if (descr.length() > 0) {
+ BodyContent bodyContent = new CCBodyContentImpl(
+ new CCJspWriterImpl(null, 100, false));
+ try {
+ bodyContent.print(descr.toString());
+ } catch (IOException e) {
+ CCDebug.trace3(e.getMessage());
+ }
+ CCHelpInlineTag helpTag = new CCHelpInlineTag();
+ helpTag.setBodyContent(bodyContent);
+ helpTag.setType(CCHelpTag.TYPE_FIELD);
+ buffer.append("<br>");
+ buffer.append(helpTag.getHTMLString(getParent(), pageContext, view));
+ }
+ }
+
+
+ protected void renderTextField(NonSyncStringBuffer buffer, PropertyView view,
+ SectionModel model, TemplateProperty prop, boolean readonly)
+ throws JspException {
+ if (readonly) {
+ renderStaticText(buffer, view, model, prop);
+ } else {
+ CCTextFieldTag tag = new CCTextFieldTag();
+ CCTextField textfield = new CCTextField((ContainerView) view.getParent(), model, view.getName(), null);
+ int valueSize = 0;
+ if (textfield.getValue() != null) {
+ valueSize = ((String) textfield.getValue()).length();
+ }
+ int defaultSize = 0;
+ if (prop.getDefaultValue() != null) {
+ defaultSize = prop.getDefaultValue().length();
+ }
+ if ((prop.getDataType() != null) &&
+ (prop.getDataType().equals("xs:boolean")
+ || prop.getDataType().equals("xs:short")
+ || prop.getDataType().equals("xs:int")
+ || prop.getDataType().equals("xs:long")
+ || prop.getDataType().equals("xs:double"))) {
+ tag.setExtraHtml("size='" + getSize(MIN_NUM_LENGTH, defaultSize, valueSize) + "'");
+ } else {
+ tag.setExtraHtml("size='" + getSize(MIN_TEXT_LENGTH, defaultSize, valueSize) + "'");
+ }
+ tag.setOnFocus("select();");
+ addCommonRenderParts(tag, view, prop);
+ buffer.append(tag.getHTMLString(getParent(), pageContext, textfield));
+
+ CCButtonTag tag2 = new CCButtonTag();
+ tag2.setOnClick("resetField(this); return false;");
+ String buttonLabel = this.m_i18N.getMessage("APOC.policies.actions.clear");
+ CCButton button = new CCButton((ContainerView) view.getParent(), view.getName() + "clear", buttonLabel);
+ buffer.append("&nbsp;");
+ buffer.append(tag2.getHTMLString(getParent(), pageContext, button));
+ }
+ }
+
+ protected void renderPasswordField(NonSyncStringBuffer buffer, PropertyView view,
+ SectionModel model, TemplateProperty prop, boolean readonly) throws JspException {
+ if (readonly) {
+ renderStaticText(buffer, view, model, prop);
+ } else {
+ CCPasswordTag tag = new CCPasswordTag();
+ CCPassword password = new CCPassword((ContainerView) view.getParent(), model, view.getName(), null);
+ int valueSize = 0;
+ if (password.getValue() != null) {
+ valueSize = ((String) password.getValue()).length();
+ }
+ int defaultSize = 0;
+ if (prop.getDefaultValue() != null) {
+ defaultSize = prop.getDefaultValue().length();
+ }
+ tag.setOnFocus("select();");
+ tag.setExtraHtml("size='" + getSize(MIN_TEXT_LENGTH, defaultSize, valueSize) + "'");
+ addCommonRenderParts(tag, view, prop);
+ buffer.append(tag.getHTMLString(getParent(), pageContext, password));
+ }
+ }
+
+
+ protected void renderTextArea(NonSyncStringBuffer buffer, PropertyView view,
+ SectionModel model, TemplateProperty prop, boolean readonly)
+ throws JspException {
+ CCTextAreaTag tag = new CCTextAreaTag();
+ CCTextArea textarea = new CCTextArea((ContainerView) view.getParent(), model,
+ view.getName(), null);
+ int valueSize = MIN_TEXT_LENGTH;
+ if (textarea.getValue() != null) {
+ valueSize = ((String) textarea.getValue()).length();
+ }
+ int defaultSize = MIN_TEXT_LENGTH;
+ if (prop.getDefaultValue() != null) {
+ defaultSize = prop.getDefaultValue().length();
+ }
+ int cols = valueSize;
+ if (defaultSize > valueSize) {
+ cols = defaultSize;
+ }
+ int rows = cols / MAX_LENGTH;
+ if (rows <= 1) {
+ rows = 2;
+ } else if (rows > 12) {
+ rows = 12;
+ cols = MAX_LENGTH;
+ } else {
+ cols = MAX_LENGTH;
+ }
+ tag.setOnFocus("select();");
+ StringBuffer extraHtml = new StringBuffer("cols='" + cols + "' rows='" + rows + "' wrap='virtual'");
+ if (readonly) {
+ extraHtml.append(" readonly='readonly'");
+ }
+ tag.setExtraHtml(extraHtml.toString());
+ addCommonRenderParts(tag, view, prop);
+ buffer.append(tag.getHTMLString(getParent(), pageContext, textarea));
+ }
+
+ protected void renderRadioButtons(NonSyncStringBuffer buffer, PropertyView view,
+ SectionModel model, TemplateProperty prop, boolean readonly)
+ throws JspException {
+ if (readonly) {
+ renderStaticText(buffer, view, model, prop);
+ } else {
+ OptionList options = new OptionList();
+ options.add(m_notSet, m_notSet);
+ if (prop.getConstraints() != null) {
+ for(int i=0; i < prop.getConstraints().size(); i++) {
+ TemplatePropertyConstraint constraint = (TemplatePropertyConstraint) prop.getConstraints().elementAt(i);
+ String value = constraint.getValue();
+ String defaultValue = prop.getDefaultValue();
+ StringBuffer buffer2 = new StringBuffer();
+ if (constraint.getResourceId() != null) {
+ buffer2.append(constraint.getResourceId());
+ } else {
+ buffer2.append(prop.getResourceId());
+ buffer2.append(".");
+ buffer2.append(value);
+ }
+ ResourceRepository resources = ResourceRepository.getDefaultRepository();
+ StringBuffer descr = new StringBuffer(resources.getMessage(
+ buffer2.toString(),
+ prop.getResourceBundle(),
+ RequestManager.getRequest()));
+ if (value.equals(defaultValue)) {
+ descr.append(" &#8225");
+ }
+ options.add(descr.toString(), value);
+ }
+ }
+ CCRadioButtonTag radioTag = new CCRadioButtonTag();
+ radioTag.setEscape("false");
+ radioTag.setStyleLevel(CCStyle.LEVEL_THREE);
+ radioTag.setElementId(view.getQualifiedName());
+ CCRadioButton radioButton =
+ new CCRadioButton((ContainerView) view.getParent(),
+ model, view.getName(), "");
+ radioButton.setOptions(options);
+ addCommonRenderParts(radioTag, view, prop);
+ buffer.append(radioTag.getHTMLString(getParent(), pageContext, radioButton));
+ }
+ }
+
+
+ protected void renderDropDownMenu(NonSyncStringBuffer buffer, PropertyView view,
+ SectionModel model, TemplateProperty prop, boolean readonly)
+ throws JspException {
+ if (readonly) {
+ renderStaticText(buffer, view, model, prop);
+ } else {
+ OptionList options = new OptionList();
+ options.add(m_notSet, m_notSet);
+ if (prop.getConstraints() != null) {
+ for(int i=0; i < prop.getConstraints().size(); i++) {
+ TemplatePropertyConstraint constraint = (TemplatePropertyConstraint) prop.getConstraints().elementAt(i);
+ String value = constraint.getValue();
+ String defaultValue = prop.getDefaultValue();
+ StringBuffer buffer2 = new StringBuffer();
+ if (constraint.getResourceId() != null) {
+ buffer2.append(constraint.getResourceId());
+ } else {
+ buffer2.append(prop.getResourceId());
+ buffer2.append(".");
+ buffer2.append(value);
+ }
+ ResourceRepository resources = ResourceRepository.getDefaultRepository();
+ StringBuffer descr = new StringBuffer(resources.getMessage(
+ buffer2.toString(),
+ prop.getResourceBundle(),
+ RequestManager.getRequest()));
+ if (value.equals(defaultValue)) {
+ descr.append(" &#8225");
+ }
+ options.add(descr.toString(), value);
+ }
+ }
+ CCDropDownMenuTag tag = new CCDropDownMenuTag();
+ tag.setEscape("false");
+ CCDropDownMenu dropDown = new CCDropDownMenu((View) view.getParent(), model, view.getName(), (Object) "0", options);
+ addCommonRenderParts(tag, view, prop);
+ buffer.append(tag.getHTMLString(getParent(), pageContext, dropDown));
+ }
+ }
+
+
+ protected void renderStringList(NonSyncStringBuffer buffer, PropertyView view,
+ SectionModel model, TemplateProperty prop, boolean readonly) throws JspException {
+ ListTag tag = new ListTag();
+ ListView propView = new ListView((ContainerView) view.getParent(), model, view.getName());
+ tag.setOnFocus("select();");
+ if (readonly) {
+ propView.setEnabled(false);
+ }
+ addCommonRenderParts(tag, view, prop);
+ buffer.append(tag.getHTMLString(getParent(), pageContext, propView));
+ }
+
+
+ protected void renderStaticText(NonSyncStringBuffer buffer, PropertyView view,
+ SectionModel model, TemplateProperty prop)
+ throws JspException {
+ CCStaticTextFieldTag tag = new CCStaticTextFieldTag();
+ CCStaticTextField propView = new CCStaticTextField((ContainerView) view.getParent(), model, view.getName(), null);
+ buffer.append(tag.getHTMLString(getParent(), pageContext, propView));
+ }
+
+
+ protected void renderColorChooser(NonSyncStringBuffer buffer, PropertyView view,
+ SectionModel model, TemplateProperty prop, boolean readonly) throws JspException {
+ ColorChooserTag tag = new ColorChooserTag();
+ if (((String)model.getValue(SectionModel.PROPERTY_VALUE)).equals(m_notSet)) {
+ tag.setValueSet(false);
+ }
+ ColorChooserView propView = new ColorChooserView((ContainerView) view.getParent(), model, view.getName());
+ if (readonly) {
+ propView.setEnabled(false);
+ }
+ addCommonRenderParts(tag, view, prop);
+ buffer.append(tag.getHTMLString(getParent(), pageContext, propView));
+ }
+
+ protected void renderChooser(NonSyncStringBuffer buffer, PropertyView view,
+ SectionModel model, TemplateProperty prop) throws JspException {
+
+ String extendsChooser = prop.getExtendsChooser() ;
+ OptionList options = new OptionList() ;
+ ChooserHelper chooserHelper = new ChooserHelper(Toolbox2.getPropertyPath(prop)) ;
+ TemplateProperty definingChooser= chooserHelper.getDefiningChooser();
+
+ String chooserDataPath = definingChooser.getChooserPath() ;
+ String chooserNamePath = chooserHelper.getDefiningChooserPath();
+ String chooserLabel = prop.getLabelPopup() ;
+ if (chooserLabel == null) {
+ chooserLabel = definingChooser.getLabelPopup() ;
+ }
+ if (prop.getDefaultValue() == null) {
+ prop.setDefaultValue(definingChooser.getDefaultValue()) ;
+ }
+ ArrayList chooserOptions = chooserHelper.getElementsList();
+ options.add(m_notSet, m_notSet);
+ for(int i=0; i < chooserOptions.size(); i++) {
+ options.add((String)chooserOptions.get(i), (String)chooserOptions.get(i));
+ }
+
+ // Hashcode the chooserNamePath attribute & use this as an id
+ // when trying to update the profile pane with javascript
+ String chooserID = new Integer(chooserNamePath.hashCode()).toString() ;
+ chooserNamePath = Toolbox2.encode(chooserNamePath) ;
+
+ // Add the 'Edit...' button for the chooser
+ CCButtonTag buttonTag = new CCButtonTag();
+ buttonTag.setName(chooserID + "ChooserBtn") ;
+ buttonTag.setBundleID("apocBundle") ;
+ buttonTag.setDefaultValue("APOC.policies.edit.button") ;
+ buttonTag.setType(CCButton.TYPE_SECONDARY) ;
+ buttonTag.setOnClick( "parent.parent.parent.opener.EditListWindow = "
+ + "window.open('/apoc/manager/EditList?ChooserPath=" + chooserNamePath
+ + "&ChooserLabel=" + chooserLabel + "',"
+ + "'editListWindow', 'height=450,width=550,"
+ + "top='+((screen.height-650)/2)+',"
+ + "left='+((screen.width-900)/2)+',"
+ + "scrollbars,resizable');"
+ + "parent.parent.parent.opener.EditListWindow.focus();"
+ + "setChooserName(this.name); "
+ + "setChooserID('" + chooserID + "') ;"
+ + "return false;");
+ buttonTag.setTitle("APOC.chooser.edit.alt");
+ buttonTag.setOnMouseOver("window.status=this.title;return true");
+ buttonTag.setOnMouseOut("window.status='';return true");
+
+ CCButton button = null ;
+ button = new CCButton((ContainerView) view.getParent(),
+ model,
+ chooserID + "ChooserBtn",
+ null) ;
+
+ button.setElementId(view.getQualifiedName().substring(0, view.getQualifiedName().lastIndexOf(".")).concat(".EditButton")) ;
+
+ CCDropDownMenuTag tag = new CCDropDownMenuTag();
+ CCDropDownMenu dropDown = new CCDropDownMenu((View) view.getParent(), model, view.getName(), (Object) "0", options);
+ addCommonRenderParts(tag, view, prop);
+ buffer.append(tag.getHTMLString(getParent(), pageContext, dropDown));
+ // Add space between dropdown and button
+ buffer.append("&nbsp&nbsp&nbsp");
+ buffer.append(buttonTag.getHTMLString(getParent(), pageContext, button));
+ }
+
+
+ protected void renderCheckBox(NonSyncStringBuffer buffer, PropertyView view,
+ SectionModel model, TemplateProperty prop, boolean readonly) throws JspException {
+ if (readonly) {
+ renderStaticText(buffer, view, model, prop);
+ } else {
+ OptionList options = new OptionList();
+ //options.add("&#8212;&nbsp;Not Set&nbsp;&#8212;", "-notset-");
+ options.add(m_notSet, m_notSet);
+ String defaultValue = prop.getDefaultValue();
+
+ ResourceRepository resources = ResourceRepository.getDefaultRepository();
+ String value = resources.getValidMessage(
+ prop.getResourceId() + ".checked",
+ prop.getResourceBundle(),
+ RequestManager.getRequest());
+ if (value == null) {
+ value = m_i18N.getMessage("APOC.policies.enabled");
+ }
+ StringBuffer descr = new StringBuffer(value);
+ if ("true".equals(defaultValue)) {
+ descr.append(" &#8225");
+ }
+ options.add(descr.toString(), "true");
+
+ value = resources.getValidMessage(
+ prop.getResourceId() + ".unchecked",
+ prop.getResourceBundle(),
+ RequestManager.getRequest());
+ if (value == null) {
+ value = m_i18N.getMessage("APOC.policies.disabled");
+ }
+ descr = new StringBuffer(value);
+ if ("false".equals(defaultValue)) {
+ descr.append(" &#8225");
+ }
+ options.add(descr.toString(), "false");
+
+ CCDropDownMenuTag tag = new CCDropDownMenuTag();
+ tag.setEscape("false");
+ CCDropDownMenu dropDown = new CCDropDownMenu((View) view.getParent(), model, view.getName(), (Object) "0", options);
+ addCommonRenderParts(tag, view, prop);
+ buffer.append(tag.getHTMLString(getParent(), pageContext, dropDown));
+ }
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/PropertyView.java b/src/com/sun/apoc/manager/settings/PropertyView.java
new file mode 100644
index 0000000..8985b23
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/PropertyView.java
@@ -0,0 +1,54 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.DisplayFieldImpl;
+import com.sun.apoc.manager.settings.SectionModel;
+
+
+public class PropertyView extends DisplayFieldImpl {
+
+ private SectionModel m_model = null;
+
+ public PropertyView(ContainerView parent, SectionModel model, String name) {
+ super(parent, model, name, "Test");
+ if (model == null) {
+ throw new IllegalArgumentException("Model must not be null.");
+ }
+ m_model = model;
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/Section.java b/src/com/sun/apoc/manager/settings/Section.java
new file mode 100644
index 0000000..600cc24
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/Section.java
@@ -0,0 +1,304 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.PolicySettingsContentViewBean;
+import com.sun.apoc.spi.SPIException;
+import com.sun.web.ui.model.CCActionTableModelInterface;
+import com.sun.web.ui.view.html.CCButton;
+import com.sun.web.ui.view.table.CCActionTable;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.manager.profiles.ProfileWindowModel;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import java.util.LinkedList;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.ProfileWindowSettingsTreeViewBean;
+import com.sun.apoc.templates.parsing.TemplateSet;
+import com.sun.apoc.manager.resource.ResourceRepository;
+import com.sun.web.ui.view.html.CCStaticTextField;
+
+
+public class Section extends RequestHandlingViewBase {
+
+ public static final String CHILD_SECTION_TABLE = "PoliciesSectionTable";
+ public static final String CHILD_SECTION_TILED_VIEW = "PoliciesSectionTiledView";
+ public static final String CHILD_HIDDEN_INPUT = "UserInput";
+ public static final String CHILD_HIDDEN_SAVE_ALL = "SaveAllPage";
+ public static final String CHILD_NEW_BUTTON = "NewButton";
+ public static final String CHILD_DELETE_BUTTON = "DeleteButton";
+ public static final String CHILD_RENAME_BUTTON = "RenameButton";
+
+
+ protected CCActionTableModelInterface m_model = null;
+ private ProfileWindowModel mEditorModel = null;
+
+
+ public Section(ContainerView parent,
+ CCActionTableModelInterface model,
+ String name) {
+ super(parent, name);
+ if (model == null) {
+ throw new IllegalArgumentException("Model must not be null.");
+ }
+ m_model = model;
+ registerChildren();
+ }
+
+
+ protected void registerChildren() {
+ registerChild(CHILD_SECTION_TABLE, CCActionTable.class);
+ registerChild(CHILD_SECTION_TILED_VIEW, SectionTiledView.class);
+ m_model.registerChildren(this);
+ }
+
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_SECTION_TILED_VIEW)) {
+ SectionTiledView child = new SectionTiledView(this,
+ m_model, name);
+ return child;
+
+ } else if (name.equals(CHILD_SECTION_TABLE)) {
+ CCActionTable child = new CCActionTable(this, m_model, name);
+ child.setTiledView((ContainerView)
+ getChild(CHILD_SECTION_TILED_VIEW));
+ return child;
+
+ } else if (m_model.isChildSupported(name)) {
+ return m_model.createChild(this, name);
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleNewButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ CCDebug.trace3("NewButton clicked");
+ try {
+ String newPropertyName = Toolbox2.getParameter(CHILD_HIDDEN_INPUT);
+ ((SetModel) m_model).addEntry(newPropertyName);
+ ((SetModel) m_model).update();
+ } catch (SPIException ex) {
+ getEditorModel().setErrorMessage("Could not add entry", ex);
+ }
+
+ CCStaticTextField text = (CCStaticTextField) getViewBean(PolicySettingsContentViewBean.class).getChild(PolicySettingsContentViewBean.CHILD_REFRESH_SCRIPT);
+ text.setEscape(false);
+ text.setValue("setCurrentCategory('" + getEditorModel().getSelectedCategory() + "');refreshNavigationTree();");
+ ProfileWindowSettingsTreeViewBean.resetTreeModel();
+ String doFullPageSave = Toolbox2.getParameter(CHILD_HIDDEN_SAVE_ALL);
+ if (doFullPageSave != null && doFullPageSave.equals("true")) {
+ try {
+ getViewBean(PolicySettingsContentViewBean.class).mapRequestParameters(getRequestContext().getRequest());
+ ((PolicySettingsContentViewBean)getViewBean(PolicySettingsContentViewBean.class)).handleSaveButtonRequest(event);
+ } catch (ModelControlException ex) {
+ CCDebug.trace3(ex.toString());
+ }
+ } else {
+ getViewBean(PolicySettingsContentViewBean.class).forwardTo(RequestManager.getRequestContext());
+ }
+ }
+
+ public void handleRenameButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ CCDebug.trace3("RenameButton clicked");
+ try {
+ String newPropertyName = Toolbox2.getParameter(CHILD_HIDDEN_INPUT);
+ CCActionTable child = (CCActionTable) getChild(CHILD_SECTION_TABLE);
+ child.restoreStateData();
+ LinkedList changedNodes = new LinkedList();
+ for(int i = 0; i < m_model.getNumRows(); i++) {
+ if (m_model.isRowSelected(i)) {
+ m_model.setRowIndex(i);
+ String originalPropertyName = (String)m_model.getValue(SetModel.ENTRY_NAME);
+ m_model.setRowSelected(i, false);
+ ((SetModel) m_model).renameEntry(i, originalPropertyName, newPropertyName);
+ break;
+ }
+ }
+ ((SetModel) m_model).update();
+ } catch (SPIException ex) {
+ getEditorModel().setErrorMessage("Could not add entry", ex);
+ } catch (ModelControlException ex) {
+ CCDebug.trace1("Error removing entry", ex);
+ }
+
+ CCStaticTextField text = (CCStaticTextField) getViewBean(PolicySettingsContentViewBean.class).getChild(PolicySettingsContentViewBean.CHILD_REFRESH_SCRIPT);
+ text.setEscape(false);
+ text.setValue("setCurrentCategory('" + getEditorModel().getSelectedCategory() + "');refreshNavigationTree();");
+ ProfileWindowSettingsTreeViewBean.resetTreeModel();
+ String doFullPageSave = Toolbox2.getParameter(CHILD_HIDDEN_SAVE_ALL);
+ if (doFullPageSave != null && doFullPageSave.equals("true")) {
+ try {
+ getViewBean(PolicySettingsContentViewBean.class).mapRequestParameters(getRequestContext().getRequest());
+ ((PolicySettingsContentViewBean)getViewBean(PolicySettingsContentViewBean.class)).handleSaveButtonRequest(event);
+ } catch (ModelControlException ex) {
+ CCDebug.trace3(ex.toString());
+ }
+ } else {
+ getViewBean(PolicySettingsContentViewBean.class).forwardTo(RequestManager.getRequestContext());
+ }
+ }
+
+
+
+ public void handleDeleteButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ CCDebug.trace3("DeleteButton clicked");
+ try {
+ CCActionTable child = (CCActionTable) getChild(CHILD_SECTION_TABLE);
+ child.restoreStateData();
+ LinkedList changedNodes = new LinkedList();
+ for(int i = 0; i < m_model.getNumRows(); i++) {
+ if (m_model.isRowSelected(i)) {
+ CCDebug.trace1("Deleting row " + i);
+ m_model.setRowSelected(i, false);
+ ((SetModel) m_model).removeEntry(i);
+ }
+ }
+ m_model.setRowSelected(false);
+ ((SetModel) m_model).update();
+ } catch (SPIException ex) {
+ getEditorModel().setErrorMessage("Could not remove entry", ex);
+ } catch (ModelControlException ex) {
+ CCDebug.trace1("Error removing entry", ex);
+ }
+
+ CCStaticTextField text = (CCStaticTextField) getViewBean(PolicySettingsContentViewBean.class).getChild(PolicySettingsContentViewBean.CHILD_REFRESH_SCRIPT);
+ text.setEscape(false);
+ text.setValue("setCurrentCategory('" + getEditorModel().getSelectedCategory() + "');refreshNavigationTree();");
+ ProfileWindowSettingsTreeViewBean.resetTreeModel();
+ try {
+ getViewBean(PolicySettingsContentViewBean.class).mapRequestParameters(getRequestContext().getRequest());
+ ((PolicySettingsContentViewBean)getViewBean(PolicySettingsContentViewBean.class)).handleSaveButtonRequest(event);
+ } catch (ModelControlException ex) {
+ CCDebug.trace3(ex.toString());
+
+ }
+ }
+
+ /* public void handleToggleButtonRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ CCDebug.trace3("ToggleButton clicked");
+ try {
+ CCActionTable child = (CCActionTable) getChild(CHILD_SECTION_TABLE);
+ child.restoreStateData();
+ LinkedList changedNodes = new LinkedList();
+ for(int i = 0; i < m_model.getNumRows(); i++) {
+ if (m_model.isRowSelected(i)) {
+ m_model.setRowSelected(i, false);
+ ((SetModel) m_model).addRemoveEntry(i);
+ }
+ }
+ ((SetModel) m_model).update();
+ } catch (SPIException ex) {
+ getEditorModel().setErrorMessage("Could not add a remove set entry", ex);
+ } catch (ModelControlException ex) {
+ CCDebug.trace1("Error addding remove set entry", ex);
+ }
+ getViewBean(PolicySettingsContentViewBean.class).forwardTo(getRequestContext());
+ }*/
+
+ public boolean beginNewButtonDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ CCButton button = (CCButton) getChild(CHILD_NEW_BUTTON);
+ if (m_model instanceof SetModel) {
+ TemplateSet set = ((SetModel) m_model).getTemplateSet();
+ String labelPopup = set.getLabelPopup();
+ labelPopup = getLocalizedSetLabel(labelPopup, set.getResourceBundle());
+ button.setExtraHtml("onClick=\"javascript: return requestSetPropertyName(this,'" + labelPopup + "', 'false', document);\"");
+ }
+ return true;
+ }
+
+ public boolean beginDeleteButtonDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ CCButton button = (CCButton) getChild(CHILD_DELETE_BUTTON);
+ if (m_model instanceof SetModel) {
+ button.setDisabled(true);
+ }
+ return true;
+ }
+
+ public boolean beginRenameButtonDisplay(ChildDisplayEvent event)
+ throws ModelControlException {
+ CCButton button = (CCButton) getChild(CHILD_RENAME_BUTTON);
+ if (m_model instanceof SetModel) {
+ button.setDisabled(true);
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ String prompt = i18n.getMessage("APOC.policies.rename.set") ;
+ button.setExtraHtml("onClick=\"javascript: return requestSetPropertyName(this,'" + prompt + "', 'true', document);\"");
+ }
+ return true;
+ }
+
+ protected String getLocalizedSetLabel(String label, String resourceBundle) {
+ if (label == "" || label == null) {
+ CCI18N i18n = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ label = i18n.getMessage("APOC.policies.name.question") ;
+ } else {
+ ResourceRepository resources = ResourceRepository.getDefaultRepository();
+ String localizedLabel = resources.getValidMessage(
+ label,
+ resourceBundle,
+ RequestManager.getRequest());
+ if (localizedLabel != null) {
+ label = localizedLabel;
+ }
+ }
+ return label;
+ }
+
+ protected ProfileWindowModel getEditorModel() {
+ if (mEditorModel == null) {
+ mEditorModel = (ProfileWindowModel) getModel(ProfileWindowModel.class);
+ }
+ return mEditorModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/SectionModel.java b/src/com/sun/apoc/manager/settings/SectionModel.java
new file mode 100644
index 0000000..60f6abd
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/SectionModel.java
@@ -0,0 +1,560 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.manager.ChooserHelper;
+import com.sun.apoc.manager.ProfileWindowFramesetViewBean;
+import com.sun.apoc.templates.parsing.TemplateProperty;
+import com.sun.apoc.templates.parsing.TemplateSection;
+import com.sun.apoc.manager.resource.ResourceRepository;
+import com.sun.apoc.spi.cfgtree.DataType;
+import com.sun.apoc.spi.cfgtree.property.Property;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.templates.handler.ActionHandler;
+import com.sun.apoc.templates.handler.ActionHandlerProperty;
+import com.sun.apoc.templates.handler.HandlerContext;
+import com.sun.apoc.templates.parsing.TemplateActionHandler;
+import com.sun.apoc.templates.parsing.TemplatePage;
+import com.sun.apoc.templates.parsing.TemplateRepository;
+import com.sun.apoc.templates.parsing.TemplateXMLHandler;
+import com.sun.apoc.templates.parsing.TemplateXMLHandlerModel;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.model.CCActionTableModel;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+public class SectionModel extends CCActionTableModel {
+
+ public static final String PROPERTY = "Property";
+ public static final String PROPERTY_NAME = "PropertyName";
+ public static final String PROPERTY_VALUE = "PropertyValue";
+ public static final String PROPERTY_VALUE_TMP = "PropertyValueTmp";
+ public static final String ENFORCED_STATE = "Enforced";
+ public static final String ENFORCED_STATE_TMP = "EnforcedTmp";
+
+ public static final String DISABLED_FIELDS_VALUES = "DisabledFieldsValues";
+
+ public static final String RELATIVE_PATH = "./";
+ public static final String QUERIED_ID = "$queriedId";
+ public static final String UNDEFINED_VALUE = "-- Not Set --";
+
+ private TemplateSection m_templateSection = null;
+ private SheetModel m_templateModel = null;
+
+ public SectionModel(TemplateSection section,
+ SheetModel templateModel) {
+ super(RequestManager.getRequestContext().getServletContext(),
+ "/jsp/settings/ContentAreaPoliciesSection.xml");
+ m_templateSection = section;
+ m_templateModel = templateModel;
+ setActionValue("NameColumn", "APOC.profilewnd.settings.nameColumn");
+ setActionValue("ValueColumn", "APOC.profilewnd.settings.valueColumn");
+ setSelectionType(CCActionTableModel.MULTIPLE);
+ update();
+ }
+
+ public void update() {
+ ResourceRepository resources = ResourceRepository.getDefaultRepository();
+ String sectionName = resources.getMessage(
+ m_templateSection.getResourceId(),
+ m_templateSection.getResourceBundle(),
+ RequestManager.getRequest());
+ setTitle(sectionName);
+ try {
+ getRowList().clear();
+
+ PolicyMgrHelper mgr = ProfileWindowFramesetViewBean.getProfileHelper();
+ if (m_templateSection.getProperties() != null) {
+ HashMap handlerMap = new HashMap();
+ for(int i=0; i < m_templateSection.getProperties().size(); i++) {
+ TemplateProperty property = m_templateSection.getProperty(i);
+ String value = null;
+ String overwriteAllowed = "true";
+ Property prop = mgr.getProperty(getAbsolutePath(property.getDataPath()));
+
+ //if (property.isInScope(PolicyNavigationModel.getScope())) {
+
+ // If a property has an associated TemplateXMLHandler we need to
+ // add the required javascript function to a stringBuffer and in turn
+ // to a vector which can then be rendered by the view bean
+ if (property.getXmlHandler() != null) {
+ String handlerName = property.getXmlHandler() ;
+ TemplateXMLHandlerModel handlerModel = new TemplateXMLHandlerModel(m_templateModel) ;
+ TemplatePage page = m_templateModel.getPage() ;
+ TemplateXMLHandler handler = page.getXMLHandler(handlerName) ;
+ StringBuffer b = new StringBuffer();
+ ArrayList whenConditions = new ArrayList();
+ // Convert the handlers elements and attributes to javascript.
+ if (handler != null) {
+ if (handler.getCommands() != null) {
+ for(int j=0 ; j < handler.getCommands().size(); j++) {
+ String command = handlerModel.getJavaScript(handler.getCommand(j), TemplateXMLHandlerModel.COMMAND_TYPE) ;
+ b.append(command)
+ .append(";");
+ }
+ }
+ if (handler.getWhenCommandLists() != null) {
+ for(int k=0; k < handler.getWhenCommandLists().size(); k++) {
+ String condition = handlerModel.getJavaScript(handler.getTest(k), TemplateXMLHandlerModel.CONDITION_TYPE) ;
+ whenConditions.add(condition);
+ b.append("\nif(")
+ .append(condition)
+ .append(") {") ;
+ List commandList = handler.getWhenCommandList(k) ;
+ for(int j=0 ; j < commandList.size(); j++) {
+ String command = handlerModel.getJavaScript((String)commandList.get(j), TemplateXMLHandlerModel.COMMAND_TYPE) ;
+ b.append(command)
+ .append(";");
+ }
+ b.append("}") ;
+ }
+ }
+ if (handler.getOtherwiseCommands() != null) {
+ b.append("\nif (!(");
+ for (int j = 0; j < whenConditions.size(); j++) {
+ b.append("(")
+ .append(whenConditions.get(j))
+ .append(")");
+ if (j != whenConditions.size() - 1) {
+ b.append("||");
+ }
+ }
+ b.append(")) {") ;
+ for(int j=0 ; j < handler.getOtherwiseCommands().size(); j++) {
+ String command = handlerModel.getJavaScript(handler.getOtherwiseCommand(j), TemplateXMLHandlerModel.COMMAND_TYPE) ;
+ b.append(command)
+ .append(";");
+ }
+ b.append("}\n") ;
+ }
+ // Add the javascript to the vector - both inline and then within a function
+ b.insert(0, "\nfunction "+ handlerName + "() {") ;
+ b.append("}\n\n") ;
+ m_templateModel.addToXmlHandlerList(handlerName + "()\n") ;
+ m_templateModel.addToXmlHandlerList(b.toString()) ;
+ }
+ }
+
+
+ appendRow();
+ // get localized property name
+ String name = resources.getMessage(
+ property.getResourceId(),
+ property.getResourceBundle(),
+ RequestManager.getRequest());
+
+
+ // evaluate property value
+ if (prop != null) {
+ value = prop.getValue();
+ if (prop.isProtected()) {
+ overwriteAllowed = "false";
+ }
+ }
+
+ if (value == null) {
+ //value = getDefaultValue(property);
+ value = getUndefinedValue();
+ }
+
+ // special handling for choosers
+ // need to check if any choices used in content area
+ // (i.e. values stored in backend or defaults) are
+ // not stored in the current chooser list so
+ // they can be added where needed.
+ if (property.getVisualType().equals(TemplateProperty.CHOOSER)) {
+ ChooserHelper chooserHelper = new ChooserHelper(Toolbox2.getPropertyPath(property));
+ TemplateProperty definedChooser = chooserHelper.getDefiningChooser();
+ // Add the default value for a chooser to the backend list
+ if ((property.getDefaultValue() != null)
+ && (value != property.getDefaultValue())) {
+ m_templateModel.addToChooserLists(chooserHelper.getDefiningChooserPath(), property.getDefaultValue());
+ }
+ if (value != getUndefinedValue()) {
+ if (property.getVisualType().equals(TemplateProperty.CHOOSER)) {
+ m_templateModel.addToChooserLists(chooserHelper.getDefiningChooserPath(), value);
+ }
+ }
+ }
+
+ // special handling for color values in StarOffice
+ // (see #b4946354#)
+ if (property.getVisualType().equals(TemplateProperty.COLOR_CHOOSER) &&
+ property.getDataPath().startsWith("org.openoffice.Office")) {
+ if (value != getUndefinedValue()) {
+ StringBuffer buffer = new StringBuffer();
+ try {
+ String val = Integer.toHexString(new Integer(value).intValue());
+ buffer.append("#");
+ if (val.length() < 6) {
+ for (int j = 0; j < 6-val.length(); j++){
+ buffer.append("0");
+ }
+ }
+ buffer.append(val);
+ value = buffer.toString();
+ } catch (NumberFormatException ex) {
+ CCDebug.trace1("Error decoding value" + value, ex);
+ }
+ }
+ }
+ if (property.getActionHandler() != null) {
+ String handlerId = property.getActionHandler();
+ LinkedList propList = (LinkedList)handlerMap.get(handlerId);
+ if (propList == null) {
+ propList = new LinkedList();
+ }
+ ActionHandlerProperty ahp = new ActionHandlerProperty(property, value, !Boolean.getBoolean(overwriteAllowed));
+ propList.add(ahp);
+ handlerMap.put(handlerId, propList);
+ }
+ if (false) {
+ CCI18N i18n = new CCI18N(RequestManager.getRequestContext(),
+ Constants.RES_BASE_NAME);
+ // checkbox handling
+ if (property.getVisualType().equals(TemplateProperty.CHECKBOX)) {
+ if (value.equals("true")) {
+ value = resources.getValidMessage(
+ property.getResourceId() + ".checked",
+ property.getResourceBundle(),
+ RequestManager.getRequest());
+ if (value == null) {
+ value = i18n.getMessage("APOC.policies.enabled");
+ }
+ } else {
+ value = resources.getValidMessage(
+ property.getResourceId() + ".unchecked",
+ property.getResourceBundle(),
+ RequestManager.getRequest());
+ if (value == null) {
+ value = i18n.getMessage("APOC.policies.disabled");
+ }
+ }
+
+ // handling for combobox and radio button
+ } else if ((property.getVisualType().equals(TemplateProperty.RADIOBUTTONS)) ||
+ (property.getVisualType().equals(TemplateProperty.COMBOBOX))) {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(property.getResourceId());
+ buffer.append(".");
+ buffer.append(value);
+ String descr = resources.getMessage(
+ buffer.toString(),
+ property.getResourceBundle(),
+ RequestManager.getRequest());
+ if (descr != null) {
+ value = descr;
+ }
+
+ // handling for password fields (do not display passwords
+ // as clear text!)
+ } else if (property.getVisualType().equals(TemplateProperty.PASSWORD)) {
+ StringBuffer buffer = new StringBuffer();
+ for (int w = 0; w < value.length(); w++) {
+ buffer.append("*");
+ }
+ value = buffer.toString();
+ }
+ }
+
+ // fill the model
+ super.setValue(PROPERTY_NAME, name);
+ super.setValue(PROPERTY, property);
+ super.setValue(PROPERTY_VALUE, value);
+ super.setValue(PROPERTY_VALUE_TMP, null);
+ super.setValue(ENFORCED_STATE, overwriteAllowed);
+ super.setValue(ENFORCED_STATE_TMP, null);
+ //}
+ }
+ ArrayList propNames = new ArrayList();
+ for (int i=0;i < super.getSize(); i++){
+ super.setRowIndex(i);
+ TemplateProperty tp = (TemplateProperty)super.getValue(PROPERTY);
+ propNames.add(tp.getDefaultName());
+ }
+ Iterator keys = handlerMap.keySet().iterator();
+ while (keys.hasNext()) {
+ String handlerId = (String)keys.next();
+ LinkedList propList = (LinkedList)handlerMap.get(handlerId);
+ HandlerContext context = new HandlerContext(propList);
+ TemplateActionHandler handler = m_templateModel.getPage().getActionHandler(handlerId);
+ ((ActionHandler)(handler.getClassInstance())).handleLoad(context);
+ Iterator it = context.getProperties();
+ while (it.hasNext()) {
+ ActionHandlerProperty ahp = (ActionHandlerProperty)it.next();
+ String name = ahp.getName();
+ int location = propNames.indexOf(name);
+ super.setRowIndex(location);
+ super.setValue(PROPERTY_VALUE, ahp.getValue());
+ }
+ }
+ beforeFirst();
+ }
+ } catch (SPIException ex) {
+ CCDebug.trace1("Error using policy manager!", ex);
+ } catch (ModelControlException ex) {
+ CCDebug.trace1("Error initializing the model!", ex);
+ }
+ }
+
+ public void storeChanges() throws SPIException {
+ HashMap handlerMap = new HashMap();
+ //The disabledValueString is a '|' delimited string consisting of
+ //a triplet of property values - section name;index;value;.
+ String disabledValueString = (String)m_templateModel.getValue(SectionModel.DISABLED_FIELDS_VALUES) ;
+ String[] disabledValues = disabledValueString.split("\\|", -1) ;
+ for(int i = 0; i < disabledValues.length-2; i=i+3) {
+ if(this.getTemplateSection().getDefaultName().equals(disabledValues[i])) {
+ setRowIndex(Integer.parseInt(disabledValues[i+1]));
+ super.setValue(PROPERTY_VALUE_TMP, disabledValues[i+2]);
+ }
+ }
+ for(int index = 0; index < getNumRows(); index++) {
+ setRowIndex(index);
+ TemplateProperty property = (TemplateProperty) getValue(PROPERTY);
+ String newValue = (String) getValue(PROPERTY_VALUE_TMP);
+ String oldValue = (String) getValue(PROPERTY_VALUE);
+ String oldOverwriteState = (String) getValue(ENFORCED_STATE);
+ String newOverwriteState = (String) getValue(ENFORCED_STATE_TMP);
+ if (newOverwriteState == null) {
+ newOverwriteState = "false";
+ }
+ PolicyMgrHelper mgr = ProfileWindowFramesetViewBean.getProfileHelper();
+ Property prop = null;
+
+ // evaluate value column
+ if (newValue == null) {
+ newValue = "false";
+ }
+ // If a prop has an ActionHandler don't create/remove any
+ // Property objects let the handler deal with it
+ if (property.getActionHandler() != null) {
+ String handlerId = property.getActionHandler();
+ LinkedList propList = (LinkedList)handlerMap.get(handlerId);
+ if (propList == null) {
+ propList = new LinkedList();
+ }
+ ActionHandlerProperty ahp = new ActionHandlerProperty(property, newValue, !Boolean.getBoolean(newOverwriteState));
+ propList.add(ahp);
+ handlerMap.put(handlerId, propList);
+ }
+
+ if ((!newValue.equals(oldValue))) {
+ CCDebug.trace3("Value changed: " + property.getDefaultName());
+ CCDebug.trace3("New Value: " + newValue);
+ CCDebug.trace3("Old Value: " + oldValue);
+ prop = mgr.getProperty(getAbsolutePath(property.getDataPath()));
+ // special handling for color values in StarOffice
+ // (see #b4946354#)
+ String soColorChooserValue = newValue ;
+ if (!newValue.equals(getUndefinedValue())) {
+ if (property.getVisualType().equals(TemplateProperty.COLOR_CHOOSER) &&
+ property.getDataPath().startsWith("org.openoffice.Office")) {
+ try {
+ if (newValue.length() != 0) {
+ newValue = newValue.substring(1);
+ int hexInt = Integer.parseInt(newValue, 16);
+ long hexLong = Long.parseLong(newValue, 16);
+ newValue = Integer.toString(hexInt);
+ }
+ } catch (NumberFormatException ex) {
+ CCDebug.trace1("Error wrong value format" + newValue, ex);
+ newValue = "";
+ }
+ }
+ }
+
+ // clear
+ if (newValue.equals(getUndefinedValue())) {
+ mgr.removeProperty(getAbsolutePath(property.getDataPath()));
+ // we do no longer support the scenario, where the property
+ // value is NULL and the property itself is protected!
+ super.setValue(ENFORCED_STATE, "true");
+
+ // new property value
+ } else {
+ if (prop == null) {
+ prop = mgr.createProperty(getAbsolutePath(property.getDataPath()));
+ }
+ if (property.getVisualType().equals(TemplateProperty.STRING_LIST)) {
+ prop.setSeparator(property.getSeparator());
+ }
+ prop.put(newValue, getDataType(property));
+
+ }
+
+ if (property.getVisualType().equals(TemplateProperty.COLOR_CHOOSER) &&
+ property.getDataPath().startsWith("org.openoffice.Office")) {
+ super.setValue(PROPERTY_VALUE, soColorChooserValue);
+ } else {
+ super.setValue(PROPERTY_VALUE, newValue);
+ }
+ }
+
+ // evaluate enforce column
+ if ((!newOverwriteState.equals(oldOverwriteState))) {
+ prop = mgr.getProperty(getAbsolutePath(property.getDataPath()));
+ if (prop != null) {
+ if (newOverwriteState.equals("false")) {
+ prop.setProtected(true);
+ } else {
+ prop.setProtected(false);
+ }
+ } else {
+ // we do no longer support the scenario, where the property
+ // value is NULL and the property itself is protected!
+ newOverwriteState = "true";
+ }
+ super.setValue(ENFORCED_STATE, newOverwriteState);
+ oldOverwriteState = newOverwriteState;
+ }
+ }
+ Iterator keys = handlerMap.keySet().iterator();
+ while (keys.hasNext()) {
+ String handlerId = (String)keys.next();
+ LinkedList propList = (LinkedList)handlerMap.get(handlerId);
+ HandlerContext context = new HandlerContext(propList);
+ TemplateActionHandler handler = m_templateModel.getPage().getActionHandler(handlerId);
+ ((ActionHandler)(handler.getClassInstance())).handleSave(context);
+ }
+ }
+
+
+ public void setValue(String name, Object value) {
+ if (name.equals(PROPERTY_VALUE)) {
+ super.setValue(PROPERTY_VALUE_TMP, value);
+
+ } else if (name.equals(ENFORCED_STATE)) {
+ super.setValue(ENFORCED_STATE_TMP, value);
+
+ } else {
+ super.setValue(name, value);
+ }
+ }
+
+ public TemplateSection getTemplateSection() {
+ return m_templateSection;
+ }
+
+ public SheetModel getSheetModel() {
+ return m_templateModel;
+ }
+
+ public static DataType getDataType(TemplateProperty property) {
+ if (property.getDataType() == null) {
+ // No datatype associated with property! Using fallback datatype.
+ if (property.getVisualType().equals(TemplateProperty.CHECKBOX)) {
+ return DataType.BOOLEAN;
+ } else if (property.getVisualType().equals(TemplateProperty.COMBOBOX)) {
+ return DataType.INT;
+ } else if (property.getVisualType().equals(TemplateProperty.TEXTFIELD)) {
+ return DataType.STRING;
+ } else if (property.getVisualType().equals(TemplateProperty.TEXTAREA)) {
+ return DataType.STRING;
+ } else if (property.getVisualType().equals(TemplateProperty.RADIOBUTTONS)) {
+ return DataType.INT;
+ } else {
+ return DataType.STRING;
+ }
+ } else {
+ if (property.getDataType().equals("xs:boolean")) {
+ return DataType.BOOLEAN;
+ } else if (property.getDataType().equals("xs:short")) {
+ return DataType.SHORT;
+ } else if (property.getDataType().equals("xs:int")) {
+ return DataType.INT;
+ } else if (property.getDataType().equals("xs:long")) {
+ return DataType.LONG;
+ } else if (property.getDataType().equals("xs:double")) {
+ return DataType.DOUBLE;
+ } else if (property.getDataType().equals("xs:string")) {
+ return DataType.STRING;
+ } else if (property.getDataType().equals("xs:hexBinary")) {
+ return DataType.HEXBIN;
+ } else if (property.getDataType().equals("oor:any")) {
+ return DataType.ANY;
+ } else if (property.getDataType().equals("oor:boolean-list")) {
+ return DataType.BOOLEAN_LIST;
+ } else if (property.getDataType().equals("oor:short-list")) {
+ return DataType.SHORT_LIST;
+ } else if (property.getDataType().equals("oor:int-list")) {
+ return DataType.INT_LIST;
+ } else if (property.getDataType().equals("oor:long-list")) {
+ return DataType.LONG_LIST;
+ } else if (property.getDataType().equals("oor:double-list")) {
+ return DataType.DOUBLE_LIST;
+ } else if (property.getDataType().equals("oor:string-list")) {
+ return DataType.STRING_LIST;
+ } else if (property.getDataType().equals("oor:hexBinary-list")) {
+ return DataType.HEXBIN_LIST;
+ } else {
+ return DataType.STRING;
+ }
+ }
+ }
+
+ protected String getAbsolutePath(String datapath) throws SPIException {
+ //special handling for properties in sets
+ String absolutePath = datapath;
+ if (datapath.startsWith(RELATIVE_PATH)) {
+ absolutePath = m_templateModel.getPage().getDataPath()
+ + datapath.substring(1);
+ int dynamicPos = absolutePath.indexOf(QUERIED_ID);
+ absolutePath = absolutePath.substring(0, dynamicPos)
+ + PolicyMgrHelper.encodePath(m_templateModel.getSetIndex())
+ + absolutePath.substring(dynamicPos + QUERIED_ID.length());
+ }
+ return absolutePath;
+ }
+
+ public static String getUndefinedValue() {
+ CCI18N i18n = new CCI18N(RequestManager.getRequestContext(),
+ Constants.RES_BASE_NAME);
+ String localizedNotSet = i18n.getMessage("APOC.settings.notset");
+ if (localizedNotSet.equals("APOC.settings.notset")) {
+ localizedNotSet = "-- Not Set --";
+ }
+ return localizedNotSet;
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/SectionTiledView.java b/src/com/sun/apoc/manager/settings/SectionTiledView.java
new file mode 100644
index 0000000..e90e386
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/SectionTiledView.java
@@ -0,0 +1,93 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.settings;
+
+import com.iplanet.jato.view.RequestHandlingTiledViewBase;
+import com.iplanet.jato.view.View;
+import com.sun.web.ui.view.html.CCCheckBox;
+import com.sun.web.ui.model.CCActionTableModelInterface;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.apoc.manager.PolicySettingsContentViewBean;
+
+public class SectionTiledView extends RequestHandlingTiledViewBase {
+
+ public static final String CHILD_PROPERTY_VALUE = "PropertyValue";
+ public static final String CHILD_ENFORCED_VALUE = "Enforced";
+
+ private CCActionTableModelInterface m_model = null;
+
+ public SectionTiledView(View parent, CCActionTableModelInterface model,
+ String name) {
+ super(parent, name);
+ m_model = model;
+ setPrimaryModel(model);
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ m_model.registerChildren(this);
+ registerChild(CHILD_PROPERTY_VALUE, PropertyView.class);
+ registerChild(CHILD_ENFORCED_VALUE, CCCheckBox.class);
+ }
+
+ protected View createChild(String name) {
+ if (name.equals(CHILD_PROPERTY_VALUE)) {
+ PropertyView child = new PropertyView(this, (SectionModel) m_model, name);
+ return child;
+
+ } else if (name.equals(CHILD_ENFORCED_VALUE)) {
+ CCCheckBox child = new CCCheckBox(this, (SectionModel) m_model, name, "true", "false", true);
+ return child;
+
+ } else if (m_model.isChildSupported(name)) {
+ return m_model.createChild(this, name);
+
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+
+ public void handleSubPageHrefRequest(RequestInvocationEvent event) {
+ getViewBean(PolicySettingsContentViewBean.class).forwardTo(getRequestContext());
+ }
+
+}
+
+
+
diff --git a/src/com/sun/apoc/manager/settings/SetModel.java b/src/com/sun/apoc/manager/settings/SetModel.java
new file mode 100644
index 0000000..5e585b1
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/SetModel.java
@@ -0,0 +1,247 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import java.util.Iterator;
+import com.iplanet.jato.RequestManager;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.web.ui.model.CCActionTableModel;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.resource.ResourceRepository;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.templates.parsing.TemplateRepository;
+import com.sun.apoc.templates.parsing.TemplateSection;
+import com.sun.apoc.templates.parsing.TemplateSet;
+import com.sun.apoc.templates.parsing.TemplateProperty;
+import com.sun.apoc.manager.profiles.ProfileWindowModel;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.cfgtree.policynode.PolicyNode;
+import com.sun.apoc.spi.cfgtree.policynode.PolicyNodeImpl;
+import com.sun.apoc.spi.cfgtree.property.Property;
+import com.sun.apoc.spi.cfgtree.XMLStreamable;
+import com.sun.web.ui.common.CCI18N;
+
+public class SetModel extends CCActionTableModel {
+
+ public static final String ENTRY_NAME = "PropertyName";
+ public static final String ENTRY_NAME_NOT_LINK = "PropertyNameNotLink";
+ public static final String ENTRY_HREF = "SubPageHref";
+ public static final String ENTRY_ACTION = "ActionValue";
+
+ private ProfileWindowModel mEditorModel = null;
+ private TemplateRepository m_templateRepository = null;
+ private TemplateSet m_templateSet = null;
+ private ResourceRepository m_resources = null;
+
+
+ public SetModel(TemplateSection section) {
+ super();
+ m_templateRepository = TemplateRepository.getDefaultRepository();
+ m_templateSet = (TemplateSet) section;
+ byte scope = getEditorModel().getSettingsScope();
+ if (m_templateSet.getPage().hasVisibleContent(scope)) {
+ setDocument(RequestManager.getRequestContext().getServletContext(),
+ "/jsp/ContentAreaPoliciesSet.xml");
+ } else {
+ setDocument(RequestManager.getRequestContext().getServletContext(),
+ "/jsp/ContentAreaPoliciesSimpleSet.xml");
+ }
+
+ m_resources = ResourceRepository.getDefaultRepository();
+ String sectionName = m_resources.getMessage(
+ section.getResourceId(),
+ section.getResourceBundle(),
+ RequestManager.getRequest());
+ setTitle(sectionName);
+ setActionValue("NewButton", "APOC.policies.new.button");
+ setActionValue("DeleteButton", "APOC.policies.delete.button");
+ setActionValue("RenameButton", "APOC.pool.rename");
+ // setActionValue("ToggleButton", "APOC.policies.toggle.button");
+ setActionValue("NameColumn", "APOC.policies.nameCol");
+ // setActionValue("ActionColumn", "APOC.policies.actionCol");
+ setSelectionType(CCActionTableModel.MULTIPLE);
+ update();
+ }
+
+
+ public TemplateSet getTemplateSet() {
+ return m_templateSet;
+ }
+
+
+ public void update() {
+ try {
+ getRowList().clear();
+ PolicyMgrHelper mgr = getEditorModel().getProfileHelper();
+
+ StringBuffer sPath = new StringBuffer(getEditorModel().getSelectedCategory());
+ sPath.append(TemplateRepository.TEMPLATE_PATH_SEPARATOR);
+ sPath.append(TemplateRepository.SET_PREFIX);
+ sPath.append(m_templateSet.getDefaultName());
+ sPath.append(TemplateRepository.SET_INDEX_SEPARATOR);
+
+ CCI18N i18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+
+ PolicyNode node = mgr.getNode(m_templateSet.getDataPath());
+ if ((node != null)) {
+ String[] childrenNames = node.getChildrenNames();
+ for(int i = 0; i < childrenNames.length; i++) {
+ PolicyNode subNode = mgr.getNode(m_templateSet.getDataPath() + TemplateRepository.TEMPLATE_PATH_SEPARATOR
+ + mgr.encodePath(childrenNames[i]));
+ String attributes = ((PolicyNodeImpl)subNode).getAttributes(XMLStreamable.POLICY_SCHEMA);
+ if(attributes.indexOf("oor:op=\"replace\"") != -1) {
+ appendRow();
+ setValue(ENTRY_NAME, subNode.getName());
+ // setValue(ENTRY_NAME_NOT_LINK, "");
+ setValue(ENTRY_HREF, sPath.toString() + subNode.getName());
+ // setValue(ENTRY_ACTION, i18n.getMessage("APOC.policies.include_in") + " " + getTitle());
+ } /*else if (attributes.indexOf("oor:op=\"remove\"") != -1) {
+ appendRow();
+ setValue(ENTRY_NAME, "");
+ setValue(ENTRY_NAME_NOT_LINK, subNode.getName());
+ setValue(ENTRY_HREF, "");
+ setValue(ENTRY_ACTION, i18n.getMessage("APOC.policies.exclude_from") + " " + getTitle());
+ }*/
+ }
+ }
+ beforeFirst();
+ setMaxRows(getRowIndex() + 1);
+ } catch (SPIException ex) {
+ getEditorModel().setErrorMessage("Could not read values", ex);
+
+ } catch (ModelControlException ex) {
+ CCDebug.trace1("Error initializing the model!", ex);
+ }
+ }
+
+
+ public void addEntry(String name) throws SPIException {
+ PolicyMgrHelper mgr = getEditorModel().getProfileHelper();
+ PolicyNode node = mgr.createNode(m_templateSet.getDataPath());
+ PolicyNode entry = mgr.createReplaceNode(m_templateSet.getDataPath()
+ + TemplateRepository.TEMPLATE_PATH_SEPARATOR
+ + mgr.encodePath(name));
+ addRequiredProperties(m_templateSet.getDataPath(), name);
+ mgr.flushAllChanges();
+ }
+
+
+ /* public void addRemoveEntry(int index) throws SPIException, ModelControlException {
+ setLocation(index);
+ String name = (String) getValue(ENTRY_NAME);
+ PolicyMgrHelper mgr = getEditorModel().getProfileHelper();
+ PolicyNode node = mgr.getNode(m_templateSet.getDataPath());
+ node.addRemoveNode(node.getAbsolutePath());
+ mgr.flushAllChanges();
+ }*/
+
+ public void removeEntry(int index) throws SPIException, ModelControlException {
+ setLocation(index);
+ String name = (String) getValue(ENTRY_NAME);
+ PolicyMgrHelper mgr = getEditorModel().getProfileHelper();
+ PolicyNode node = mgr.getNode(m_templateSet.getDataPath());
+ node.removeNode(name);
+ mgr.flushAllChanges();
+ }
+
+
+ public void renameEntry(int index, String originalName, String newName) throws SPIException, ModelControlException {
+ setLocation(index);
+ PolicyMgrHelper mgr = getEditorModel().getProfileHelper();
+ PolicyNode node = mgr.getNode(m_templateSet.getDataPath());
+ if ((node != null)) {
+ String[] childrenNames = node.getChildrenNames();
+ for(int i = 0; i < childrenNames.length; i++) {
+ PolicyNode subNode = mgr.getNode(m_templateSet.getDataPath() + TemplateRepository.TEMPLATE_PATH_SEPARATOR
+ + mgr.encodePath(childrenNames[i]));
+ String attributes = ((PolicyNodeImpl)subNode).getAttributes(XMLStreamable.POLICY_SCHEMA);
+ if(subNode.getName().equals(originalName) && attributes.indexOf("oor:op=\"replace\"") != -1) {
+ subNode.setName(newName);
+ break;
+ }
+
+ }
+ }
+ mgr.flushAllChanges();
+ }
+
+ protected void addRequiredProperties(String basepath, String index)
+ throws SPIException {
+ PolicyMgrHelper mgr = getEditorModel().getProfileHelper();
+ Iterator it = m_templateSet.getPage().getSections().iterator();
+ while (it.hasNext()) {
+ TemplateSection section = (TemplateSection) it.next();
+ Iterator propIt = section.getProperties().iterator();
+ while(propIt.hasNext()) {
+ TemplateProperty property = (TemplateProperty) propIt.next();
+ if (property.isAutoStored()) {
+ String nodePath = getAbsolutePath(basepath,
+ mgr.encodePath(index),
+ property.getDataPath());
+ String value = property.getDefaultValue();
+ int pos = value.indexOf(SectionModel.QUERIED_ID);
+ value = value.substring(0, pos) + index +
+ value.substring(pos
+ + SectionModel.QUERIED_ID.length());
+ Property prop = mgr.createProperty(nodePath);
+ prop.put(value, SectionModel.getDataType(property));
+ }
+ }
+ }
+ }
+
+
+ protected String getAbsolutePath(String basepath, String index,
+ String datapath) {
+ String absolutePath = datapath;
+ if (datapath.startsWith(SectionModel.RELATIVE_PATH)) {
+ absolutePath = basepath + datapath.substring(1);
+ int dynamicPos = absolutePath.indexOf(SectionModel.QUERIED_ID);
+ absolutePath = absolutePath.substring(0, dynamicPos) + index
+ + absolutePath.substring(dynamicPos
+ + SectionModel.QUERIED_ID.length());
+ }
+ return absolutePath;
+ }
+
+
+ protected ProfileWindowModel getEditorModel() {
+ if (mEditorModel == null) {
+ mEditorModel = (ProfileWindowModel) RequestManager.getRequestContext().getModelManager().getModel(ProfileWindowModel.class);
+ }
+ return mEditorModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/Sheet.java b/src/com/sun/apoc/manager/settings/Sheet.java
new file mode 100644
index 0000000..ad8dd8b
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/Sheet.java
@@ -0,0 +1,106 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.RequestHandlingViewBase;
+import com.iplanet.jato.view.View;
+import com.sun.apoc.templates.parsing.TemplateElement;
+import com.sun.apoc.templates.parsing.TemplatePage;
+import com.sun.apoc.templates.parsing.TemplateSection;
+import com.sun.apoc.templates.parsing.TemplateSet;
+
+
+public class Sheet extends RequestHandlingViewBase {
+
+ public static final String CHILD_SECTION = "PolicySection";
+
+ private boolean m_hasSubCategories = false;
+
+ public Sheet(ContainerView parent,
+ SheetModel model, String name, boolean hasSubCategories) {
+ super(parent, name);
+ if (model == null) {
+ throw new IllegalArgumentException("Model must not be null.");
+ }
+ setDefaultModel(model);
+ m_hasSubCategories = hasSubCategories;
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ for(int i = 0; i < getModel().getNumRows(); i++) {
+ getModel().setRowIndex(i);
+ TemplateElement element = (TemplateElement)
+ getModel().getValue(SheetModel.TEMPLATE_SECTION);
+ registerChild(element.getDefaultName(), Section.class);
+ }
+ }
+
+ protected View createChild(String name) {
+ TemplatePage page = getModel().getPage();
+ TemplateSection section = page.getSection(name);
+ if (section != null) {
+ getModel().setRowIndex(page.getSectionIndex(name));
+
+ // The template page consists of sections and sets. Sets are
+ // different from sections as they are just displaying links
+ // (instead of displaying properties in sections).
+ if (section instanceof TemplateSet) {
+ SetModel setModel = new SetModel(section);
+ Section child = new Section(this, setModel, name);
+ getModel().setValue(SheetModel.SECTION_MODEL, setModel);
+ return child;
+ } else {
+ SectionModel sectionModel = new SectionModel(section, getModel());
+ Section child = new Section(this, sectionModel, name);
+ getModel().setValue(SheetModel.SECTION_MODEL, sectionModel);
+ return child;
+ }
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid child name [" + name + "]");
+ }
+ }
+
+ public boolean hasSubCategories() {
+ return m_hasSubCategories;
+ }
+
+ public SheetModel getModel() {
+ return (SheetModel) super.getDefaultModel();
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/SheetModel.java b/src/com/sun/apoc/manager/settings/SheetModel.java
new file mode 100644
index 0000000..d1cefb7
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/SheetModel.java
@@ -0,0 +1,194 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import java.util.Iterator;
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import com.iplanet.jato.RequestContext;
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.RequestParticipant;
+import com.iplanet.jato.model.DefaultModel;
+import com.sun.apoc.templates.parsing.TemplatePage;
+import com.sun.apoc.templates.parsing.TemplateRepository;
+import com.sun.apoc.templates.parsing.TemplateSection;
+import com.sun.apoc.manager.profiles.ProfileWindowModel;
+import com.sun.apoc.manager.resource.ResourceRepository;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.manager.ProfileWindowFramesetViewBean;
+
+
+public class SheetModel extends DefaultModel implements RequestParticipant {
+
+ public static final String TEMPLATE_SECTION = "TemplateSection";
+ public static final String TEMPLATE_SECTION_NAME = "TemplateSectionName";
+ public static final String TEMPLATE_SECTION_ANCHOR = "TemplateSectionAnchor";
+ public static final String SECTION_MODEL = "TemplateSectionModel";
+
+ private TemplatePage m_page = null;
+ private String mSetIndex = null;
+ private ProfileWindowModel mEditorModel = null;
+ private RequestContext mRequestContext = null;
+ private ArrayList m_choosersIds = new ArrayList();
+ private ArrayList m_xmlHandlers = new ArrayList();
+ private HashMap m_choosers = new HashMap();
+
+ public TemplatePage getPage() {
+ return m_page;
+ }
+
+ public boolean hasSections() {
+ if (m_page.getSections() == null) {
+ return false;
+ } else {
+ return m_page.getSections().size() > 0;
+ }
+ }
+
+ public String getSetIndex() {
+ return mSetIndex;
+ }
+
+ public void setRequestContext(RequestContext ctx) {
+ mRequestContext = ctx;
+ m_choosersIds = new ArrayList();
+ m_xmlHandlers = new ArrayList();
+ m_choosers = new HashMap();
+ TemplateRepository repository = TemplateRepository.getDefaultRepository();
+ String templatePath = getEditorModel().getSelectedCategory();
+
+ int setIndexPos = templatePath.indexOf(TemplateRepository.SET_INDEX_SEPARATOR);
+ if (setIndexPos != -1) {
+ mSetIndex = templatePath.substring(setIndexPos+1);
+ }
+
+ getRowList().clear();
+ m_page = repository.getPage(templatePath, getEditorModel().getSettingsScope());
+ if ((m_page != null) && (m_page.getSections() != null)) {
+ Iterator it = m_page.getSections().iterator();
+ while(it.hasNext()) {
+ TemplateSection section = (TemplateSection) it.next();
+ if (section.isInScope(getEditorModel().getSettingsScope())) {
+ appendRow();
+ ResourceRepository resources = ResourceRepository.getDefaultRepository();
+ String name = resources.getMessage(
+ section.getResourceId(),
+ section.getResourceBundle(),
+ RequestManager.getRequest());
+
+ setValue(TEMPLATE_SECTION, section);
+ setValue(TEMPLATE_SECTION_NAME, name);
+ setValue(TEMPLATE_SECTION_ANCHOR, section.getDefaultName());
+ }
+ }
+ }
+ }
+
+ public void storeChanges() throws SPIException {
+ for(int i = 0; i < getNumRows(); i++) {
+ setRowIndex(i);
+ Object model = getValue(SECTION_MODEL);
+ if (model instanceof SetModel) {
+
+ } else {
+ SectionModel sectionModel = (SectionModel) model;
+ sectionModel.storeChanges();
+ }
+ }
+ // up to now the changes are only in the cached policy trees
+ // the next command will make the changes permanent
+ ProfileWindowFramesetViewBean.getProfileHelper().flushAllChanges();
+ }
+
+ public ArrayList getChooserIds() {
+ if (m_choosersIds.size() == 0) {
+ return null;
+ }
+ return m_choosersIds;
+ }
+
+ public ArrayList getChooserValues(String id) {
+ if (m_choosers.containsKey(id)) {
+ return (ArrayList)m_choosers.get(id);
+ } else {
+ return null;
+ }
+ }
+
+ public void addToChooserLists(String id, String value) {
+ int index = m_choosersIds.indexOf(id);
+ ArrayList chooserList = new ArrayList();
+ if (index == -1) {
+ m_choosersIds.add(0, id);
+ chooserList.add(value);
+ m_choosers.put(id, chooserList);
+ } else {
+ chooserList = (ArrayList)m_choosers.get(id);
+ chooserList.add(value);
+ m_choosers.put(id, chooserList);
+ }
+
+ }
+
+ public void resetChoosers() {
+ m_choosersIds.clear();
+ m_choosers.clear();
+ }
+
+ public ArrayList getXmlHandlers() {
+ if (m_xmlHandlers.size() == 0) {
+ return null;
+ }
+ return m_xmlHandlers;
+ }
+
+ public void addToXmlHandlerList(String handlerText) {
+ m_xmlHandlers.add(handlerText);
+ }
+
+ public void resetXmlHandlers() {
+ m_xmlHandlers.clear();
+ }
+
+
+ public ProfileWindowModel getEditorModel() {
+ if (mEditorModel == null) {
+ mEditorModel = (ProfileWindowModel) mRequestContext.getModelManager().getModel(ProfileWindowModel.class);
+ }
+ return mEditorModel;
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/SheetTag.java b/src/com/sun/apoc/manager/settings/SheetTag.java
new file mode 100644
index 0000000..08fb8bb
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/SheetTag.java
@@ -0,0 +1,283 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.tagext.Tag;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.util.NonSyncStringBuffer;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.JspDisplayEvent;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.templates.parsing.TemplateElement;
+import com.sun.apoc.templates.parsing.TemplateSet;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.view.html.CCCheckBox;
+import com.sun.web.ui.view.table.CCActionTable;
+import com.sun.web.ui.taglib.table.CCActionTableTag;
+import com.sun.web.ui.taglib.html.CCCheckBoxTag;
+import com.sun.web.ui.taglib.common.CCDescriptorTagBase;
+import com.sun.web.ui.taglib.common.CCTagBase;
+
+
+public class SheetTag extends CCDescriptorTagBase {
+
+ public SheetTag() {
+ super();
+ }
+
+ public void reset() {
+ super.reset();
+ }
+
+ protected String getHTMLStringInternal(Tag parent, PageContext pageContext,
+ View view) throws JspException {
+ if (parent == null) {
+ throw new IllegalArgumentException("parent cannot be null.");
+ } else if (pageContext == null) {
+ throw new IllegalArgumentException("pageContext cannot be null.");
+ } else if (view == null) {
+ throw new IllegalArgumentException("view cannot be null.");
+ }
+ checkChildType(view, Sheet.class);
+ Sheet field = (Sheet) view;
+ SheetModel model = field.getModel();
+ if (model == null) {
+ throw new IllegalArgumentException("Model cannot be null");
+ }
+ setParent(parent);
+ setPageContext(pageContext);
+ CCI18N i18N = new CCI18N(getRequestContext(), Constants.RES_BASE_NAME);
+ NonSyncStringBuffer buffer = new NonSyncStringBuffer(DEFAULT_BUFFER_SIZE);
+
+ try {
+ field.beginDisplay(new JspDisplayEvent(this, pageContext));
+ if ((model.getNumRows() > 0) && field.hasSubCategories()) {
+ appendBackToTopLink(buffer, i18N);
+ }
+
+ if (model.getNumRows() > 0) appendPageLegend(buffer);
+
+ for(int i = 0; i < model.getNumRows(); i++) {
+ model.setRowIndex(i);
+ TemplateElement element = (TemplateElement) model.getValue(SheetModel.TEMPLATE_SECTION);
+ appendSectionAnchor(buffer, element.getDefaultName());
+
+ Section sectionChild = (Section) field.getChild(element.getDefaultName());
+ SectionTiledView tiledView = (SectionTiledView) sectionChild.getChild(Section.CHILD_SECTION_TILED_VIEW);
+ appendSectionBorder(buffer);
+ appendSectionStart(buffer, (String) model.getValue(SheetModel.TEMPLATE_SECTION_NAME),
+ field, element, pageContext);
+ if (element instanceof TemplateSet) {
+ appendSetTable(buffer, sectionChild);
+ } else {
+ appendProperties(buffer, tiledView, pageContext, i18N);
+ }
+ appendSectionEnd(buffer);
+ if (model.getNumRows() > 0) {
+ appendBackToTopLink(buffer, i18N);
+ }
+ }
+ } catch (ModelControlException e) {
+ throw new JspException(e.getRootCause());
+ }
+ return buffer.toString();
+ }
+
+
+ protected void appendPageLegend(NonSyncStringBuffer buffer) {
+ String defaultMsg = Toolbox2.getI18n("APOC.profiles.default.msg");
+ buffer.append("<div align=\"right\" class=\"LblRqdDiv\"");
+ buffer.append("style=\"margin-top:5px;margin-right:10px;margin-bottom:5px;margin-left:0px\">");
+ buffer.append("&#8225 ");
+ buffer.append(defaultMsg);
+ buffer.append("</div>");
+ }
+
+
+ protected void appendSetTable(NonSyncStringBuffer buffer, Section section)
+ throws JspException {
+ CCActionTableTag tableTag = new CCActionTableTag();
+ tableTag.setBundleID("apocBundle");
+ tableTag.setShowPaginationControls("false");
+ tableTag.setShowPaginationIcon("false");
+ tableTag.setShowAdvancedSortIcon("false");
+ tableTag.setShowLowerActions("false");
+ tableTag.setSummary("APOC.properties.tableSummary");
+ tableTag.setShowSelectionIcons("true");
+ tableTag.setShowSelectionSortIcon("false");
+ tableTag.setSelectionJavascript("javascript: setTimeout(toggleSetButtons(this), 0);");
+ CCActionTable tableChild = (CCActionTable) section.getChild(Section.CHILD_SECTION_TABLE);
+ buffer.append(tableTag.getHTMLString(getParent(), pageContext, tableChild));
+ }
+
+
+ protected void appendProperties(NonSyncStringBuffer buffer, SectionTiledView tiledView,
+ PageContext pageContext, CCI18N i18N) throws JspException {
+ SectionModel tiledViewModel = (SectionModel) tiledView.getPrimaryModel();
+ String qualName = tiledView.getQualifiedName();
+ if (qualName.indexOf("[") != -1) {
+ qualName = qualName.substring(0, qualName.indexOf("["));
+ }
+ String overwriteColLabel = qualName + ".overwriteLabelCol";
+ buffer.append("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" title=\"\">");
+ buffer.append("<tr>");
+ buffer.append("<td valign=\"top\">&nbsp;</td>");
+ buffer.append("<td valign=\"top\">&nbsp;</td>");
+ buffer.append("<td valign=\"top\">&nbsp;</td>");
+ buffer.append("<td id=\"");
+ buffer.append(overwriteColLabel);
+ buffer.append("\" valign=\"top\"><span class=\"LblLev2Txt\">");
+ buffer.append(i18N.getMessage("APOC.profilewnd.settings.overwrite"));
+ buffer.append("</span></td>");
+ buffer.append("</tr>");
+
+ for (int z = 0; z < tiledViewModel.getNumRows(); z++) {
+ tiledViewModel.setRowIndex(z);
+
+ PropertyTag propTag = new PropertyTag();
+ PropertyView propChild = (PropertyView) tiledView.getChild(SectionTiledView.CHILD_PROPERTY_VALUE);
+
+ CCCheckBoxTag checkBoxTag = new CCCheckBoxTag();
+ CCCheckBox checkBox = (CCCheckBox) tiledView.getChild(SectionTiledView.CHILD_ENFORCED_VALUE);
+ StringBuffer buffer2 = new StringBuffer();
+ buffer2.append("javascript:setTimeout(\"updateSaveStatus('");
+ buffer2.append(checkBox.getQualifiedName());
+ buffer2.append("');\",0);");
+ checkBoxTag.setOnClick(buffer2.toString());
+ checkBoxTag.setTitle(i18N.getMessage("APOC.profilewnd.settings.overwrite"));
+
+ buffer.append("<tr>");
+ buffer.append("<td valign=\"top\">");
+ buffer.append("<div class=\"ConTblCl1Div\">");
+ buffer.append("<span class=\"LblLev2Txt\">");
+ buffer.append("<label for=\"psLbl1\">");
+ buffer.append(tiledViewModel.getValue(SectionModel.PROPERTY_NAME));
+ buffer.append(":</label>");
+ buffer.append("</span>");
+ buffer.append("</div>");
+ buffer.append("</td>");
+ buffer.append("<td valign=\"top\">");
+ buffer.append("<div class=\"ConTblCl2Div\">");
+ buffer.append("<span id=\"psLbl1\" class=\"ConDefTxt\">");
+ buffer.append(propTag.getHTMLString(this, pageContext, propChild));
+ buffer.append("</span>");
+ buffer.append("</div>");
+ buffer.append("</td>");
+
+ buffer.append("<td valign=\"top\" width=\"20px\">&nbsp;</td>");
+
+ buffer.append("<td align=\"center\" valign=\"top\">");
+ buffer.append("<div class=\"ConTblCl2Div\">");
+ buffer.append("<span id=\"psLbl1\" class=\"ConDefTxt\">");
+ buffer.append(checkBoxTag.getHTMLString(this, pageContext, checkBox));
+ buffer.append("</span>");
+ buffer.append("</div>");
+ buffer.append("</td>");
+
+ buffer.append("</tr>");
+ }
+ buffer.append("</table>");
+ }
+
+ protected void appendSectionBorder(NonSyncStringBuffer buffer) {
+ buffer.append("<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" title=\"\">");
+ buffer.append("<tr>");
+ buffer.append("<td><img src=\"/com_sun_web_ui/images/other/dot.gif\" alt=\"\" border=\"0\" height=\"1\" width=\"10\"/></td>");
+ buffer.append("<td class=\"ConLin\" width=\"100%\">");
+ buffer.append("<img src=\"/com_sun_web_ui/images/other/dot.gif\" alt=\"\" border=\"0\" height=\"1\" width=\"1\"/>");
+ buffer.append("</td>");
+ buffer.append("</tr>");
+ buffer.append("</table>");
+ }
+
+ protected void appendSectionStart(NonSyncStringBuffer buffer, String sectionTitle, Sheet field,
+ TemplateElement element, PageContext pageContext) throws JspException {
+ if (isIe()) {
+ buffer.append("<fieldset class=\"ConFldSet\">");
+ buffer.append("<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" title=\"\">");
+ buffer.append("<tr>");
+ buffer.append("<td>");
+ buffer.append("<legend class=\"ConFldSetLgd\">");
+ buffer.append(sectionTitle);
+ buffer.append("</legend>");
+ buffer.append("</td>");
+ buffer.append("</tr>");
+ buffer.append("</table>");
+ } else {
+ buffer.append("<div class=\"ConFldSetDiv\">");
+ buffer.append("<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" title=\"\">");
+ buffer.append("<tr>");
+ buffer.append("<td>");
+ buffer.append("<div class=\"ConFldSetLgdDiv\">");
+ buffer.append(sectionTitle);
+ buffer.append("</div>");
+ buffer.append("</td>");
+ buffer.append("</tr>");
+ buffer.append("</table>");
+ }
+ }
+
+ protected void appendSectionEnd(NonSyncStringBuffer buffer) {
+ if (isIe()) {
+ buffer.append("</fieldset>");
+ } else {
+ buffer.append("</div>");
+ }
+ }
+
+ protected void appendSectionAnchor(NonSyncStringBuffer buffer, String anchorName) {
+ buffer.append("<a name=\"");
+ buffer.append(anchorName);
+ buffer.append("\"/>");
+ }
+
+ protected void appendBackToTopLink(NonSyncStringBuffer buffer, CCI18N i18N) {
+ buffer.append("<div class=\"ConJmpTopDiv\"><a href=\"#top\" class=\"JmpTopLnk\" title=\"");
+ buffer.append(i18N.getMessage("APOC.policies.backToTop.tooltip"));
+ buffer.append("\">");
+ buffer.append("<img src=\"/com_sun_web_ui/images/href/to_top.gif\" alt=\"\" border=\"0\" height=\"10\" width=\"11\" />");
+ buffer.append(i18N.getMessage("APOC.ca.backtop"));
+ buffer.append("</a></div>");
+ }
+
+ protected void setTagAttributes(View child, CCTagBase tag, String element)
+ throws JspException {
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/SpinProperty.java b/src/com/sun/apoc/manager/settings/SpinProperty.java
new file mode 100644
index 0000000..79945bc
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/SpinProperty.java
@@ -0,0 +1,47 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.settings;
+
+import com.iplanet.jato.model.DefaultModel;
+import com.iplanet.jato.view.ContainerView;
+import com.iplanet.jato.view.DisplayFieldImpl;
+
+public class SpinProperty extends DisplayFieldImpl {
+
+ public SpinProperty(ContainerView parent, String name, Object value) {
+ super(parent, name, value);
+ }
+}
diff --git a/src/com/sun/apoc/manager/settings/SpinPropertyTag.java b/src/com/sun/apoc/manager/settings/SpinPropertyTag.java
new file mode 100644
index 0000000..e082eb2
--- /dev/null
+++ b/src/com/sun/apoc/manager/settings/SpinPropertyTag.java
@@ -0,0 +1,158 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.manager.settings;
+
+import com.iplanet.jato.util.NonSyncStringBuffer;
+import com.iplanet.jato.view.View;
+import com.sun.web.ui.common.CCI18N;
+import com.sun.web.ui.taglib.common.CCDisplayFieldTagBase;
+import java.net.URLEncoder;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.tagext.Tag;
+
+public class SpinPropertyTag extends CCDisplayFieldTagBase {
+
+ protected static final String ATTRIB_UPTITLE = "upTitle";
+ protected static final String ATTRIB_DOWNTITLE = "downTitle";
+ protected static final String ATTRIB_UPACTION = "upAction";
+ protected static final String ATTRIB_DOWNACTION = "downAction";
+ protected static final String ATTRIB_SIZE = "size";
+
+ public SpinPropertyTag() {
+ super();
+ }
+
+ public void reset() {
+ super.reset();
+ }
+
+ public String getUpTitle() {
+ return (String) getValue(ATTRIB_UPTITLE);
+ }
+
+ public void setUpTitle(String value) {
+ setValue(ATTRIB_UPTITLE, value);
+ }
+
+ public String getDownTitle() {
+ return (String) getValue(ATTRIB_DOWNTITLE);
+ }
+
+ public void setDownTitle(String value) {
+ setValue(ATTRIB_DOWNTITLE, value);
+ }
+
+ public String getUpAction() {
+ return (String) getValue(ATTRIB_UPACTION);
+ }
+
+ public void setUpAction(String value) {
+ setValue(ATTRIB_UPACTION, value);
+ }
+
+ public String getDownAction() {
+ return (String) getValue(ATTRIB_DOWNACTION);
+ }
+
+ public void setDownAction(String value) {
+ setValue(ATTRIB_DOWNACTION, value);
+ }
+
+ public String getSize() {
+ return (String) getValue(ATTRIB_SIZE);
+ }
+
+ public void setSize(String value) {
+ setValue(ATTRIB_SIZE, value);
+ }
+
+ protected String getHTMLStringInternal(Tag parent, PageContext pageContext, View view) throws JspException {
+ if (parent == null) {
+ throw new IllegalArgumentException("parent cannot be null.");
+ } else if (pageContext == null) {
+ throw new IllegalArgumentException("pageContext cannot be null.");
+ } else if (view == null) {
+ throw new IllegalArgumentException("view cannot be null.");
+ }
+
+ checkChildType(view, SpinProperty.class);
+ setParent(parent);
+ setPageContext(pageContext);
+
+ SpinProperty field = (SpinProperty) view;
+ CCI18N i18N = new CCI18N(pageContext, "apocBundle");
+ String value = (String) field.getValue();
+ NonSyncStringBuffer buffer = new NonSyncStringBuffer(DEFAULT_BUFFER_SIZE);
+ String qualName = field.getQualifiedName();
+ String qualNameEncoded = URLEncoder.encode(qualName);
+
+ buffer.append("<table cellpadding=\"0\" cellspacing=\"2\" border=\"0\" width=\"100%\">\r\n");
+ buffer.append(" <tr>\r\n");
+ buffer.append(" <td align=\"left\">\r\n");
+ buffer.append(" <span class=\"LblLev2Txt\"><label for=\""+qualName+"Value\">"+i18N.getMessage((String)field.getValue())+"</label></span>\r\n");
+ buffer.append(" </td>\r\n");
+ buffer.append(" <td align=\"right\">\r\n");
+ buffer.append(" <input type=\"text\" name=\""+qualName+"Value\" id=\""+qualName+"Value\" value=\"\" size=\""+getSize()+"\" class=\"TxtFld\" tabindex=\""+getTabIndex()+"\" onchange=\""+getOnChange()+"\" />\r\n");
+ buffer.append(" </td>\r\n");
+ buffer.append(" <td align=\"right\">\r\n");
+ buffer.append(" <table cellpadding=\"0\" cellspacing=\"2\" border=\"0\" width=\"100%\">\r\n");
+ buffer.append(" <tr>\r\n");
+ buffer.append(" <td>\r\n");
+ buffer.append(" <a href=\"javascript:"+getUpAction()+"\" tabindex=\""+(Integer.parseInt(getTabIndex())+1)+"\" title=\""+i18N.getMessage(getUpTitle())+"\" onmouseover=\"window.status=this.title;return true;\" onmouseout=\"window.status='';return true;\">\r\n");
+ buffer.append(" <img alt=\""+i18N.getMessage(getUpTitle())+"\" src=\"/apoc/images/increase.png\" border=\"0\" height=\"6\" width=\"9\" /></a>\r\n");
+ buffer.append(" </td>\r\n");
+ buffer.append(" </tr>\r\n");
+ buffer.append(" <tr>\r\n");
+ buffer.append(" <td>\r\n");
+ buffer.append(" <img alt=\"\" src=\"/com_sun_web_ui/images/other/dot.gif\" height=\"1\" width=\"2\" />\r\n");
+ buffer.append(" </td>\r\n");
+ buffer.append(" </tr>\r\n");
+ buffer.append(" <tr>\r\n");
+ buffer.append(" <td>\r\n");
+ buffer.append(" <a href=\"javascript:"+getDownAction()+"\" tabindex=\""+(Integer.parseInt(getTabIndex())+2)+"\" title=\""+i18N.getMessage(this.getDownTitle())+"\" onmouseover=\"window.status=this.title;return true;\" onmouseout=\"window.status='';return true;\">\r\n");
+ buffer.append(" <img alt=\""+i18N.getMessage(getUpTitle())+"\" src=\"/apoc/images/decrease.png\" border=\"0\" height=\"6\" width=\"9\" /></a>\r\n");
+ buffer.append(" </td>\r\n");
+ buffer.append(" </tr>\r\n");
+ buffer.append(" </table>\r\n");
+ buffer.append(" </td>\r\n");
+ buffer.append(" </tr>\r\n");
+ buffer.append("</table>\r\n");
+
+ return buffer.toString();
+ }
+}
diff --git a/src/com/sun/apoc/manager/sync/ContextTiledModel.java b/src/com/sun/apoc/manager/sync/ContextTiledModel.java
new file mode 100755
index 0000000..f348b56
--- /dev/null
+++ b/src/com/sun/apoc/manager/sync/ContextTiledModel.java
@@ -0,0 +1,941 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.sync;
+
+import com.iplanet.jato.RequestManager;
+import com.iplanet.jato.model.DefaultModel;
+import com.iplanet.jato.model.DefaultModel.SingleFieldValueComparator;
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.SyncLoginViewBean;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.manager.entities.NavigationModel;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Domain;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.entities.Host;
+import com.sun.apoc.spi.entities.Node;
+import com.sun.apoc.spi.entities.Role;
+import com.sun.apoc.spi.environment.EnvironmentConstants;
+import com.sun.apoc.spi.ldap.entities.LdapEntityType;
+import com.sun.apoc.spi.policies.Policy;
+import com.sun.apoc.spi.profiles.Applicability;
+import com.sun.apoc.spi.profiles.InvalidProfileException;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.profiles.ProfileRepository;
+import java.io.InputStream;
+import java.io.StringBufferInputStream;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.StringTokenizer;
+import java.util.TreeSet;
+import javax.servlet.http.HttpSession;
+public class ContextTiledModel extends DefaultModel {
+
+ public static final String LEFT_ENTITY = "LeftEntity";
+ public static final String RIGHT_ENTITY = "RightEntity";
+ public static final String PROFILES = "Profiles";
+ public static final String TITLE = "Title";
+ public static final String ORG_ROOT_IDENT = "_!ORGfzwn!_";
+ public static final String DOM_ROOT_IDENT = "_!DOMwsui!_";
+
+ private PolicyManager m_leftPolicyManager = null;
+ private PolicyManager m_rightPolicyManager= null;
+ private Entity m_leftRootEntity = null;
+ private Entity m_rightRootEntity = null;
+ private boolean m_bComparableTrees = true;
+ private int m_nFoundProfiles = 0;
+ private int m_nComparedProfiles = 0;
+ private int m_nEntities = 0;
+ private HashMap m_pathCache = new HashMap();
+ private String m_sCurrentAction = "APOC.sync.waitmsg.prepare";
+ private Integer[] m_currentNumbers = new Integer[]{new Integer(0)};
+ private long m_nStartTime = System.currentTimeMillis();
+ private Exception m_exception = null;
+
+ public ContextTiledModel() {
+ super();
+ }
+
+ public boolean areTreesCompareable() {
+ return m_bComparableTrees;
+ }
+
+ public int getFoundProfiles() {
+ return m_nFoundProfiles;
+ }
+
+ public int getComparedProfiles() {
+ return m_nComparedProfiles;
+ }
+
+ public int getProcessedEntities() {
+ return m_nEntities;
+ }
+
+ synchronized public String getCurrentAction() {
+ return m_sCurrentAction;
+ }
+
+ synchronized public Integer[] getCurrentNumbers() {
+ return m_currentNumbers;
+ }
+
+ public Integer[] getElapsedTime() {
+ float nDiff = (System.currentTimeMillis()-m_nStartTime)/1000;
+ double nHours = Math.floor(nDiff/(60*60));
+ double nMinutes = Math.floor((nDiff-(nHours*60*60))/60);
+ double nSeconds = nDiff%60;
+ return (new Integer[]{
+ new Integer((int)nHours),
+ new Integer((int)nMinutes),
+ new Integer((int)nSeconds)});
+ }
+
+ public void setException(Exception ex) {
+ m_exception = ex;
+ }
+
+ public Exception getException() {
+ return m_exception;
+ }
+
+ public void resetModel () {
+ m_leftPolicyManager = null;
+ m_rightPolicyManager= null;
+ m_leftRootEntity = null;
+ m_rightRootEntity = null;
+ m_bComparableTrees = true;
+ m_nFoundProfiles = 0;
+ m_nComparedProfiles = 0;
+ m_nEntities = 0;
+ m_pathCache = new HashMap();
+ m_sCurrentAction = "APOC.sync.waitmsg.prepare";
+ m_currentNumbers = new Integer[]{new Integer(0)};
+ m_nStartTime = System.currentTimeMillis();
+ m_exception = null;
+ clear();
+ m_pathCache.clear();
+ }
+
+ public void retrieve(PolicyManager leftManager, String sLeftEntityId, String sLeftEntityType,
+ PolicyManager rightManager, String sRightEntityId, String sRightEntityType)
+ throws ModelControlException {
+ clear();
+ m_pathCache.clear();
+ int nAllProfiles=0;
+
+ try {
+ m_leftPolicyManager = leftManager;
+ m_rightPolicyManager= rightManager;
+ m_leftRootEntity = (sLeftEntityId==null)?null:m_leftPolicyManager.getEntity(sLeftEntityType, sLeftEntityId);
+ m_rightRootEntity = (sRightEntityId==null)?null:m_rightPolicyManager.getEntity(sRightEntityType, sRightEntityId);
+
+ if (((m_leftRootEntity!=null)&&(m_rightRootEntity!=null)) &&
+ (Toolbox2.isDomainSubtype(m_leftRootEntity)^Toolbox2.isDomainSubtype(m_rightRootEntity))) {
+ m_bComparableTrees = false;
+ return;
+ }
+
+ HashMap leftEntityProfiles = new HashMap();
+ HashMap rightEntityProfiles = new HashMap();
+ HashMap leftEntityPeer = new HashMap();
+ HashMap rightEntityPeer = new HashMap();
+ TreeSet entityPaths = new TreeSet();
+ Iterator leftProfiles;
+ Iterator rightProfiles;
+
+ if ((m_leftRootEntity==null)^(m_rightRootEntity==null)) {
+ if (m_leftRootEntity==null) {
+ m_leftRootEntity = m_leftPolicyManager.getRootEntity(m_rightRootEntity.getPolicySourceName());
+ }
+ if (m_rightRootEntity==null) {
+ m_rightRootEntity = m_rightPolicyManager.getRootEntity(m_leftRootEntity.getPolicySourceName());
+ }
+ }
+ m_sCurrentAction = "APOC.sync.waitmsg.retsource";
+ if (m_leftRootEntity==null) {
+ leftProfiles = m_leftPolicyManager.getAllProfiles();
+ } else {
+ String source = m_leftRootEntity.getPolicySourceName();
+ leftProfiles = m_leftPolicyManager.getProfileProvider(source).getAllProfiles(m_leftRootEntity);
+ }
+
+ m_sCurrentAction = "APOC.sync.waitmsg.rettarget";
+ if (m_rightRootEntity==null) {
+ rightProfiles = m_rightPolicyManager.getAllProfiles();
+ } else {
+ String source = m_rightRootEntity.getPolicySourceName();
+ rightProfiles = m_rightPolicyManager.getProfileProvider(source).getAllProfiles(m_rightRootEntity);
+ }
+
+ // partition profiles to entity paths
+ synchronized (this) {
+ m_sCurrentAction = "APOC.sync.waitmsg.prepx";
+ m_currentNumbers = new Integer[]{new Integer(0)};
+ }
+ while (leftProfiles.hasNext()) {
+ nAllProfiles++;
+ Profile profile = (Profile) leftProfiles.next();
+ Entity entity = profile.getProfileRepository().getEntity();
+ //CCDebug.trace1(profile.getDisplayName()+" : "+profile.getApplicability().getStringValue()+" : "+entity.getDisplayName()+" : "+entity.getClass().toString());
+ Entity peerEntity = getPeer(entity, false);
+ if (peerEntity!=null) {
+ leftEntityPeer.put(entity, peerEntity);
+ HashMap profiles;
+ String sEntityPath = getRelativePath(entity, m_leftRootEntity, m_leftPolicyManager);
+ if ((m_leftRootEntity==null) && (sEntityPath.length()==0)) {
+ if (profile.getApplicability().equals(Applicability.HOST)) {
+ sEntityPath = DOM_ROOT_IDENT;
+ } else if (profile.getApplicability().equals(Applicability.USER)) {
+ sEntityPath = ORG_ROOT_IDENT;
+ }
+ }
+ entityPaths.add(sEntityPath);
+ if (leftEntityProfiles.containsKey(sEntityPath)) {
+ profiles = (HashMap) leftEntityProfiles.get(sEntityPath);
+ } else {
+ profiles = new HashMap();
+ leftEntityProfiles.put(sEntityPath, profiles);
+ }
+ profiles.put(profile.getDisplayName(), profile);
+ }
+ synchronized (this) {
+ m_sCurrentAction = "APOC.sync.waitmsg.prepx";
+ m_currentNumbers = new Integer[]{new Integer(++m_nFoundProfiles)};
+ }
+ }
+
+ while (rightProfiles.hasNext()) {
+ nAllProfiles++;
+ Profile profile = (Profile) rightProfiles.next();
+ Entity entity = profile.getProfileRepository().getEntity();
+ Entity peerEntity = getPeer(entity, true);
+ //CCDebug.trace1(profile.getDisplayName()+" : "+profile.getApplicability().getStringValue()+" : "+entity.getDisplayName()+" : "+entity.getClass().toString());
+ if (peerEntity!=null) {
+ rightEntityPeer.put(entity, peerEntity);
+ HashMap profiles;
+ String sEntityPath = getRelativePath(entity, m_rightRootEntity, m_rightPolicyManager);
+ if ((m_rightRootEntity==null) && (sEntityPath.length()==0)) {
+ if (profile.getApplicability().equals(Applicability.HOST)) {
+ sEntityPath = DOM_ROOT_IDENT;
+ } else if (profile.getApplicability().equals(Applicability.USER)) {
+ sEntityPath = ORG_ROOT_IDENT;
+ }
+ }
+ entityPaths.add(sEntityPath);
+ if (rightEntityProfiles.containsKey(sEntityPath)) {
+ profiles = (HashMap) rightEntityProfiles.get(sEntityPath);
+ } else {
+ profiles = new HashMap();
+ rightEntityProfiles.put(sEntityPath, profiles);
+ }
+ profiles.put(profile.getDisplayName(), profile);
+ }
+ synchronized (this) {
+ m_sCurrentAction = "APOC.sync.waitmsg.prepx";
+ m_currentNumbers = new Integer[]{new Integer(++m_nFoundProfiles)};
+ }
+ }
+
+ synchronized (this) {
+ m_sCurrentAction = "APOC.sync.waitmsg.compx";
+ m_currentNumbers = new Integer[]{new Integer(0), new Integer(nAllProfiles)};
+ }
+ // iterate over entity paths
+ Iterator entityPathsIter = entityPaths.iterator();
+ while (entityPathsIter.hasNext()) {
+ String sEntityPath = (String) entityPathsIter.next();
+ HashMap leftProfileMap = (HashMap) leftEntityProfiles.get(sEntityPath);
+ HashMap rightProfileMap = (HashMap) rightEntityProfiles.get(sEntityPath);
+ LinkedList leftCommonProfilesList = new LinkedList();
+ LinkedList rightCommonProfilesList= new LinkedList();
+
+ if (leftProfileMap==null) {
+ leftProfileMap=new HashMap();
+ }
+
+ if (rightProfileMap==null) {
+ rightProfileMap=new HashMap();
+ }
+
+ // Build CommonProfilesList; these lists contain only profiles
+ // which are available on the left and the right side.
+ // They are needed to discover differing priorities.
+ leftProfiles = leftProfileMap.values().iterator();
+ while (leftProfiles.hasNext()) {
+ Profile profile = (Profile) leftProfiles.next();
+ // sort list (required by compareProfiles())
+ int nCommonRunner = 0;
+ while ( (nCommonRunner<leftCommonProfilesList.size()) &&
+ (((Profile)leftCommonProfilesList.get(nCommonRunner)).getPriority()<profile.getPriority())) {
+ nCommonRunner++;
+ }
+ leftCommonProfilesList.add(nCommonRunner,profile);
+ }
+
+ rightProfiles = rightProfileMap.values().iterator();
+ while (rightProfiles.hasNext()) {
+ Profile profile = (Profile) rightProfiles.next();
+ if (leftProfileMap.containsKey(profile.getDisplayName())) {
+ // sort list (required by compareProfiles())
+ int nCommonRunner = 0;
+ while ( (nCommonRunner<rightCommonProfilesList.size()) &&
+ (((Profile)rightCommonProfilesList.get(nCommonRunner)).getPriority()<profile.getPriority())) {
+ nCommonRunner++;
+ }
+ rightCommonProfilesList.add(nCommonRunner,profile);
+ }
+ }
+
+ Iterator leftPrios = leftCommonProfilesList.iterator();
+ while (leftPrios.hasNext()) {
+ String sProfileName = ((Profile) leftPrios.next()).getDisplayName();
+ if (!rightProfileMap.containsKey(sProfileName)) {
+ leftPrios.remove();
+ }
+ }
+
+ ProfileTableModel profileModel = null;
+
+ if ((leftProfileMap.size()>0)||(rightProfileMap.size()>0)) {
+ profileModel = new ProfileTableModel(m_leftPolicyManager, m_rightPolicyManager);
+ //changed because this model is executed in a seperate thread now and has thus no access to the session
+ //profileModel.setDocument(session.getServletContext(), "/jsp/sync/Table.xml");
+ profileModel.setDocument(getTableStream());
+
+ Profile leftProfile = null;
+ Profile rightProfile = null;
+ Entity leftEntity = null;
+ Entity rightEntity = null;
+
+ // iterate over the left profiles for one entity
+ leftProfiles = leftProfileMap.values().iterator();
+ while (leftProfiles.hasNext()) {
+//Thread.currentThread().sleep(10000);
+ leftProfile = (Profile) leftProfiles.next();
+ rightProfile= (Profile) rightProfileMap.get(leftProfile.getDisplayName());
+ leftEntity = leftProfile.getProfileRepository().getEntity();
+ rightEntity = (Entity) leftEntityPeer.get(leftEntity);
+ if (leftEntity!=null && rightEntity!=null) {
+ if (rightProfile!=null) {
+ m_nComparedProfiles++;
+ }
+ profileModel.compareProfiles(leftProfile, rightProfile, leftEntity, rightEntity, leftCommonProfilesList, rightCommonProfilesList);
+ synchronized (this) {
+ m_sCurrentAction = "APOC.sync.waitmsg.compx";
+ m_currentNumbers = new Integer[]{new Integer(++m_nComparedProfiles), new Integer(nAllProfiles)};
+ }
+ }
+ }
+
+ // iterate over the right profiles for one entity which are
+ // not already covered by the previous iteration
+ rightProfiles = rightProfileMap.values().iterator();
+ while (rightProfiles.hasNext()) {
+//Thread.currentThread().sleep(10000);
+ rightProfile = (Profile) rightProfiles.next();
+ if (!leftProfileMap.containsKey(rightProfile.getDisplayName())) {
+ leftProfile = null;
+ rightEntity = rightProfile.getProfileRepository().getEntity();
+ leftEntity = (Entity) rightEntityPeer.get(rightEntity);
+ if (leftEntity!=null && rightEntity!=null) {
+ profileModel.compareProfiles(leftProfile, rightProfile, leftEntity, rightEntity, leftCommonProfilesList, rightCommonProfilesList);
+ synchronized (this) {
+ m_sCurrentAction = "APOC.sync.waitmsg.compx";
+ m_currentNumbers = new Integer[]{new Integer(++m_nComparedProfiles), new Integer(nAllProfiles)};
+ }
+ }
+ }
+ }
+
+ if (profileModel.getNumRows()>0) {
+ appendRow();
+ setValue(LEFT_ENTITY, leftEntity);
+ setValue(RIGHT_ENTITY, rightEntity);
+ setValue(PROFILES, profileModel);
+ }
+ }
+ }
+ } catch (Exception se) {
+ throw new ModelControlException(se);
+ }
+ }
+
+ public String sync(PolicyManager leftManager, String sLeftEntityId, String sLeftEntityType,
+ PolicyManager rightManager, String sRightEntityId, String sRightEntityType,
+ LinkedList syncList, HttpSession session,
+ boolean bSyncPrios, boolean bDoFullSync) throws ModelControlException {
+
+ m_pathCache.clear();
+ String targetProfileId = "";
+ synchronized (this) {
+ m_sCurrentAction = "APOC.sync.waitmsg.sync";
+ m_currentNumbers = new Integer[]{new Integer(0), new Integer(syncList.size())};
+ }
+ try {
+ m_leftPolicyManager = leftManager;
+ m_rightPolicyManager= rightManager;
+ m_leftRootEntity = (sLeftEntityId==null)?null:m_leftPolicyManager.getEntity(sLeftEntityType, sLeftEntityId);
+ m_rightRootEntity = (sRightEntityId==null)?null:m_rightPolicyManager.getEntity(sRightEntityType, sRightEntityId);
+
+ String leftContextName = (String)m_leftPolicyManager.getEnvironment().get(Constants.POLICY_MANAGER_NAME);
+ String rightContextName = (String)m_rightPolicyManager.getEnvironment().get(Constants.POLICY_MANAGER_NAME);
+ NavigationModel navModel = null;
+ HashMap syncEnv = (HashMap) session.getAttribute(Constants.SYNC_ENVIRONMENT);
+
+ // This method is used by both sync and copymove, bSyncPrios is true for sync
+ // but not for copymove so use as flag rather than having separate method/flag
+ String sRightContext = "";
+ if (bSyncPrios) {
+ sRightContext = (String) syncEnv.get(SyncLoginViewBean.ENV_RIGHT_CONTEXTNAME);
+ } else {
+ sRightContext = (String)m_rightPolicyManager.getEnvironment().get(Constants.POLICY_MANAGER_NAME);
+ }
+ String sMainContext = (String) session.getAttribute(Constants.POLICY_MANAGER_NAME);
+ boolean bSyncMainContext= (sMainContext==null)?false:sMainContext.equals(sRightContext);
+ if (bSyncMainContext) {
+ // using RequestManager here does only work if sync is called from the main request thread
+ navModel = (NavigationModel) RequestManager.
+ getRequestContext().
+ getModelManager().
+ getModel(NavigationModel.class, "NavTree", true, true);
+ }
+
+ int nCurrentPos = 0;
+ Iterator syncListIter = syncList.iterator();
+ while (syncListIter.hasNext()) {
+//Thread.currentThread().sleep(10000);
+ String sLeft = (String) syncListIter.next();
+ String sLeftType = "";
+ if (sLeft.indexOf("|") != -1) {
+ sLeftType = sLeft.substring(sLeft.indexOf("|") + 1);
+ sLeft = sLeft.substring(0, sLeft.indexOf("|"));
+ }
+ String sRight = (String) syncListIter.next();
+ String sRightType = "";
+ if (sRight.indexOf("|") != -1) {
+ sRightType = sRight.substring(sRight.indexOf("|") + 1);
+ sRight = sRight.substring(0, sRight.indexOf("|"));
+ }
+ nCurrentPos+=2;
+ Profile sourceProfile = null;
+ Profile targetProfile = null;
+ Entity sourceEntity = null;
+ Entity targetEntity = null;
+ try {
+ sourceProfile = m_leftPolicyManager.getProfile(sLeft);
+ } catch (InvalidProfileException ipe) {}
+ try {
+ targetProfile = m_rightPolicyManager.getProfile(sRight);
+ } catch (InvalidProfileException ipe) {}
+ // if there is no profile the client sent the entity hosting the repository
+ if (sourceProfile==null) {
+ sourceEntity = m_leftPolicyManager.getEntity(sLeftType, sLeft);
+ } else if (targetProfile==null) {
+ targetEntity = m_rightPolicyManager.getEntity(sRightType, sRight);
+ }
+
+ // source profile not available -> delete drain
+ if (sourceProfile==null) {
+ if (bDoFullSync) {
+ // delete target profile
+ ProfileRepository repository = targetProfile.getProfileRepository();
+ Iterator assignedEntities = targetProfile.getAssignedEntities();
+
+ while (assignedEntities.hasNext()) {
+ Entity entity = (Entity) assignedEntities.next();
+ entity.unassignProfile(targetProfile);
+ if (bSyncMainContext) {
+ navModel.setAssignedState(entity, entity.getAssignedProfiles().hasNext());
+ }
+ }
+
+ repository.destroyProfile(targetProfile);
+ continue;
+ } else {
+ // delete only policies and comment in target profile
+ Iterator targetPolicies = targetProfile.getPolicies();
+
+ while (targetPolicies.hasNext()) {
+ Policy policy = (Policy) targetPolicies.next();
+ targetProfile.destroyPolicy(policy);
+ }
+
+ targetProfile.setComment("");
+ }
+ }
+
+ // create target profile if it doesn't exist
+ if (targetProfile==null) {
+ ProfileRepository repository = targetEntity.getProfileRepository();
+ targetProfile = repository.createProfile(sourceProfile.getDisplayName(), sourceProfile.getApplicability());
+ targetProfileId = targetProfile.getId();
+ // align prio
+ LinkedList targetProfileList= new LinkedList();
+ LinkedList sourceNameList = new LinkedList();
+ LinkedList targetNameList = new LinkedList();
+ Iterator sourceProfiles = sourceProfile.getProfileRepository().getProfiles(sourceProfile.getApplicability());
+ Iterator targetProfiles = targetProfile.getProfileRepository().getProfiles(targetProfile.getApplicability());
+ // populate structures
+ while (sourceProfiles.hasNext()) {
+ Profile profile = (Profile) sourceProfiles.next();
+ sourceNameList.add(profile.getDisplayName());
+ }
+ while (targetProfiles.hasNext()) {
+ Profile profile = (Profile) targetProfiles.next();
+ targetProfileList.add(profile);
+ targetNameList.add(profile.getDisplayName());
+ }
+
+ // find a profile with the same name in source and target
+ // list which is directly above the source profile (ignoring
+ // profiles which are not on both sides)
+ String sProfileName = sourceProfile.getDisplayName();
+ int nSourceUpperBoundPos= sourceNameList.indexOf(sProfileName)-1;
+ int nTargetUpperBoundPos= -1;
+ while ( (nSourceUpperBoundPos>-1) && (nTargetUpperBoundPos==-1) ) {
+ nTargetUpperBoundPos = targetNameList.indexOf(sourceNameList.get(nSourceUpperBoundPos));
+ nSourceUpperBoundPos--;
+ }
+
+ // increase prio of profiles below found profile by one
+ int nProfileRunner = targetProfileList.size()-1;
+ while (nProfileRunner>nTargetUpperBoundPos) {
+ Profile profile = (Profile)targetProfileList.get(nProfileRunner);
+ profile.setPriority(profile.getPriority()+1);
+ nProfileRunner--;
+ }
+
+ // set the prio of the targetProfile
+ targetProfile.setPriority(((Profile)targetProfileList.get(nProfileRunner+1)).getPriority()-1);
+ }
+
+ // sync comment
+ String sComment = sourceProfile.getComment();
+ targetProfile.setComment((sComment==null)?"":sComment);
+
+ // sync policies
+ Iterator sourcePolicies = sourceProfile.getPolicies();
+ Iterator targetPolicies = targetProfile.getPolicies();
+ HashMap sourcePolicyMap = new HashMap();
+ HashMap targetPolicyMap = new HashMap();
+
+ while (sourcePolicies.hasNext()) {
+ Policy policy = (Policy) sourcePolicies.next();
+ sourcePolicyMap.put(policy.getId(), policy);
+ }
+
+ while (targetPolicies.hasNext()) {
+ Policy policy = (Policy) targetPolicies.next();
+ targetPolicyMap.put(policy.getId(), policy);
+ }
+
+ // copy diffs from source to target
+ sourcePolicies = sourcePolicyMap.keySet().iterator();
+ while (sourcePolicies.hasNext()) {
+ String sPolicyId = (String) sourcePolicies.next();
+ Policy sourcePolicy = (Policy) sourcePolicyMap.get(sPolicyId);
+ Policy targetPolicy = (Policy) targetPolicyMap.get(sPolicyId);
+
+ if ( (targetPolicy==null) || (!targetPolicy.getData().equals(sourcePolicy.getData())) ) {
+ Policy newPolicy = new Policy(sPolicyId, targetProfile.getId(), ((Policy) sourcePolicyMap.get(sPolicyId)).getData());
+ targetProfile.storePolicy(newPolicy);
+ }
+ }
+ // remove diffs from target
+ targetPolicies = targetPolicyMap.keySet().iterator();
+ while (targetPolicies.hasNext()) {
+ String sPolicyId = (String) targetPolicies.next();
+ if ( !sourcePolicyMap.containsKey(sPolicyId) ) {
+ targetProfile.destroyPolicy((Policy)targetPolicyMap.get(sPolicyId));
+ }
+ }
+
+ if (bDoFullSync) {
+ // sync assignments
+ Iterator assignedEntities = targetProfile.getAssignedEntities();
+ while (assignedEntities.hasNext()) {
+ Entity entity = (Entity) assignedEntities.next();
+ entity.unassignProfile(targetProfile);
+ if (bSyncMainContext) {
+ navModel.setAssignedState(entity, entity.getAssignedProfiles().hasNext());
+ }
+ }
+
+ assignedEntities = sourceProfile.getAssignedEntities();
+ while (assignedEntities.hasNext()) {
+ Entity entity = (Entity) assignedEntities.next();
+ Entity targetAssignEntity = null;
+ if (leftContextName.equals(rightContextName)) {
+ targetAssignEntity = entity;
+ } else {
+ targetAssignEntity = getPeer(entity, false);
+ }
+ if (targetAssignEntity!=null) {
+ targetAssignEntity.assignProfile(targetProfile);
+ }
+ if (bSyncMainContext) {
+ navModel.setAssignedState(targetAssignEntity, true);
+ }
+ }
+
+ //sync prios
+ if (bSyncPrios) {
+ //keep profiles which are in the source and the target repsitories only
+ LinkedList sourceProfileList= new LinkedList();
+ LinkedList targetProfileList= new LinkedList();
+ LinkedList sourceNameList = new LinkedList();
+ LinkedList targetNameList = new LinkedList();
+ Iterator sourceProfiles = sourceProfile.getProfileRepository().getProfiles(sourceProfile.getApplicability());
+ Iterator targetProfiles = targetProfile.getProfileRepository().getProfiles(targetProfile.getApplicability());
+ while (targetProfiles.hasNext()) {
+ Profile profile = (Profile) targetProfiles.next();
+ targetProfileList.add(profile);
+ targetNameList.add(profile.getDisplayName());
+ }
+
+ int nMaxPrio = ((Profile) targetProfileList.getLast()).getPriority();
+
+ while (sourceProfiles.hasNext()) {
+ Profile profile = (Profile) sourceProfiles.next();
+ if (targetNameList.contains(profile.getDisplayName())) {
+ sourceProfileList.add(profile);
+ sourceNameList.add(profile.getDisplayName());
+ }
+ }
+
+ Iterator targetNameIter = targetNameList.iterator();
+ while (targetNameIter.hasNext()) {
+ String sName = (String) targetNameIter.next();
+ if (!sourceNameList.contains(sName)) {
+ targetProfileList.remove(targetNameList.indexOf(sName));
+ targetNameIter.remove();
+ }
+ }
+
+ int nSourceProfilePos = sourceNameList.indexOf(sourceProfile.getDisplayName());
+ int nTargetProfilePos = targetNameList.indexOf(sourceProfile.getDisplayName());
+
+ if (nSourceProfilePos!=nTargetProfilePos) {
+ // sync is necessary, it's done by swapping the prios of the
+ // target profile and the 2nd profile in the target repository
+ int nTargetProfilePrio = targetProfile.getPriority();
+ String sProfile2 = (String) sourceNameList.get(nTargetProfilePos);
+ Profile targetProfile2 = (Profile) targetProfileList.get(targetNameList.indexOf(sProfile2));
+ int nTargetProfile2Prio = targetProfile2.getPriority();
+
+ targetProfile.setPriority(nMaxPrio+1);
+ targetProfile2.setPriority(nTargetProfilePrio);
+ targetProfile.setPriority(nTargetProfile2Prio);
+ }
+ }
+ }
+ synchronized (this) {
+ m_sCurrentAction = "APOC.sync.waitmsg.sync";
+ m_currentNumbers = new Integer[]{new Integer(nCurrentPos), new Integer(syncList.size())};
+ }
+ }
+ } catch (Exception se) {
+ throw new ModelControlException(se);
+ }
+ return targetProfileId;
+ }
+
+ // this method must be executed after the retrieve thread is done and
+ // from within a valid request context because I need localized parentage paths
+ // as table titles
+ public void runSessionActions() throws ModelControlException {
+
+ beforeFirst();
+
+ while (next()) {
+
+ Entity leftEntity = (Entity) getValue(LEFT_ENTITY);
+ Entity rightEntity = (Entity) getValue(RIGHT_ENTITY);
+
+ String sTitle = Toolbox2.getParentagePath(
+ (leftEntity!=null)?leftEntity:rightEntity, false, true, "/",
+ (leftEntity!=null)?m_leftPolicyManager:m_rightPolicyManager);
+
+ if (((leftEntity!=null)?m_leftRootEntity:m_rightRootEntity)!=null) {
+
+ String sRoot = Toolbox2.getParentagePath(
+ (leftEntity!=null)?m_leftRootEntity:m_rightRootEntity, false, false, "/",
+ (leftEntity!=null)?m_leftPolicyManager:m_rightPolicyManager);
+
+ if (sRoot.length()>0) {
+ sTitle.substring(sRoot.length()+2);
+ sTitle = sTitle.trim();
+ }
+ }
+
+ setValue(TITLE, sTitle);
+ ((ProfileTableModel)getValue(PROFILES)).setTitle(sTitle);
+ ((ProfileTableModel)getValue(PROFILES)).setTitleLabel("APOC.sync.result.title2");
+ }
+
+ sort(new SingleFieldValueComparator(new String[]{TITLE}, new EntityPathComparator()));
+ }
+
+ private String getRelativePath(Entity entity, Entity rootEntity, PolicyManager policyManager) {
+
+ // this kind of quick&dirty caching works correctly only if the cache
+ // is cleared between retrieve() and sync() calls
+ if (m_pathCache.containsKey(entity)) {
+ return (String) m_pathCache.get(entity);
+ }
+
+ String sEntityPath = Toolbox2.getParentagePath(entity, false, true, "/", policyManager, false);
+
+ if (rootEntity!=null) {
+ String sRootEntityPath = Toolbox2.getParentagePath(rootEntity, false, true, "/", policyManager, false);
+ sEntityPath = sEntityPath.substring(sRootEntityPath.length()).trim();
+ if (sEntityPath.startsWith("/")) {
+ sEntityPath = sEntityPath.substring(1);
+ }
+ } else {
+ int nSlashPos = sEntityPath.indexOf("/");
+ if (nSlashPos>-1) {
+ sEntityPath = sEntityPath.substring(nSlashPos+1);
+ } else {
+ sEntityPath="";
+ }
+ }
+
+ sEntityPath = sEntityPath.trim();
+
+ m_pathCache.put(entity, sEntityPath);
+
+ return sEntityPath;
+ }
+
+ private Entity getPeer(Entity entity, boolean bGetLeftPeer) throws SPIException {
+
+ PolicyManager sourcePolicyManager;
+ PolicyManager targetPolicyManager;
+ Entity sourceRootEntity;
+ Entity targetRootEntity;
+
+ if (bGetLeftPeer) {
+ sourcePolicyManager = m_rightPolicyManager;
+ targetPolicyManager = m_leftPolicyManager;
+ sourceRootEntity = m_rightRootEntity;
+ targetRootEntity = m_leftRootEntity;
+ } else {
+ sourcePolicyManager = m_leftPolicyManager;
+ targetPolicyManager = m_rightPolicyManager;
+ sourceRootEntity = m_leftRootEntity;
+ targetRootEntity = m_rightRootEntity;
+ }
+
+ if (((entity!=null)&&(sourceRootEntity!=null)) &&
+ Toolbox2.isDomainSubtype(entity)^Toolbox2.isDomainSubtype(sourceRootEntity)) {
+ return null;
+ }
+
+ String sEntityPath = getRelativePath(entity, sourceRootEntity, sourcePolicyManager);
+
+ if (targetRootEntity==null) {
+ targetRootEntity = targetPolicyManager.getRootEntity(entity.getPolicySourceName());
+ }
+
+ Entity targetAssignEntity = getEntity(targetRootEntity, sEntityPath);
+ return targetAssignEntity;
+ }
+
+ private Entity getEntity(Entity startingPoint, String sPath) throws SPIException {
+
+ String sPrefix;
+
+ if (sPath.length()==0) {
+ return startingPoint;
+ } else if (sPath.indexOf("/")!=-1) {
+ sPrefix = sPath.substring(0, sPath.indexOf("/")).trim();
+ sPath = sPath.substring(sPath.indexOf("/")+1).trim();
+ } else {
+ sPrefix = sPath.trim();
+ sPath = "";
+ }
+
+ if (startingPoint instanceof Node) {
+ startingPoint = getMatch(((Node)startingPoint).getChildren(), sPrefix);
+ } else if (startingPoint instanceof Role) {
+ startingPoint = getMatch(((Role)startingPoint).getRoles(), sPrefix);
+ }
+
+ return getEntity(startingPoint, sPath);
+ }
+
+ private Entity getMatch(Iterator entityIter, String sRequestedName) throws SPIException {
+ while (entityIter.hasNext()) {
+ Entity entity = (Entity) entityIter.next();
+ if (entity.getDisplayName(Toolbox2.getLocale()).equals(sRequestedName)) {
+ return entity;
+ }
+ }
+ return null;
+ }
+
+ private boolean haveMatch(Entity leftEntity, Entity rightEntity) throws SPIException {
+
+ String sLeftClass = leftEntity.getClass().getName();
+ String sRightClass = rightEntity.getClass().getName();
+
+ if (sLeftClass.equals(sRightClass)) {
+
+ String[] sources = m_leftPolicyManager.getSources();
+ for (int i = 0; i < sources.length; i++) {
+ if (leftEntity.equals(m_leftPolicyManager.getRootEntity(sources[i]))) {
+ return rightEntity.equals(m_rightPolicyManager.getRootEntity(sources[i]));
+ }
+ }
+
+ String sLeftName = leftEntity.getDisplayName(Toolbox2.getLocale());
+ String sRightName = rightEntity.getDisplayName(Toolbox2.getLocale());
+
+ return sLeftName.equals(sRightName);
+ }
+ return false;
+ }
+
+ private InputStream getTableStream() {
+ StringBuffer sXml=new StringBuffer();
+ sXml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+ sXml.append("<!DOCTYPE table SYSTEM \"tags/dtd/table.dtd\">");
+ sXml.append("<table>");
+ sXml.append(" <column name=\"LeftNameColumn\" extrahtml=\"nowrap='nowrap'\" rowheader=\"true\">");
+ sXml.append(" <cc name=\"LeftRightSort\" tagclass=\"com.sun.web.ui.taglib.html.CCStaticTextFieldTag\" />");
+ sXml.append(" <cc name=\"LeftIdHidden\" tagclass=\"com.sun.web.ui.taglib.html.CCHiddenTag\" />");
+ sXml.append(" <cc name=\"RightIdHidden\" tagclass=\"com.sun.web.ui.taglib.html.CCHiddenTag\" />");
+ sXml.append(" </column>");
+ sXml.append(" <column name=\"DiffsColumn\" extrahtml=\"nowrap='nowrap'\">");
+ sXml.append(" <cc name=\"DiffsHref\" tagclass=\"com.sun.web.ui.taglib.html.CCHrefTag\">");
+ sXml.append(" <cc name=\"DiffsText\" tagclass=\"com.sun.web.ui.taglib.html.CCStaticTextFieldTag\" />");
+ sXml.append(" </cc>");
+ sXml.append(" <cc name=\"DiffsText2\" tagclass=\"com.sun.web.ui.taglib.html.CCStaticTextFieldTag\" />");
+ sXml.append(" </column>");
+ sXml.append("</table>");
+ return new StringBufferInputStream(sXml.toString());
+ }
+
+ class EntityPathComparator implements Comparator {
+ public int compare(Object o1, Object o2) {
+
+ StringTokenizer sParticles1 = new StringTokenizer((String)o1, "/");
+ StringTokenizer sParticles2 = new StringTokenizer((String)o2, "/");
+ int nParticles1 = sParticles1.countTokens();
+ int nParticles2 = sParticles2.countTokens();
+
+ if (nParticles1<nParticles2) {
+ return -1;
+ } else if (nParticles1>nParticles2) {
+ return 1;
+ } else {
+ while (sParticles1.hasMoreTokens()) {
+ String sParticle1 = sParticles1.nextToken();
+ String sParticle2 = sParticles2.nextToken();
+ int nCompare = sParticle1.compareTo(sParticle2);
+
+ if (nCompare!=0) {
+ return nCompare;
+ }
+ }
+ }
+ return 0;
+ }
+ }
+}
+
+// protected void retrieveRecursive(Entity leftEntity, Entity rightEntity) throws SPIException, ModelControlException {
+//
+// ProfileTableModel profileModel = new ProfileTableModel(m_leftPolicyManager, m_rightPolicyManager);
+// //changed because this model is executed in a seperate thread now and has thus no access to the session
+// //profileModel.setDocument(RequestManager.getSession().getServletContext(), "/jsp/sync/Table.xml");
+// profileModel.setDocument(getTableStream());
+// profileModel.retrieve(leftEntity, rightEntity);
+//
+// m_nEntities+=2;
+// m_nProfiles+=profileModel.getProcessedProfiles();
+// m_sCurrentAction = "Analysing subtree ("+m_nEntities+" entities visited, "+m_nProfiles+" profiles compared)";
+//
+// if (profileModel.getNumRows()>0) {
+// appendRow();
+// setValue(LEFT_ENTITY, leftEntity);
+// setValue(RIGHT_ENTITY, rightEntity);
+// setValue(PROFILES, profileModel);
+// }
+//
+// if ((leftEntity instanceof Domain) || (leftEntity instanceof Organization)) {
+// retrieveRecursive(((Node)leftEntity).getChildren(), ((Node)rightEntity).getChildren());
+// }
+// else if (leftEntity instanceof Role) {
+// retrieveRecursive(((Role)leftEntity).getRoles(), ((Role)rightEntity).getRoles());
+// }
+// }
+//
+// private void retrieveRecursive(Iterator leftChildren, Iterator rightChildren) throws SPIException, ModelControlException {
+// HashMap rightChildMap = new HashMap();
+// LinkedList leftChildList = new LinkedList();
+// while (rightChildren.hasNext()) {
+// Entity entity = (Entity) rightChildren.next();
+// rightChildMap.put(entity.getDisplayName(), entity);
+// }
+//
+// while (leftChildren.hasNext()) {
+// Entity leftChild = (Entity) leftChildren.next();
+// Entity rightChild = (Entity) rightChildMap.get(leftChild.getDisplayName());
+// leftChildList.add(leftChild.getDisplayName());
+//
+// if (rightChild!=null) {
+// retrieveRecursive(leftChild, rightChild);
+// } else {
+// m_bEqualTrees = false;
+// }
+// }
+//
+// Iterator rightIter = rightChildMap.keySet().iterator();
+// while (rightIter.hasNext()) {
+// String sDisplayName = (String) rightIter.next();
+// if (!leftChildList.contains(sDisplayName)) {
+// m_bEqualTrees = false;
+// break;
+// }
+// }
+// }
diff --git a/src/com/sun/apoc/manager/sync/ContextTiledView.java b/src/com/sun/apoc/manager/sync/ContextTiledView.java
new file mode 100755
index 0000000..761fa16
--- /dev/null
+++ b/src/com/sun/apoc/manager/sync/ContextTiledView.java
@@ -0,0 +1,134 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.sync;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.iplanet.jato.view.RequestHandlingTiledViewBase;
+import com.iplanet.jato.view.View;
+import com.iplanet.jato.view.event.ChildDisplayEvent;
+import com.iplanet.jato.view.event.DisplayEvent;
+import com.iplanet.jato.view.event.RequestInvocationEvent;
+import com.sun.web.ui.view.html.CCHref;
+import com.sun.web.ui.view.table.CCActionTable;
+import java.io.IOException;
+import javax.servlet.ServletException;
+
+public class ContextTiledView extends RequestHandlingTiledViewBase {
+ public static final String CHILD_PROFILE_TABLE = "SyncTable";
+ private ContextTiledModel m_contextModel = null;
+
+ public ContextTiledView(View parent, String name) {
+ super(parent, name);
+ setPrimaryModel(getModel());
+ registerChildren();
+ }
+
+ protected void registerChildren() {
+ registerChild(CHILD_PROFILE_TABLE, CCActionTable.class);
+ ProfileTableModel profileModel = new ProfileTableModel();
+ profileModel.setDocument(getSession().getServletContext(), "/jsp/sync/Table.xml");
+ profileModel.registerChildren(this);
+ }
+
+ protected View createChild(String name) {
+
+ ProfileTableModel profileModel;
+
+ if (m_contextModel==null) {
+ profileModel = new ProfileTableModel();
+ profileModel.setDocument(getSession().getServletContext(), "/jsp/sync/Table.xml");
+ } else {
+ profileModel = (ProfileTableModel) m_contextModel.getValue(ContextTiledModel.PROFILES);
+ }
+
+ if (name.equals(CHILD_PROFILE_TABLE)) {
+ CCActionTable child = new CCActionTable(this, profileModel, name);
+ return child;
+ } else if (profileModel.isChildSupported(name)) {
+ return profileModel.createChild(this, name);
+ } else {
+ throw new IllegalArgumentException("Invalid child name [" + name + "]");
+ }
+ }
+
+ public void handleNameHrefRequest(RequestInvocationEvent event)
+ throws ServletException, IOException {
+ getRootView().forwardTo(getRequestContext());
+ }
+
+ public void beginDisplay(DisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ m_contextModel = getModel();
+ m_contextModel.runSessionActions();
+ }
+
+ public boolean beginSyncTableDisplay(ChildDisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ // forces creation of the children again -> correctly updated models
+ removeAllChildren();
+ return true;
+ }
+
+ public boolean beginDiffsHrefDisplay(ChildDisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+
+ ProfileTableModel profileModel= (ProfileTableModel) m_contextModel.getValue(ContextTiledModel.PROFILES);
+ String sDiffsText2 = (String) profileModel.getValue(ProfileTableModel.CHILD_DIFFS_TEXT2);
+ if (sDiffsText2.length()==0) {
+ String sOnClick = (String) profileModel.getValue(ProfileTableModel.CHILD_DIFFS_HREF_CLICK);
+ CCHref href = (CCHref) getChild("DiffsHref");
+ href.setExtraHtml(sOnClick);
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public boolean beginDiffsText2Display(ChildDisplayEvent event) throws ModelControlException {
+ super.beginDisplay(event);
+ return !beginDiffsHrefDisplay(event);
+ }
+
+ private ContextTiledModel getModel() {
+ //changed because this model is executed in a seperate thread now and has thus no access to the session
+ ContextTiledModel model = (ContextTiledModel) getSession().getAttribute("ThreadSyncModel");
+ if (model==null) {
+ model = new ContextTiledModel();
+ getSession().setAttribute("ThreadSyncModel", model);
+ }
+ return model;
+ }
+}
diff --git a/src/com/sun/apoc/manager/sync/ProfileTableModel.java b/src/com/sun/apoc/manager/sync/ProfileTableModel.java
new file mode 100755
index 0000000..4269e75
--- /dev/null
+++ b/src/com/sun/apoc/manager/sync/ProfileTableModel.java
@@ -0,0 +1,350 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.manager.sync;
+
+import com.iplanet.jato.model.ModelControlException;
+import com.sun.apoc.manager.Toolbox2;
+import com.sun.apoc.spi.PolicyManager;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.entities.Domain;
+import com.sun.apoc.spi.entities.Entity;
+import com.sun.apoc.spi.entities.Host;
+import com.sun.apoc.spi.policies.Policy;
+import com.sun.apoc.spi.profiles.Applicability;
+import com.sun.apoc.spi.profiles.Profile;
+import com.sun.apoc.spi.profiles.ProfileRepository;
+import com.sun.web.ui.model.CCActionTableModel;
+import com.sun.web.ui.model.CCActionTableModelInterface;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.TreeMap;
+
+
+public class ProfileTableModel extends CCActionTableModel {
+
+ // Child view names (i.e. display fields).
+ public static final String CHILD_LEFTNAME_COLUMN = "LeftNameColumn";
+ public static final String CHILD_LEFTNAME_TEXT = "LeftNameText";
+ public static final String CHILD_SYNC_COLUMN = "SyncColumn";
+ public static final String CHILD_SYNC_BUTTON = "SyncButton";
+ public static final String CHILD_RIGHTNAME_COLUMN = "RightNameColumn";
+ public static final String CHILD_RIGHTNAME_TEXT = "RightNameText";
+ public static final String CHILD_DIFFS_COLUMN = "DiffsColumn";
+ public static final String CHILD_DIFFS_HREF = "DiffsHref";
+ public static final String CHILD_DIFFS_HREF_CLICK = "DiffsHrefClick";
+ public static final String CHILD_DIFFS_TEXT = "DiffsText";
+ public static final String CHILD_DIFFS_TEXT2 = "DiffsText2";
+ public static final String CHILD_LEFTRIGHT_SORT = "LeftRightSort";
+ public static final String CHILD_LEFTID_HIDDEN = "LeftIdHidden";
+ public static final String CHILD_RIGHTID_HIDDEN = "RightIdHidden";
+
+ //
+ private PolicyManager m_leftPolicyManager;
+ private PolicyManager m_rightPolicyManager;
+// private int m_nProfiles = 0;
+
+ public ProfileTableModel() {
+ super();
+
+ setActionValue(CHILD_LEFTNAME_COLUMN, "APOC.sync.result.column1");
+ setActionValue(CHILD_DIFFS_COLUMN, "APOC.sync.result.column2");
+
+ setMaxRows(10);
+
+ setPrimarySortName(CHILD_LEFTRIGHT_SORT);
+ setPrimarySortOrder(CCActionTableModelInterface.ASCENDING);
+ }
+
+ public ProfileTableModel(PolicyManager leftPolicyManager, PolicyManager rightPolicyManager) {
+ this();
+ m_leftPolicyManager = leftPolicyManager;
+ m_rightPolicyManager = rightPolicyManager;
+ }
+
+ public void compareProfiles(
+ Profile leftProfile,
+ Profile rightProfile,
+ Entity leftEntity,
+ Entity rightEntity,
+ LinkedList leftProfileList,
+ LinkedList rightProfileList) throws ModelControlException {
+ try {
+ if (leftProfile!=null) {
+ boolean bProfileMissing = false;
+ boolean bCommentsDiffer = false;
+ boolean bAssignmentsDiffer = false;
+ boolean bPriosDiffer = false;
+ boolean bContentsDiffer = false;
+ int nDiffCount = 0;
+ int nSyncDirection = 0;
+
+ // profile missing ?
+ if (rightProfile!=null) {
+
+ // comments differ ?
+ //TPF_TODO: ask Katell to not let getComment() return null
+ String leftComment = leftProfile.getComment();
+ String rightComment = rightProfile.getComment();
+ leftComment = (leftComment==null)?"":leftComment;
+ rightComment = (rightComment==null)?"":rightComment;
+ if (!leftComment.equals(rightComment)) {
+ bCommentsDiffer = true;
+ nDiffCount++;
+ }
+
+ // assignments differ ?
+ Iterator leftAssignees = leftProfile.getAssignedEntities();
+ Iterator rightAssignees = rightProfile.getAssignedEntities();
+ HashMap leftAssigneeMap = new HashMap();
+ HashMap rightAssigneeMap = new HashMap();
+
+ while (leftAssignees.hasNext()) {
+ Entity entity = (Entity) leftAssignees.next();
+ leftAssigneeMap.put(Toolbox2.getParentagePath(entity, false, true, "/", m_leftPolicyManager, false), entity);
+ }
+
+ while (rightAssignees.hasNext()) {
+ Entity entity = (Entity) rightAssignees.next();
+ rightAssigneeMap.put(Toolbox2.getParentagePath(entity, false, true, "/", m_rightPolicyManager, false), entity);
+ }
+
+ //TPF_TODO: handle assignments to entity that does not exist in other tree
+ // compare for absolute or relative path names
+ if (leftAssigneeMap.size()!=leftAssigneeMap.size()) {
+ bAssignmentsDiffer = true;
+ nDiffCount++;
+ } else {
+ leftAssignees = leftProfile.getAssignedEntities();
+ while (leftAssignees.hasNext()) {
+ Entity leftAssignee = (Entity) leftAssignees.next();
+ if (!rightAssigneeMap.containsKey(Toolbox2.getParentagePath(leftAssignee, false, true, "/", m_leftPolicyManager, false))) {
+ bAssignmentsDiffer = true;
+ nDiffCount++;
+ break;
+ }
+ }
+ }
+
+ //priorities differ ?
+ int nLeftProfilePos = leftProfileList.indexOf(leftProfile);
+ int nRightProfilePos = rightProfileList.indexOf(rightProfile);
+
+ if (nLeftProfilePos!=nRightProfilePos) {
+ bPriosDiffer = true;
+ nDiffCount++;
+ }
+
+ // contents differ ?
+ Iterator leftPolicies = leftProfile.getPolicies();
+ Iterator rightPolicies = rightProfile.getPolicies();
+ HashMap leftPolicyMap = new HashMap();
+ HashMap rightPolicyMap = new HashMap();
+
+ // contents differ (size) ?
+ while (leftPolicies.hasNext()) {
+ Policy policy = (Policy) leftPolicies.next();
+ leftPolicyMap.put(policy.getId(), policy);
+ }
+
+ while (rightPolicies.hasNext()) {
+ Policy policy = (Policy) rightPolicies.next();
+ rightPolicyMap.put(policy.getId(), policy);
+ }
+
+ if (leftPolicyMap.size()!=rightPolicyMap.size()) {
+ bContentsDiffer = true;
+ nDiffCount++;
+ }
+
+ if (!bContentsDiffer) {
+ leftPolicies = leftProfile.getPolicies();
+ while (leftPolicies.hasNext()) {
+ // contents differ (key) ?
+ Policy leftPolicy = (Policy) leftPolicies.next();
+ if (rightPolicyMap.containsKey(leftPolicy.getId())) {
+ // contents differ (data) ?
+ Policy rightPolicy = (Policy) rightPolicyMap.get(leftPolicy.getId());
+ if (!leftPolicy.getData().equals(rightPolicy.getData())) {
+ bContentsDiffer = true;
+ nDiffCount++;
+ break;
+ }
+ } else {
+ bContentsDiffer = true;
+ nDiffCount++;
+ break;
+ }
+ }
+ }
+ } else {
+ bProfileMissing = true;
+ nDiffCount++;
+ }
+
+ if (nDiffCount>0) {
+ appendRow();
+
+ String sSyncText = "";
+
+ if (nDiffCount>1) {
+ if (bContentsDiffer) {
+ sSyncText += Toolbox2.getI18n("APOC.sync.action.copycontent")+" ";
+ }
+ if (bCommentsDiffer) {
+ sSyncText += Toolbox2.getI18n("APOC.sync.action.copycomment")+" ";
+ }
+ if (bAssignmentsDiffer) {
+ sSyncText += Toolbox2.getI18n("APOC.sync.action.alignassign")+" ";
+ }
+ if (bPriosDiffer) {
+ sSyncText += Toolbox2.getI18n("APOC.sync.action.changeprios");
+ }
+ } else {
+ if (bProfileMissing) {
+ sSyncText = Toolbox2.getI18n("APOC.sync.action.create");
+ } else if (bContentsDiffer) {
+ sSyncText = Toolbox2.getI18n("APOC.sync.action.copycontent");
+ } else if (bCommentsDiffer) {
+ sSyncText = Toolbox2.getI18n("APOC.sync.action.copycomment");
+ } else if (bAssignmentsDiffer) {
+ sSyncText = Toolbox2.getI18n("APOC.sync.action.alignassign");
+ } else if (bPriosDiffer) {
+ sSyncText = Toolbox2.getI18n("APOC.sync.action.changeprios");
+ }
+ }
+
+ setValue(CHILD_LEFTRIGHT_SORT, leftProfile.getDisplayName());
+ setValue(CHILD_LEFTID_HIDDEN, leftProfile.getId());
+ setValue(CHILD_RIGHTID_HIDDEN, ((bProfileMissing)?rightEntity.getId() + "|" + rightEntity.getPolicySourceName():rightProfile.getId()));
+ setValue(CHILD_DIFFS_HREF, "");
+ setValue(CHILD_DIFFS_TEXT, "");
+ setValue(CHILD_DIFFS_TEXT2, sSyncText);
+ }
+ } else if (rightProfile!=null) {
+ appendRow();
+
+ setValue(CHILD_LEFTRIGHT_SORT,rightProfile.getDisplayName());
+ setValue(CHILD_LEFTID_HIDDEN, leftEntity.getId() + "|" + leftEntity.getPolicySourceName());
+ setValue(CHILD_RIGHTID_HIDDEN,rightProfile.getId());
+ setValue(CHILD_DIFFS_HREF, "");
+ setValue(CHILD_DIFFS_TEXT, "");
+ setValue(CHILD_DIFFS_TEXT2, Toolbox2.getI18n("APOC.sync.action.delete"));
+ }
+ }
+ catch (SPIException se) {
+ throw new ModelControlException(se);
+ }
+ }
+}
+
+// public int getProcessedProfiles() {
+// return m_nProfiles;
+// }
+
+// public void retrieve(Entity leftEntity, Entity rightEntity) throws ModelControlException {
+// clear();
+//
+// try {
+// Applicability aplicty = ((leftEntity instanceof Domain)||(leftEntity instanceof Host))?Applicability.HOST:Applicability.USER;
+// ProfileRepository leftRepository = leftEntity.getProfileRepository();
+// ProfileRepository rightRepository = rightEntity.getProfileRepository();
+// Iterator leftProfiles = leftRepository.getProfiles(aplicty);
+// Iterator rightProfiles = rightRepository.getProfiles(aplicty);
+// HashMap leftProfileMap = new HashMap();
+// HashMap rightProfileMap = new HashMap();
+// LinkedList leftProfileList = new LinkedList();
+// LinkedList rightProfileList = new LinkedList();
+//
+// // Fill profile map and list.
+// // The profile list contains only profiles which exist
+// // on the left and the right side.
+// // The list is automatically sorted by prio as the iterator returned
+// // by rep.getProfiles() delivers the profiles sorted by prio.
+// // Prio can only differ if the left and right profile exist.
+// // The prio values are not compared but the position in an
+// // ordered list.
+// // So it's not really "prio" but "merge order" which the profiles
+// // are compared for
+// while (leftProfiles.hasNext()) {
+// m_nProfiles++;
+// Profile profile = (Profile) leftProfiles.next();
+// leftProfileMap.put(profile.getDisplayName(), profile);
+// leftProfileList.add(profile);
+// }
+//
+// while (rightProfiles.hasNext()) {
+// m_nProfiles++;
+// Profile profile = (Profile) rightProfiles.next();
+// rightProfileMap.put(profile.getDisplayName(), profile);
+// if (leftProfileMap.containsKey(profile.getDisplayName())) {
+// rightProfileList.add(profile);
+// }
+// }
+//
+// Iterator leftPrios = leftProfileList.iterator();
+// while (leftPrios.hasNext()) {
+// String sProfileName = ((Profile) leftPrios.next()).getDisplayName();
+// if (!rightProfileMap.containsKey(sProfileName)) {
+// leftPrios.remove();
+// }
+// }
+//
+// leftProfiles = leftProfileMap.keySet().iterator();
+// rightProfiles = rightProfileMap.keySet().iterator();
+//
+// // left profiles
+// while (leftProfiles.hasNext()) {
+// Profile leftProfile = (Profile) leftProfileMap.get(leftProfiles.next());
+// Profile rightProfile = (Profile) rightProfileMap.get(leftProfile.getDisplayName());
+//
+// compareProfiles(leftProfile, rightProfile, leftEntity, rightEntity, leftProfileList, rightProfileList);
+// }
+//
+// // right profiles without left peer
+// while (rightProfiles.hasNext()) {
+// Profile rightProfile = (Profile) rightProfileMap.get(rightProfiles.next());
+//
+// if (!leftProfileMap.containsKey(rightProfile.getDisplayName())) {
+// compareProfiles(rightProfile, null, leftEntity, rightEntity, leftProfileList, rightProfileList);
+// }
+// }
+// }
+// catch (SPIException se) {
+// throw new ModelControlException(se);
+// }
+// }
+
diff --git a/src/com/sun/apoc/templates/Makefile.am b/src/com/sun/apoc/templates/Makefile.am
new file mode 100644
index 0000000..34e56be
--- /dev/null
+++ b/src/com/sun/apoc/templates/Makefile.am
@@ -0,0 +1,7 @@
+ANT = @ANT@
+
+all:
+ $(ANT)
+
+clean-local:
+ $(ANT) -q clean
diff --git a/src/com/sun/apoc/templates/build.xml.in b/src/com/sun/apoc/templates/build.xml.in
new file mode 100644
index 0000000..fb8101e
--- /dev/null
+++ b/src/com/sun/apoc/templates/build.xml.in
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project name="apoc_desktop_manager" default="main" basedir="../../../../../">
+
+ <property name="jarname" value="apoc_templates.jar"/>
+ <property name="package" value="com/sun/apoc/templates"/>
+
+ <property name="inpath" value="build"/>
+ <property name="build.dir" value="${inpath}"/>
+ <property name="build.class" value="${build.dir}/class"/>
+
+ <path id="classpath">
+ <pathelement location="@JATOJDK@"/>
+ <pathelement location="@LDAPJDK@"/>
+ <fileset dir="@WC_LIBPATH@" includes="*.jar"/>
+ <fileset dir="@WC_PRIVLIBS@" includes="*.jar"/>
+ <pathelement location="@SPIJDK@"/>
+ </path>
+
+ <target name="prepare">
+ <mkdir dir="${build.dir}"/>
+ <mkdir dir="${build.class}"/>
+ </target>
+
+ <target name="compile" depends="prepare">
+ <javac srcdir="src"
+ destdir="${build.class}"
+ classpathref="classpath"
+ debug="${debug}">
+ <include name="${package}/**/*.java"/>
+ </javac>
+ </target>
+
+ <target name="jar" depends="compile">
+ <jar jarfile="${build.class}/${jarname}"
+ basedir="${build.class}"
+ includes="${package}/**">
+ <manifest>
+ <attribute name="Class-Path" value="@SPIJDK@"/>
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="main" depends="jar"/>
+
+ <target name="clean">
+ <delete file="${build.class}/${jarname}"/>
+ <delete dir="${build.class}/${package}"/>
+ </target>
+</project>
diff --git a/src/com/sun/apoc/templates/handler/ActionHandler.java b/src/com/sun/apoc/templates/handler/ActionHandler.java
new file mode 100644
index 0000000..a441ac5
--- /dev/null
+++ b/src/com/sun/apoc/templates/handler/ActionHandler.java
@@ -0,0 +1,65 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.templates.handler;
+
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.manager.settings.SectionModel;
+
+/**
+ * Interface for an ActionHandler.
+ *
+ */
+public interface ActionHandler {
+
+ /**
+ * Implements the actions to be performed when properties using
+ * this ActionHandler are loaded into the frontend.
+ *
+ * @param context - the HandlerContext for this ActionHandler type
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public void handleLoad(HandlerContext context) throws SPIException;
+
+ /**
+ * Implements the actions to be performed when properties using
+ * this ActionHandler are saved to the backend.
+ *
+ * @param context - the HandlerContext for this ActionHandler type
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public void handleSave(HandlerContext context) throws SPIException;
+}
diff --git a/src/com/sun/apoc/templates/handler/ActionHandlerClassLoader.java b/src/com/sun/apoc/templates/handler/ActionHandlerClassLoader.java
new file mode 100644
index 0000000..be3b9e1
--- /dev/null
+++ b/src/com/sun/apoc/templates/handler/ActionHandlerClassLoader.java
@@ -0,0 +1,87 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.templates.handler;
+import com.sun.web.ui.common.CCDebug;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+public class ActionHandlerClassLoader extends ClassLoader {
+
+ private String m_packageDir = null;
+
+ public ActionHandlerClassLoader() {
+ super(ActionHandlerClassLoader.class.getClassLoader());
+ }
+
+ public Class findClass(String name) throws ClassNotFoundException {
+ Class c = null;
+ try {
+ File libDir = new File("./apoc/packages/" + m_packageDir + "/lib/");
+ File[] files = libDir.listFiles();
+ for (int i = 0; i < files.length; i++) {
+ File file = files[i];
+ if (file.getName().substring(file.getName().lastIndexOf(".")).equals(".jar")) {
+ JarFile jar = new JarFile(file);
+ String jarEntryName = name;
+ if (name.endsWith(".class")) {
+ jarEntryName = name + ".class";
+ }
+ JarEntry entry = jar.getJarEntry(jarEntryName + ".class");
+ if (entry != null) {
+ InputStream input = jar.getInputStream(entry);
+ byte[] classBytes = new byte[input.available()];
+ input.read(classBytes);
+ c = defineClass(name, classBytes, 0, classBytes.length);
+ jar.close();
+ break;
+ }
+ }
+ }
+ } catch (IOException e) {
+ CCDebug.trace3(e.toString());
+ }
+
+ return c;
+ }
+
+ public void setPackageDir(String packageDir) {
+ m_packageDir = packageDir;
+ }
+}
diff --git a/src/com/sun/apoc/templates/handler/ActionHandlerProperty.java b/src/com/sun/apoc/templates/handler/ActionHandlerProperty.java
new file mode 100644
index 0000000..8214895
--- /dev/null
+++ b/src/com/sun/apoc/templates/handler/ActionHandlerProperty.java
@@ -0,0 +1,125 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.templates.handler;
+
+import com.sun.apoc.templates.parsing.TemplateProperty;
+import com.sun.apoc.manager.settings.SectionModel;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.cfgtree.DataType;
+import com.sun.apoc.spi.cfgtree.property.Property;
+
+/**
+ * <p>An ActionHandlerProperty is an object returned from a HandlerContext which is
+ * used to get/set the various fields for a property involved in an ActionHandler
+ * operation. </p>
+ */
+public class ActionHandlerProperty {
+
+ private TemplateProperty mTemplateProperty = null;
+ private String mValue = null;
+ private boolean mIsEnforced = false;
+
+ public ActionHandlerProperty(TemplateProperty tempProp, String value, boolean isEnforced) {
+ mTemplateProperty = tempProp;
+ mValue = value;
+ mIsEnforced = isEnforced;
+ }
+
+ /**
+ * Returns the value of the property being loaded or saved depending on the
+ * action in question.
+ *
+ * @return the value of the property.
+ */
+ public String getValue() {
+ return mValue;
+ }
+
+ /**
+ * Returns the name of the property as specified in the policy template.
+ *
+ * @return the name of the property.
+ */
+ public String getName() {
+ return mTemplateProperty.getDefaultName();
+ }
+
+ /**
+ * Returns the dataPath of the property as specified in the policy template.
+ *
+ * @return the dataPath of the property.
+ */
+ public String getDataPath() {
+ return mTemplateProperty.getDataPath();
+ }
+
+ /**
+ * Returns the visualType of the property as specified in the policy template.
+ *
+ * @return the visualType of the property.
+ */
+ public String getVisualType() {
+ return mTemplateProperty.getVisualType();
+ }
+
+ /**
+ * Returns the data type (oor:type) of the property as specified in the
+ * policy template.
+ *
+ * @return the data type of the property.
+ */
+ public DataType getDataType() {
+ return SectionModel.getDataType(mTemplateProperty);
+ }
+
+ /**
+ * Returns true if the property value is enforced in this profile.
+ */
+ public boolean isEnforced() {
+ return mIsEnforced;
+ }
+
+ /**
+ * Sets the value of the property being loaded or saved depending on the
+ * action in question.
+ *
+ * @param value - the value of the property to set.
+ */
+ public void setValue(String value) {
+ mValue = value;
+ }
+}
diff --git a/src/com/sun/apoc/templates/handler/BaseActionHandler.java b/src/com/sun/apoc/templates/handler/BaseActionHandler.java
new file mode 100644
index 0000000..b85075d
--- /dev/null
+++ b/src/com/sun/apoc/templates/handler/BaseActionHandler.java
@@ -0,0 +1,131 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.templates.handler;
+
+import com.sun.apoc.manager.settings.PolicyMgrHelper;
+import com.sun.apoc.manager.settings.SectionModel;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.cfgtree.property.Property;
+import java.util.Iterator;
+
+/**
+ * <p>Implements the ActionHandler interface.</p>
+ * <p>The default behavior for the handleLoad/handleSave methods are implemented here.</p>
+ * <p>For example the default behavior for the handleLoad method is to run through
+ * all the properties in a template with the specified ActionHandler, retrieve
+ * the properties value from the backend and set the value of this property in
+ * the frontend accordingly.</p>
+ * <p>Override these methods if you want to perform non-default actions such as
+ * combining multiple backend property values into a single frontend property
+ * value or vice versa.</p>
+ * <p>For simple actions in which you still require the default
+ * handleLoad/handleSave behavior but wish to convert the properties value to
+ * another single value then override the
+ * performLoadConversion/performSaveConversion methods.</p>
+ */
+public class BaseActionHandler implements ActionHandler {
+
+ public void handleLoad(HandlerContext context) throws SPIException {
+ PolicyMgrHelper mgr = context.getPolicyMgrHelper();
+ String localizedNotSet = context.getLocalizedUndefinedValue();
+
+ // iterate over all properties and retrieve the correct values
+ Iterator it = context.getProperties();
+ while (it.hasNext()) {
+ ActionHandlerProperty element = (ActionHandlerProperty) it.next();
+
+ // try to retrieve the value from the repository
+ Property property = mgr.getProperty(element.getDataPath());
+ String value = localizedNotSet;
+ if (property != null) {
+ value = property.getValue();
+ }
+ element.setValue(performLoadConversion(value));
+ }
+ }
+
+ /**
+ * Override this method to perform a simple conversion action on a properties value
+ * without having to handle the load operation from the backend.
+ *
+ * @param value - the raw value of the property from the backend.
+ * @return value - the converted value of the property to be loaded in the frontend.
+ */
+ protected String performLoadConversion(String value) {
+ return value;
+ }
+
+ public void handleSave(HandlerContext context) throws SPIException {
+ PolicyMgrHelper mgr = context.getPolicyMgrHelper();
+ String localizedNotSet = context.getLocalizedUndefinedValue();
+ // iterate over all properties and retrieve the correct values
+ Iterator it = context.getProperties();
+ while (it.hasNext()) {
+
+ ActionHandlerProperty element = (ActionHandlerProperty) it.next();
+ String newValue = element.getValue();
+ String previousValue = localizedNotSet;
+ Property property = mgr.getProperty(element.getDataPath());
+ if (property != null) {
+ previousValue = property.getValue();
+ }
+ if (!previousValue.equals(newValue)) {
+
+ if ((localizedNotSet.equals(newValue))
+ && (!element.isEnforced())) {
+ mgr.removeProperty(element.getDataPath());
+ } else {
+ if (property == null) {
+ property = mgr.createProperty(element.getDataPath());
+ }
+ property.put(performSaveConversion(newValue), element.getDataType());
+ }
+ }
+ }
+ }
+
+ /**
+ * Override this method to perform a simple conversion action on a properties value
+ * without having to handle the save operation to the backend.
+ *
+ * @param value - the value of the property entered in the frontend.
+ * @return value - the converted value of the property to be saved in the backend.
+ */
+ protected String performSaveConversion(String value) {
+ return value;
+ }
+}
diff --git a/src/com/sun/apoc/templates/handler/HandlerContext.java b/src/com/sun/apoc/templates/handler/HandlerContext.java
new file mode 100644
index 0000000..c8eefe5
--- /dev/null
+++ b/src/com/sun/apoc/templates/handler/HandlerContext.java
@@ -0,0 +1,100 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.templates.handler;
+import com.iplanet.jato.RequestManager;
+import com.sun.apoc.manager.Constants;
+import com.sun.apoc.manager.profiles.ProfileWindowModel;
+import com.sun.apoc.manager.settings.PolicyMgrHelper;
+import com.sun.apoc.spi.SPIException;
+import com.sun.web.ui.common.CCI18N;
+import java.util.Iterator;
+import java.util.LinkedList;
+
+
+/**
+ * A context object which provides the information required by a developer to
+ * implement a custom ActionHandler.
+ * <p> The context provides a list of ActionHandlerProperty objects
+ * corresponding to the properties which use the specified ActionHandler.
+ * It also provides the PolicyMgrHelper object - a helper object for
+ * performing backend operations.
+ */
+
+public class HandlerContext {
+
+ private ProfileWindowModel mEditorModel = null;
+ private LinkedList mProperties = null;
+
+ public HandlerContext(LinkedList properties) {
+ mProperties = properties;
+ }
+
+ /**
+ * Returns the PolicyMgrHelper object for this Profile.
+ *
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public PolicyMgrHelper getPolicyMgrHelper() throws SPIException {
+ return getEditorModel().getProfileHelper();
+ }
+
+ /**
+ * Returns an iterator of ActionHandlerProperty's that require the
+ * ActionHandler in question.
+ *
+ * @throws <code>SPIException</code> if error occurs
+ */
+ public Iterator getProperties() throws SPIException {
+ return mProperties.iterator();
+ }
+
+ public String getLocalizedUndefinedValue() {
+ CCI18N i18n = new CCI18N(RequestManager.getRequestContext(), Constants.RES_BASE_NAME);
+ String localizedNotSet = i18n.getMessage("APOC.settings.notset");
+ if (localizedNotSet.equals("APOC.settings.notset")) {
+ localizedNotSet = "-- Not Set --";
+ }
+ return localizedNotSet;
+ }
+
+ private ProfileWindowModel getEditorModel() {
+ if (mEditorModel == null) {
+ mEditorModel = (ProfileWindowModel) RequestManager.getRequestContext().getModelManager().getModel(ProfileWindowModel.class);
+ }
+ return mEditorModel;
+ }
+}
diff --git a/src/com/sun/apoc/templates/parsing/LocalizedElement.java b/src/com/sun/apoc/templates/parsing/LocalizedElement.java
new file mode 100644
index 0000000..d30dee8
--- /dev/null
+++ b/src/com/sun/apoc/templates/parsing/LocalizedElement.java
@@ -0,0 +1,45 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.templates.parsing;
+
+public interface LocalizedElement {
+
+ String getDefaultName();
+
+ String getResourceBundle();
+
+ String getResourceId();
+}
diff --git a/src/com/sun/apoc/templates/parsing/NarratedElement.java b/src/com/sun/apoc/templates/parsing/NarratedElement.java
new file mode 100644
index 0000000..b6f693c
--- /dev/null
+++ b/src/com/sun/apoc/templates/parsing/NarratedElement.java
@@ -0,0 +1,43 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.templates.parsing;
+
+public interface NarratedElement {
+
+ public String getDescriptionId();
+
+ public void setDescriptionId(String resourceId);
+}
diff --git a/src/com/sun/apoc/templates/parsing/TemplateActionHandler.java b/src/com/sun/apoc/templates/parsing/TemplateActionHandler.java
new file mode 100644
index 0000000..dbd5573
--- /dev/null
+++ b/src/com/sun/apoc/templates/parsing/TemplateActionHandler.java
@@ -0,0 +1,82 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.templates.parsing;
+import com.sun.apoc.templates.handler.ActionHandlerClassLoader;
+import com.sun.web.ui.common.CCDebug;
+
+public class TemplateActionHandler {
+
+ private String m_name = null;
+ private String m_classname = null;
+ private String m_packageDir = null;
+
+ public TemplateActionHandler(String name, String classname, String packageDir) {
+ m_name = name ;
+ m_classname = classname ;
+ m_packageDir = packageDir ;
+ }
+
+ public String getName() {
+ return m_name;
+ }
+
+ public String getClassName() {
+ return m_classname;
+ }
+
+ public String getPackageDir() {
+ return m_packageDir;
+ }
+
+ public Object getClassInstance() {
+ Object object = null;
+ try {
+ ActionHandlerClassLoader loader = new ActionHandlerClassLoader();
+ loader.setPackageDir(m_packageDir);
+ Class classDefinition = loader.findClass(m_classname);
+ object = classDefinition.newInstance();
+ } catch (ClassNotFoundException e) {
+ System.out.println("getClassInstance(): " + e);
+ } catch (InstantiationException e) {
+ System.out.println("getClassInstance(): " + e);
+ } catch (IllegalAccessException e) {
+ System.out.println("getClassInstance(): " + e);
+ }
+ return object;
+ }
+}
+
+
diff --git a/src/com/sun/apoc/templates/parsing/TemplateCategory.java b/src/com/sun/apoc/templates/parsing/TemplateCategory.java
new file mode 100644
index 0000000..69fb0d4
--- /dev/null
+++ b/src/com/sun/apoc/templates/parsing/TemplateCategory.java
@@ -0,0 +1,123 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.templates.parsing;
+
+import java.util.HashMap;
+
+public class TemplateCategory extends TemplateElement
+ implements NarratedElement {
+
+ private HashMap m_subCategories = null;
+ private String m_descriptionId = null;
+ private TemplateCategory m_parent = null;
+
+
+ public TemplateCategory(String defaultName, String scope, String resourceId,
+ String resourceBundle, TemplateCategory parent) {
+ super(defaultName, scope, resourceId, resourceBundle);
+ m_parent = parent;
+ }
+
+
+ public boolean hasSubCategories() {
+ return m_subCategories != null;
+ }
+
+
+ public HashMap getSubCategories() {
+ return m_subCategories;
+ }
+
+
+ public TemplateCategory getSubCategory(String name) {
+ if (m_subCategories != null) {
+ return (TemplateCategory) m_subCategories.get(name);
+ } else {
+ return null;
+ }
+ }
+
+
+ void addSubCategory(TemplateCategory category) {
+ if (m_subCategories == null) {
+ m_subCategories = new HashMap();
+ }
+ if (!m_subCategories.containsKey(category.getDefaultName())) {
+ m_subCategories.put(category.getDefaultName(), category);
+ }
+ }
+
+
+ public String getDescriptionId() {
+ return m_descriptionId;
+ }
+
+
+ public void setDescriptionId(String resourceId) {
+ m_descriptionId = resourceId;
+ }
+
+
+ public TemplateCategory getParent() {
+ return m_parent;
+ }
+
+
+ public String getPath() {
+ StringBuffer path = new StringBuffer();
+ for (TemplateCategory category = this; category != null; category = category.getParent()) {
+ String name = category.getDefaultName();
+ if (!name.equals(TemplateRepository.ROOT_CATEGORY_NAME)) {
+ path.insert(0, name);
+ path.insert(0, TemplateRepository.TEMPLATE_PATH_SEPARATOR);
+ }
+ }
+ return path.toString();
+ }
+
+
+ public String toString() {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(super.toString());
+ buffer.append(getDefaultName());
+ buffer.append(" (");
+ buffer.append(getResourceId());
+ buffer.append(", ");
+ buffer.append(getResourceBundle());
+ buffer.append(") ");
+ return buffer.toString();
+ }
+}
diff --git a/src/com/sun/apoc/templates/parsing/TemplateElement.java b/src/com/sun/apoc/templates/parsing/TemplateElement.java
new file mode 100644
index 0000000..dd963de
--- /dev/null
+++ b/src/com/sun/apoc/templates/parsing/TemplateElement.java
@@ -0,0 +1,125 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.templates.parsing;
+
+public abstract class TemplateElement implements LocalizedElement {
+
+ public static final String GLOBAL = "global";
+ public static final String USER = "user";
+ public static final String HOST = "host";
+
+ public static final byte USER_SCOPE = 1;
+ public static final byte HOST_SCOPE = 2;
+ public static final byte GLOBAL_SCOPE = 3;
+
+ private String m_defaultName = null;
+ private String m_resourceBundle = null;
+ private String m_resourceId = null;
+ private byte m_scope = GLOBAL_SCOPE;
+
+
+ public TemplateElement(String defaultName, String scope, String resourceId,
+ String resourceBundle) {
+ m_defaultName = defaultName;
+ if (resourceId != null) {
+ m_resourceId = resourceId;
+ } else {
+ m_resourceId = defaultName;
+ }
+ m_resourceBundle = resourceBundle;
+ setScope(scope);
+ }
+
+
+ protected void setScope(String scope) {
+ if (scope != null) {
+ if (scope.indexOf(USER) != -1) {
+ m_scope = USER_SCOPE;
+ } else if (scope.indexOf(HOST) != -1) {
+ m_scope = HOST_SCOPE;
+ }
+ }
+ }
+
+
+ public final String getDefaultName() {
+ return m_defaultName;
+ }
+
+
+ public final String getResourceBundle() {
+ return m_resourceBundle;
+ }
+
+
+ public final String getResourceId() {
+ return m_resourceId;
+ }
+
+
+ public final boolean hasUserScope() {
+ return (m_scope & USER_SCOPE) != 0;
+ }
+
+
+ public final boolean hasHostScope() {
+ return (m_scope & HOST_SCOPE) != 0;
+ }
+
+
+ public final boolean hasGlobalScope() {
+ return (m_scope & GLOBAL_SCOPE) != 0;
+ }
+
+
+ public final boolean isInScope(byte scope) {
+ return (m_scope & scope) != 0;
+ }
+
+
+ public String toString() {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(super.toString());
+ buffer.append(" - ");
+ buffer.append(getDefaultName());
+ buffer.append(" (");
+ buffer.append(getResourceId());
+ buffer.append(", ");
+ buffer.append(getResourceBundle());
+ buffer.append(") ");
+ return buffer.toString();
+ }
+}
diff --git a/src/com/sun/apoc/templates/parsing/TemplatePage.java b/src/com/sun/apoc/templates/parsing/TemplatePage.java
new file mode 100644
index 0000000..992bc6b
--- /dev/null
+++ b/src/com/sun/apoc/templates/parsing/TemplatePage.java
@@ -0,0 +1,182 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.templates.parsing;
+
+import java.util.List;
+import java.util.LinkedList;
+import java.util.HashMap;
+import java.util.Iterator;
+
+
+public class TemplatePage extends TemplateCategory {
+
+ private List m_sections = null;
+ private List m_xmlHandlers = null;
+ private List m_actionHandlers = null;
+ private HashMap m_index = null;
+ private HashMap m_xmlHandler_index = null;
+ private HashMap m_actionHandler_index = null;
+ private String m_dataPath = null;
+ private String m_helpFile = null;
+ private String m_packageName = null;
+
+
+
+ public TemplatePage(String defaultName, String scope, String resourceId,
+ String resourceBundle, TemplateCategory parent) {
+ super(defaultName, scope, resourceId, resourceBundle, parent);
+ }
+
+ public TemplatePage(String defaultName, String scope, String resourceId,
+ String resourceBundle, String helpFile, TemplateCategory parent) {
+ super(defaultName, scope, resourceId, resourceBundle, parent);
+ m_helpFile = helpFile;
+ }
+
+ public TemplatePage(String defaultName, String scope, String resourceId,
+ String resourceBundle, String helpFile, TemplateCategory parent,
+ String templatePackage) {
+ super(defaultName, scope, resourceId, resourceBundle, parent);
+ m_helpFile = helpFile;
+ m_packageName = templatePackage;
+ }
+
+ public List getSections() {
+ return m_sections;
+ }
+
+
+ public TemplateSection getSection(int index) {
+ return (TemplateSection) m_sections.get(index);
+ }
+
+
+ public TemplateSection getSection(String name) {
+ return (TemplateSection) m_index.get(name);
+ }
+
+ public TemplateXMLHandler getXMLHandler(int index) {
+ return (TemplateXMLHandler) m_xmlHandlers.get(index);
+ }
+
+ public TemplateXMLHandler getXMLHandler(String name) {
+ return (TemplateXMLHandler) m_xmlHandler_index.get(name);
+ }
+
+ public TemplateActionHandler getActionHandler(int index) {
+ return (TemplateActionHandler) m_actionHandlers.get(index);
+ }
+
+ public TemplateActionHandler getActionHandler(String name) {
+ return (TemplateActionHandler) m_actionHandler_index.get(name);
+ }
+
+ public int getSectionIndex(String name) {
+ Iterator it = m_sections.iterator();
+ int result = 0;
+ while (it.hasNext()) {
+ TemplateSection section = (TemplateSection) it.next();
+ if (section.getDefaultName().equals(name)) {
+ return result;
+ }
+ result++;
+ }
+ return -1;
+ }
+
+
+ void addSection(TemplateSection section) {
+ if (m_sections == null) {
+ m_sections = new LinkedList();
+ m_index = new HashMap();
+ }
+ m_sections.add(section);
+ m_index.put(section.getDefaultName(), section);
+ }
+
+ public void addXMLHandler(TemplateXMLHandler handler) {
+ if (m_xmlHandlers == null) {
+ m_xmlHandlers = new LinkedList();
+ m_xmlHandler_index = new HashMap();
+ }
+ m_xmlHandlers.add(handler);
+ m_xmlHandler_index.put(handler.getName(), handler);
+ }
+
+ public void addActionHandler(TemplateActionHandler handler) {
+ if (m_actionHandlers == null) {
+ m_actionHandlers = new LinkedList();
+ m_actionHandler_index = new HashMap();
+ }
+ m_actionHandlers.add(handler);
+ m_actionHandler_index.put(handler.getName(), handler);
+ }
+
+ public String getDataPath() {
+ return m_dataPath;
+ }
+
+
+ public void setDataPath(String path) {
+ m_dataPath = path;
+ }
+
+ public String getHelpFile() {
+ return m_helpFile;
+ }
+
+
+ public String getTemplatePackageName() {
+ return m_packageName;
+ }
+
+
+ public boolean hasVisibleContent(byte scope) {
+ Iterator it = getSections().iterator();
+ while (it.hasNext()) {
+ TemplateSection section = (TemplateSection) it.next();
+ if (section.isInScope(scope)) {
+ if (section.hasVisibleContent(scope)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+}
+
+
+
diff --git a/src/com/sun/apoc/templates/parsing/TemplateProperty.java b/src/com/sun/apoc/templates/parsing/TemplateProperty.java
new file mode 100644
index 0000000..d45e342
--- /dev/null
+++ b/src/com/sun/apoc/templates/parsing/TemplateProperty.java
@@ -0,0 +1,254 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.templates.parsing;
+
+import java.util.Vector;
+
+public class TemplateProperty extends TemplateElement
+ implements NarratedElement {
+
+ public static final String CHECKBOX = "checkBox";
+ public static final String RADIOBUTTONS = "radioButtons";
+ public static final String COMBOBOX = "comboBox";
+ public static final String LISTBOX = "listBox";
+ public static final String PASSWORD = "password";
+ public static final String TEXTAREA = "textArea";
+ public static final String TEXTFIELD = "textField";
+ public static final String CUSTOM = "customRenderer";
+ public static final String HIDDEN = "hidden";
+ public static final String STRING_LIST = "stringList";
+ public static final String COLOR_CHOOSER = "colorSelector";
+ public static final String CHOOSER = "chooser";
+
+
+
+ private String m_dataPath = null;
+ private String m_visualType = null;
+ private String m_type = null;
+ private String m_defaultValue = null;
+ private String m_descriptionId = null;
+ private String m_extraHtml = null;
+ private String m_extraData = null;
+ private String m_xmlHandler = null;
+ private String m_actionHandler = null;
+ private String m_chooserPath = null;
+ private String m_extendsChooser = null;
+ private String m_labelPopup = null;
+ private Vector m_constraints = null;
+ private String m_labelPost = null;
+ private String m_separator = null;
+
+ private boolean m_autostore = false;
+ private boolean m_defaultNilValue = false;
+
+
+ public TemplateProperty(String defaultName, String scope, String resourceId,
+ String resourceBundle, String dataPath, String visualType,
+ String type, String autostore, String xmlHandler, String actionHandler, String extraHtml) {
+ super(defaultName, scope, resourceId, resourceBundle);
+
+ m_dataPath = dataPath;
+ m_extraHtml = extraHtml;
+ m_xmlHandler = xmlHandler ;
+ m_actionHandler = actionHandler ;
+ m_type = type;
+ if (visualType == null) {
+ m_visualType = TEXTFIELD;
+ } else {
+ m_visualType = visualType;
+ }
+ if ((autostore != null) && (autostore.indexOf("true") != -1)) {
+ m_autostore = true;
+ }
+ }
+
+
+ public boolean isAutoStored() {
+ return m_autostore;
+ }
+
+
+ public String getDataPath() {
+ return m_dataPath;
+ }
+
+
+ public String getExtraHtml() {
+ return m_extraHtml;
+ }
+
+ public String getChooserPath() {
+ return m_chooserPath;
+ }
+
+ public String getExtendsChooser() {
+ return m_extendsChooser;
+ }
+
+ public String getLabelPopup() {
+ return m_labelPopup;
+ }
+
+ public String getLabelPost() {
+ return m_labelPost;
+ }
+
+ public String getXmlHandler() {
+ return m_xmlHandler;
+ }
+
+ public String getActionHandler() {
+ return m_actionHandler;
+ }
+
+ public String getDataType() {
+ return m_type;
+ }
+
+ public String getSeparator() {
+ String separator = m_separator;
+ if(m_separator == null) {
+ separator = " ";
+ }
+ return separator;
+ }
+
+ public String getVisualType() {
+ return m_visualType;
+ }
+
+
+ public void setVisualType(String visualType) {
+ m_visualType = visualType;
+ }
+
+
+ public String getDescriptionId() {
+ return m_descriptionId;
+ }
+
+
+ public void setDescriptionId(String resourceId) {
+ m_descriptionId = resourceId;
+ }
+
+ public void setSeparator(String separator) {
+ m_separator = separator;
+ }
+
+ public void addConstraint(String value) {
+ if (m_constraints == null) {
+ m_constraints = new Vector();
+ }
+ m_constraints.add(new TemplatePropertyConstraint(value, null));
+ }
+
+ public void addConstraint(String value, String resId) {
+ if (m_constraints == null) {
+ m_constraints = new Vector();
+ }
+ m_constraints.add(new TemplatePropertyConstraint(value, resId));
+ }
+
+
+ public Vector getConstraints() {
+ return m_constraints;
+ }
+
+
+ public void setDefaultValue(String value) {
+ m_defaultValue = value;
+ m_defaultNilValue = false;
+ }
+
+
+ public void setDefaultNilValue(String isNilValue) {
+ if ((isNilValue != null) && (isNilValue.indexOf("true") != -1)) {
+ m_defaultNilValue = true;
+ m_defaultValue = null;
+ }
+ }
+
+
+ public String getDefaultValue() {
+ return m_defaultValue;
+ }
+
+
+ public boolean hasDefaultNilValue() {
+ return m_defaultNilValue;
+ }
+
+
+ public String getExtraData() {
+ return m_extraData;
+ }
+
+
+ public void setExtraData(String extraData) {
+ m_extraData = extraData;
+ }
+
+ public void setChooserPath(String chooserPath) {
+ m_chooserPath = chooserPath;
+ }
+
+ public void setExtendsChooser(String extendsChooser) {
+ m_extendsChooser = extendsChooser;
+ }
+
+ public void setLabelPopup(String labelPopup) {
+ m_labelPopup = labelPopup;
+ }
+
+ public void setLabelPost(String labelPost) {
+ m_labelPost = labelPost;
+ }
+
+ public String toString() {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(super.toString());
+ buffer.append(", ");
+ buffer.append(getVisualType());
+ buffer.append(", ");
+ buffer.append(getDataPath());
+ buffer.append(") ");
+ return buffer.toString();
+ }
+}
+
+
diff --git a/src/com/sun/apoc/templates/parsing/TemplatePropertyConstraint.java b/src/com/sun/apoc/templates/parsing/TemplatePropertyConstraint.java
new file mode 100644
index 0000000..525c11b
--- /dev/null
+++ b/src/com/sun/apoc/templates/parsing/TemplatePropertyConstraint.java
@@ -0,0 +1,57 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.templates.parsing;
+
+public class TemplatePropertyConstraint {
+
+ private String m_value = null;
+ private String m_resId = null;
+
+ public TemplatePropertyConstraint(String value, String resId) {
+ m_value = value;
+ m_resId = resId;
+ }
+
+
+ public String getValue() {
+ return m_value;
+ }
+
+ public String getResourceId() {
+ return m_resId;
+ }
+}
+
diff --git a/src/com/sun/apoc/templates/parsing/TemplateRepository.java b/src/com/sun/apoc/templates/parsing/TemplateRepository.java
new file mode 100644
index 0000000..7299901
--- /dev/null
+++ b/src/com/sun/apoc/templates/parsing/TemplateRepository.java
@@ -0,0 +1,633 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.templates.parsing;
+
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.LinkedList;
+import java.util.StringTokenizer;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.InputSource;
+import org.xml.sax.helpers.DefaultHandler;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.apoc.manager.resource.ResourceRepository;
+
+
+public class TemplateRepository {
+
+ public static final String TEMPLATE_PATH_SEPARATOR = "/";
+ public static final String SET_PREFIX = "SET_";
+ public static final String SET_INDEX_SEPARATOR = "|";
+
+ public static final String DEFAULT_PACKAGE_DIR = "/packages";
+ public static final String DEFAULT_TEMPLATE_DIR = File.separator + "templates" + File.separator;
+
+ public static final String TEMPLATE_EXTENSION = ".xml";
+ public static final String JAR_EXTENSION = ".jar";
+ public static final String PROPERTIES_EXTENSION = ".properties";
+ public static final String ROOT_CATEGORY_NAME = "Policies";
+
+ private static TemplateRepository m_defaultRepository = null;
+ private static Thread m_initializerThread = null;
+
+ private File m_templatesDir = null;
+ private File m_DTDLocation = null;
+ private boolean m_bInitialized = false;
+
+ private SAXParser m_parser = null;
+ private TemplateCategory m_templateRoot = null;
+
+
+ public static TemplateRepository getDefaultRepository() {
+ if (m_defaultRepository == null) {
+ m_defaultRepository = new TemplateRepository();
+ }
+ return m_defaultRepository;
+ }
+
+
+ protected TemplateRepository() {
+ CCDebug.initTrace();
+ }
+
+
+ public HashMap getTopLevelCategories() {
+ isInitialized();
+ return m_templateRoot.getSubCategories();
+ }
+
+
+ public TemplateCategory getCategory(String path) {
+ return getCategory(path, TemplateElement.GLOBAL_SCOPE);
+ }
+
+
+ public TemplateCategory getCategory(String path, byte scope) {
+ isInitialized();
+ StringTokenizer tokenizer = new StringTokenizer(path,
+ TEMPLATE_PATH_SEPARATOR);
+ TemplateCategory category = m_templateRoot;
+ TemplateCategory subCategory = null;
+ while (tokenizer.hasMoreTokens()) {
+ String defaultName = tokenizer.nextToken();
+ // special handling for sets
+ if (!defaultName.startsWith(SET_PREFIX)) {
+ subCategory = category.getSubCategory(defaultName);
+ } else {
+ TemplatePage page = (TemplatePage) category;
+ TemplateSet set = (TemplateSet)
+ page.getSection(defaultName.substring(SET_PREFIX.length(),
+ defaultName.indexOf(SET_INDEX_SEPARATOR)));
+ subCategory = set.getPage();
+ }
+ // error checking and fallback to last found category
+ if ((subCategory != null) && (subCategory.isInScope(scope))) {
+ category = subCategory;
+ } else {
+ CCDebug.trace1("Category " + path + " not found!");
+ break;
+ }
+ }
+ return category;
+ }
+
+
+ public TemplatePage getPage(String path) {
+ return (TemplatePage) getCategory(path);
+ }
+
+
+ public TemplatePage getPage(String path, byte scope) {
+ return (TemplatePage) getCategory(path, scope);
+ }
+
+
+ public void initialize() {
+ CCDebug.trace2("Initializing template repository.");
+ m_templateRoot = new TemplatePage(ROOT_CATEGORY_NAME, null,
+ "APOC.policies.root", null, null);
+ try {
+ m_parser = SAXParserFactory.newInstance().newSAXParser();
+ } catch (ParserConfigurationException e) {
+ CCDebug.trace1("Error could not initialize template parser!", e);
+ } catch (SAXException e) {
+ CCDebug.trace1("Error could not initialize template parser!", e);
+ }
+ m_initializerThread = new Thread() {
+ public void run() {
+ examineDirectory(getTemplatesDir());
+ m_parser = null;
+ m_bInitialized = true;
+ }
+ };
+ m_initializerThread.start();
+ }
+
+
+ public boolean isInitialized() {
+ try {
+ m_initializerThread.join();
+ } catch (InterruptedException e) {}
+ return m_bInitialized;
+ }
+
+
+ public void update() {
+ CCDebug.trace2("Update template repository.");
+ m_bInitialized = false;
+ initialize();
+ }
+
+
+ public void setTemplatesDir(String path) {
+ CCDebug.trace3("Setting templates directory to " + path + "!");
+ m_templatesDir = new File(path);
+ }
+
+
+ public void setTemplateDir(File dir) {
+ CCDebug.trace3("Setting templates directory to " + dir.getName() + "!");
+ m_templatesDir = dir;
+ }
+
+
+ public void setDTDLocation(String path) {
+ CCDebug.trace3("Setting DTD location to " + path + "!");
+ m_DTDLocation = new File(path);
+ }
+
+
+ public void setDTDLocation(File location) {
+ CCDebug.trace3("Setting DTD location to " + location.getName() + "!");
+ m_DTDLocation = location;
+ }
+
+
+ public File getTemplatesDir() {
+ if (m_templatesDir == null) {
+ setTemplatesDir(DEFAULT_PACKAGE_DIR);
+ CCDebug.trace3("No templates directory specified. Using default location (" + DEFAULT_PACKAGE_DIR + ").");
+ }
+ if (!m_templatesDir.exists()) {
+ CCDebug.trace1("Templates directory not found. Assuming fresh start. Creating templates directory.");
+ m_templatesDir.mkdir();
+ }
+ return m_templatesDir;
+ }
+
+
+ protected void examineDirectory(File dir) {
+ CCDebug.trace3("Examine directory " + dir.getAbsolutePath());
+ File[] entries = dir.listFiles();
+ for(int i = 0; i < entries.length; i++) {
+ if (entries[i].isDirectory()) {
+ examineDirectory(entries[i]);
+ } else {
+ if (entries[i].getName().endsWith(TEMPLATE_EXTENSION)) {
+ CCDebug.trace2("Found template " + entries[i].getName());
+ parseTemplate(entries[i]);
+ } else if (entries[i].getName().endsWith(JAR_EXTENSION) ||
+ entries[i].getName().endsWith(PROPERTIES_EXTENSION)) {
+ CCDebug.trace2("Found resource file " + entries[i].getName());
+ ResourceRepository.getDefaultRepository().addResource(entries[i]);
+ }
+ }
+ }
+ }
+
+ protected void parseTemplate(File template) {
+ try {
+ CCDebug.trace3("Start parsing of " + template.getName());
+ m_parser.parse(template, new TemplateHandler(m_templateRoot,
+ getTemplatePackageName(template)));
+ } catch (IOException e) {
+ CCDebug.trace1("Error opening template " + template.getName() + "!", e);
+ } catch (SAXException e) {
+ CCDebug.trace1("Error parsing template " + template.getName() + "!", e);
+ }
+ }
+
+
+ protected String getTemplatePackageName(File template) {
+ String path = template.getAbsolutePath();
+ int pos = path.indexOf(DEFAULT_TEMPLATE_DIR);
+ if (pos == -1) return null;
+ path = path.substring(0, pos);
+ pos = path.lastIndexOf(File.separator);
+ if (pos == -1) return null;
+ path = path.substring(pos + 1);
+ return path.toString();
+ }
+
+
+ protected void getContent(StringBuffer buffer, TemplateCategory category, int level) {
+ if (category.hasSubCategories()) {
+ Set set = category.getSubCategories().keySet();
+ Iterator it = set.iterator();
+ while (it.hasNext()) {
+ String name = (String) it.next();
+ for(int i = 0; i < level; i++) {
+ buffer.append(" ");
+ }
+ TemplateCategory subCategory = category.getSubCategory(name);
+ buffer.append(subCategory.getDefaultName());
+ buffer.append(" (");
+ buffer.append(subCategory.getResourceId());
+ buffer.append(", ");
+ buffer.append(subCategory.getResourceBundle());
+ buffer.append(") ");
+ buffer.append("\r\n");
+ getContent(buffer, category.getSubCategory(name), level + 1);
+ }
+ }
+ }
+
+
+ public String toString() {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(super.toString());
+ buffer.append("\r\n");
+ getContent(buffer, m_templateRoot, 0);
+ buffer.append("\r\n");
+ return buffer.toString();
+ }
+
+
+ class TemplateHandler extends DefaultHandler {
+
+ public static final String CATEGORY_TAG = "category";
+ public static final String PAGE_TAG = "page";
+ public static final String SECTION_TAG = "section";
+ public static final String SET_TAG = "set";
+ public static final String PROPERTY_TAG = "property";
+ public static final String RES_IMPORT_TAG = "resImport";
+ public static final String HELP_IMPORT_TAG = "helpImport";
+ public static final String INLINE_HELP_TAG = "inlineHelp";
+ public static final String ENUMERATION_TAG = "enumeration";
+ public static final String VALUE_TAG = "value";
+ public static final String VISUAL_TAG = "visual";
+ public static final String CHECKBOX_TAG = "checkBox";
+ public static final String CHOOSER_TAG = "chooser";
+ public static final String RES_ID_ATTR = "apt:resId";
+ public static final String LABEL_ATTR = "apt:label";
+ public static final String NAME_ATTR = "apt:name";
+ public static final String PACKAGE_ATTR = "apt:packagePath";
+ public static final String FILE_ATTR = "apt:filePath";
+ public static final String VISUAL_TYPE_ATTR = "apt:visualType";
+ public static final String VISUAL_TYPE_ATTR2= "apt:type";
+ public static final String DATA_PATH_ATTR = "apt:dataPath";
+ public static final String VALUE_ATTR = "oor:value";
+ public static final String SEPARATOR_ATTR = "oor:separator";
+ public static final String TYPE_ATTR = "oor:type";
+ public static final String SCOPE_ATTR = "apt:scope";
+ public static final String STORE_ATTR = "apt:storeDefault";
+ public static final String INLINE_HELP_ATTR = "apt:inlineHelp";
+ public static final String ONLINE_HELP_ATTR = "apt:onlineHelp";
+ public static final String LABEL_POST_ATTR = "apt:labelPost";
+ public static final String NIL_ATTR = "xsi:nil";
+ public static final String EXTRA_HTML_ATTR = "apt:extraHtml";
+ public static final String CHOOSER_PATH_ATTR= "apt:dataPath";
+ public static final String EXTENDS_CHOOSER_ATTR= "apt:extendsChooser";
+ public static final String LABEL_POPUP_ATTR = "apt:labelPopup";
+ public static final String XML_HANDLER_TAG = "xmlHandler";
+ public static final String ACTION_HANDLER_TAG= "actionHandler";
+ public static final String EVENT_TAG = "event";
+ public static final String ACTION_TAG = "action";
+ public static final String WHEN_TAG = "when";
+ public static final String OTHERWISE_TAG = "otherwise";
+ public static final String COMMAND_TAG = "command";
+ public static final String XML_HANDLER_ATTR = "apt:xmlHandler";
+ public static final String ACTION_HANDLER_ATTR = "apt:actionHandler";
+ public static final String HANDLER_TYPE_ATTR= "apt:type";
+ public static final String TEST_ATTR = "apt:test";
+ public static final String CLASS_ATTR = "apt:class";
+
+ public static final String TEMPLATE_SYSTEM_ID = "policytemplate.dtd";
+
+ private String m_packageName = null;
+ private String m_resourceBundle = null;
+ private String m_helpFile = null;
+ private StringBuffer m_buffer = null;
+ private LinkedList m_context = null;
+
+
+ public TemplateHandler(TemplateCategory templateRoot,
+ String packageName) {
+ m_buffer = new StringBuffer();
+ m_context = new LinkedList();
+ m_context.add(templateRoot);
+ m_packageName = packageName;
+ }
+
+
+ protected Object getCurrentContext() {
+ return (m_context.getLast());
+ }
+
+
+ public void startElement(String uri, String localName,
+ String qName, Attributes attr) throws SAXException {
+ if (qName.equals(CATEGORY_TAG)) {
+ String name = attr.getValue(NAME_ATTR);
+ TemplateCategory template = (TemplateCategory) getCurrentContext();
+ TemplateCategory subCategory = template.getSubCategory(name);
+ if (subCategory == null) {
+ String label = attr.getValue(RES_ID_ATTR);
+ if (label == null) {
+ label = attr.getValue(LABEL_ATTR);
+ }
+ subCategory = new TemplatePage(name,
+ attr.getValue(SCOPE_ATTR),
+ label,
+ m_resourceBundle, template);
+ subCategory.setDescriptionId(attr.getValue(INLINE_HELP_ATTR));
+ template.addSubCategory(subCategory);
+ }
+ m_context.add(subCategory);
+
+ } else if (qName.equals(PAGE_TAG)){
+ String name = attr.getValue(NAME_ATTR);
+ if (getCurrentContext() instanceof TemplateSet) {
+ TemplateSet set = (TemplateSet) getCurrentContext();
+ String label = attr.getValue(RES_ID_ATTR);
+ if (label == null) {
+ label = attr.getValue(LABEL_ATTR);
+ }
+ if (attr.getValue(ONLINE_HELP_ATTR) != null) {
+ m_helpFile = attr.getValue(ONLINE_HELP_ATTR);
+ }
+ TemplatePage page = new TemplatePage(name,
+ attr.getValue(SCOPE_ATTR),
+ label,
+ m_resourceBundle, m_helpFile,
+ null,
+ m_packageName);
+ page.setDataPath(set.getDataPath());
+ page.setDescriptionId(attr.getValue(INLINE_HELP_ATTR));
+ set.setPage(page);
+ m_context.add(page);
+
+ } else {
+ TemplateCategory template = (TemplateCategory) getCurrentContext();
+ TemplateCategory subCategory = template.getSubCategory(name);
+ if (subCategory == null) {
+ String label = attr.getValue(RES_ID_ATTR);
+ if (label == null) {
+ label = attr.getValue(LABEL_ATTR);
+ }
+ if (attr.getValue(ONLINE_HELP_ATTR) != null) {
+ m_helpFile = attr.getValue(ONLINE_HELP_ATTR);
+ }
+ subCategory = new TemplatePage(name,
+ attr.getValue(SCOPE_ATTR),
+ label,
+ m_resourceBundle, m_helpFile,
+ template,
+ m_packageName);
+ subCategory.setDescriptionId(attr.getValue(INLINE_HELP_ATTR));
+ template.addSubCategory(subCategory);
+ }
+ m_context.add(subCategory);
+ }
+
+ } else if (qName.equals(SECTION_TAG)) {
+ String label = attr.getValue(RES_ID_ATTR);
+ if (label == null) {
+ label = attr.getValue(LABEL_ATTR);
+ }
+ TemplateSection section = new TemplateSection(
+ attr.getValue(NAME_ATTR),
+ attr.getValue(SCOPE_ATTR),
+ label,
+ m_resourceBundle);
+ TemplatePage page = (TemplatePage) getCurrentContext();
+ page.addSection(section);
+ m_context.add(section);
+
+ } else if (qName.equals(XML_HANDLER_TAG)) {
+ String label = attr.getValue(NAME_ATTR);
+ TemplateXMLHandler handler = new TemplateXMLHandler(label);
+ TemplatePage page = (TemplatePage) getCurrentContext();
+ page.addXMLHandler(handler);
+ m_context.add(handler);
+
+ } else if (qName.equals(ACTION_HANDLER_TAG)) {
+ String name = attr.getValue(NAME_ATTR);
+ String classname = attr.getValue(CLASS_ATTR);
+ String packageDir = m_packageName;
+ TemplateActionHandler handler = new TemplateActionHandler(name, classname, packageDir);
+ TemplatePage page = (TemplatePage) getCurrentContext();
+ page.addActionHandler(handler);
+ m_context.add(handler);
+
+ } else if (qName.equals(SET_TAG)) {
+ String label = attr.getValue(RES_ID_ATTR);
+ if (label == null) {
+ label = attr.getValue(LABEL_ATTR);
+ }
+ TemplateSet set = new TemplateSet(attr.getValue(NAME_ATTR),
+ attr.getValue(SCOPE_ATTR),
+ label,
+ m_resourceBundle,
+ attr.getValue(DATA_PATH_ATTR),
+ attr.getValue(LABEL_POPUP_ATTR));
+ TemplatePage page = (TemplatePage) getCurrentContext();
+ page.addSection(set);
+ m_context.add(set);
+
+ } else if (qName.equals(PROPERTY_TAG)) {
+ String label = attr.getValue(RES_ID_ATTR);
+ if (label == null) {
+ label = attr.getValue(LABEL_ATTR);
+ }
+ TemplateProperty property = new TemplateProperty(
+ attr.getValue(NAME_ATTR),
+ attr.getValue(SCOPE_ATTR),
+ label,
+ m_resourceBundle,
+ attr.getValue(DATA_PATH_ATTR),
+ attr.getValue(VISUAL_TYPE_ATTR),
+ attr.getValue(TYPE_ATTR),
+ attr.getValue(STORE_ATTR),
+ attr.getValue(XML_HANDLER_ATTR),
+ attr.getValue(ACTION_HANDLER_ATTR),
+ attr.getValue(EXTRA_HTML_ATTR));
+ property.setDescriptionId(attr.getValue(INLINE_HELP_ATTR));
+ TemplateSection section = (TemplateSection) getCurrentContext();
+ section.addProperty(property);
+ m_context.add(property);
+
+ } else if (qName.equals(VISUAL_TAG)) {
+ TemplateProperty property = (TemplateProperty) getCurrentContext();
+ property.setVisualType(attr.getValue(VISUAL_TYPE_ATTR2));
+
+ } else if (qName.equals(CHECKBOX_TAG)) {
+ TemplateProperty property = (TemplateProperty) getCurrentContext();
+ property.setVisualType(TemplateProperty.CHECKBOX);
+ //#b5055105# support for localization of label
+ String label = attr.getValue(LABEL_POST_ATTR);
+ property.setLabelPost(label);
+
+ } else if (qName.equals(CHOOSER_TAG)) {
+ TemplateProperty property = (TemplateProperty) getCurrentContext();
+ property.setVisualType(TemplateProperty.CHOOSER);
+ property.setExtendsChooser(attr.getValue(EXTENDS_CHOOSER_ATTR));
+ property.setChooserPath(attr.getValue(CHOOSER_PATH_ATTR));
+ property.setLabelPopup(attr.getValue(LABEL_POPUP_ATTR));
+
+ } else if (qName.equals(RES_IMPORT_TAG)) {
+ m_resourceBundle = attr.getValue(PACKAGE_ATTR);
+
+ } else if (qName.equals(HELP_IMPORT_TAG)) {
+ m_helpFile = attr.getValue(FILE_ATTR);
+
+ } else if (qName.equals(INLINE_HELP_TAG)) {
+ NarratedElement element = (NarratedElement) getCurrentContext();
+ element.setDescriptionId(attr.getValue(RES_ID_ATTR));
+
+ } else if (qName.equals(ENUMERATION_TAG)) {
+ TemplateProperty property = (TemplateProperty) getCurrentContext();
+ String label = attr.getValue(RES_ID_ATTR);
+ if (label == null) {
+ label = attr.getValue(LABEL_ATTR);
+ }
+ property.addConstraint(attr.getValue(VALUE_ATTR), label);
+
+ } else if (qName.equals(VALUE_TAG)) {
+ TemplateProperty property = (TemplateProperty) getCurrentContext();
+ String separator = attr.getValue(SEPARATOR_ATTR);
+ property.setSeparator(separator);
+ property.setDefaultNilValue(attr.getValue(NIL_ATTR));
+ m_buffer.setLength(0);
+
+ } else if (qName.equals(ACTION_TAG)) {
+ m_context.add(ACTION_TAG) ;
+
+ } else if (qName.equals(EVENT_TAG)) {
+ TemplateXMLHandler handler = (TemplateXMLHandler) getCurrentContext();
+ handler.addType(attr.getValue(HANDLER_TYPE_ATTR));
+
+ } else if (qName.equals(WHEN_TAG)) {
+ TemplateXMLHandler handler = (TemplateXMLHandler) m_context.get(m_context.size() - 2);
+ handler.addTest(attr.getValue(TEST_ATTR));
+ handler.addNewCommandList() ;
+ m_context.add(WHEN_TAG) ;
+
+ } else if (qName.equals(OTHERWISE_TAG)) {
+ m_context.add(OTHERWISE_TAG) ;
+
+ } else if (qName.equals(COMMAND_TAG)) {
+ m_buffer.setLength(0);
+ }
+ }
+
+
+ public void characters(char[] chars, int start, int len)
+ throws SAXException {
+ m_buffer.append(chars, start, len);
+ }
+
+
+ public void endElement(String uri, String localName, String qName)
+ throws SAXException {
+
+ if (qName.equals(PROPERTY_TAG)
+ || qName.equals(SET_TAG)
+ || qName.equals(SECTION_TAG)
+ || qName.equals(OTHERWISE_TAG)
+ || qName.equals(WHEN_TAG)
+ || qName.equals(ACTION_TAG)
+ || qName.equals(XML_HANDLER_TAG)
+ || qName.equals(ACTION_HANDLER_TAG)
+ || qName.equals(PAGE_TAG)
+ || qName.equals(CATEGORY_TAG)) {
+ m_context.removeLast();
+
+ } else if (qName.equals(VALUE_TAG)) {
+ TemplateProperty property = (TemplateProperty) getCurrentContext();
+ if (!property.hasDefaultNilValue()) {
+ property.setDefaultValue(m_buffer.toString());
+ }
+ m_buffer.setLength(0);
+
+ } else if (qName.equals(COMMAND_TAG)) {
+ if(((String)getCurrentContext()).equals(ACTION_TAG)) {
+ TemplateXMLHandler handler = (TemplateXMLHandler) m_context.get(m_context.size() - 2) ;
+ handler.addCommand(m_buffer.toString());
+ m_buffer.setLength(0);
+ }
+ else if(((String)getCurrentContext()).equals(WHEN_TAG)) {
+ TemplateXMLHandler handler = (TemplateXMLHandler) m_context.get(m_context.size() - 3) ;
+ handler.addWhenCommand(m_buffer.toString());
+ m_buffer.setLength(0);
+ }
+ else if(((String)getCurrentContext()).equals(OTHERWISE_TAG)) {
+ TemplateXMLHandler handler = (TemplateXMLHandler) m_context.get(m_context.size() - 3) ;
+ handler.addOtherwiseCommand(m_buffer.toString());
+ m_buffer.setLength(0);
+ }
+
+ }
+
+ }
+
+
+ public InputSource resolveEntity (String publicId, String systemId) {
+ if ((systemId.endsWith(TEMPLATE_SYSTEM_ID)) && (m_DTDLocation != null)) {
+ try {
+ FileInputStream stream = new FileInputStream(m_DTDLocation);
+ return new InputSource(stream);
+ } catch (FileNotFoundException e) {
+ CCDebug.trace1("Could not find DTD!", e);
+ return null;
+ }
+ } else {
+ return null;
+ }
+ }
+ }
+}
+
diff --git a/src/com/sun/apoc/templates/parsing/TemplateSection.java b/src/com/sun/apoc/templates/parsing/TemplateSection.java
new file mode 100644
index 0000000..fc69658
--- /dev/null
+++ b/src/com/sun/apoc/templates/parsing/TemplateSection.java
@@ -0,0 +1,87 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.templates.parsing;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+
+public class TemplateSection extends TemplateElement {
+
+ private List m_properties = null;
+
+
+ public TemplateSection(String defaultName, String scope, String resourceId,
+ String resourceBundle) {
+ super(defaultName, scope, resourceId, resourceBundle);
+ }
+
+
+ public List getProperties() {
+ return m_properties;
+ }
+
+
+ public TemplateProperty getProperty(int index) {
+ return (TemplateProperty) m_properties.get(index);
+ }
+
+
+ void addProperty(TemplateProperty property) {
+ if (m_properties == null) {
+ m_properties = new ArrayList();
+ }
+ m_properties.add(property);
+ }
+
+
+ boolean hasVisibleContent(byte scope) {
+ Iterator it = getProperties().iterator();
+ while (it.hasNext()) {
+ TemplateProperty property = (TemplateProperty) it.next();
+ if (property.isInScope(scope)) {
+ if (!property.getVisualType().equals("hidden")) {
+ return true;
+ } else if (!property.isAutoStored()) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+}
+
diff --git a/src/com/sun/apoc/templates/parsing/TemplateSet.java b/src/com/sun/apoc/templates/parsing/TemplateSet.java
new file mode 100644
index 0000000..4de8801
--- /dev/null
+++ b/src/com/sun/apoc/templates/parsing/TemplateSet.java
@@ -0,0 +1,71 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+
+package com.sun.apoc.templates.parsing;
+
+
+public class TemplateSet extends TemplateSection {
+
+ private TemplatePage m_page = null;
+ private String m_dataPath = null;
+ private String m_labelPopup = null;
+
+ public TemplateSet(String defaultName, String scope, String resourceId,
+ String resourceBundle, String dataPath, String labelPopup) {
+ super(defaultName, scope, resourceId, resourceBundle);
+ m_dataPath = dataPath;
+ m_labelPopup = labelPopup;
+ }
+
+ public void setPage(TemplatePage page) {
+ m_page = page;
+ }
+
+ public TemplatePage getPage() {
+ return m_page;
+ }
+
+ public String getDataPath() {
+ return m_dataPath;
+ }
+
+ public String getLabelPopup() {
+ return m_labelPopup;
+ }
+
+}
+
+
diff --git a/src/com/sun/apoc/templates/parsing/TemplateXMLHandler.java b/src/com/sun/apoc/templates/parsing/TemplateXMLHandler.java
new file mode 100644
index 0000000..faedbbe
--- /dev/null
+++ b/src/com/sun/apoc/templates/parsing/TemplateXMLHandler.java
@@ -0,0 +1,137 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.templates.parsing;
+
+import java.util.List;
+import java.util.ArrayList;
+
+
+
+public class TemplateXMLHandler {
+
+ private String m_name = null ;
+ private String m_type = null ;
+ private List m_tests = null ;
+ private List m_commands = null ;
+ private List m_whenCommands = null ;
+ private List m_otherCommands = null ;
+
+ public TemplateXMLHandler(String name) {
+ m_name = name ;
+ }
+
+ public void addType(String type) {
+ m_type = type ;
+ }
+
+ public void addTest(String test) {
+ if (m_tests == null) {
+ m_tests = new ArrayList();
+ }
+ m_tests.add(test);
+ }
+
+ public void addCommand(String command) {
+ if (m_commands == null) {
+ m_commands = new ArrayList();
+ }
+ m_commands.add(command);
+ }
+
+ public void addNewCommandList() {
+ if (m_whenCommands == null) {
+ m_whenCommands = new ArrayList();
+ }
+ m_whenCommands.add(new ArrayList()) ;
+ }
+
+ public void addWhenCommand(String command) {
+ if (m_whenCommands == null) {
+ m_whenCommands = new ArrayList();
+ }
+ ((ArrayList)m_whenCommands.get(m_whenCommands.size()-1)).add(command) ;
+ }
+
+ public void addOtherwiseCommand(String command) {
+ if (m_otherCommands == null) {
+ m_otherCommands = new ArrayList();
+ }
+ m_otherCommands.add(command);
+ }
+
+ public String getName() {
+ return m_name ;
+ }
+
+ public String getType() {
+ return m_type ;
+ }
+
+ public List getTests() {
+ return m_tests ;
+ }
+
+ public String getTest(int index) {
+ return (String) m_tests.get(index);
+ }
+
+ public List getCommands() {
+ return m_commands;
+ }
+
+ public String getCommand(int index) {
+ return (String) m_commands.get(index);
+ }
+
+ public List getWhenCommandLists() {
+ return m_whenCommands;
+ }
+
+ public List getWhenCommandList(int index) {
+ return (List
+ ) m_whenCommands.get(index);
+ }
+
+ public List getOtherwiseCommands() {
+ return m_otherCommands;
+ }
+
+ public String getOtherwiseCommand(int index) {
+ return (String) m_otherCommands.get(index);
+ }
+}
+
+
diff --git a/src/com/sun/apoc/templates/parsing/TemplateXMLHandlerModel.java b/src/com/sun/apoc/templates/parsing/TemplateXMLHandlerModel.java
new file mode 100644
index 0000000..e2b3116
--- /dev/null
+++ b/src/com/sun/apoc/templates/parsing/TemplateXMLHandlerModel.java
@@ -0,0 +1,708 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either
+ * the GNU General Public License Version 2 only ("GPL") or
+ * the Common Development and Distribution License("CDDL")
+ * (collectively, the "License"). You may not use this file
+ * except in compliance with the License. You can obtain a copy
+ * of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ * License for the specific language governing permissions and
+ * limitations under the License. When distributing the software,
+ * include this License Header Notice in each file and include
+ * the License file at /legal/license.txt. If applicable, add the
+ * following below the License Header, with the fields enclosed
+ * by brackets [] replaced by your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ *
+ * If you wish your version of this file to be governed by
+ * only the CDDL or only the GPL Version 2, indicate your
+ * decision by adding "[Contributor] elects to include this
+ * software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice
+ * of license, a recipient has the option to distribute your
+ * version of this file under either the CDDL, the GPL Version
+ * 2 or to extend the choice of license to its licensees as
+ * provided above. However, if you add GPL Version 2 code and
+ * therefore, elected the GPL Version 2 license, then the
+ * option applies only if the new code is made subject to such
+ * option by the copyright holder.
+ */
+
+package com.sun.apoc.templates.parsing;
+import com.sun.apoc.manager.ChooserHelper;
+import com.sun.web.ui.common.CCDebug;
+import com.sun.apoc.manager.ProfileWindowFramesetViewBean;
+import com.sun.apoc.manager.settings.PolicyMgrHelper;
+import com.sun.apoc.manager.settings.SheetModel;
+import com.sun.apoc.spi.SPIException;
+import com.sun.apoc.spi.cfgtree.property.Property;
+import java.util.ArrayList;
+import java.util.regex.*;
+public class TemplateXMLHandlerModel {
+
+ public static final String CONDITION_TYPE = "condition" ;
+ public static final String COMMAND_TYPE = "command" ;
+
+ private PolicyMgrHelper m_policyMgrHelper = null;
+ private SheetModel m_sheetModel = null;
+
+ private static final String ENABLED_STRING = ".enabled" ;
+ private static final String VALUE_STRING = ".value" ;
+ private static final String DISABLED_STRING = ".disabled" ;
+
+
+ public TemplateXMLHandlerModel(SheetModel sheetModel) {
+ m_sheetModel = sheetModel;
+ m_policyMgrHelper = ProfileWindowFramesetViewBean.getProfileHelper();
+ }
+
+ public String getJavaScript(String str, String type) {
+
+ if (type.equals(CONDITION_TYPE)) {
+ // XSLT operators used in the templates must be substituted in a condition statement
+ // for the appropriate JavaScript operators
+ str = replaceOperators(str) ;
+ }
+ String processedString = processExpression(str, VALUE_STRING ) ;
+ processedString = processExpression(processedString, ENABLED_STRING) ;
+ return processedString ;
+ }
+
+ protected String processExpression(String str, String token) {
+ String processedString = str ;
+ // Tokenize the string and identify the components
+ String[] tokenizedString = str.split(token) ;
+ for(int i = 0; i < tokenizedString.length - 1; i++) {
+ String propString = extractProperty(tokenizedString[i]) ;
+ String opString = extractOperator(tokenizedString[i+1]) ;
+ // This tokenized string starts with either the opString or whitepsace followed
+ // by the opString. So split the string on the opString with
+ // a limit of 2 (i.e split it once in case the valueString contains
+ // the opString for some reason) and take the second element
+ String[] tokenizedSubString = tokenizedString[i+1].split(opString, 2) ;
+ String valueString = extractValue(tokenizedSubString[1]) ;
+
+ // Convert the property name to its html name and replace
+ // all instances of this name in the string
+ String replacementString = generateJavaScript(propString, opString, valueString, token) ;
+ if (!(replacementString.equals(""))) {
+ processedString = processedString.replaceAll("\\Q"
+ + propString
+ + token
+ + "\\E"
+ + "\\s*"
+ + opString
+ + "\\s*"
+ + "\\Q"
+ + valueString
+ + "\\E",
+ replacementString) ;
+ }
+ }
+ return processedString ;
+ }
+
+ protected String replaceOperators(String str) {
+ // Note that the order of the operators in the below arrays
+ // is important since "=" must be replaced before "!=" in the
+ // replacement loop.
+ String[] xsltOperators = {"\\sand\\s", "\\sor\\s", "=", "!=", "not\\("} ;
+ String[] jsOperators = {" && ", " || ", "==", "!", "!("} ;
+
+ // Must be careful not to replace operators that appear
+ // within single quotes - i.e. a value string
+ String[] origStrArr = str.split("'") ;
+ String[] strArr = str.split("'") ;
+
+ for(int i = 0; i < strArr.length; i++) {
+ for(int j = 0; j < xsltOperators.length; j++) {
+ Pattern pattern = Pattern.compile(xsltOperators[j]);
+ Matcher matcher = pattern.matcher(strArr[i]);
+ strArr[i] = matcher.replaceAll(jsOperators[j]) ;
+ }
+ str = str.replaceAll("\\Q" + origStrArr[i] + "\\E", strArr[i]) ;
+ // Since the string is split on single quotes then odd
+ // numbered elements of strArr must be values within quotes
+ // and operators inside them should not be replaced
+ i++ ;
+ }
+ return str ;
+ }
+
+ protected String extractProperty(String str) {
+ String[] strArray = str.split("[^a-zA-Z0-9_.:-]") ;
+ str = strArray[(strArray.length -1)] ;
+ return str ;
+ }
+
+ protected String extractOperator(String str) {
+ String[] operatorsArray2 = {"==", "!=", "<=", ">=", "()", "&&", "||"} ;
+ String[] operatorsArray1 = {"=", "<", ">", "!"} ;
+ String op = str ;
+ int index = -1 ;
+
+ // Check for 2 character operators
+ for(int i = 0; i < operatorsArray2.length; i++) {
+ index = str.indexOf(operatorsArray2[i]) ;
+ if (index != -1) {
+ op = operatorsArray2[i] ;
+ break ;
+ }
+ }
+ //Check for 1 character operators
+ if (index == -1) {
+ for(int i = 0; i < operatorsArray1.length; i++) {
+ index = str.indexOf(operatorsArray1[i]) ;
+ if (index != -1) {
+ op = operatorsArray1[i] ;
+ break ;
+ }
+ }
+ }
+ return op ;
+ }
+
+ protected String extractValue(String str) {
+ // Remove leading whitespace
+ String[] strArray = str.split("\\s") ;
+ int index = 0 ;
+ for(int i=0; strArray[i].length() == 0; i++) {
+ index = i+1 ;
+ }
+ str = str.substring(index) ;
+
+ // Allow any chars within quotes
+ if (str.charAt(0) =='\'') {
+ str = str.substring(0, str.indexOf('\'', 1) + 1) ;
+ } else {
+ // Leading whitespace is removed and quotes are not present
+ // therefore the first character of the value
+ // string should be at index 0. Therefore split on the not-allowed
+ // characters and return the first element in the array
+ try{
+ strArray = str.split("[^a-zA-Z0-9_.:-]") ;
+ str = strArray[0] ;
+ } catch (PatternSyntaxException pse) {
+ CCDebug.trace3(pse.getMessage()) ;
+ }
+ }
+
+ return str ;
+
+ }
+
+ private String generateJavaScript(String propName, String operator, String value, String qualifier) {
+ String start = "document.Form['PolicySettingsContent.PolicyTemplateContent." ;
+ String middle = ".PoliciesSectionTiledView[" ;
+ String end = "].PropertyValue']" ;
+ TemplatePage page = m_sheetModel.getPage() ;
+ String javascript = "" ;
+
+ // Find the index of the required property in the section and create the html name
+ // which it will have
+ TemplateSection section = null ;
+ TemplateProperty prop = null ;
+ int index = 0;
+ boolean sectionFound = false ;
+ for(int i = 0; (i < page.getSections().size()) && (!sectionFound); i++) {
+ for(int j = 0; (page.getSection(i).getProperties() != null) && (j < page.getSection(i).getProperties().size()); j++) {
+ if (page.getSection(i).getProperty(j).getDefaultName().equals(propName)) {
+ section = page.getSection(i) ;
+ index = j ;
+ prop = page.getSection(i).getProperty(j) ;
+ sectionFound = true ;
+ break ;
+ }
+ }
+ }
+
+ String indexString = (new Integer(index)).toString() ;
+
+
+
+ // Remove quotes from the valueString since only textfields and stringLists require them
+ // Add quotes for these visualTypes when needed
+ if ((value.charAt(0) == '\'') && (value.charAt(value.length() - 1)=='\'')) {
+ value = value.substring(1, value.length()-1) ;
+ }
+
+ // Convert the enabled string to .disabled and reverse logical
+ // operators for use in javascript funcs
+ if (qualifier.equals(ENABLED_STRING)) {
+ qualifier = DISABLED_STRING ;
+ if (operator.equals("!=")) {
+ operator = "==" ;
+ }
+ else if (operator.equals("==")) {
+ operator = "!=" ;
+ }
+ else {
+ operator = "=!" ;
+ }
+ }
+
+
+ if (prop != null) {
+ Property node = null ;
+ try {
+ node = m_policyMgrHelper.getProperty(prop.getDataPath());
+ } catch (SPIException ex) {
+ CCDebug.trace3("Error getting property node for handler property");
+ }
+
+
+ // Deal with read-only nodes
+ // If the node is read-only then the *.PropertyValue element is not present.
+ // So need to check if the stored value satisfies the condition and return "true"
+ // if that's the case, otherwise "false" can be returned otherwise.
+ if ((node != null) && (node.isReadOnly())) {
+ javascript = generateJSForReadOnly(prop, propName, operator, value, qualifier,
+ start, section.getDefaultName(), middle,
+ indexString, end, node);
+
+ // Deal with non-read-only nodes.
+ // Different types visualTypes require different handling
+ } else if (((node != null) && (!(node.isReadOnly()))) || (node == null)) {
+ if (prop.getVisualType().equals(TemplateProperty.CHECKBOX)){
+ javascript = generateJSForCheckbox(prop, propName, operator, value, qualifier,
+ start, section.getDefaultName(), middle,
+ indexString, end);
+
+ } else if (prop.getVisualType().equals(TemplateProperty.RADIOBUTTONS)) {
+ javascript = generateJSForRadioButtons(prop, propName, operator, value, qualifier,
+ start, section.getDefaultName(), middle,
+ indexString, end);
+
+ } else if (prop.getVisualType().equals(TemplateProperty.COMBOBOX)) {
+ javascript = generateJSForCombobox(prop, propName, operator, value, qualifier,
+ start, section.getDefaultName(), middle,
+ indexString, end);
+
+ } else if (prop.getVisualType().equals(TemplateProperty.STRING_LIST)) {
+ javascript = generateJSForStringList(prop, propName, operator, value, qualifier,
+ start, section.getDefaultName(), middle,
+ indexString, end);
+
+ } else if (prop.getVisualType().equals(TemplateProperty.COLOR_CHOOSER)) {
+ javascript = generateJSForColorChooser(prop, propName, operator, value, qualifier,
+ start, section.getDefaultName(), middle,
+ indexString, end);
+
+ } else if (prop.getVisualType().equals(TemplateProperty.CHOOSER)) {
+ javascript = generateJSForChooser(prop, propName, operator, value, qualifier,
+ start, section.getDefaultName(), middle,
+ indexString, end);
+
+ } else if ((prop.getVisualType().equals(TemplateProperty.TEXTFIELD))
+ || (prop.getVisualType().equals(TemplateProperty.TEXTFIELD))) {
+ javascript = generateJSForTextfield(prop, propName, operator, value, qualifier,
+ start, section.getDefaultName(), middle,
+ indexString, end);
+ }
+
+ if (javascript.equals("")) {
+ javascript = generateJSGeneric(prop, propName, operator, value, qualifier,
+ start, section.getDefaultName(), middle,
+ indexString, end);
+ }
+ }
+ }
+ return javascript ;
+ }
+
+ private String generateJSForReadOnly(TemplateProperty prop, String propName, String operator,
+ String value, String qualifier, String start, String section,
+ String middle, String indexString, String end, Property node) {
+
+ String js = "" ;
+ if (qualifier.equals(VALUE_STRING)) {
+ String storedValue = null ;
+ try {
+ storedValue = node.getValue();
+ } catch (SPIException spie) {
+ CCDebug.trace3(spie.toString());
+ }
+ if (storedValue == null) {
+ storedValue = prop.getDefaultValue() ;
+ }
+
+ if ((operator.equals("==")) && (storedValue.equals(value))) {
+ js = "true" ;
+ } else if ((operator.equals("!=")) && !(storedValue.equals(value))) {
+ js = "true" ;
+ } else {
+ js = "false" ;
+ }
+
+ } else if (qualifier.equals(DISABLED_STRING)) {
+ // A string-list must be specially handled because a read-only string-list
+ // is displayed as a scrollable list just without the add/remove capability.
+ // So disabling a string list requires setting it to .disabled which greys it
+ // out and disallows scrolling
+ if (prop.getVisualType().equals(TemplateProperty.STRING_LIST)) {
+ StringBuffer b = new StringBuffer();
+ start = "document.Form['ListPolicySettingsContent.PolicyTemplateContent." ;
+ b.append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append(end)
+ .append(qualifier)
+ .append(operator)
+ .append(value) ;
+ js = b.toString() ;
+ } else {
+ js = "false";
+ }
+ }
+ return js ;
+ }
+
+ private String generateJSForCheckbox(TemplateProperty prop, String propName, String operator,
+ String value, String qualifier, String start, String section,
+ String middle, String indexString, String end) {
+ String js = "" ;
+ if (qualifier.equals(VALUE_STRING)) {
+ /* qualifier = ".checked" ;
+ StringBuffer b = new StringBuffer();
+ b.append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append(end)
+ .append(qualifier)
+ .append(operator)
+ .append(value) ;
+ js = b.toString() ;*/
+ String selectedIndex = "1";
+ if (value.equals("false")) {
+ selectedIndex = "2";
+ }
+ StringBuffer b = new StringBuffer();
+ b.append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append(end)
+ .append(".options[")
+ .append(selectedIndex)
+ .append("]")
+ .append(".selected")
+ .append(operator)
+ .append("true") ;
+ js = b.toString() ;
+ }
+ return js ;
+ }
+
+ private String generateJSForRadioButtons(TemplateProperty prop, String propName, String operator,
+ String value, String qualifier, String start, String section,
+ String middle, String indexString, String end) {
+
+ String js = "" ;
+ if (qualifier.equals(VALUE_STRING)) {
+ qualifier = ".checked" ;
+ String selectedIndex = null;
+ if (prop.getConstraints() != null) {
+ for(int i=0; i < prop.getConstraints().size(); i++) {
+ TemplatePropertyConstraint constraint =
+ (TemplatePropertyConstraint) prop.getConstraints().elementAt(i);
+ String constraintValue = constraint.getValue();
+ if (value.equals(constraintValue)) {
+ // + 1 below because --Not Set-- is always the first radioButton
+ selectedIndex = (new Integer(i+1)).toString() ;
+ break ;
+ }
+ }
+ }
+ StringBuffer b = new StringBuffer();
+ StringBuffer radio = new StringBuffer() ;
+ radio.append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append(end) ;
+ b.append(radio.toString())
+ .append("[")
+ .append(selectedIndex)
+ .append("]")
+ .append(qualifier)
+ .append(operator)
+ .append("true") ;
+ js = b.toString() ;
+
+ } else if (qualifier.equals(DISABLED_STRING)) {
+ StringBuffer b = new StringBuffer();
+ StringBuffer radio = new StringBuffer() ;
+ radio.append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append(end) ;
+ for(int i = 0; i < prop.getConstraints().size(); i++) { //prop.getConstraints().size() -1
+ b.append(radio.toString())
+ .append("[")
+ .append((new Integer(i).toString()))
+ .append("]")
+ .append(qualifier)
+ .append("=") ;
+ }
+ b.append(radio.toString())
+ .append("[")
+ .append(new Integer((prop.getConstraints().size() )).toString()) //prop.getConstraints().size()-1
+ .append("]")
+ .append(qualifier)
+ .append(operator)
+ .append(value) ;
+ js = b.toString() ;
+ }
+
+ return js ;
+ }
+
+ private String generateJSForCombobox(TemplateProperty prop, String propName, String operator,
+ String value, String qualifier, String start, String section,
+ String middle, String indexString, String end) {
+
+ String js = "" ;
+ if (qualifier.equals(VALUE_STRING)) {
+ String selectedIndex = null;
+ if (prop.getConstraints() != null) {
+ for(int i=0; i < prop.getConstraints().size(); i++) {
+ TemplatePropertyConstraint constraint =
+ (TemplatePropertyConstraint) prop.getConstraints().elementAt(i);
+ String constraintValue = constraint.getValue();
+ if (value.equals(constraintValue)) {
+ // + 1 below because --Not Set-- is always the first radioButton
+ selectedIndex = (new Integer(i + 1)).toString() ;
+ break ;
+ }
+ }
+ }
+ StringBuffer b = new StringBuffer();
+ b.append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append(end)
+ .append(".options[")
+ .append(selectedIndex)
+ .append("].selected")
+ .append(operator)
+ .append("true") ;
+ js = b.toString() ;
+ }
+ return js ;
+ }
+
+ private String generateJSForStringList(TemplateProperty prop, String propName, String operator,
+ String value, String qualifier, String start, String section,
+ String middle, String indexString, String end) {
+
+
+ String js = "" ;
+ if (qualifier.equals(VALUE_STRING)) {
+ start = "document.Form['PolicySettingsContent.PolicyTemplateContent." ;
+ StringBuffer b = new StringBuffer();
+ if (operator.equals("=")) {
+ b.append("document.Form['ListPolicySettingsContent.PolicyTemplateContent.")
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append(end)
+ .append(".options.length = 0; ")
+ .append("displayListItems('PolicySettingsContent.PolicyTemplateContent.")
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append("].PropertyValue', '")
+ .append(value)
+ .append("')") ;
+
+ } else {
+ b.append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append(end)
+ .append(qualifier)
+ .append(operator)
+ .append(value) ;
+ }
+ js = b.toString() ;
+
+ } else if (qualifier.equals(DISABLED_STRING)) {
+ start = "document.Form['ListPolicySettingsContent.PolicyTemplateContent." ;
+ StringBuffer b = new StringBuffer();
+ b.append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append(end)
+ .append(qualifier)
+ .append(operator)
+ .append(value)
+ .append("; document.getElementById('PolicySettingsContent.PolicyTemplateContent.")
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append("].PropertyValue.AddButton')" )
+ .append(qualifier)
+ .append(operator)
+ .append(value)
+ .append("; document.getElementById('PolicySettingsContent.PolicyTemplateContent.")
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append("].PropertyValue.RemoveButton')" )
+ .append(qualifier)
+ .append(operator)
+ .append(value) ;
+ js = b.toString() ;
+ }
+ return js ;
+ }
+
+ private String generateJSForColorChooser(TemplateProperty prop, String propName, String operator,
+ String value, String qualifier, String start, String section,
+ String middle, String indexString, String end) {
+
+ String js = "" ;
+ if (qualifier.equals(DISABLED_STRING)) {
+ StringBuffer b = new StringBuffer();
+ b.append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append(end)
+ .append(qualifier)
+ .append("=")
+ .append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append("].ColorNameDropDown']")
+ .append(qualifier)
+ .append("=")
+ .append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append("].EditButton']")
+ .append(qualifier)
+ .append(operator)
+ .append(value) ;
+ js = b.toString() ;
+ }
+ return js ;
+ }
+
+ private String generateJSForChooser(TemplateProperty prop, String propName, String operator,
+ String value, String qualifier, String start, String section,
+ String middle, String indexString, String end) {
+
+
+ String js = "" ;
+ if (qualifier.equals(VALUE_STRING)) {
+ String extendsChooser = prop.getExtendsChooser() ;
+ String chooserDataPath = null ;
+ String chooserPath = null ;
+ TemplateProperty linkedProp = null ;
+ ChooserHelper helper = new ChooserHelper(prop.getDataPath());
+ ArrayList constraintsList = helper.getElementsList();
+
+ String selectedIndex = null;
+ for(int i=0; i < constraintsList.size(); i++) {
+ String constraintValue = (String) constraintsList.get(i);
+ if (value.equals(constraintValue)) {
+ // + 1 below because --Not Set-- is always the first radioButton
+ selectedIndex = (new Integer(i + 1)).toString() ;
+ break ;
+ }
+ }
+
+ StringBuffer b = new StringBuffer();
+ b.append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append(end)
+ .append(".options[")
+ .append(selectedIndex)
+ .append("].selected")
+ .append(operator)
+ .append("true") ;
+ js = b.toString() ;
+
+ } else if (qualifier.equals(DISABLED_STRING)) {
+ StringBuffer b = new StringBuffer();
+ b.append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append(end)
+ .append(qualifier)
+ .append("=")
+ .append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append("].EditButton']")
+ .append(qualifier)
+ .append(operator)
+ .append(value) ;
+ js = b.toString() ;
+ }
+ return js ;
+ }
+
+
+ private String generateJSForTextfield(TemplateProperty prop, String propName, String operator,
+ String value, String qualifier, String start, String section,
+ String middle, String indexString, String end) {
+
+ String js = "" ;
+ // Add quotes around the value because we are dealing with a textfield
+ if (qualifier.equals(VALUE_STRING)) {
+ StringBuffer b = new StringBuffer();
+ b.append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append(end)
+ .append(qualifier)
+ .append(operator)
+ .append("'")
+ .append(value)
+ .append("'") ;
+ js = b.toString() ;
+ }
+ return js ;
+ }
+
+
+
+
+ private String generateJSGeneric(TemplateProperty prop, String propName, String operator,
+ String value, String qualifier, String start, String section,
+ String middle, String indexString, String end) {
+
+ String js = "" ;
+ StringBuffer b = new StringBuffer();
+ b.append(start)
+ .append(section)
+ .append(middle)
+ .append(indexString)
+ .append(end)
+ .append(qualifier)
+ .append(operator)
+ .append(value) ;
+ js = b.toString() ;
+ return js ;
+ }
+}
diff --git a/webconsole/Makefile.am b/webconsole/Makefile.am
new file mode 100644
index 0000000..a340c1b
--- /dev/null
+++ b/webconsole/Makefile.am
@@ -0,0 +1,69 @@
+SUBDIRS = html jsp
+
+wcdir=$(APOC_WCROOT)
+wc_DATA = \
+ apoc.reg
+
+wcdtddir=${wcdir}/dtd
+wcdtd_DATA = \
+ dtd/policytemplate.dtd
+
+wcwebinfdir=${wcdir}/WEB-INF
+wcwebinf_DATA = \
+ WEB-INF/web.xml \
+ WEB-INF/policymgr.cfg \
+ WEB-INF/apoc.tld \
+ WEB-INF/app.xml
+
+wcjsdir=${wcdir}/js
+wcjs_DATA = \
+ js/ProfileWindow.js \
+ js/EditColor.js \
+ js/MainWindow.js
+
+wcdeploydir=${wcdir}/deploy
+wcdeploy_DATA = \
+ deploy/apoc-ad.ldf \
+ deploy/apoc.schema
+
+wcimagesdir=${wcdir}/images
+wcimages_DATA = \
+ images/apocname.png \
+ images/increase.png \
+ images/orgAssigned.png \
+ images/arrow.gif \
+ images/domainAssigned.png \
+ images/org.png \
+ images/user.png \
+ images/popuptitle.png \
+ images/console_logo.gif \
+ images/icon_set_above.png \
+ images/apoctitle.gif \
+ images/domain.png \
+ images/colors.png \
+ images/appIcon.gif \
+ images/icon_protected_above.png \
+ images/hostAssigned.png \
+ images/icon_set_here.png \
+ images/search.gif \
+ images/decrease.png \
+ images/icon_empty.png \
+ images/userAssigned.png \
+ images/x.png \
+ images/roleAssigned.png \
+ images/cursor.gif \
+ images/popuptitle.gif \
+ images/server.gif \
+ images/host.png \
+ images/icon_protected_here.png \
+ images/apocname.gif \
+ images/role.png \
+ images/increase_decrease.png \
+ images/cross.gif
+
+wccomsunwebdir=${wcdir}/com_sun_web_ui/images
+wccomsunweb_DATA = \
+ com_sun_web_ui/images/PrimaryProductName.png \
+ com_sun_web_ui/images/SecondaryProductName.png \
+ com_sun_web_ui/images/VersionProductName.png \
+ com_sun_web_ui/images/ProductName.properties
diff --git a/webconsole/WEB-INF/apoc.tld b/webconsole/WEB-INF/apoc.tld
new file mode 100644
index 0000000..2c92be9
--- /dev/null
+++ b/webconsole/WEB-INF/apoc.tld
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
+ "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+
+
+<taglib>
+ <!-- ===================== Tag Library Info ====================== -->
+ <tlibversion>1.0</tlibversion>
+ <jspversion>1.0</jspversion>
+ <shortname>APOC Manager taglib</shortname>
+ <info>Advanced Policy-based Configuration Manager Tags Library</info>
+
+ <!-- ===================== PolicyTemplate Tag ====================== -->
+ <tag>
+ <name>template</name>
+ <tagclass>com.sun.apoc.manager.settings.SheetTag</tagclass>
+ <bodycontent>EMPTY</bodycontent>
+ <attribute>
+ <name>name</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+
+ <!-- ===================== JumpLinks Tag ====================== -->
+ <tag>
+ <name>JumpLinks</name>
+ <tagclass>com.sun.apoc.manager.settings.JumpLinksTag</tagclass>
+ <bodycontent>EMPTY</bodycontent>
+ <attribute>
+ <name>name</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+ <!-- ===================== SpinProperty Tag ====================== -->
+ <tag>
+ <name>spinProperty</name>
+ <tagclass>com.sun.apoc.manager.settings.SpinPropertyTag</tagclass>
+ <bodycontent>EMPTY</bodycontent>
+ <attribute>
+ <name>name</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>defaultValue</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>upTitle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>downTitle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>upAction</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>downAction</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>size</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>tabIndex</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>onChange</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+</taglib>
+
diff --git a/webconsole/WEB-INF/app.xml b/webconsole/WEB-INF/app.xml
new file mode 100644
index 0000000..142ca6c
--- /dev/null
+++ b/webconsole/WEB-INF/app.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE registrationInfo SYSTEM "Registration.dtd">
+
+<registrationInfo version="3.0">
+
+ <!--Root element containing description of application elements-->
+ <managementApp version="2.0"
+ category="desktop applications"
+ package="com.sun.apoc.manager"
+ bundle="com.sun.apoc.manager.resource.apoc_manager_en"
+ bundleJar="apoc_manager">
+
+ <!--Localizable plug-in name-->
+ <name localizable="true">APOC.masthead.altTextVer</name>
+
+ <!--Internal plug-in name-->
+ <pluginName>com.sun.apoc.manager</pluginName>
+
+ <!--The application's icon-->
+ <icon localizable="false">/apoc/images/appIcon.gif</icon>
+
+ <!--Brief description of this management application-->
+ <shortDescription localizable="true"></shortDescription>
+
+ <!--Arbitrary length description of this management application-->
+ <description localizable="true"></description>
+
+ <!--Primary product name - used in Primary Masthead component-->
+ <primaryProductName>Sun Desktop Manager 1.0.1</primaryProductName>
+
+ <!--Secondary product name - used in Secondary Masthead component-->
+ <secondaryProductName>Desktop Manager</secondaryProductName>
+
+ <!--Version product name - used in Version component-->
+ <versionProductName>Sun Desktop Manager 1.0.1</versionProductName>
+
+ <!--Description of common masthead properties-->
+ <!--The following attributes are deprecated at version 2.1: showClose-->
+ <masthead bundle="com.sun.apoc.manager.resource.apoc_manager_en"
+ bundleJar="apoc_manager"
+ logoAltText="APOC.masthead.altTextVer"
+ logoBorder="0"
+ logoHeight="40"
+ logoWidth="242"
+ showUserRole="true"
+ showServer="true"
+ showClose="true"
+ showHelp="true" />
+
+ <help bundle="com.sun.apoc.manager.resource.apoc_manager_en"
+ bundleJar="apoc_manager"
+ helpType="help2"
+ helpFileName="gbgca.html"
+ versionFileName="versionInfo.shtml"
+ status="APOC.help.helpTooltip"
+ helpTooltip="APOC.help.helpTooltip"
+ windowTitle="APOC.help.windowTitle"
+ helpLogoWidth="169"
+ helpLogoHeight="20"/>
+
+ </managementApp>
+
+ <!--Tags used to determine a user's access to this app. Leave empty to
+ indicate no auths required-->
+ <authTypes>
+ <authType name="">
+ <classType></classType>
+ <permissionParam name=""></permissionParam>
+ </authType>
+ </authTypes>
+
+ <!--Value of the URL to be used in invoking this app-->
+ <urlDesc>
+ <url>/apoc/manager/Welcome?ClosePopups=true</url>
+ </urlDesc>
+
+</registrationInfo>
diff --git a/webconsole/WEB-INF/policymgr.cfg b/webconsole/WEB-INF/policymgr.cfg
new file mode 100644
index 0000000..5e747b3
--- /dev/null
+++ b/webconsole/WEB-INF/policymgr.cfg
@@ -0,0 +1,4 @@
+Server=
+Port=
+BaseDn=
+DataStoreType=
diff --git a/webconsole/WEB-INF/web.xml b/webconsole/WEB-INF/web.xml
new file mode 100644
index 0000000..136dc46
--- /dev/null
+++ b/webconsole/WEB-INF/web.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+
+ <!-- Add one context param like this per module -->
+ <context-param>
+ <param-name>jato:com.sun.apoc.manager.*:moduleURL</param-name>
+ <param-value>../manager</param-value>
+ </context-param>
+
+ <!-- Filter Configuration -->
+ <!-- CONSOLE FILTER CONFIGURATION -->
+ <!-- All management web applications must define this filter. -->
+ <!-- Add ignore path parameter values for URI's for which the -->
+ <!-- filter should pass through without making security checks. -->
+ <!-- Paths can end with the "*" wildcard indicator. -->
+ <filter>
+ <filter-name>AppSessionManagerFilter</filter-name>
+ <filter-class>
+ com.sun.management.services.session.AppSessionManagerFilter
+ </filter-class>
+
+ <!-- ADD URI PATHS TO IGNORE WHEN USING THE SECURE PORT -->
+ <init-param>
+ <param-name>ignore-paths-https</param-name>
+ <param-value>
+ /help/*
+ /html/*
+ /version/*
+ </param-value>
+ </init-param>
+
+ <!-- ADD URI PATHS TO IGNORE WHEN USING THE NON-SECURE PORT -->
+ <init-param>
+ <param-name>ignore-paths-http</param-name>
+ <param-value>
+ /help2/*
+ /html/*
+ /images/*
+ </param-value>
+ </init-param>
+
+ </filter>
+
+ <filter-mapping>
+ <filter-name>AppSessionManagerFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <!-- listener -->
+ <listener>
+ <listener-class>com.sun.apoc.manager.ManagerServlet</listener-class>
+ </listener>
+
+ <!-- Add one servlet entry like this per module -->
+ <servlet>
+ <servlet-name>Registrar</servlet-name>
+ <servlet-class>com.sun.management.services.registration.servlet.WebConsoleRegistrarServlet
+ </servlet-class>
+ <load-on-startup>3</load-on-startup>
+ </servlet>
+ <servlet>
+ <servlet-name>ManagerServlet</servlet-name>
+ <servlet-class>com.sun.apoc.manager.ManagerServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>HelpServlet</servlet-name>
+ <servlet-class>com.sun.web.ui.servlet.help.HelpServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>Help2Servlet</servlet-name>
+ <servlet-class>com.sun.web.ui.servlet.help2.Help2Servlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>VersionServlet</servlet-name>
+ <servlet-class>com.sun.web.ui.servlet.version.VersionServlet</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>wizardWindowServlet</servlet-name>
+ <servlet-class>
+ com.sun.apoc.manager.contexts.AddContextWizardServlet
+ </servlet-class>
+ </servlet>
+
+ <!-- The mapping for the registration servlet -->
+ <servlet-mapping>
+ <servlet-name>Registrar</servlet-name>
+ <url-pattern>/Registrar</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>ManagerServlet</servlet-name>
+ <url-pattern>/manager/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>HelpServlet</servlet-name>
+ <url-pattern>/cchelp/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>Help2Servlet</servlet-name>
+ <url-pattern>/cchelp2/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>VersionServlet</servlet-name>
+ <url-pattern>/ccversion/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>wizardWindowServlet</servlet-name>
+ <url-pattern>/wizard/*</url-pattern>
+ </servlet-mapping>
+
+ <!-- The taglibs are only specified once -->
+ <taglib>
+ <taglib-uri>/cc.tld</taglib-uri>
+ <taglib-location>/WEB-INF/tld/com_sun_web_ui/cc.tld</taglib-location>
+ </taglib>
+ <taglib>
+ <taglib-uri>/jato.tld</taglib-uri>
+ <taglib-location>/WEB-INF/tld/com_iplanet_jato/jato.tld</taglib-location>
+ </taglib>
+</web-app>
diff --git a/webconsole/apoc.reg b/webconsole/apoc.reg
new file mode 100644
index 0000000..46e37ca
--- /dev/null
+++ b/webconsole/apoc.reg
@@ -0,0 +1,4 @@
+## webapp registration notification
+context=apoc
+type=webapp
+location=/usr/share/webconsole/apoc
diff --git a/webconsole/com_sun_web_ui/images/PrimaryProductName.png b/webconsole/com_sun_web_ui/images/PrimaryProductName.png
new file mode 100644
index 0000000..b5475c0
--- /dev/null
+++ b/webconsole/com_sun_web_ui/images/PrimaryProductName.png
Binary files differ
diff --git a/webconsole/com_sun_web_ui/images/ProductName.properties b/webconsole/com_sun_web_ui/images/ProductName.properties
new file mode 100644
index 0000000..77a31bd
--- /dev/null
+++ b/webconsole/com_sun_web_ui/images/ProductName.properties
@@ -0,0 +1,11 @@
+#Product name image properties
+#Tue Apr 24 10:19:33 BST 2007
+primary.width=242
+version.width=236
+secondary.width=155
+primary.uri=/com_sun_web_ui/images/PrimaryProductName.png
+primary.height=40
+version.height=40
+secondary.height=40
+secondary.uri=/com_sun_web_ui/images/SecondaryProductName.png
+version.uri=/com_sun_web_ui/images/VersionProductName.png
diff --git a/webconsole/com_sun_web_ui/images/SecondaryProductName.png b/webconsole/com_sun_web_ui/images/SecondaryProductName.png
new file mode 100644
index 0000000..a2e5dea
--- /dev/null
+++ b/webconsole/com_sun_web_ui/images/SecondaryProductName.png
Binary files differ
diff --git a/webconsole/com_sun_web_ui/images/VersionProductName.png b/webconsole/com_sun_web_ui/images/VersionProductName.png
new file mode 100644
index 0000000..9de9b34
--- /dev/null
+++ b/webconsole/com_sun_web_ui/images/VersionProductName.png
Binary files differ
diff --git a/webconsole/deploy/apoc-ad.ldf b/webconsole/deploy/apoc-ad.ldf
new file mode 100644
index 0000000..0934e6f
--- /dev/null
+++ b/webconsole/deploy/apoc-ad.ldf
@@ -0,0 +1,129 @@
+dn: CN=sunkeyvalue,CN=Schema,CN=Configuration,DC=soqa,DC=de
+changetype: add
+attributeID: 1.3.6.1.4.1.42.2.27.9.1.83
+attributeSyntax: 2.5.5.12
+isSingleValued: FALSE
+lDAPDisplayName: sunkeyvalue
+objectClass: attributeSchema
+oMSyntax: 64
+
+dn: CN=sunxmlkeyvalue,CN=Schema,CN=Configuration,DC=soqa,DC=de
+changetype: add
+attributeID: 1.3.6.1.4.1.42.2.27.9.1.84
+attributeSyntax: 2.5.5.12
+isSingleValued: FALSE
+lDAPDisplayName: sunxmlkeyvalue
+objectClass: attributeSchema
+oMSyntax: 64
+
+dn: CN=sunsmspriority,CN=Schema,CN=Configuration,DC=soqa,DC=de
+changetype: add
+attributeID: 1.3.6.1.4.1.42.2.27.9.1.81
+attributeSyntax: 2.5.5.12
+isSingleValued: TRUE
+lDAPDisplayName: sunsmspriority
+objectClass: attributeSchema
+oMSyntax: 64
+
+dn: CN=sunserviceschema,CN=Schema,CN=Configuration,DC=soqa,DC=de
+changetype: add
+attributeID: 1.3.6.1.4.1.42.2.27.9.1.78
+attributeSyntax: 2.5.5.12
+isSingleValued: TRUE
+lDAPDisplayName: sunserviceschema
+objectClass: attributeSchema
+oMSyntax: 64
+
+dn: CN=sunpluginschema,CN=Schema,CN=Configuration,DC=soqa,DC=de
+changetype: add
+attributeID: 1.3.6.1.4.1.42.2.27.9.1.82
+attributeSyntax: 2.5.5.12
+isSingleValued: FALSE
+lDAPDisplayName: sunpluginschema
+objectClass: attributeSchema
+oMSyntax: 64
+
+dn: CN=sunserviceid,CN=Schema,CN=Configuration,DC=soqa,DC=de
+changetype: add
+attributeID: 1.3.6.1.4.1.42.2.27.9.1.79
+attributeSyntax: 2.5.5.12
+isSingleValued: TRUE
+lDAPDisplayName: sunserviceid
+objectClass: attributeSchema
+oMSyntax: 64
+
+dn:
+changetype: modify
+add: schemaUpdateNow
+schemaUpdateNow: 1
+-
+
+dn: CN=sunservice,CN=Schema,CN=Configuration,DC=soqa,DC=de
+changetype: add
+governsID: 1.3.6.1.4.1.42.2.27.9.2.25
+lDAPDisplayName: sunservice
+mustcontain: ou
+maycontain: sunserviceschema
+maycontain: sunkeyvalue
+maycontain: sunxmlkeyvalue
+maycontain: sunpluginschema
+maycontain: description
+objectClass: classSchema
+objectClassCategory: 1
+possSuperiors: organizationalUnit
+subClassOf: top
+rDNAttID: 2.5.4.11
+defaultHidingValue: FALSE
+showInAdvancedViewOnly: FALSE
+
+dn: CN=sunservicecomponent,CN=Schema,CN=Configuration,DC=soqa,DC=de
+changetype: add
+governsID: 1.3.6.1.4.1.42.2.27.9.2.27
+lDAPDisplayName: sunservicecomponent
+mustcontain: ou
+maycontain: sunserviceid
+maycontain: sunsmspriority
+maycontain: sunkeyvalue
+maycontain: sunxmlkeyvalue
+maycontain: description
+objectClass: classSchema
+objectClassCategory: 1
+possSuperiors: organizationalUnit
+subClassOf: top
+rDNAttID: 2.5.4.11
+defaultHidingValue: FALSE
+showInAdvancedViewOnly: FALSE
+
+dn:
+changetype: modify
+add: schemaUpdateNow
+schemaUpdateNow: 1
+-
+
+dn: CN=sunservice,CN=Schema,CN=Configuration,DC=soqa,DC=de
+changetype: modify
+add: possSuperiors
+possSuperiors: sunservice
+-
+
+dn: CN=sunservicecomponent,CN=Schema,CN=Configuration,DC=soqa,DC=de
+changetype: modify
+add: possSuperiors
+possSuperiors: sunservicecomponent
+-
+
+dn: CN=Organizational-Unit,CN=Schema,CN=Configuration,DC=soqa,DC=de
+changetype: modify
+add: possSuperiors
+possSuperiors: sunservice
+possSuperiors: user
+possSuperiors: computer
+-
+
+dn:
+changetype: modify
+add: schemaUpdateNow
+schemaUpdateNow: 1
+-
+
+
diff --git a/webconsole/deploy/apoc.schema b/webconsole/deploy/apoc.schema
new file mode 100644
index 0000000..51748c2
--- /dev/null
+++ b/webconsole/deploy/apoc.schema
@@ -0,0 +1,48 @@
+attributetype ( 1.3.6.1.4.1.42.2.27.9.1.83
+ NAME 'sunkeyvalue'
+ DESC 'Attribute to store the encoded key values of the services'
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+ EQUALITY caseIgnoreIA5Match
+ )
+attributetype ( 1.3.6.1.4.1.42.2.27.9.1.84
+ NAME 'sunxmlkeyvalue'
+ DESC 'Attribute to store the key values in xml format'
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+ )
+attributetype ( 1.3.6.1.4.1.42.2.27.9.1.81
+ NAME 'sunsmspriority'
+ DESC 'To store the priority of the service with respect to its siblings'
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE
+ )
+attributetype ( 1.3.6.1.4.1.42.2.27.9.1.78
+ NAME ( 'sunserviceschema' )
+ DESC 'SMS Attribute to Store xml schema of a particular service'
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE
+ )
+attributetype ( 1.3.6.1.4.1.42.2.27.9.1.82
+ NAME ( 'sunpluginschema' )
+ DESC 'To store the plugin schema information'
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
+ )
+attributetype ( 1.3.6.1.4.1.42.2.27.9.1.79
+ NAME ( 'sunserviceid' )
+ DESC 'Attribute to store the reference to the inherited object'
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE
+ EQUALITY caseIgnoreMatch
+ )
+objectclass ( 1.3.6.1.4.1.42.2.27.9.2.25
+ NAME 'sunservice'
+ DESC 'object containing service information'
+ SUP top
+ STRUCTURAL
+ MUST ou
+ MAY ( labeledUri $ sunserviceschema $ sunkeyvalue $ sunxmlkeyvalue $ sunpluginschema $ description )
+ )
+objectclass ( 1.3.6.1.4.1.42.2.27.9.2.27
+ NAME 'sunservicecomponent'
+ DESC 'Sub-components of the service'
+ SUP top
+ STRUCTURAL
+ MUST ou
+ MAY ( sunserviceid $ sunsmspriority $ sunkeyvalue $ sunxmlkeyvalue $ description )
+ )
diff --git a/webconsole/dtd/policytemplate.dtd b/webconsole/dtd/policytemplate.dtd
new file mode 100644
index 0000000..66e9daa
--- /dev/null
+++ b/webconsole/dtd/policytemplate.dtd
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+
+
+<!ELEMENT apt:template (resImport*, category)>
+<!ATTLIST apt:template
+ xmlns:apt CDATA #FIXED "http://www.sun.com/jds/apoc/2004/template"
+ xmlns:oor CDATA #FIXED "http://openoffice.org/2001/registry"
+ xmlns:xs CDATA #FIXED "http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi CDATA #FIXED "http://www.w3.org/2001/XMLSchema-instance"
+>
+
+<!ELEMENT resImport EMPTY>
+<!ATTLIST resImport
+ apt:packagePath NMTOKEN #REQUIRED
+>
+
+<!ELEMENT category (category | page)>
+<!ATTLIST category
+ apt:name ID #REQUIRED
+ apt:scope (user | host | global) #IMPLIED
+ apt:label NMTOKEN #IMPLIED
+ apt:inlineHelp NMTOKEN #IMPLIED
+>
+
+<!ELEMENT page ((section | set)+, xmlHandler*)>
+<!ATTLIST page
+ apt:name ID #REQUIRED
+ apt:scope (user | host | global) #IMPLIED
+ apt:label NMTOKEN #IMPLIED
+ apt:inlineHelp NMTOKEN #IMPLIED
+ apt:onlineHelp CDATA #IMPLIED
+>
+
+<!ELEMENT section (property+)>
+<!ATTLIST section
+ apt:name ID #REQUIRED
+ apt:scope (user | host | global) #IMPLIED
+ apt:label NMTOKEN #IMPLIED
+>
+
+<!ELEMENT set (page)>
+<!ATTLIST set
+ apt:name ID #REQUIRED
+ apt:scope (user | host | global) #IMPLIED
+ apt:label NMTOKEN #IMPLIED
+ apt:labelPopup NMTOKEN #IMPLIED
+ apt:dataPath CDATA #REQUIRED
+ apt:elementNamePath CDATA #IMPLIED
+>
+
+<!ELEMENT property (constraints?, value*, visual?)>
+<!ATTLIST property
+ apt:name ID #REQUIRED
+ apt:scope (user | host | global) #IMPLIED
+ apt:label NMTOKEN #IMPLIED
+ apt:inlineHelp NMTOKEN #IMPLIED
+ apt:dataPath CDATA #REQUIRED
+ oor:type (xs:boolean | xs:short | xs:int | xs:long | xs:double | xs:string | xs:hexBinary | oor:any | oor:boolean-list | oor:short-list | oor:int-list | oor:long-list | oor:double-list | oor:string-list | oor:hexBinary-list) #IMPLIED
+ apt:storeDefault (true | false) #IMPLIED
+ apt:xmlHandler IDREF #IMPLIED
+>
+
+<!ELEMENT visual (checkBox | chooser)?>
+<!ATTLIST visual
+ apt:type (textField | password | textArea | radioButtons | comboBox | stringList | colorSelector | hidden) #IMPLIED
+>
+
+<!ELEMENT checkBox EMPTY>
+<!ATTLIST checkBox
+ apt:labelPost NMTOKEN #IMPLIED
+>
+
+<!ELEMENT chooser EMPTY>
+<!ATTLIST chooser
+ apt:labelPopup NMTOKEN #IMPLIED
+ apt:dataPath CDATA #IMPLIED
+ apt:extendsChooser CDATA #IMPLIED
+>
+
+<!ELEMENT value (#PCDATA)>
+<!ATTLIST value
+ xsi:nil (true | false) #IMPLIED
+ oor:separator CDATA #IMPLIED
+>
+
+<!ELEMENT constraints (enumeration*, length?, minLength?, maxLength?, minInclusive?, maxInclusive?, minExclusive?, maxExclusive?)>
+
+<!ELEMENT enumeration EMPTY>
+<!ATTLIST enumeration
+ oor:value CDATA #REQUIRED
+ apt:label NMTOKEN #IMPLIED
+>
+<!ELEMENT length EMPTY>
+<!ATTLIST length oor:value CDATA #REQUIRED
+>
+<!ELEMENT minLength EMPTY>
+<!ATTLIST minLength oor:value CDATA #REQUIRED
+>
+<!ELEMENT maxLength EMPTY>
+<!ATTLIST maxLength oor:value CDATA #REQUIRED
+>
+<!ELEMENT minInclusive EMPTY>
+<!ATTLIST minInclusive oor:value CDATA #REQUIRED
+>
+<!ELEMENT maxInclusive EMPTY>
+<!ATTLIST maxInclusive oor:value CDATA #REQUIRED
+>
+<!ELEMENT minExclusive EMPTY>
+<!ATTLIST minExclusive oor:value CDATA #REQUIRED
+>
+<!ELEMENT maxExclusive EMPTY>
+<!ATTLIST maxExclusive oor:value CDATA #REQUIRED
+>
+
+<!ELEMENT xmlHandler (event+, action+)>
+<!ATTLIST xmlHandler apt:name ID #REQUIRED>
+
+<!ELEMENT event EMPTY>
+<!ATTLIST event apt:type (onChange) #IMPLIED>
+
+<!ELEMENT action (choose|command)+>
+
+<!ELEMENT choose (when+, otherwise?)>
+
+<!ELEMENT when (command+)>
+<!ATTLIST when apt:test CDATA #REQUIRED>
+
+<!ELEMENT otherwise (command+)>
+
+<!ELEMENT command (#PCDATA)>
diff --git a/webconsole/html/Makefile.am b/webconsole/html/Makefile.am
new file mode 100644
index 0000000..6b64d4d
--- /dev/null
+++ b/webconsole/html/Makefile.am
@@ -0,0 +1,9 @@
+SUBDIRS = de en es fr ja ko zh_CN zh_TW
+
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+imagesdir = ${htmldir}/images
+images_DATA = \
+ images/help_protected_v3.png \
+ images/help_ldap_v4.png \
+ images/help_merge.gif
diff --git a/webconsole/html/de/Makefile.am b/webconsole/html/de/Makefile.am
new file mode 100644
index 0000000..d4c4558
--- /dev/null
+++ b/webconsole/html/de/Makefile.am
@@ -0,0 +1,10 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = help
+
+dedir = ${htmldir}/de
+de_DATA =helpNav.html \
+ helpToolbar.html \
+ help.html \
+ helpContent.html \ No newline at end of file
diff --git a/webconsole/html/de/help.html b/webconsole/html/de/help.html
new file mode 100644
index 0000000..3e5c6c4
--- /dev/null
+++ b/webconsole/html/de/help.html
@@ -0,0 +1,74 @@
+<html>
+ <head>
+ <title>Help - StarOffice Configuration Manager</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ </head>
+<script language="JavaScript">
+<!--
+
+var sPkgName = " "
+var sAnchorName = " "
+var sAnchorCon = " "
+var sAnchorNav = " "
+var sHelpLocale = " "
+if (window.anchor != null) {
+ sAnchorName = anchor;
+}
+if (window.top.opener.top.content.document.ContentAreaForm!=null) {
+ sAnchorName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.Anchor'].value;
+ sPkgName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.PkgName'].value;
+ sHelpLocale =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.HelpLocale'].value;
+ if (sHelpLocale=="nolocalizedhelp")
+ sHelpLocale="_en_US";
+}
+if (sAnchorName=="hoststab" || sAnchorName=="psptab" || sAnchorName=="entities" ||
+sAnchorName=="policies" || sAnchorName=="policysets" || sAnchorName=="caentities" ||
+sAnchorName=="roles" || sAnchorName=="")
+{
+ document.write('<frameset cols="30%, 70%" border="1" framespacing="0"> ');
+
+ document.write(' <frame name="navFrame"');
+ document.write(' title="Help Navigation Area"');
+ document.write(' id="nav"');
+ document.write(' src="helpNav.html">');
+
+ document.write(' <frameset rows="10%, 90%" border="1" framespacing="0">');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="contentFrame"');
+ document.write(' title="Help Content Area"');
+ document.write(' id="content"');
+ document.write(' src="helpContent.html#'+sAnchorName+'">');
+ document.write(' <\/frameset>');
+ document.write('<\/frameset>');
+
+} else {
+ // The correct package name is not available yet
+ document.write('<frameset rows="10%, 90%" border="0" framespacing="0"> ');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="templateContent"');
+ document.write(' title="Help Template"');
+ document.write(' id="temphelp"');
+ document.write(' src="../../packages/'+sPkgName+'/web/'+sAnchorName+sHelpLocale+'.html">');
+ document.write('<\/frameset>');
+}
+
+
+//-->
+
+</script>
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ </body>
+ </noframes>
+</html>
diff --git a/webconsole/html/de/help/JavaHelpSearch/DOCS b/webconsole/html/de/help/JavaHelpSearch/DOCS
new file mode 100644
index 0000000..fc2600b
--- /dev/null
+++ b/webconsole/html/de/help/JavaHelpSearch/DOCS
Binary files differ
diff --git a/webconsole/html/de/help/JavaHelpSearch/DOCS.TAB b/webconsole/html/de/help/JavaHelpSearch/DOCS.TAB
new file mode 100644
index 0000000..790df71
--- /dev/null
+++ b/webconsole/html/de/help/JavaHelpSearch/DOCS.TAB
@@ -0,0 +1,9 @@
+eÿÿÿÿÿÿÿý×ÿÿÿÿÿÿÿÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuÿÿÿ÷_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿuÿÿÿÿÿÿÿÿÿÿÿÿÿÿu÷_ÿÿÿÿý×ý×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷×ÿÿÝwV_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuÿ÷]×ÿÿÿÿ÷_ÿÿÿÿÿÿÿÿÿÿÿý×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝýõÿÝ]__ÿý×ÿÿÿÿÿÿuÌ'ÿÿÿÿÿÿÿÜÒ}×ÿÿÿÿÿÿÿÿÿuÿÿôhÁ±#r£G0H`P¡Á1ȱH£Ç,tX±a¡B¨i6‡¨pQêWÔlU—(dÁ*8¸â†E—aX³†D£
+ÆĨÌhK†Äó˨òª3*0hP£J0³J»Œ+0ªª‡£
+0£¢Œ*âÆJ1¡¡R†Eh¡X£ÊŒ.6*r³
+ŒÊ3*9
+1‹†ÅK8£"Ë3(Òüñ#
+³é•‘Š…KŠãJ0¾£Š¯<¨dJ3(ä.â/0³Y2ó*/ÿójbó“Š0£,³K0ªŒ/ªê+Ž+«9
+ëª8¨Â£
+ªªª®ó ŒË,Â(Ý’*ë0®«0ªªªûª®Í(ÂÌ+£
+ºîªª<¨Â¡‘3‹Ì,âÿÌ/ÿó ÿÿÿÿÿÿÿÿÿÍ/0¿ÿÿ0³ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ/ÿÿÍ/ÿÿÌ/ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ/ÿØ \ No newline at end of file
diff --git a/webconsole/html/de/help/JavaHelpSearch/Makefile.am b/webconsole/html/de/help/JavaHelpSearch/Makefile.am
new file mode 100644
index 0000000..a7dfb6c
--- /dev/null
+++ b/webconsole/html/de/help/JavaHelpSearch/Makefile.am
@@ -0,0 +1,11 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+
+JavaHelpSearchdir = ${htmldir}/de/help/JavaHelpSearch
+JavaHelpSearch_DATA =SCHEMA \
+ OFFSETS \
+ TMAP \
+ DOCS.TAB \
+ DOCS \
+ POSITIONS \ No newline at end of file
diff --git a/webconsole/html/de/help/JavaHelpSearch/OFFSETS b/webconsole/html/de/help/JavaHelpSearch/OFFSETS
new file mode 100644
index 0000000..651ebe2
--- /dev/null
+++ b/webconsole/html/de/help/JavaHelpSearch/OFFSETS
@@ -0,0 +1 @@
+…Ž#œ’~ñš òéc2ˆ©wuù*:d’;!öXXá†f”ä€UmnM22êòTØZLpC]6ÖgB@ØѺu„͘à±›&·þÍq–¤jþc¢¬0ÆÅ5ŸŸƒ8ü×¾k¸ÿbàÂ6ðwv®Ø$K[°:úô1Ü ¶2†ü, \ No newline at end of file
diff --git a/webconsole/html/de/help/JavaHelpSearch/POSITIONS b/webconsole/html/de/help/JavaHelpSearch/POSITIONS
new file mode 100644
index 0000000..d8b5afd
--- /dev/null
+++ b/webconsole/html/de/help/JavaHelpSearch/POSITIONS
Binary files differ
diff --git a/webconsole/html/de/help/JavaHelpSearch/SCHEMA b/webconsole/html/de/help/JavaHelpSearch/SCHEMA
new file mode 100644
index 0000000..d8e68ce
--- /dev/null
+++ b/webconsole/html/de/help/JavaHelpSearch/SCHEMA
@@ -0,0 +1,2 @@
+JavaSearch 1.0
+TMAP bs=2048 rt=1 fl=-1 id1=866 id2=1
diff --git a/webconsole/html/de/help/JavaHelpSearch/TMAP b/webconsole/html/de/help/JavaHelpSearch/TMAP
new file mode 100644
index 0000000..2d60450
--- /dev/null
+++ b/webconsole/html/de/help/JavaHelpSearch/TMAP
Binary files differ
diff --git a/webconsole/html/de/help/Makefile.am b/webconsole/html/de/help/Makefile.am
new file mode 100644
index 0000000..73a4c0f
--- /dev/null
+++ b/webconsole/html/de/help/Makefile.am
@@ -0,0 +1,55 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = JavaHelpSearch
+
+helpdir = ${htmldir}/de/help
+help_DATA =copyright.html \
+ gbgpe.html \
+ gbgda.html \
+ p1.html \
+ gbgqm.html \
+ gbgqt.html \
+ gbgpa.html \
+ gbgcr.html \
+ gbgqe.html \
+ gbgpp.html \
+ gbgpm.html \
+ gbgpt.html \
+ gbgqa.html \
+ gbgcg.html \
+ gbgoz.html \
+ gbgdh.html \
+ gbgpu.html \
+ map.jhm \
+ gbgow.html \
+ gbzci.html \
+ toc.xml \
+ gbgqu.html \
+ gbgcn.html \
+ gbgqh.html \
+ gbgqf.html \
+ gbgeb.html \
+ gbgps.html \
+ gbgpn.html \
+ gbgpw.html \
+ gbgpj.html \
+ gbgcd.html \
+ gbgoy.html \
+ gbgkr.html \
+ app.hs \
+ gbgou.html \
+ gbzbc.html \
+ gbgpb.html \
+ gbgqj.html \
+ index.xml \
+ gbgot.html \
+ gbgdc.html \
+ background.html \
+ gbgcm.html \
+ gbgec.html \
+ gbgpr.html \
+ gbgca.html \
+ gbgni.html \
+ empty.html \
+ gbgce.html \ No newline at end of file
diff --git a/webconsole/html/de/help/app.hs b/webconsole/html/de/help/app.hs
new file mode 100644
index 0000000..ae5b60e
--- /dev/null
+++ b/webconsole/html/de/help/app.hs
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE helpset PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN" "helpset_1_0.dtd">
+<helpset version="1.0" xml:lang="de">
+<title>about_vman</title>
+<maps> <homeID></homeID> <mapref location="map.jhm"/>
+</maps>
+<view> <name>TOC</name> <label>Inhalt</label> <type>javax.help.TOCView</type> <data>toc.xml</data>
+</view>
+<view> <name>Index</name> <label>Index</label> <type>javax.help.IndexView</type> <data>index.xml</data>
+</view>
+<view> <name>Search</name> <label>Suchen</label> <type>javax.help.SearchView</type> <data engine="com.sun.java.help.search.DefaultSearchEngine">JavaHelpSearch</data>
+</view>
+</helpset>
diff --git a/webconsole/html/de/help/background.html b/webconsole/html/de/help/background.html
new file mode 100644
index 0000000..05b522d
--- /dev/null
+++ b/webconsole/html/de/help/background.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+
+
+<title>About the Configuration Manager</title>
+<script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="BACKGROUND"></A><h2>Configuration Manager Help</h2>
+
+<p>Welcome to the Sun Java&#8482; Desktop System Configuration Manager Help pages.</p>
+
+<p>Using the Configuration Manager, administrators can assign
+profiles to individual users or organisational units stored in a central
+configuration storage such as an existing corporate LDAP server. The
+configuration settings defined in these profiles are then applied on behalf of
+the users to the applications running on the Sun Java Desktop System such as the
+Gnome desktop, Mozilla, StarOffice and Gnome applications like Evolution.</p>
+
+<p>To get help for a specific part of the Configuration Manager,
+click on one of the links on the left.</p>
+
+</body>
+</html>
diff --git a/webconsole/html/de/help/copyright.html b/webconsole/html/de/help/copyright.html
new file mode 100644
index 0000000..2a2d36d
--- /dev/null
+++ b/webconsole/html/de/help/copyright.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<p>Part No: 819-3617</p><p></p>Sun Microsystems, Inc. <p><br>4150 Network Circle<br>Santa Clara, CA 95054 <br>U.S.A.</p><p>Copyright 2006, Sun Microsystems, Inc.</p><p>Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual
+property rights may include one or more U.S. patents or pending patent applications in the U.S. and in other countries.</p>
+<p>U.S. Government Rights &#8211; Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements.</p>
+<p>This distribution may include materials developed by third parties.</p>
+<p>Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively
+licensed through X/Open Company, Ltd.</p>
+<p>Sun, Sun Microsystems, the Sun logo,
+the Solaris logo, the Java Coffee Cup logo, docs.sun.com,
+Java, and
+Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S.
+and other countries. All SPARC trademarks are used under license and are trademarks
+or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+Products bearing SPARC trademarks are based upon an architecture developed by Sun
+Microsystems, Inc. </p>
+<p>The OPEN LOOK and Sun&#153; Graphical User Interface was developed by Sun Microsystems, Inc. for
+its users and licensees. Sun acknowledges the pioneering efforts of Xerox in researching
+and developing the concept of visual or graphical user interfaces for the computer
+industry. Sun holds a non-exclusive license from Xerox to the Xerox Graphical User
+Interface, which license also covers Sun's licensees who implement OPEN LOOK GUIs
+and otherwise comply with Sun's written license agreements.</p>
+<p>Products covered by and information contained in this publication are controlled by U.S. Export Control
+laws and may be subject to the export or import laws in other countries. Nuclear,
+missile, chemical or biological weapons or nuclear maritime end uses or end users,
+whether direct or indirect, are strictly prohibited. Export or reexport to countries
+subject to U.S. embargo or to entities identified on U.S. export exclusion lists,
+including, but not limited to, the denied persons and specially designated nationals
+lists is strictly prohibited.</p>
+<p>DOCUMENTATION IS PROVIDED &#8220;AS IS&#8221; AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
+IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT,
+ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.</p>
+<p></p>
+<p>Sun Microsystems, Inc. d&#233;tient les droits de propri&#233;t&#233;
+intellectuelle relatifs &#224; la technologie incorpor&#233;e dans
+le produit qui est
+d&#233;crit dans ce document. En particulier, et ce sans limitation,
+ces droits de
+propri&#233;t&#233; intellectuelle peuvent inclure un ou plusieurs
+brevets am&#233;ricains ou des
+applications de brevet en attente aux Etats-Unis et dans d'autres
+pays.</p>
+<p>Cette distribution peut comprendre des composants
+d&#233;velopp&#233;s par des tierces personnes.</p>
+<p>Certaines composants de ce produit peuvent &#234;tre
+d&#233;riv&#233;es du logiciel Berkeley BSD, licenci&#233;s par
+l'Universit&#233; de
+Californie. UNIX est une marque d&#233;pos&#233;e aux Etats-Unis et
+dans d'autres pays; elle est
+licenci&#233;e exclusivement par X/Open Company, Ltd. </p>
+<p>Sun, Sun Microsystems, le logo Sun, le logo Solaris, le logo Java
+Coffee Cup, docs.sun.com,
+ Java et Solaris sont des
+marques de fabrique ou des marques d&#233;pos&#233;es
+de Sun Microsystems, Inc. aux Etats-Unis et dans d'autres pays. Toutes
+les marques
+SPARC sont utilis&#233;es sous licence et sont des marques de fabrique
+ou des
+marques d&#233;pos&#233;es de SPARC International, Inc. aux
+Etats-Unis et dans
+d'autres pays. Les produits portant les marques SPARC sont bas&#233;s
+sur une
+architecture d&#233;velopp&#233;e par Sun Microsystems, Inc.</p>
+<p>L'interface d'utilisation graphique OPEN LOOK et
+Sun&#153; a &#233;t&#233;
+d&#233;velopp&#233;e par Sun Microsystems, Inc. pour ses
+utilisateurs et
+licenci&#233;s. Sun reconna&#238;t les efforts de pionniers de Xerox
+pour la
+recherche et le d&#233;veloppement du concept des interfaces
+d'utilisation
+visuelle ou graphique pour l'industrie de l'informatique. Sun
+d&#233;tient une licence non exclusive de Xerox sur
+l'interface d'utilisation graphique Xerox, cette licence couvrant
+&#233;galement les
+licenci&#233;s de Sun qui mettent en place l'interface d'utilisation
+graphique OPEN LOOK et
+qui, en outre, se conforment aux licences &#233;crites de Sun.</p>
+<p>Les produits qui font l'objet de cette publication et les
+informations qu'il contient sont r&#233;gis par la legislation
+am&#233;ricaine en mati&#232;re de contr&#244;le des exportations et peuvent &#234;tre soumis au droit
+d'autres pays dans le domaine des exportations et importations. Les utilisations finales, ou
+utilisateurs finaux, pour des armes nucl&#233;aires, des missiles, des armes
+chimiques ou biologiques ou pour le nucl&#233;aire maritime, directement ou
+indirectement, sont strictement interdites. Les exportations ou r&#233;exportations vers
+des pays sous embargo des Etats-Unis, ou vers des entit&#233;s figurant sur les
+listes d'exclusion d'exportation am&#233;ricaines, y compris, mais de mani&#232;re non
+exclusive, la liste de personnes qui font objet d'un ordre de ne pas participer, d'une fa&#231;on
+directe ou
+indirecte, aux exportations des produits ou des services qui sont
+r&#233;gis par la
+legislation am&#233;ricaine en mati&#232;re de contr&#244;le des
+exportations et la
+liste de ressortissants sp&#233;cifiquement design&#233;s, sont
+rigoureusement interdites.</p>
+<p>LA DOCUMENTATION EST FOURNIE "EN L'ETAT" ET TOUTES AUTRES CONDITIONS,
+DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENT EXCLUES,
+DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT
+TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A L'APTITUDE A UNE
+UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFACON. </p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/de/help/empty.html b/webconsole/html/de/help/empty.html
new file mode 100644
index 0000000..5f41035
--- /dev/null
+++ b/webconsole/html/de/help/empty.html
@@ -0,0 +1,51 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+<title>Wird bearbeitet...
+</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+
+<meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="BACKGROUND"></A><h2>Dieses Thema ist noch nicht verf&uuml;gbar.</h2>
+<p>Die Hilfe f&uuml;r das ausgew&auml;hlte Thema ist noch nicht verf&uuml;gbar. </p>
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgca.html b/webconsole/html/de/help/gbgca.html
new file mode 100644
index 0000000..13b37c1
--- /dev/null
+++ b/webconsole/html/de/help/gbgca.html
@@ -0,0 +1,11 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>1.  Online-Hilfe zu Sun Desktop Manager 1.0.1 </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgca"></A><b>Kapitel 1</b><h1>Online-Hilfe zu Sun Desktop Manager 1.0.1</h1>
+<p>Willkommen bei der Online-Hilfe zu Sun Desktop Manager. Wenn Sie Hilfe zu einer bestimmten Komponente von Desktop Manager ben&ouml;tigen, klicken Sie auf den entsprechenden Link auf der linken Seite. Die Online-Hilfe bietet Informationen zu den Funktionen und zur Verwendung von Desktop Manager.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgcd.html b/webconsole/html/de/help/gbgcd.html
new file mode 100644
index 0000000..523d150
--- /dev/null
+++ b/webconsole/html/de/help/gbgcd.html
@@ -0,0 +1,25 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Profile &#8212; Alle </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcd"></A><h2>Profile &#8212; Alle</h2>
+<p>Auf der Seite &#8220;Profile &#8212; Alle&#8221; werden alle verf&uuml;gbaren Profile, einschlie&szlig;lich derer, die keinem Element zugewiesen sind, angezeigt. Die Profile werden in zwei Tabellen angezeigt, einer f&uuml;r Dom&auml;nenprofile und einer f&uuml;r Organisationsprofile.</p>
+<p>In den Profiltabellen k&ouml;nnen Sie die folgenden Aktionen durchf&uuml;hren:</p>
+<ul><li><p><A HREF="gbgcr.html#gbgcr">Erstellen neuer Profile</A></p>
+</li>
+<li><p><A HREF="gbgpe.html#gbgpe">L&ouml;schen eines Profils</A></p>
+</li>
+<li><p><A HREF="gbgpu.html#gbgpu">Umbenennen von Profilen</A></p>
+</li>
+<li><p><A HREF="gbgow.html#gbgow">Kopieren und Verschieben von Profilen</A></p>
+</li>
+<li><p><A HREF="gbgpj.html#gbgpj">Importieren von Profilen</A></p>
+</li>
+<li><p><A HREF="gbgou.html#gbgou">Exportieren von Profilen</A></p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgce.html b/webconsole/html/de/help/gbgce.html
new file mode 100644
index 0000000..8701f41
--- /dev/null
+++ b/webconsole/html/de/help/gbgce.html
@@ -0,0 +1,25 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Einf&uuml;hrung </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgce"></A><h2>Einf&uuml;hrung</h2>
+<p>Desktop Manager ist ein Tool f&uuml;r die zentralisierte Verwaltung der Konfigurationseinstellungen von Desktopanwendungen, die man als <i>Profile</i> bezeichnet. Mit Desktop Manager k&ouml;nnen Sie den Elementen der Hierarchie einer Organisation oder einer Dom&auml;ne Profile zuweisen und diese Profile anzeigen lassen. Profile werden angewendet, wenn ein Benutzer eine Desktop-Sitzung oder eine von Desktop Manager verwaltete Anwendung startet. Alle Profile, die f&uuml;r den Benutzer oder den Host, auf dem die Anwendung l&auml;uft, relevant sind, werden abgerufen und ihre Einstellungen werden aus den lokalen Vorgaben f&uuml;r die Anwendung und den benutzerdefinierten Einstellungen des entsprechenden Benutzers zusammengef&uuml;hrt. Mit Profilen kann ein Satz zentral verwalteter Vorgaben f&uuml;r die Anwendung bereitgestellt werden oder es k&ouml;nnen vorgeschriebene Einstellungen durchgesetzt werden.</p>
+<p>Verwendete Begriffe:</p>
+<ul><li><p><i>Konfigurationsdatensammlung</i>: Der Organisations- und Dom&auml;nenbaumbeh&auml;lter mit den darin gespeicherten Profilen</p>
+</li>
+<li><p><i>Dom&auml;ne</i>: Element im Dom&auml;nenbaum. Sie ist ein bestimmter Bereich eines Computernetzwerks. Sie kann Dom&auml;nen und Hosts enthalten.</p>
+</li>
+<li><p><i>Element</i>: Ein logisches Objekt, dem Konfigurationsdaten zugewiesen werden k&ouml;nnen. Beispiele f&uuml;r Entit&auml;ten, die Desktop Manager bekannt sind, sind Benutzer, Rollen/Gruppen und Organisationen.</p>
+</li>
+<li><p><i>LDAP</i>: Lightweight Directory Access Protocol. LDAP ist ein Verzeichnisdienstprotokoll f&uuml;r TCP/IP. Die Funktionsweise von LDAP wird in RFC 1777 (&#8220;The Lightweight Directory Access Protocol&#8221;) definiert.</p>
+</li>
+<li><p><i>Organisation</i>: Ein Element im Organisationsbaum. Sie stellt ein Unternehmen bzw. einen Unternehmensbereich dar (beipielsweise ?Callcenter?). Organisationen k&ouml;nnen Organisationen, Benutzer oder Rollen enthalten.</p>
+</li>
+<li><p><i>Profil</i>: Ein benannter Beh&auml;lter f&uuml;r Konfigurationseinstellungen. Profile werden in Konfigurationsdatensammlungen gespeichert und k&ouml;nnen Elementen zugewiesen werden.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgcg.html b/webconsole/html/de/help/gbgcg.html
new file mode 100644
index 0000000..039f792
--- /dev/null
+++ b/webconsole/html/de/help/gbgcg.html
@@ -0,0 +1,13 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Allgemeine Eigenschaften </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcg"></A><h3>Allgemeine Eigenschaften</h3>
+<p>Auf der Seite &#8220;Allgemeine Eigenschaften&#8221; k&ouml;nnen Sie allgemeine Eigenschaften zu einem Profil angeben. Diese Seite ist die Standardansicht des Fensters &#8220;Profileditor&#8221;. </p>
+<p><hr size="1" noshade><p><b>Hinweis &#8211; </b>Der Profileditor wird angezeigt, wenn der Benutzer auf die Schaltfl&auml;che &#8220;Neu&#8221; klickt, um ein neues Profil zu erstellen.</p>
+<hr size="1" noshade></p><p>Siehe <A HREF="gbgpb.html#gbgpb">Festlegen der allgemeinen Eigenschaften f&uuml;r ein Profil</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgcm.html b/webconsole/html/de/help/gbgcm.html
new file mode 100644
index 0000000..9143b96
--- /dev/null
+++ b/webconsole/html/de/help/gbgcm.html
@@ -0,0 +1,14 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Navigationsbereich </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcm"></A><h3>Navigationsbereich</h3>
+<p>Im Navigationsbereich k&ouml;nnen Sie die Organisations- und Dom&auml;nenb&auml;ume nach Elementen durchsuchen. Die Baumstruktur spiegelt die Hierarchie der Elemente wider. Verf&uuml;gt ein Knoten &uuml;ber Unterknoten, wird links vom Knotennamen ein blaues Dreieck angezeigt. Durch Klicken auf dieses Dreieck k&ouml;nnen Sie den Knoten erweitern, sodass einige Unterknoten angezeigt werden.</p>
+<p><hr size="1" noshade><p><b>Hinweis &#8211; </b>Standardm&auml;&szlig;ig werden f&uuml;r jeden erweiterten Knoten nur 10 Unterknoten angezeigt. Gibt es mehr als 10 Unterknoten, verweist der 11. &#8220;Knoten&#8221; nicht auf ein Element, sondern gibt an, dass es weitere Knoten gibt, die nicht angezeigt werden: &#8220;... einige Elemente nicht angezeigt&#8221;. Durch Klicken auf diesen &#8220;Knoten&#8221; k&ouml;nnen Sie die Suchfunktion &ouml;ffnen.</p>
+<hr size="1" noshade></p><p>Um ein Element auszuw&auml;hlen, navigieren Sie in der Baumstruktur und klicken Sie auf das gew&uuml;nschte Element. Wurde ein Element ausgew&auml;hlt, wird es hervorgehoben und im Inhaltsbereich werden die zugewiesenen und &uuml;bernommenen Profile des Elements angezeigt.</p>
+<p>Im Navigationsbereich sind au&szlig;erdem eine rekursive Suche (siehe <A HREF="gbgpa.html#gbgpa">Suchen nach Elementen</A>) und eine nicht-rekursive Suche (siehe <A HREF="gbgqt.html#gbgqt">Verwenden der Suchfunktion</A>) f&uuml;r die Suche nach Elementen in den Baumhierarchien verf&uuml;gbar. Durch Klicken auf die Schaltfl&auml;che &#8220;Suchen&#8221; wird das gleichnamige Fenster ge&ouml;ffnet.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgcn.html b/webconsole/html/de/help/gbgcn.html
new file mode 100644
index 0000000..4f9031d
--- /dev/null
+++ b/webconsole/html/de/help/gbgcn.html
@@ -0,0 +1,28 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Erstellen neuer Konfigurationsdatensammlungen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcn"></A><h4>Erstellen neuer Konfigurationsdatensammlungen</h4>
+<p>Konfigurationsdatensammlungen sind Orte, an denen Organisationshierarchieinformationen zusammen mit den Profil- und Zuweisungsdaten f&uuml;r jedes Element gespeichert werden.</p>
+<h5>Schritte</h5><ol><li><p><b>Klicken Sie in der Tabelle &#8220;Konfigurationsdatensammlungen&#8221; auf die Schaltfl&auml;che &#8220;Neu&#8221;.</b></p><p>Der Assistent f&uuml;r neue Konfigurationsdatensammlungen wird ge&ouml;ffnet. Mit diesem Assistenten k&ouml;nnen Sie eine Konfigurationsdatensammlung f&uuml;r die Verwendung mit Desktop Manager erstellen.</p>
+</li>
+<li><p><b>Geben Sie im Feld &#8220;Name der Datensammlung&#8221; einen Namen f&uuml;r die neue Konfigurationsdatensammlung ein und klicken Sie auf &#8220;Weiter&#8221;.</b></p></li>
+<li><p><b>W&auml;hlen Sie in der Liste &#8220;Typ der Datensammlung&#8221; den Typ der Datensammlung aus.</b> </p><p>Mit dem Assistenten k&ouml;nnen drei Arten von Datensammlungen erstellt werden:</p>
+<ul><li><p>LDAP: Die Hierarchie wird LDAP entnommen und alle Daten werden in LDAP gespeichert.</p>
+</li>
+<li><p>Dateibasiert: Die Hierarchie wird einer Datei entnommen und alle Daten werden in Verzeichnissen und Dateien gespeichert.</p>
+</li>
+<li><p>Kombiniert: Die Hierarchie wird LDAP entnommen, aber alle Daten werden in Verzeichnissen und Dateien gespeichert.</p>
+</li>
+</ul>
+</li>
+<li><p><b>Klicken Sie auf die Schaltfl&auml;che &#8220;Weiter&#8221;.</b></p></li>
+<li><p><b>Geben Sie die Details des LDAP-Servers ein, den Sie f&uuml;r diese Datensammlung konfigurieren m&ouml;chten.</b> </p><p>Sie m&uuml;ssen den Hostnamen und den Port des Servers eingeben. Au&szlig;erdem k&ouml;nnen Sie ausw&auml;hlen, ob f&uuml;r die Verbindung zum Server SSL verwendet werden soll. </p>
+</li>
+<li><p><b>Je nach ausgew&auml;hlten Optionen m&uuml;ssen m&ouml;glicherweise weitere Angaben gemacht werden.</b> <b>Befolgen Sie die Anweisungen.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgcr.html b/webconsole/html/de/help/gbgcr.html
new file mode 100644
index 0000000..4c7c82d
--- /dev/null
+++ b/webconsole/html/de/help/gbgcr.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Erstellen neuer Profile </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcr"></A><h3>Erstellen neuer Profile</h3>
+<h5>Schritte</h5><ol><li><p><b>Klicken Sie in der gew&uuml;nschten Profiltabelle (&#8220;Organisation&#8221; oder &#8220;Dom&auml;ne&#8221;) auf die Schaltfl&auml;che &#8220;Neu&#8221;.</b></p><p>Der Profileditor wird ge&ouml;ffnet. </p>
+</li>
+<li><p><b>Befolgen Sie die Anweisungen.</b></p><p>Weitere Informationen zum Erstellen neuer Profile mit dem Profileditor finden Sie im Abschnitt <A HREF="gbgec.html#gbgec">Profileditor</A> der Online-Hilfe.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgda.html b/webconsole/html/de/help/gbgda.html
new file mode 100644
index 0000000..953438d
--- /dev/null
+++ b/webconsole/html/de/help/gbgda.html
@@ -0,0 +1,20 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Einstellungs&uuml;bersicht </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgda"></A><h3>Einstellungs&uuml;bersicht</h3>
+<p>Auf der Seite &#8220;Einstellungs&uuml;bersicht&#8221; werden alle Konfigurationseinstellungen angezeigt, die Daten f&uuml;r das ausgew&auml;hlte Profil enthalten, k&ouml;nnen jedoch nicht ge&auml;ndert werden.</p>
+<p>Die Seite &#8220;Einstellungs&uuml;bersicht&#8221; enth&auml;lt die gleichnamige Tabelle. Diese Tabelle zeigt die Konfigurationseinstellungen, die Daten f&uuml;r das aktuelle Profil enthalten, in Kategorien gruppiert an. Die Tabelle hat die folgenden Felder:</p>
+<p></p>
+<ul><li><p>Name: Der Name der Einstellung</p>
+</li>
+<li><p>Wert: Der Wert der Einstellung</p>
+</li>
+<li><p>Status: Die Statusspalte enth&auml;lt Eintr&auml;ge der Art &#8220;Definiert in &lt;Profilname>&#8221;, wobei &lt;Profilname> ein Link ist, mit dem Sie die Seite &#8220;Konfigurationseinstellungen&#8221; des Profileditors aufrufen und zur entsprechenden Einstellung innerhalb dieses Profils wechseln k&ouml;nnen.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgdc.html b/webconsole/html/de/help/gbgdc.html
new file mode 100644
index 0000000..5fd6252
--- /dev/null
+++ b/webconsole/html/de/help/gbgdc.html
@@ -0,0 +1,12 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Profile &#8212; Baumansicht </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgdc"></A><h2>Profile &#8212; Baumansicht</h2>
+<p>Die Seite &#8220;Profile &#8212; Baumansicht&#8221; zeigt alle verf&uuml;gbaren Profile an, die einem Element zugewiesen sind. Links auf der Seite befindet sich ein Navigationsbereich, in dem Sie die Baumhierarchien nach Profilen durchsuchen k&ouml;nnen. Auf der rechten Seite befindet sich der Inhaltsbereich, der Informationen zu im Navigationsbereich ausgew&auml;hlten Profilen anzeigt.</p>
+<p>Siehe auch: <A HREF="gbgcm.html#gbgcm">Navigationsbereich</A> und <A HREF="gbgoy.html#gbgoy">Inhaltsbereich</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgdh.html b/webconsole/html/de/help/gbgdh.html
new file mode 100644
index 0000000..a6468a9
--- /dev/null
+++ b/webconsole/html/de/help/gbgdh.html
@@ -0,0 +1,19 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Erweiterte Optionen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgdh"></A><h3>Erweiterte Optionen</h3>
+<p>Auf der Seite &#8220;Erweiterte Optionen&#8221; k&ouml;nnen Sie die erweiterten Optionen f&uuml;r das aktuelle Profil festlegen. Auf dieser Seite stehen zwei Hauptfunktionen zur Verf&uuml;gung:</p>
+<ul><li><p>Anwendbar von: Erm&ouml;glicht das Verschieben des Profils an einen anderen Speicherort im Organisations- oder Dom&auml;nenbaum. Durch Verschieben des Speicherorts &auml;ndern Sie auch den Satz von Elementen, denen das Profil zugewiesen beziehungsweise auf die es angewendet werden kann. Dies liegt daran, dass ein Profil nur dem Element zugewiesen werden kann, an dem es gespeichert werden kann, beziehungsweise den Elementen zugewiesen werden kann, die sich unterhalb des Elements befinden, an dem es gespeichert ist.</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>Warnung &#8211; </b>Es ist nicht m&ouml;glich, den Parameter &#8220;Anwendung von&#8221; so zu &auml;ndern, dass das daraus resultierende Layout gegen die oben erw&auml;hnte Regel verst&ouml;&szlig;t. Dies k&ouml;nnte beispielsweise passieren, wenn Sie ein Profil in der Hierarchie nach unten verschieben und eine vorhandene Zuweisung, die das Profil mit einem Element unterhalb des Speicherorts des Profils verbindet, das Profil mit demselben Element verbinden w&uuml;rde, nachdem das Element verschoben wurde. Nun befindet sich das Element jedoch oberhalb des Speicherorts des Profils. Versuchen Sie dies, wird der Vorgang abgebrochen und eine Warnmeldung wird angezeigt.</p><hr size="1" noshade></li>
+<li><p>Zusammenf&uuml;hrungsreihenfolge: Gibt an, in welcher Reihenfolge alle an demselben Element gespeicherten Profile zusammengef&uuml;hrt werden. </p>
+<p>Da einem einzelnen Element mehrere Profile zugewiesen werden k&ouml;nnen und mehrere Profile dieselbe Einstellung festlegen k&ouml;nnen, muss die Reihenfolge der Zusammenf&uuml;hrung der Profile f&uuml;r ein einzelnes Element bestimmt werden. Auf diese Weise werden Konflikte behoben, wenn eine Einstellung in zwei oder mehr Profilen definiert ist, die demselben Element zugewiesen sind.</p>
+<p>Der Speicherort wird als Erstes zur Bestimmung der Zusammenf&uuml;hrungsreihenfolge herangezogen. Das Profil, das an einem Element gespeichert ist, das n&auml;her an der Root des Baums ist, wird als Erstes zusammengef&uuml;hrt. Das tiefer in der Baumhierarchie gespeicherte Profil wird folglich danach gespeichert. Die Einstellungen eines sp&auml;ter zusammengf&uuml;hrten Profils &uuml;berschreiben die Einstellungen eines fr&uuml;her zusammengef&uuml;hrten Profils.</p>
+</li>
+</ul>
+<p>Siehe <A HREF="gbgqu.html#gbgqu">&Auml;ndern des Speicherorts f&uuml;r &#8220;Anwendung von&#8221;</A>, <A HREF="gbgqe.html#gbgqe">Zuweisen von Zusammenf&uuml;hrungsreihenfolgen zu Profilen</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgeb.html b/webconsole/html/de/help/gbgeb.html
new file mode 100644
index 0000000..966ea70
--- /dev/null
+++ b/webconsole/html/de/help/gbgeb.html
@@ -0,0 +1,12 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Konfigurationseinstellungen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgeb"></A><h3>Konfigurationseinstellungen</h3>
+<p>Auf der Seite &#8220;Konfigurationseinstellungen&#8221; k&ouml;nnen Sie die im ausgew&auml;hlten Profil gespeicherten Konfigurationseinstellungen anzeigen und bearbeiten.</p>
+<p>Siehe <A HREF="gbgot.html#gbgot">Anzeigen und Bearbeiten der Konfigurationseinstellungen von Profilen</A>.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgec.html b/webconsole/html/de/help/gbgec.html
new file mode 100644
index 0000000..64e8998
--- /dev/null
+++ b/webconsole/html/de/help/gbgec.html
@@ -0,0 +1,25 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Profileditor </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgec"></A><h2>Profileditor</h2>
+<p>Der Profileditor dient zum Erstellen neuer Profile und dem Bearbeiten vorhandener Profile. Au&szlig;erdem k&ouml;nnen Sie hier die aktuellen Einstellungen und Optionen des aktuell ausgew&auml;hlten Profils einsehen.</p>
+<p>Sie k&ouml;nnen den Profileditor durch Klicken auf den Namen eines Profils in einer der Tabellen im Bereich &#8220;Profile &#8212; Baumansicht&#8221; oder auf der Seite &#8220;Profile &#8212; Alle&#8221; &ouml;ffnen.</p>
+<p><hr size="1" noshade><p><b>Tipp &#8211; </b>Informationen zum Erstellen neuer Profile finden Sie unter <A HREF="gbgni.html#gbgni">Erstellen neuer Profile</A>.</p>
+<hr size="1" noshade></p><p>Der Profileditor enth&auml;lt folgende Registerseiten:</p>
+<ul><li><p><A HREF="gbgcg.html#gbgcg">Allgemeine Eigenschaften</A></p>
+</li>
+<li><p><A HREF="gbgeb.html#gbgeb">Konfigurationseinstellungen</A></p>
+</li>
+<li><p><A HREF="gbgkr.html#gbgkr">Zugewiesene Elemente</A></p>
+</li>
+<li><p><A HREF="gbgda.html#gbgda">&Uuml;berblick &uuml;ber Einstellungen</A></p>
+</li>
+<li><p><A HREF="gbgdh.html#gbgdh">Erweiterte Optionen</A></p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgkr.html b/webconsole/html/de/help/gbgkr.html
new file mode 100644
index 0000000..a947da1
--- /dev/null
+++ b/webconsole/html/de/help/gbgkr.html
@@ -0,0 +1,18 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Zugewiesene Elemente </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgkr"></A><h3>Zugewiesene Elemente</h3>
+<p>Auf der Seite &#8220;Zugewiesene Elemente&#8221; werden die Elemente aufgef&uuml;hrt, die dem aktuellen Profil zugewiesen sind. Hier k&ouml;nnen Sie Elemente zuweisen und die Zuweisung von Elementen aufheben. </p>
+<p>In der Tabelle &#8220;Zugewiesene Elemente&#8221; werden die Elemente des aktuellen Profils angezeigt. Sie enth&auml;lt folgende Informationen:</p>
+<ul><li><p>Name: Name des Elements, dem das aktuelle Profil zugewiesen ist.</p>
+</li>
+<li><p>Pfad: Speicherort des Elements, dem das aktuelle Profil zugewiesen ist.</p>
+</li>
+</ul>
+<p>Siehe <A HREF="gbgpm.html#gbgpm">Zuweisen von Elementen zu Profilen</A>, <A HREF="gbgpp.html#gbgpp">Aufheben der Zuweisung von Elementen zu Profilen</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgni.html b/webconsole/html/de/help/gbgni.html
new file mode 100644
index 0000000..dcb53d9
--- /dev/null
+++ b/webconsole/html/de/help/gbgni.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Erstellen neuer Profile </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgni"></A><h4>Erstellen neuer Profile</h4>
+<h5>Schritte</h5><ol><li><p><b>Klicken Sie auf die Schaltfl&auml;che &#8220;Neu&#8221;.</b></p><p>Der Profileditor wird ge&ouml;ffnet. </p>
+</li>
+<li><p><b>Befolgen Sie die Anweisungen des Profileditors.</b></p><p>Weitere Informationen zum Erstellen neuer Profile mit dem Profileditor finden Sie im Abschnitt <A HREF="gbgec.html#gbgec">Profileditor</A> der Online-Hilfe.</p>
+<p><hr size="1" noshade><p><b>Hinweis &#8211; </b>Nach dem Erstellen des neuen Profils wird dieses automatisch dem aktuell ausgew&auml;hlten Element zugewiesen.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgot.html b/webconsole/html/de/help/gbgot.html
new file mode 100644
index 0000000..359f16a
--- /dev/null
+++ b/webconsole/html/de/help/gbgot.html
@@ -0,0 +1,20 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Anzeigen und Bearbeiten der Konfigurationseinstellungen von Profilen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgot"></A><h4>Anzeigen und Bearbeiten der Konfigurationseinstellungen von Profilen</h4>
+<h5>Schritte</h5><ol><li><p><b>Um eine bestimmte Konfigurationseinstellung eines Profils anzuzeigen, k&ouml;nnen Sie sie im rechten Bereich der Seite in der Kategorienliste ausw&auml;hlen.</b></p><p>Die Konfigurationseinstellungen sind auf hierarchische Weise in Kategorien unterteilt, die direkt den Konfigurationsoptionen von Desktopanwendungen wie StarOffice™, Mozilla™, Evolution oder Gnome entsprechen. </p>
+</li>
+<li><p><b>Klicken Sie auf die gew&uuml;nschte Konfigurationseinstellung.</b></p><p>Die Einstellungen des ausgew&auml;hlten Profils werden angezeigt, die alle verf&uuml;gbaren Einstellungen f&uuml;r dieses Profil angeben. Bei Bedarf werden zus&auml;tzliche Kontextinformationen, beispielsweise zu den Auswirkungen einzelner Einstellungen oder zu den zul&auml;ssigen Werten, angegeben. </p>
+<p><hr size="1" noshade><p><b>Hinweis &#8211; </b>Wenn Sie statt einer Konfigurationseinstellung eine Kategorie ausw&auml;hlen, wird eine Liste mit den Einstellungen oder Unterkategorien dieser Kategorie angezeigt.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Sie k&ouml;nnen f&uuml;r jede Konfigurationseinstellung entweder einen bestimmten Wert angeben oder die Einstellung nicht definieren.</b></p><p>Definieren Sie eine Einstellung nicht, ist die Anwendung nicht von dieser Profileinstellung betroffen und verwendet den anwendungseigenen Vorgabewert. Im Allgemeinen zeigt der Profileditor den Vorgabewert einer Anwendung in einem zus&auml;tzlichen Hilfetext oder - falls m&ouml;glich - direkt in der Optionsliste der Einstellung an.</p>
+<p><hr size="1" noshade><p><b>Hinweis &#8211; </b>Beachten Sie stets, dass mehrere Profile Auswirkungen auf denselben Benutzer haben k&ouml;nnen. Beispiel: Sie erstellen ein Profil mit Einstellungen f&uuml;r eine bestimmte Organisation. Diese Einstellungen stehen automatisch allen Benutzern zur Verf&uuml;gung, die Teil dieser Organisation sind. &Auml;hnlich verh&auml;lt es sich, wenn Sie zus&auml;tzliche Profile mit Konfigurationseinstellungen f&uuml;r Unterorganisationen definieren. Diese k&ouml;nnen Einstellungen der &uuml;bergeordneten Organisation &uuml;berschreiben (beispielsweise wenn f&uuml;r Unterorganisationen andere Proxy-Einstellungen festgelegt wurden), andere Einstellungen jedoch unber&uuml;hrt lassen. F&uuml;r einen bestimmten Benutzer w&uuml;rden in diesem Fall Einstellungen gelten, die das Ergebnis einer Zusammenf&uuml;hrung w&auml;ren, die alle der Organisation, den Unterorganisationen und m&ouml;glicherweise dem Benutzer zugewiesenen Profile einschlie&szlig;t. </p>
+<hr size="1" noshade></p><p><hr size="1" noshade><p><b>Tipp &#8211; </b>In einigen F&auml;llen ist es ratsam, diese Zusammenf&uuml;hrung zu steuern und eine bestimmte Konfigurationseinstellung zu erzwingen, sodass andere Profile diese Einstellung nicht &uuml;berschreiben und einen anderen Wert definieren k&ouml;nnen. Im Profileditor k&ouml;nnen Sie f&uuml;r jede Einstellung das gew&uuml;nschte Zusammenf&uuml;hrungsverhalten ausw&auml;hlen. Die Standardeinstellung ist, dass andere Profile eine Einstellung &uuml;berschreiben k&ouml;nnen. Wenn Sie diese Option deaktivieren, wird die Einstellung erzwungen, das hei&szlig;t andere Profile k&ouml;nnen den von Ihnen festgelegten Wert nicht &uuml;berschreiben.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgou.html b/webconsole/html/de/help/gbgou.html
new file mode 100644
index 0000000..83ccd71
--- /dev/null
+++ b/webconsole/html/de/help/gbgou.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Exportieren von Profilen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgou"></A><h3>Exportieren von Profilen</h3>
+<h5>Schritte</h5><ol><li><p><b>W&auml;hlen Sie das Kontrollk&auml;stchen f&uuml;r das zu exportierende Profil aus.</b></p></li>
+<li><p><b>W&auml;hlen Sie in der Liste &#8220;Aktionen&#8221; die Option &#8220;Exportieren&#8221;.</b></p><p>Ein Dialogfeld wird ge&ouml;ffnet, in dem Sie ausw&auml;hlen k&ouml;nnen, wo die exportierte Datei gespeichert werden soll.</p>
+</li>
+<li><p><b>W&auml;hlen Sie die Option zum Speichern auf einem Datentr&auml;ger und klicken Sie auf &#8220;OK&#8221;.</b></p></li>
+<li><p><b>W&auml;hlen Sie den Speicherort f&uuml;r die exportierte Datei aus und klicken Sie auf &#8220;OK&#8221;.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgow.html b/webconsole/html/de/help/gbgow.html
new file mode 100644
index 0000000..b1f87c3
--- /dev/null
+++ b/webconsole/html/de/help/gbgow.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Kopieren und Verschieben von Profilen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgow"></A><h3>Kopieren und Verschieben von Profilen</h3>
+<h5>Schritte</h5><ol><li><p><b>W&auml;hlen Sie das Kontrollk&auml;stchen f&uuml;r das zu kopierende bzw. zu verschiebende Profil aus.</b></p></li>
+<li><p><b>W&auml;hlen Sie in der Liste &#8220;Aktionen&#8221; die Option &#8220;Kopieren und verschieben&#8221;.</b></p><p>Der Assistent f&uuml;r das Kopieren und Verschieben wird ge&ouml;ffnet.</p>
+</li>
+<li><p><b>Befolgen Sie die Anweisungen dieses Assistenten zum Durchf&uuml;hren der Aufgabe.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgoy.html b/webconsole/html/de/help/gbgoy.html
new file mode 100644
index 0000000..132f902
--- /dev/null
+++ b/webconsole/html/de/help/gbgoy.html
@@ -0,0 +1,36 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Inhaltsbereich </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgoy"></A><h3>Inhaltsbereich</h3>
+<p>Wenn Sie ein Element ausw&auml;hlen, werden Informationen zu diesem Element im Inhaltsbereich der Seite &#8220;Profile &#8212; Baumansicht&#8221; angezeigt. Der Inhaltsbereich kann bis zu drei Tabellen enthalten:</p>
+<ul><li><p>Tabelle &#8220;Zugewiesene Profile&#8221;: Diese Tabelle wird immer angezeigt. Sie zeigt die Profile an, die dem derzeit ausgew&auml;hlten Element zugewiesen sind. Diese Tabelle hat die drei Spalten &#8220;Name&#8221;, &#8220;Autor&#8221; und &#8220; Letzte &Auml;nderung am&#8221;. Der Wert der Spalte &#8220; Letzte &Auml;nderung am&#8221; &auml;ndert sich nur, wenn eine Einstellung des Profils ge&auml;ndert wird, nicht aber, wenn das Profil selbst umbenannt oder verschoben wird bzw. wenn dessen Priorit&auml;t ge&auml;ndert wird. </p>
+<p>In der Tabelle &#8220;Zugewiesene Profile&#8221; k&ouml;nnen Sie die folgenden Aktionen durchf&uuml;hren:</p>
+<ul><li><p><A HREF="gbgni.html#gbgni">Erstellen neuer Profile</A></p>
+</li>
+<li><p><A HREF="gbgpr.html#gbgpr">L&ouml;schen eines Profils</A></p>
+</li>
+<li><p><A HREF="gbgpn.html#gbgpn">Zuweisen von Profilen</A></p>
+</li>
+<li><p><A HREF="gbgqj.html#gbgqj">Aufheben der Zuweisung von Profilen</A></p>
+</li>
+<li><p><A HREF="gbgpw.html#gbgpw">Umbenennen von Profilen</A></p>
+</li>
+<li><p><A HREF="gbgqf.html#gbgqf">Kopieren und Verschieben von Profilen</A></p>
+</li>
+<li><p><A HREF="gbgps.html#gbgps">Importieren von Profilen</A></p>
+</li>
+<li><p><A HREF="gbgqh.html#gbgqh">Exportieren von Profilen</A></p>
+</li>
+</ul>
+</li>
+<li><p>Tabelle &#8220;&Uuml;bernommene Profile&#8221;: Diese Tabelle wird angezeigt, wenn einem der Elemente, die in der Hierarchie oberhalb des ausgew&auml;hlten Elements sind, ein Profil zugewiesen ist. Dieses Profil wird in der Tabelle aufgef&uuml;hrt. Die Tabelle enth&auml;lt die beiden Spalten &#8220;Name&#8221; und &#8220;Zugewiesen&#8221;. In der Spalte &#8220;Zugewiesen&#8221; werden der Pfad und der Name des Elements angezeigt, dem das Profil zugewiesen ist.</p>
+</li>
+<li><p>Tabelle &#8220;Benutzer&#8221; oder &#8220;Rollen&#8221;: Diese Tabelle wird angezeigt, wenn ein Element vom Typ &#8220;Benutzer&#8221; oder &#8220;Rolle&#8221; ausgew&auml;hlt ist. Handelt es sich bei einem Element um einen Benutzer, der Mitglied mindestens einer Rolle ist, werden diese Rollen in der Tabelle &#8220;Rollen&#8221; angezeigt. Handelt es sich bei einem Element um eine Rolle mit Mitgliedern, werden diese Mitglieder in der Tabelle &#8220;Benutzer&#8221; angezeigt.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgoz.html b/webconsole/html/de/help/gbgoz.html
new file mode 100644
index 0000000..d996f0d
--- /dev/null
+++ b/webconsole/html/de/help/gbgoz.html
@@ -0,0 +1,34 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Anzeigen der geltenden Einstellungen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgoz"></A><h3>Anzeigen der geltenden Einstellungen</h3>
+<p>&#8220;Geltende Einstellungen&#8221; ist eine Ansicht der geltenden Konfigurationseinstellungen f&uuml;r ein bestimmtes Element (beispielsweise eine Organisation, eine Dom&auml;ne oder einen Host), in der keine &Auml;nderungen vorgenommen werden k&ouml;nnen.</p>
+<p>Die geltenden Einstellungen eines bestimmten Benutzers sind das Ergebnis einer Zusammenf&uuml;hrung, die die bei den beteiligten Organisationsebenen, Rollen und beim Benutzer gespeicherten Konfigurationseinstellungen einbezieht. Die zusammengef&uuml;hrten Konfigurationseinstellungen eines ausgew&auml;hlten Elements in einem separaten Fenster des Typs &#8220;Geltende Einstellungen&#8221; anzeigen lassen. Dies erm&ouml;glicht eine einfache &Uuml;berpr&uuml;fung und Fehlersuche. Ein Bericht vom Typ &#8220;Geltende Einstellungen&#8221; kann auch ausgedruckt und zu Archivierungszwecken aufbewahrt werden.</p>
+<h5>Schritte</h5><ol><li><p><b>Klicken Sie in der Tabelle &#8220;Zugewiesene Profile&#8221; auf die Schaltfl&auml;che &#8220;Geltende Einstellungen&#8221;.</b></p><p>Beim ersten &Ouml;ffnen werden die geltenden Einstellungen f&uuml;r das im Navigationsbaum ausgew&auml;hlte Element angezeigt.</p>
+<p>Das Fenster &#8220;Geltende Einstellungen&#8221; ist in zwei Bereiche unterteilt:</p>
+<ul><li><p>Im Bereich &#8220;Geltende Einstellungen generieren mit&#8221; des Abschnitts &#8220;Parameter f&uuml;r geltende Einstellungen &auml;ndern&#8221; k&ouml;nnen Sie festlegen, welche B&auml;ume einbezogen werden sollen. Mithilfe der Option &#8220;W&auml;hlen Sie ein Element aus dem Dom&auml;nenbaum aus&#8221; k&ouml;nnen Sie ausw&auml;hlen, f&uuml;r welche Entit&auml;ten ein Bericht vom Typ &#8220;Geltende Einstellungen&#8221; generiert werden soll. Verwenden Sie die Schaltfl&auml;che &#8220;Durchsuchen&#8221;, um im Organisations- oder Dom&auml;nenbaum ein Element auszuw&auml;hlen.</p>
+</li>
+<li><p>Im Abschnitt &#8220;Geltende Einstellungen&#8221; wird Folgendes angezeigt:</p>
+<ul><li><p>Position des ausgew&auml;hlten Elements in der Hierarchie und der Hostname</p>
+</li>
+<li><p>Uhrzeit und Datum der Erstellung des aktuellen Berichts f&uuml;r die geltenden Einstellungen</p>
+</li>
+<li><p>Liste der Profile, die vom Generieren des Berichts f&uuml;r die geltenden Einstellungen f&uuml;r das aktuelle Element betroffen sind (Abschnitt &#8220;Betroffene Profile&#8221;) Sie werden absteigend nach Relevanz in der Zusammenf&uuml;hrungsreihenfolge angezeigt. Jedes Profil ist ein Link, auf den Sie klicken k&ouml;nnen, um das Fenster &#8220;Profileditor&#8221; f&uuml;r das Profil zu &ouml;ffnen.</p>
+</li>
+<li><p>Im Bereich &#8220;Einstellungs&uuml;bersicht&#8221; werden die Konfigurationseinstellungen f&uuml;r den aktuellen Bericht f&uuml;r die geltenden Einstellungen in Kategorien gruppiert angezeigt. Dieser Bereich enth&auml;lt die Felder &#8220;Name&#8221;, &#8220;Wert&#8221; und &#8220;Status&#8221;.</p>
+<p>Die Statusspalte enth&auml;lt Eintr&auml;ge der Art &#8220;Definiert in &lt;Profilname>&#8221;, wobei &lt;Profilname> ein Link ist, mit dem Sie das Register &#8220;Konfigurationseinstellungen&#8221; des Profileditors aufrufen und zur entsprechenden Einstellung innerhalb dieses Profils wechseln k&ouml;nnen.</p>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><p><b>Sie k&ouml;nnen einen bereits generierten Bericht f&uuml;r die geltenden Einstellungen bearbeiten, indem Sie relevante Parameter der geltenden Einstellungen &auml;ndern und anschlie&szlig;end im oberen Bereich des Fensters &#8220;Geltende Einstellungen&#8221; auf die Schaltfl&auml;che &#8220;Geltende Einstellungen generieren&#8221; klicken.</b> </p><p>Ein neuer Bericht wird erstellt und im Fenster &#8220;Geltende Einstellungen&#8221; angezeigt.</p>
+</li>
+<li><p><b>Wenn Sie einen Bericht f&uuml;r die geltenden Einstellungen ausdrucken m&ouml;chten, klicken Sie im oberen bzw. unteren Bereich des Fensters &#8220;Geltende Einstellungen&#8221; auf die Schaltfl&auml;che &#8220;Drucken&#8221;.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgpa.html b/webconsole/html/de/help/gbgpa.html
new file mode 100644
index 0000000..cdc22d3
--- /dev/null
+++ b/webconsole/html/de/help/gbgpa.html
@@ -0,0 +1,29 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Suchen nach Elementen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpa"></A><h4>Suchen nach Elementen</h4>
+<p>Mit der Suchfunktion k&ouml;nnen Sie eine rekursive Suche nach einem Element in der Dom&auml;nen- oder Organisationshierarchie durchf&uuml;hren. Es werden nicht nur die direkt untergeordneten Elemente eines Elements gesucht, sondern alle untergeordneten Elemente. Es steht au&szlig;erdem eine Suchfunktion zur Verf&uuml;gung, mit der Sie ausschlie&szlig;lich nach Elementen suchen k&ouml;nnen, die einem anderen Element direkt untergeordnet sind.</p>
+<p>Bei einer Suche wird das Fenster &#8220;Suchen&#8221; ge&ouml;ffnet, in dem Sie eine erweiterte Suche durchf&uuml;hren k&ouml;nnen.</p>
+<h5>Schritte</h5><ol><li><p><b>Geben Sie in das Suchfeld den Namen beziehungsweise einen Teil des Namens eines Elements ein, nach dem Sie suchen m&ouml;chten.</b></p><p><hr size="1" noshade><p><b>Hinweis &#8211; </b>Die Suche unterscheidet nicht nach Gro&szlig;- und Kleinschreibung und ist nicht streng. Das hei&szlig;t beispielsweise, dass f&uuml;r den Suchbegriff &#8220;bc&#8221; die Elemente &#8220;ABC&#8221; und &#8220;bcd&#8221; gefunden werden. Ein Asterisk (*) stellt eine beliebige Zeichenfolge in einem Suchbegriff dar. Der Suchbegriff kann mehrere Asteriske enthalten und ihre Position innerhalb des Suchbegriffs ist frei w&auml;hlbar. Ein leeres Feld entspricht dem Suchbegriff &#8220;*&#8221;.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Klicken Sie auf die Schaltfl&auml;che &#8220;Suchen&#8221;.</b></p><p>Das Fenster "Suchen" wird aufgerufen. Eine in das Suchfeld des Navigationsbereichs eingegebene Zeichenfolge wird in das Suchfeld des Fensters &#8220;Suchen&#8221; &uuml;bernommen und es wird automatisch eine Suche nach diesem Suchbegriff durchgef&uuml;hrt. Die Treffer der Suche werden in der Ergebnistabelle aufgef&uuml;hrt, die den Namen, Typ und Pfad aller gefundenen Elemente anzeigt.</p>
+<p><hr size="1" noshade><p><b>Hinweis &#8211; </b>Es werden maximal 100 Suchergebnisse angezeigt.</p>
+<hr size="1" noshade></p><p>Wurden keine Ergebnisse gefunden oder haben Sie das Suchfeld im Navigationsbereich leer gelassen, k&ouml;nnen Sie im Suchfeld des Fensters &#8220;Suchen&#8221; den Namen eines Elements eingeben. </p>
+<p><hr size="1" noshade><p><b>Tipp &#8211; </b>Verwenden Sie die Liste zum &Auml;ndern des Typs, die sich neben dem Suchfeld befindet, um nach Elementen eines bestimmten Typs (beispielsweise &#8220;Dom&auml;nen suchen&#8221;) zu suchen.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Bei Bedarf k&ouml;nnen Sie auf die Schaltfl&auml;che &#8220;Erweiterte Optionen anzeigen&#8221; klicken, um der Suche erweiterte Optionen hinzuzuf&uuml;gen.</b></p><p>Folgende erweiterte Optionen stehen zur Verf&uuml;gung:</p>
+<ul><li><p>Beschr&auml;nken auf: Hier k&ouml;nnen Sie angeben, bei welchem Element der Suchalgorithmus die Suche im Baum beginnen soll.</p>
+</li>
+<li><p>Angezeigte Ergebnisse pro Seite: Hier k&ouml;nnen Sie festlegen, wie viele Ergebnisse auf jeder Seite der Ergebnistabelle angezeigt werden sollen.</p>
+</li>
+</ul>
+</li>
+<li><p><b>Klicken Sie erneut auf die Schaltfl&auml;che &#8220;Suchen&#8221;, um die Ergebnisse einer neuen oder ge&auml;nderten Suche anzuzeigen.</b></p><p><hr size="1" noshade><p><b>Hinweis &#8211; </b>Durch Klicken auf die Schaltfl&auml;che &#8220;Zur&uuml;cksetzen&#8221; werden alle Suchparameter auf ihre Vorgaben zur&uuml;ckgesetzt und ein gegebenenfalls im Suchfeld eingegebener Suchbegriff wird gel&ouml;scht.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgpb.html b/webconsole/html/de/help/gbgpb.html
new file mode 100644
index 0000000..e2e8df7
--- /dev/null
+++ b/webconsole/html/de/help/gbgpb.html
@@ -0,0 +1,17 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Festlegen der allgemeinen Eigenschaften f&uuml;r ein Profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpb"></A><h4>Festlegen der allgemeinen Eigenschaften f&uuml;r ein Profil</h4>
+<h5>Schritte</h5><ol><li><p><b>Geben Sie im Feld &#8220;Name&#8221; den gew&uuml;nschten Namen f&uuml;r das Profil ein.</b></p></li>
+<li><p><b>Geben Sie bei Bedarf im Feld &#8220;Kommentar&#8221; einen Kommentar ein.</b></p><p>Sie k&ouml;nnen dieses Feld auch leer lassen.</p>
+<p><hr size="1" noshade><p><b>Hinweis &#8211; </b>Die Felder &#8220;Autor&#8221; und &#8220;Letzte &Auml;nderung am&#8221; sind schreibgesch&uuml;tzt und k&ouml;nnen nicht ge&auml;ndert werden. Im Feld &#8220;Autor&#8221; wird der Name des Profilautors und im Feld &#8220;Letzte &Auml;nderung am&#8221; werden Datum und Uhrzeit der letzten &Auml;nderung des Profils angezeigt.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Klicken Sie auf die Schaltfl&auml;che &#8220;Speichern&#8221;.</b></p><p>Wenn Sie das Fenster schlie&szlig;en, ohne neu eingegebene Informationen gespeichert zu haben, wird ein Warndialog angezeigt, der Sie zum Speichern der Einstellungen auffordert.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgpe.html b/webconsole/html/de/help/gbgpe.html
new file mode 100644
index 0000000..21b3041
--- /dev/null
+++ b/webconsole/html/de/help/gbgpe.html
@@ -0,0 +1,13 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>L&ouml;schen eines Profils </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpe"></A><h3>L&ouml;schen eines Profils</h3>
+<h5>Schritte</h5><ol><li><p><b>W&auml;hlen Sie das Kontrollk&auml;stchen f&uuml;r das zu l&ouml;schende Profil aus.</b></p></li>
+<li><p>Klicken Sie auf die Schaltfl&auml;che <b>L&ouml;schen</b>.</p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgpj.html b/webconsole/html/de/help/gbgpj.html
new file mode 100644
index 0000000..c7690fb
--- /dev/null
+++ b/webconsole/html/de/help/gbgpj.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Importieren von Profilen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpj"></A><h3>Importieren von Profilen</h3>
+<h5>Schritte</h5><ol><li><p><b>Stellen Sie sicher, dass keines der Kontrollk&auml;stchen ausgew&auml;hlt ist.</b></p></li>
+<li><p><b>W&auml;hlen Sie in der Liste &#8220;Aktionen&#8221; die Option &#8220;Importieren&#8221;.</b></p><p>Das Dialogfeld zum Importieren von Profilen wird ge&ouml;ffnet.</p>
+</li>
+<li><p><b>Geben Sie den Pfad der zu importierenden Datei ein, oder klicken Sie auf die Schaltfl&auml;che &#8220;Durchsuchen&#8221;, um das Standarddialogfeld Ihres Betriebssystems f&uuml;r das Ausw&auml;hlen von Dateien zu &ouml;ffnen.</b></p></li>
+<li><p><b>Klicken Sie auf die Schaltfl&auml;che &#8220;Importieren&#8221;.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgpm.html b/webconsole/html/de/help/gbgpm.html
new file mode 100644
index 0000000..d3b6a46
--- /dev/null
+++ b/webconsole/html/de/help/gbgpm.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Zuweisen von Elementen zu Profilen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpm"></A><h4>Zuweisen von Elementen zu Profilen</h4>
+<h5>Schritte</h5><ol><li><p><b>Klicken Sie auf die Schaltfl&auml;che &#8220;Element zuweisen&#8221;.</b></p><p>Ein Fenster mit einer Navigationsstruktur wird angezeigt.</p>
+</li>
+<li><p><b>W&auml;hlen Sie das gew&uuml;nschte Element in der Struktur aus.</b></p><p><hr size="1" noshade><p><b>Tipp &#8211; </b>Wenn Sie das gew&uuml;nschte Element nicht finden k&ouml;nnen, klicken Sie auf die Schaltfl&auml;che &#8220;Suchen&#8221;, um das Fenster &#8220;Suchen&#8221; zu &ouml;ffnen, in dem Sie das Element suchen k&ouml;nnen.</p>
+<hr size="1" noshade></p><p>Das Element wird nun in der Tabelle &#8220;Zugewiesene Elemente&#8221; als dem aktuellen Profil zugewiesen angezeigt.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgpn.html b/webconsole/html/de/help/gbgpn.html
new file mode 100644
index 0000000..6c81960
--- /dev/null
+++ b/webconsole/html/de/help/gbgpn.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Zuweisen von Profilen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpn"></A><h4>Zuweisen von Profilen</h4>
+<h5>Schritte</h5><ol><li><p><b>Klicken Sie auf die Schaltfl&auml;che &#8220;Profil zuweisen&#8221;.</b></p><p>Ein Dialogfeld mit allen verf&uuml;gbaren Profilen, die dem ausgew&auml;hlten Element zugewiesen werden k&ouml;nnen, wird ge&ouml;ffnet. </p>
+<p><hr size="1" noshade><p><b>Hinweis &#8211; </b>Dem ausgew&auml;hlten Element bereits zugewiesene Profile sowie Profile, die nicht am oder oberhalb des derzeit ausgew&auml;hlten Elements gespeichert sind, werden nicht aufgef&uuml;hrt.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>W&auml;hlen Sie eines oder mehrere der aufgef&uuml;hrten Profile aus und klicken Sie auf &#8220;OK&#8221;.</b></p><p>Die neu zugewiesenen Profile werden nun in der Tabelle &#8220;Zugewiesene Profile&#8221; angezeigt.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgpp.html b/webconsole/html/de/help/gbgpp.html
new file mode 100644
index 0000000..1b08310
--- /dev/null
+++ b/webconsole/html/de/help/gbgpp.html
@@ -0,0 +1,14 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Aufheben der Zuweisung von Elementen zu Profilen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpp"></A><h4>Aufheben der Zuweisung von Elementen zu Profilen</h4>
+<h5>Schritte</h5><ol><li><p><b>W&auml;hlen Sie das Kontrollk&auml;stchen f&uuml;r das Element aus, dessen Zuweisung Sie aufheben m&ouml;chten.</b></p></li>
+<li><p><b>Klicken Sie auf die Schaltfl&auml;che &#8220;Elementzuweisung aufheben&#8221;.</b></p><p>Das Element ist nun nicht mehr dem aktuellen Profil zugewiesen und wird nicht mehr in der Tabelle &#8220;Zugewiesene Elemente&#8221; angezeigt.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgpr.html b/webconsole/html/de/help/gbgpr.html
new file mode 100644
index 0000000..d10cbb8
--- /dev/null
+++ b/webconsole/html/de/help/gbgpr.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>L&ouml;schen von Profilen
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgpr"></A><h4>L&ouml;schen von Profilen</h4>
+<h5>Schritte</h5><ol><li><p><b>Aktivieren Sie das Kontrollk&auml;stchen f&uuml;r das zu l&ouml;schende Profil.</b></p><p>Ein Best&auml;tigungsdialogfeld wird ge&ouml;ffnet.</p>
+<hr size="1" noshade><p><IMG ALT="Achtung" src="graphics/caution.gif"> <b>Achtung &ndash; </b>Beachten Sie, dass mit dem Befehl &quot;L&ouml;schen&quot; alle Zuweisungen entfernt werden und danach das Profil selbst gel&ouml;scht wird. Danach besteht keine M&ouml;glichkeit mehr, es wiederherzustellen. Wenn Sie ein Profil l&ouml;schen, werden auch Zuweisungen zu anderen Elementen als dem aktuellen Element entfernt. Wenn Sie nur die Profilzuweisung aus einem Element entfernen m&ouml;chten, verwenden Sie &quot;Zuweisung aufheben&quot;.</p><hr size="1" noshade></li>
+<li><p><b>Klicken Sie auf die Schaltfl&auml;che &quot;L&ouml;schen&quot;.</b></p></li>
+<li><p><b>Wenn Sie das Profil wirklich l&ouml;schen m&ouml;chten, klicken Sie im Best&auml;tigungsdialogfeld auf &quot;OK&quot;.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgps.html b/webconsole/html/de/help/gbgps.html
new file mode 100644
index 0000000..1c1c424
--- /dev/null
+++ b/webconsole/html/de/help/gbgps.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Importieren von Profilen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgps"></A><h4>Importieren von Profilen</h4>
+<h5>Schritte</h5><ol><li><p><b>Stellen Sie sicher, dass keines der Kontrollk&auml;stchen ausgew&auml;hlt ist.</b></p></li>
+<li><p><b>W&auml;hlen Sie in der Liste &#8220;Aktionen&#8221; die Option &#8220;Importieren&#8221;.</b></p><p>Das Dialogfeld zum Importieren von Profilen wird ge&ouml;ffnet.</p>
+</li>
+<li><p><b>Geben Sie den Pfad der zu importierenden Datei ein, oder klicken Sie auf die Schaltfl&auml;che &#8220;Durchsuchen&#8221;, um das Standarddialogfeld Ihres Betriebssystems f&uuml;r das Ausw&auml;hlen von Dateien zu &ouml;ffnen.</b></p></li>
+<li><p><b>Klicken Sie auf die Schaltfl&auml;che &#8220;Importieren&#8221;.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgpt.html b/webconsole/html/de/help/gbgpt.html
new file mode 100644
index 0000000..7029e5a
--- /dev/null
+++ b/webconsole/html/de/help/gbgpt.html
@@ -0,0 +1,43 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Tabelle &#8220;Konfigurationsdatensammlungen&#8221; </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpt"></A><h3>Tabelle &#8220;Konfigurationsdatensammlungen&#8221;</h3>
+<p>Die Tabelle &#8220;Konfigurationsdatensammlungen&#8221; hat f&uuml;nf Spalten:</p>
+<ul><li><p>Die Spalte &#8220;Auswahl&#8221; enth&auml;lt Kontrollk&auml;stchen zum Ausw&auml;hlen von Datensammlungen.</p>
+<p>Wenn Sie eine oder mehrere Datensammlungen ausw&auml;hlen, werden die Funktionen &#8220;Entfernen&#8221;, &#8220;Umbenennen&#8221; und &#8220;Synchronisieren&#8221; aktiviert.</p>
+<p><hr size="1" noshade><p><b>Hinweis &#8211; </b>Ist eine Datensammlung ausgew&auml;hlt, ist die Schaltfl&auml;che &#8220;Neu&#8221; nicht verf&uuml;gbar.</p>
+<hr size="1" noshade></p></li>
+<li><p>Name: Enth&auml;lt die Namen der Datensammlungen</p>
+<p>Die Spalte &#8220;Name&#8221; enth&auml;lt Links. Wenn Sie auf einen dieser Links klicken, wird die Ansicht &#8220;Konfigurationsdatensammlungen&#8221; durch die Seite &#8220;Profileditor&#8221; f&uuml;r die ausgew&auml;hlte Datensammlung ersetzt.</p>
+</li>
+<li><p>Typ: Gibt den Typ (&#8220;LDAP&#8221;, &#8220;Datei&#8221; oder &#8220;Kombiniert&#8221;) an.</p>
+<ul><li><p>LDAP: Eine LDAP-Datensammlung liest die Organisationsstruktur (Benutzer, Organisation, Hosts, Dom&auml;nen usw.) des Unternehmens aus einem LDAP-Server aus, und liest und schreibt die Konfigurationseinstellungen von demselben bzw. auf denselben LDAP-Server . </p>
+</li>
+<li><p>Datei: Eine dateibasierte Datensammlung liest die Organisationsstruktur des Unternehmens aus dem Dateisystem aus und liest und schreibt die Konfigurationseinstellungen mithilfe desselben Dateisystems. </p>
+</li>
+<li><p>Kombiniert: Eine kombinierte Datensammlung liest die Organisationsstruktur des Unternehmens von einem LDAP-Server aus und liest und schreibt die Konfigurationseinstellungen in ein Dateisystem.</p>
+</li>
+</ul>
+</li>
+<li><p>Speicherort Organisationsdaten: Entweder eine Datei (im Fall einer dateibasierten Datensammlung) oder ein LDAP-URL (im Fall einer LDAP- oder kombinierten Datensammlung). Legt den Speicherort der Organisationsdaten fest.</p>
+</li>
+<li><p>Speicherort Profildaten: Entweder eine Datei (im Fall einer dateibasierten Datensammlung) oder ein LDAP-URL (im Fall einer LDAP- oder kombinierten Datensammlung). Legt den Speicherort der Konfigurationseinstellungen fest. Profile sind Sammlungen von Konfigurationseinstellungen, die einen Namen haben und Benutzern, Organisationen, Hosts und Dom&auml;nen zugewiesen werden.</p>
+</li>
+</ul>
+<p>In der Tabelle &#8220;Konfigurationsdatensammlungen&#8221; k&ouml;nnen Sie die folgenden Aktionen durchf&uuml;hren:</p>
+<ul><li><p><A HREF="gbgcn.html#gbgcn">Neu</A>: Erstellt eine neue Konfigurationsdatensammlung. </p>
+</li>
+<li><p>Entfernen: Entfernt eine Konfigurationsdatensammlung.</p>
+</li>
+<li><p>Umbenennen: Benennt eine Konfigurationsdatensammlung um.</p>
+</li>
+<li><p><A HREF="gbgqm.html#gbgqm">Synchronisieren</A>: Synchronisiert die Konfigurationsdatensammlungen.</p>
+<p>Diese Funktion ist nur verf&uuml;gbar, wenn eine oder zwei Datensammlungen ausgew&auml;hlt sind.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgpu.html b/webconsole/html/de/help/gbgpu.html
new file mode 100644
index 0000000..d320ffe
--- /dev/null
+++ b/webconsole/html/de/help/gbgpu.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Umbenennen von Profilen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpu"></A><h3>Umbenennen von Profilen</h3>
+<h5>Schritte</h5><ol><li><p><b>W&auml;hlen Sie das Kontrollk&auml;stchen f&uuml;r das umzubenennende Profil aus.</b></p></li>
+<li><p><b>W&auml;hlen Sie in der Liste &#8220;Aktionen&#8221; die Option &#8220;Umbenennen&#8221;.</b></p><p>Ein Dialogfeld wird angezeigt.</p>
+</li>
+<li><p><b>Geben Sie den neuen Namen f&uuml;r das Profil in das Textfeld des Dialogfelds ein und klicken Sie auf &#8220;OK&#8221;.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgpw.html b/webconsole/html/de/help/gbgpw.html
new file mode 100644
index 0000000..11ba7aa
--- /dev/null
+++ b/webconsole/html/de/help/gbgpw.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Umbenennen von Profilen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpw"></A><h4>Umbenennen von Profilen</h4>
+<h5>Schritte</h5><ol><li><p><b>W&auml;hlen Sie das Kontrollk&auml;stchen f&uuml;r das umzubenennende Profil aus.</b></p></li>
+<li><p><b>W&auml;hlen Sie in der Liste &#8220;Aktionen&#8221; die Option &#8220;Umbenennen&#8221;.</b></p><p>Das Dialogfeld &#8220;Umbenennen&#8221; wird ge&ouml;ffnet.</p>
+</li>
+<li><p><b>Geben Sie den neuen Namen f&uuml;r das Profil in das Textfeld des Dialogfelds ein und klicken Sie auf &#8220;OK&#8221;.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgqa.html b/webconsole/html/de/help/gbgqa.html
new file mode 100644
index 0000000..eee15b4
--- /dev/null
+++ b/webconsole/html/de/help/gbgqa.html
@@ -0,0 +1,24 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Fenster &#8220;Konfigurationsdatensammlungen&#8221; </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqa"></A><h2>Fenster &#8220;Konfigurationsdatensammlungen&#8221;</h2>
+<p>In Konfigurationsdatensammlungen werden die Konfigurationsdaten gespeichert, die Sie f&uuml;r die Konfiguration Ihrer Anwendungen ben&ouml;tigen. Au&szlig;erdem werden hier Informationen zur Organisationshierarchie und zu den Profil- und Zuweisungsdaten f&uuml;r jedes Element gespeichert. Im Fenster &#8220;Konfigurationsdatensammlungen&#8221; k&ouml;nnen Sie neue Datensammlungen erstellen sowie mit vorhandenen Datensammlungen arbeiten und diese synchronisieren.</p>
+<p>Das Fenster &#8220;Konfigurationsdatensammlungen&#8221; besteht aus einem Titelrahmen und der Liste &#8220;Konfigurationsdatensammlungen&#8221;.</p>
+<p>Dar&uuml;ber hinaus enth&auml;lt der Titelrahmen (auch &#8220;Impressum&#8221; genannt) einige allgemeine Links: Der obere Teil des Titelrahmens enth&auml;lt eine Leiste mit vier Links. Diese sind (von link nach rechts):</p>
+<ul><li><p>Konsolenschaltfl&auml;che zum &Ouml;ffnen der Java Web Console-Startseite</p>
+</li>
+<li><p>Versionsschaltfl&auml;che zum &Ouml;ffnen eines Fensters mit Versionsinformationen zu Desktop Manager</p>
+</li>
+<li><p>Abmeldeschaltfl&auml;che zum Abmelden von Java Web Console und somit auch von Configuration Manager (Anmeldeseite wird angezeigt)</p>
+</li>
+<li><p>Hilfeschaltfl&auml;che zum &Ouml;ffnen der Online-Hilfe </p>
+</li>
+</ul>
+<p>Im unteren Bereich des Titelrahmens werden der Name des Produkts, des Servers und des derzeit angemeldeten Administrators angezeigt.</p>
+<p>Siehe <A HREF="gbgpt.html#gbgpt">Tabelle &#8220;Konfigurationsdatensammlungen&#8221;</A>, <A HREF="gbgcn.html#gbgcn">Erstellen neuer Konfigurationsdatensammlungen</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgqe.html b/webconsole/html/de/help/gbgqe.html
new file mode 100644
index 0000000..28f2da5
--- /dev/null
+++ b/webconsole/html/de/help/gbgqe.html
@@ -0,0 +1,13 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Zuweisen von Zusammenf&uuml;hrungsreihenfolgen zu Profilen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqe"></A><h4>Zuweisen von Zusammenf&uuml;hrungsreihenfolgen zu Profilen</h4>
+<h5>Schritte</h5><ol><li><p><b>W&auml;hlen Sie das gew&uuml;nschte Profil in der Liste aus.</b></p></li>
+<li><p><b>Verschieben Sie das Profil mithilfe der Schaltfl&auml;chen rechts der Liste innerhalb der Liste nach oben bzw. unten.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgqf.html b/webconsole/html/de/help/gbgqf.html
new file mode 100644
index 0000000..817de46
--- /dev/null
+++ b/webconsole/html/de/help/gbgqf.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Kopieren und Verschieben von Profilen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqf"></A><h4>Kopieren und Verschieben von Profilen</h4>
+<h5>Schritte</h5><ol><li><p><b>W&auml;hlen Sie das Kontrollk&auml;stchen f&uuml;r das zu kopierende bzw. verschiebende Profil aus.</b></p></li>
+<li><p><b>W&auml;hlen Sie in der Liste &#8220;Aktionen&#8221; die Option &#8220;Kopieren und verschieben&#8221;.</b></p><p>Der Assistent f&uuml;r das Kopieren und Verschieben wird ge&ouml;ffnet.</p>
+</li>
+<li><p><b>Befolgen Sie die Anweisungen dieses Assistenten zum Durchf&uuml;hren der Aufgabe.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgqh.html b/webconsole/html/de/help/gbgqh.html
new file mode 100644
index 0000000..1a6ea0b
--- /dev/null
+++ b/webconsole/html/de/help/gbgqh.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Exportieren von Profilen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqh"></A><h4>Exportieren von Profilen</h4>
+<h5>Schritte</h5><ol><li><p><b>W&auml;hlen Sie das Kontrollk&auml;stchen f&uuml;r das zu exportierende Profil aus.</b></p></li>
+<li><p><b>W&auml;hlen Sie in der Liste &#8220;Aktionen&#8221; die Option &#8220;Exportieren&#8221;.</b></p><p>Ein Dialogfeld wird ge&ouml;ffnet, in dem Sie ausw&auml;hlen k&ouml;nnen, wo die exportierte Datei gespeichert werden soll.</p>
+</li>
+<li><p><b>W&auml;hlen Sie die Option zum Speichern auf einem Datentr&auml;ger und klicken Sie auf &#8220;OK&#8221;.</b></p></li>
+<li><p><b>W&auml;hlen Sie den Speicherort f&uuml;r die exportierte Datei aus und klicken Sie auf &#8220;OK&#8221;.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgqj.html b/webconsole/html/de/help/gbgqj.html
new file mode 100644
index 0000000..41eb6e0
--- /dev/null
+++ b/webconsole/html/de/help/gbgqj.html
@@ -0,0 +1,14 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Aufheben der Zuweisung von Profilen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqj"></A><h4>Aufheben der Zuweisung von Profilen</h4>
+<h5>Schritte</h5><ol><li><p><b>W&auml;hlen Sie das Kontrollk&auml;stchen f&uuml;r das Profil aus, dessen Zuweisung Sie aufheben m&ouml;chten.</b></p></li>
+<li><p><b>Klicken Sie auf die Schaltfl&auml;che &#8220;Profilzuweisung aufheben&#8221;.</b></p><p>Das Profil ist nun nicht mehr zugewiesen und wird nicht mehr in der Tabelle &#8220;Zugewiesene Profile&#8221; angezeigt.</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>Warnung &#8211; </b>Dieser Vorgang wird ohne vorherigen Warndialog durchgef&uuml;hrt. Haben Sie versehentlich eine Profilzuweisung aufgehoben, k&ouml;nnen Sie die Zuweisung mithilfe der Funktion &#8220;Profil zuweisen&#8221; wiederherstellen.</p><hr size="1" noshade></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgqm.html b/webconsole/html/de/help/gbgqm.html
new file mode 100644
index 0000000..2f1f56d
--- /dev/null
+++ b/webconsole/html/de/help/gbgqm.html
@@ -0,0 +1,29 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Synchronisieren von Konfigurationsdatensammlungen </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqm"></A><h4>Synchronisieren von Konfigurationsdatensammlungen</h4>
+<p>Mit Desktop Manager k&ouml;nnen Sie mehrere Datenquellen parallel verwalten. Dies erm&ouml;glicht es, eine Datenquelle als Test- und eine andere als Produktionssystem zu definieren. &Auml;nderungen an der Konfiguration k&ouml;nnen nun zun&auml;chst auf dem Testsystem vorgenommen und getestet werden. Anschlie&szlig;end k&ouml;nnen Sie die Testdatenquelle teilweise oder vollst&auml;ndig mit der Produktionsdatenquelle <i>synchronisieren</i>, um die erforderlichen &Auml;nderungen schnell und sicher auf dem Produktionssystem vorzunehmen. Diese Methode kann auch f&uuml;r einfache Sicherungs- und Wiederherstellungszwecke f&uuml;r die Produktionsdatenquelle verwendet werden. Diese Synchronisation k&ouml;nnen Sie im Fenster &#8220;Synchronisation&#8221; durchf&uuml;hren.</p>
+<p></p>
+<h5>Schritte</h5><ol><li><p><b>W&auml;hlen Sie im Fenster &#8220;Konfigurationsdatensammlungen&#8221; die zu synchronisierenden Datensammlungen aus.</b></p><p>Das Fenster &#8220;Synchronisation&#8221; wird ge&ouml;ffnet.</p>
+</li>
+<li><p><b>W&auml;hlen Sie die Quelldatensammlung aus der Liste &#8220;Quellkonfigurationsdatensammlung&#8221; aus.</b></p><p>Sie k&ouml;nnen die Quelldatensammlung, die als Quelle f&uuml;r die &Auml;nderungen dient, &auml;ndern. Diese Datensammlung wird <i>nicht</i> ge&auml;ndert. </p>
+</li>
+<li><p>(Optional) <b>Sie k&ouml;nnen die Quelldatensammlung einschr&auml;nken, indem Sie neben &#8220;Quellstartpunkt&#8221; auf die Schaltfl&auml;che &#8220;&Auml;ndern&#8221; klicken.</b></p><p>Auf diese Weise k&ouml;nnen Sie ein anderes Element als die Wurzel als Quellstartpunkt f&uuml;r die Synchronisation angeben.</p>
+<p>Ein Dialogfeld wird ge&ouml;ffnet, in dem Sie zum gew&uuml;nschten Organisations- oder Dom&auml;nenelement wechseln k&ouml;nnen. Ist ein neues Element ausgew&auml;hlt, wird der neue Pfad unter &#8220;Quellstartpunkt&#8221; angezeigt.</p>
+</li>
+<li><p><b>W&auml;hlen Sie die Zieldatensammlung aus der Liste &#8220;Zielkonfigurationsdatensammlung&#8221; aus.</b></p><p>Sie k&ouml;nnen die Zieldatensammlung, die als Ziel f&uuml;r die &Auml;nderungen dient, &auml;ndern. Diese Datensammlung <i>wird</i> ge&auml;ndert. </p>
+</li>
+<li><p>(Optional) <b>Sie k&ouml;nnen die Zieldatensammlung einschr&auml;nken, indem Sie neben &#8220;Zielstartpunkt&#8221; auf die Schaltfl&auml;che &#8220;&Auml;ndern&#8221; klicken.</b> </p><p>Auf diese Weise k&ouml;nnen Sie ein anderes Element als Ziel f&uuml;r die Synchronisation angeben.</p>
+<p>Ein Dialogfeld wird ge&ouml;ffnet, in dem Sie zum gew&uuml;nschten Organisations- oder Dom&auml;nenelement wechseln k&ouml;nnen. Ist ein neues Element ausgew&auml;hlt, wird der neue Pfad unter &#8220;Zielstartpunkt&#8221; angezeigt.</p>
+</li>
+<li><p><b>Klicken Sie auf die Schaltfl&auml;che &#8220;Vergleichen&#8221;.</b></p><p>Die beiden B&auml;ume werden verglichen und die Unterschiede in einer Tabelle aufgef&uuml;hrt. </p>
+</li>
+<li><p><b>W&auml;hlen Sie die Kontrollk&auml;stchen neben den Tabellenzeilen mit den zu synchronisierenden Profilen aus und klicken Sie auf die Schaltfl&auml;che &#8220;Synchronisieren&#8221;.</b> </p><p>Nach Abschluss der Synchronisation entsprechen die Profile in der Zieldatensammlung denen der Quelldatensammlung.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgqt.html b/webconsole/html/de/help/gbgqt.html
new file mode 100644
index 0000000..17def34
--- /dev/null
+++ b/webconsole/html/de/help/gbgqt.html
@@ -0,0 +1,20 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Verwenden der Funktion &#8220;Suchen&#8221; </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqt"></A><h4>Verwenden der Funktion &#8220;Suchen&#8221;</h4>
+<p>Mit der Funktion &#8220;Suchen&#8221; k&ouml;nnen Sie nach allen Elementen suchen, die dem erweiterten Element <i>direkt</i> untergeordnet sind. Diese Funktion verh&auml;lt sich anders als die klassische Suchfunktion, die rekursiv nach Elementen sucht.</p>
+<h5>Schritte</h5><ol><li><p><b>Klicken Sie in der Baumstruktur f&uuml;r die Navigation auf den Knoten &#8220;Einige Elemente werden nicht angezeigt&#8221;.</b></p><p>Das Fenster &#8220;Suchen&#8221; wird ge&ouml;ffnet.</p>
+</li>
+<li><p><b>Geben Sie im Feld &#8220;Suchen&#8221; den Suchbegriff ein.</b> </p><p>Die Suche unterscheidet nicht nach Gro&szlig;- und Kleinschreibung und ist nicht streng. Das hei&szlig;t beispielsweise, dass f&uuml;r den Suchbegriff &#8220;bc&#8221; die Elemente &#8220;ABC&#8221; und &#8220;bcd&#8221; gefunden werden. Ein Asterisk (*) stellt eine beliebige Zeichenfolge in einem Suchbegriff dar. Der Suchbegriff kann mehrere Asteriske enthalten und ihre Position innerhalb des Suchbegriffs ist frei w&auml;hlbar. Ein leeres Feld entspricht dem Suchbegriff &#8220;*&#8221;.</p>
+</li>
+<li><p><b>Klicken Sie auf die Schaltfl&auml;che &#8220;Suchen&#8221;.</b></p><p>Eine Ergebnisliste wird angezeigt. Es werden maximal 100 Treffer angezeigt.</p>
+</li>
+<li><p><b>Wenn Sie der Baumstruktur f&uuml;r die Navigation ein gefundenes Element hinzuf&uuml;gen m&ouml;chten, klicken Sie im Suchergebnis auf das gew&uuml;nschte Element.</b></p><p>Das Fenster &#8220;Suchen&#8221; wird geschlossen und das Element wird der Liste von Teilknoten in der Baumstruktur f&uuml;r die Navigation hinzugef&uuml;gt.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbgqu.html b/webconsole/html/de/help/gbgqu.html
new file mode 100644
index 0000000..7dfe78e
--- /dev/null
+++ b/webconsole/html/de/help/gbgqu.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>&Auml;ndern des Speicherorts f&uuml;r &#8220;Anwendung von&#8221; </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Leeres Script, damit in IE5.0-Fenstern Tabellen- und Schaltfl&auml;chenrahmen gezeichnet werden --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqu"></A><h4>&Auml;ndern des Speicherorts f&uuml;r &#8220;Anwendung von&#8221;</h4>
+<h5>Schritte</h5><ol><li><p><b>Klicken Sie auf die Schaltfl&auml;che &#8220;&Auml;ndern&#8221;.</b></p><p>Ein Fenster mit einer Baumstruktur f&uuml;r die Navigation wird angezeigt.</p>
+</li>
+<li><p><b>W&auml;hlen Sie in der Baumstruktur das gew&uuml;nschte Element aus.</b></p><p><hr size="1" noshade><p><b>Tipp &#8211; </b>Wenn Sie das gew&uuml;nschte Element nicht finden k&ouml;nnen, klicken Sie auf die Schaltfl&auml;che &#8220;Suchen&#8221;, um das Fenster &#8220;Suchen&#8221; zu &ouml;ffnen, indem Sie das Element suchen k&ouml;nnen.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Klicken Sie auf die Schaltfl&auml;che &#8220;OK&#8221;.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbzbc.html b/webconsole/html/de/help/gbzbc.html
new file mode 100644
index 0000000..630718c
--- /dev/null
+++ b/webconsole/html/de/help/gbzbc.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Entfernen einer Konfigurationsdatensammlung
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbzbc"></A><h4>Entfernen einer Konfigurationsdatensammlung</h4>
+<A NAME="indexterm-15"></A><h5>Schritte</h5><ol><li><p><b>Aktivieren Sie das Kontrollk&auml;stchen f&uuml;r die zu entfernende Konfigurationsdatensammlung.</b></p></li>
+<li><p><b>Klicken Sie auf die Schaltfl&auml;che &quot;Entfernen&quot;.</b></p><p>Ein Best&auml;tigungsdialogfeld wird ge&ouml;ffnet.</p>
+</li>
+<li><p><b>Wenn Sie die Konfigurationsdatensammlung wirklich entfernen m&ouml;chten, klicken Sie im Best&auml;tigungsdialogfeld auf &quot;OK&quot;.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/de/help/gbzci.html b/webconsole/html/de/help/gbzci.html
new file mode 100644
index 0000000..6caa142
--- /dev/null
+++ b/webconsole/html/de/help/gbzci.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Umbenennen einer Konfigurationsdatensammlung
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbzci"></A><h4>Umbenennen einer Konfigurationsdatensammlung</h4>
+<A NAME="indexterm-16"></A><h5>Schritte</h5><ol><li><p><b>Aktivieren Sie das Kontrollk&auml;stchen f&uuml;r die Konfigurationsdatensammlung, die umbenannt werden soll.</b></p></li>
+<li><p><b>Klicken Sie auf die Schaltfl&auml;che &quot;Umbenennen&quot;.</b></p><p>Das Dialogfeld &quot;Umbenennen&quot; wird ge&ouml;ffnet.</p>
+</li>
+<li><p><b>Geben Sie den neuen Namen der Konfigurationsdatensammlung in das Textfeld des Dialogfelds ein, und klicken Sie dann auf &quot;OK&quot;.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/de/help/index.xml b/webconsole/html/de/help/index.xml
new file mode 100644
index 0000000..0e241f4
--- /dev/null
+++ b/webconsole/html/de/help/index.xml
@@ -0,0 +1,51 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+
+<!DOCTYPE index PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN" "index_1_0.dtd">
+<index version="1.0">
+<indexitem target="gbgpn" text="Zuweisen von Profilen"></indexitem>
+<indexitem target="gbgce" text="Konfigurationsdatensammlungen">
+<indexitem target="gbgcn" text="Neu erstellen"></indexitem>
+<indexitem target="gbzbc" text="Entfernen"></indexitem>
+<indexitem target="gbzci" text="Umbenennen"></indexitem>
+<indexitem target="gbgqm" text="Synchronisieren"></indexitem>
+<indexitem text="Typen">
+<indexitem target="gbgpt" text="Datei"></indexitem>
+<indexitem target="gbgpt" text="Kombiniert"></indexitem>
+<indexitem target="gbgpt" text="LDAP (Lightweight Directory Access Protocol)"></indexitem>
+</indexitem>
+<indexitem target="gbgpt" text="Anzeigen von Details"></indexitem>
+</indexitem>
+<indexitem target="gbgni" text="Erstellen von Profilen"></indexitem>
+<indexitem target="gbgcn" text="Erstellen von Datensammlungen"></indexitem>
+<indexitem target="gbgpr" text="Löschen von Profilen"></indexitem>
+<indexitem target="gbgce" text="Domänen"></indexitem>
+<indexitem target="gbgoz" text="Anzeigen der geltenden Einstellungen"></indexitem>
+<indexitem target="gbgcm" text="Elementbäume"></indexitem>
+<indexitem target="gbgce" text="Elemente">
+<indexitem target="gbgqt" text="Funktion suchen"></indexitem>
+<indexitem target="gbgoy" text="Informationen über"></indexitem>
+<indexitem target="gbgpa" text="Suchen nach"></indexitem>
+</indexitem>
+<indexitem target="gbgqh" text="Exportieren von Profilen"></indexitem>
+<indexitem target="gbgps" text="Importieren von Profilen"></indexitem>
+<indexitem target="gbgpt" text="LDAP (Lightweight Directory Access Protocol)"></indexitem>
+<indexitem target="gbgqa" text="Abmelden"></indexitem>
+<indexitem target="gbgcm" text="Navigation"></indexitem>
+<indexitem target="gbgce" text="Organisationen"></indexitem>
+<indexitem target="gbgcm" text="Profilbäume"></indexitem>
+<indexitem target="gbgce" text="Profile">
+<indexitem target="gbgpn" text="Zuweisen"></indexitem>
+<indexitem target="gbgni" text="Neu erstellen"></indexitem>
+<indexitem target="gbgpr" text="Löschen"></indexitem>
+<indexitem target="gbgqh" text="Exportieren"></indexitem>
+<indexitem target="gbgps" text="Importieren"></indexitem>
+<indexitem target="gbgcm" text="Navigation"></indexitem>
+<indexitem target="gbgqj" text="Zuweisung aufheben"></indexitem>
+</indexitem>
+<indexitem target="gbgqa" text="Datensammlungen"></indexitem>
+<indexitem target="gbgpa" text="Suchen"></indexitem>
+<indexitem target="gbgqm" text="Synchronisierung"></indexitem>
+<indexitem target="gbgcd" text="Anzeigen aller Profile"></indexitem>
+<indexitem target="gbgdc" text="Anzeigen aller zugewiesenen Profile"></indexitem>
+</index>
diff --git a/webconsole/html/de/help/map.jhm b/webconsole/html/de/help/map.jhm
new file mode 100644
index 0000000..a14c734
--- /dev/null
+++ b/webconsole/html/de/help/map.jhm
@@ -0,0 +1,46 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN" "map_1_0.dtd">
+<map version="1.0">
+ <mapID target="gbgca" url="gbgca.html"/>
+ <mapID target="gbgce" url="gbgce.html"/>
+ <mapID target="gbgqa" url="gbgqa.html"/>
+ <mapID target="gbgpt" url="gbgpt.html"/>
+ <mapID target="gbgcn" url="gbgcn.html"/>
+ <mapID target="gbzbc" url="gbzbc.html"/>
+ <mapID target="gbzci" url="gbzci.html"/>
+ <mapID target="gbgqm" url="gbgqm.html"/>
+ <mapID target="gbgdc" url="gbgdc.html"/>
+ <mapID target="gbgcm" url="gbgcm.html"/>
+ <mapID target="gbgpa" url="gbgpa.html"/>
+ <mapID target="gbgqt" url="gbgqt.html"/>
+ <mapID target="gbgoy" url="gbgoy.html"/>
+ <mapID target="gbgni" url="gbgni.html"/>
+ <mapID target="gbgpr" url="gbgpr.html"/>
+ <mapID target="gbgpn" url="gbgpn.html"/>
+ <mapID target="gbgqj" url="gbgqj.html"/>
+ <mapID target="gbgpw" url="gbgpw.html"/>
+ <mapID target="gbgqf" url="gbgqf.html"/>
+ <mapID target="gbgps" url="gbgps.html"/>
+ <mapID target="gbgqh" url="gbgqh.html"/>
+ <mapID target="gbgoz" url="gbgoz.html"/>
+ <mapID target="gbgcd" url="gbgcd.html"/>
+ <mapID target="gbgcr" url="gbgcr.html"/>
+ <mapID target="gbgpe" url="gbgpe.html"/>
+ <mapID target="gbgpu" url="gbgpu.html"/>
+ <mapID target="gbgow" url="gbgow.html"/>
+ <mapID target="gbgpj" url="gbgpj.html"/>
+ <mapID target="gbgou" url="gbgou.html"/>
+ <mapID target="gbgec" url="gbgec.html"/>
+ <mapID target="gbgcg" url="gbgcg.html"/>
+ <mapID target="gbgpb" url="gbgpb.html"/>
+ <mapID target="gbgeb" url="gbgeb.html"/>
+ <mapID target="gbgot" url="gbgot.html"/>
+ <mapID target="gbgkr" url="gbgkr.html"/>
+ <mapID target="gbgpm" url="gbgpm.html"/>
+ <mapID target="gbgpp" url="gbgpp.html"/>
+ <mapID target="gbgda" url="gbgda.html"/>
+ <mapID target="gbgdh" url="gbgdh.html"/>
+ <mapID target="gbgqu" url="gbgqu.html"/>
+ <mapID target="gbgqe" url="gbgqe.html"/>
+</map>
diff --git a/webconsole/html/de/help/p1.html b/webconsole/html/de/help/p1.html
new file mode 100644
index 0000000..2ffa551
--- /dev/null
+++ b/webconsole/html/de/help/p1.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<h1>Java Desktop System Configuration Manager Release 2.0 Online Help</h1>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/de/help/toc.xml b/webconsole/html/de/help/toc.xml
new file mode 100644
index 0000000..e868b93
--- /dev/null
+++ b/webconsole/html/de/help/toc.xml
@@ -0,0 +1,59 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+
+<!DOCTYPE toc PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN" "toc_1_0.dtd">
+<toc version="1.0">
+<tocitem target="gbgca" text="Sun Desktop Manager 1.0.1 Hilfe">
+<tocitem target="gbgce" text="Einführung"></tocitem>
+<tocitem target="gbgqa" text="Fenster „Konfigurationsdatensammlungen“">
+<tocitem target="gbgpt" text="Tabelle „Konfigurationsdatensammlungen“">
+<tocitem target="gbgcn" text="Erstellen einer neuen Konfigurationsdatensammlung"></tocitem>
+<tocitem target="gbzbc" text="Entfernen einer Konfigurationsdatensammlung"></tocitem>
+<tocitem target="gbzci" text="Umbenennen einer Konfigurationsdatensammlung"></tocitem>
+<tocitem target="gbgqm" text="Synchronisieren von Konfigurationsdatensammlungen"></tocitem>
+</tocitem>
+</tocitem>
+<tocitem target="gbgdc" text="Profile &#8212; Baumansicht">
+<tocitem target="gbgcm" text="Navigationsbereich">
+<tocitem target="gbgpa" text="Suchen nach einem Element"></tocitem>
+<tocitem target="gbgqt" text="Verwenden der Funktion „Suchen“"></tocitem>
+</tocitem>
+<tocitem target="gbgoy" text="Inhaltsbereich">
+<tocitem target="gbgni" text="Erstellen von neuen Profilen"></tocitem>
+<tocitem target="gbgpr" text="Löschen von Profilen"></tocitem>
+<tocitem target="gbgpn" text="Zuweisen von Profilen"></tocitem>
+<tocitem target="gbgqj" text="Aufheben der Zuweisung von Profilen"></tocitem>
+<tocitem target="gbgpw" text="Umbenennen von Profilen"></tocitem>
+<tocitem target="gbgqf" text="Kopieren und Verschieben von Profilen"></tocitem>
+<tocitem target="gbgps" text="Importieren von Profilen"></tocitem>
+<tocitem target="gbgqh" text="Exportieren von Profilen"></tocitem>
+</tocitem>
+<tocitem target="gbgoz" text="Anzeigen der geltenden Einstellungen"></tocitem>
+</tocitem>
+<tocitem target="gbgcd" text="Profile &#8212; Alle">
+<tocitem target="gbgcr" text="Erstellen von neuen Profilen"></tocitem>
+<tocitem target="gbgpe" text="Löschen von Profilen"></tocitem>
+<tocitem target="gbgpu" text="Umbenennen von Profilen"></tocitem>
+<tocitem target="gbgow" text="Kopieren und Verschieben von Profilen"></tocitem>
+<tocitem target="gbgpj" text="Importieren von Profilen"></tocitem>
+<tocitem target="gbgou" text="Exportieren von Profilen"></tocitem>
+</tocitem>
+<tocitem target="gbgec" text="Profileditor">
+<tocitem target="gbgcg" text="Allgemeine Eigenschaften">
+<tocitem target="gbgpb" text="Angeben von allgemeinen Eigenschaften für ein Profil"></tocitem>
+</tocitem>
+<tocitem target="gbgeb" text="Konfigurationseinstellungen">
+<tocitem target="gbgot" text="Anzeigen und Bearbeiten der Konfigurationseinstellungen von Profilen"></tocitem>
+</tocitem>
+<tocitem target="gbgkr" text="Zugewiesene Elemente">
+<tocitem target="gbgpm" text="Zuweisung von Elementen zu Profilen"></tocitem>
+<tocitem target="gbgpp" text="Aufheben der Zuweisung von Elementen zu Profilen"></tocitem>
+</tocitem>
+<tocitem target="gbgda" text="Einstellungsübersicht"></tocitem>
+<tocitem target="gbgdh" text="Erweiterte Optionen">
+<tocitem target="gbgqu" text="Ändern der Anwendung vom Speicherort aus"></tocitem>
+<tocitem target="gbgqe" text="Zuweisen von Zusammenführungsreihenfolgen zu Profilen"></tocitem>
+</tocitem>
+</tocitem>
+</tocitem>
+</toc>
diff --git a/webconsole/html/de/helpContent.html b/webconsole/html/de/helpContent.html
new file mode 100644
index 0000000..fcf9244
--- /dev/null
+++ b/webconsole/html/de/helpContent.html
@@ -0,0 +1,336 @@
+<html>
+<head>
+<title>Sun Java[TM] Desktop System Configuration Manager - Inhalt der Hilfe </title>
+<meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><!-- Empty script so IE5.0 Windows will draw table and button borders --><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"></script> </head>
+
+<body class="help-body"><a name="top"></a> <p><a name="intro"> </a><div class="help-header-1">Hilfe zu Configuration Manager</div></p>
+<p>Willkommen bei den Hilfeseiten zu Sun Java[TM] Desktop System Configuration Manager. Wenn Sie Hilfe zu einer bestimmten Komponente von Java Desktop System Configuration Manager ben&ouml;tigen, klicken Sie auf die entsprechende Verkn&uuml;pfung auf der linken Seite.</p>
+<p>Die Hilfe beginnt mit einer Einf&uuml;hrung in den Hintergrund und die Konzepten des Produkts - <a class="help-link" href="#concepts">Hintergrund und Konzepte</a>. In <a class="help-link" href="#ui">Struktur und Verhalten</a> wird der Aufbau und das Verhalten von Configuration Manager behandelt. </p>
+<p>Nach diesen allgemeinen Informationen finden Sie spezifischere Hilfe zum <a class="help-link" href="#masthead"><b>Impressum</b></a>, dem <a class="help-link" href="#navigation"><b>Navigationsbereich</b></a> und dem <a class="help-link" href="#content"><b>Inhaltsbereich</b></a>. Au&szlig;erdem stehen Seiten mit Informationen &uuml;ber die <a class="help-link" href="#login">Anmeldung</a> und die <a href="#reporting">Berichterstellungsfunktion</a>. <p><a name="concepts"> </a> <div class="help-header-1">Hintergrund und Konzepte</div></p>
+<p>Configuration Manager erm&ouml;glicht eine zentralisierte Verwaltung von Konfigurationseinstellungen. Es k&ouml;nnen Konfigurationseinstellungen auf den unterschiedlichen Ebenen einer Unternehmenshierarchie angezeigt, definiert und in Kraft gesetzt werden. In semantischer Hinsicht zusammenh&auml;ngende Konfigurationseinstellungen werden im Folgenden als "Konfigurationsrichtlinien" bezeichnet.</p>
+<P>In Configuration Manager werden drei verschiedene hierarchische Strukturen, auch B&auml;ume genannt, verwendet. Die Unterscheidung dieser B&auml;ume ist eine wichtige Voraussetzung f&uuml;r das Verst&auml;ndnis der Benutzeroberfl&auml;che von Configuration Manager:</P>
+<p><div class="help-header-2"><a name="dataStructures">Datenstrukturen</a></div></p>
+<P>Einer der B&auml;ume besteht aus den Konfigurationsrichtlinien und wird folglich als Konfigurationsrichtlinienbaum bezeichnet (siehe blaue Teile in Abbildung 1 - "B&auml;ume"). Die hierarchische Organisation von Konfigurationseinstellungen ist bereits aus zahlreichen anderen Programmen bekannt, die wie z. B. Mozilla eine eher anspruchsvolle Konfiguration bieten. Eine typische Konfigurationsrichtlinie kann beispielsweise "/Mozilla/Navigator", eine Konfigurationseinstellung "/Mozilla/Navigator/HomeUrl" hei&szlig;en.</P>
+<P>Konfigurationsrichtlinienb&auml;ume sind in den zweiten Baumtyp, den Organisationsbaum (siehe graue Teile in Abbildung 1 - "B&auml;ume"), eingegliedert. Im Organisationsbaum sind die Beziehungen zwischen einzelnen Organisationseinheiten dargestellt. Daraus ergibt sich ein "Organisationsbaum mit Konfigurationsrichtlinienb&auml;umen". Der Organisationsbaum wird mithilfe eines LDAP-Servers dargestellt.</P>
+<p>Bei dem dritten Baumtyp handelt es sich um den Dom&auml;nenbaum. Im Dom&auml;nenbaum sind die Beziehungen zwischen einzelnen Hardware-Einheiten dargestellt. Auch im Dom&auml;nenbaum sind Konfigurationsrichtlinienb&auml;ume enthalten. Dadurch ergibt sich ein Dom&auml;nenbaum mit Konfigurationsrichtlinenb&auml;umen. Der Dom&auml;nenbaum wird ebenfalls mithilfe eines LDAP-Servers dargestellt.</p>
+<p>F&uuml;r die Arbeit mit dem Organisations- und dem Dom&auml;nenbaum gelten dieselben Prinzipien. Der Hauptunterschied zwischen beiden besteht darin, dass im Organisationsbaum Benutzer und im Dom&auml;nenbaum Rechner behandelt werden. Durch die Trennung von Benutzern und Rechnern in zwei separate B&auml;ume bietet Configuration Manager die M&ouml;glichkeit, sowohl benutzerbasierte als auch rechnerbasierte Konfigurationen durchzuf&uuml;hren. Aufgrund der Parallellen zwischen den beiden B&auml;umen wird in diesem Abschnitt der Organisationsbaum behandelt und der Dom&auml;nenbaum nur im Fall von Abweichungen ausdr&uuml;cklich genannt.</p>
+<P>LDAP-Server sind in gro&szlig;en Unternehmen ein &uuml;bliches Hilfsmittel zur hierarchischen Strukturierung von Organisationsdaten. Jede Position (Adresse) innerhalb des LDAP-Organisationsbaums wird als eine Entit&auml;t bezeichnet.</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_ldap_v4.png" NAME="Trees" ALT="B&auml;ume" ALIGN=LEFT WIDTH=550 HEIGHT=369 BORDER=1> </FONT><P><FONT COLOR="#000000"><A NAME="fig_trees"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">Abbildung 1 &ndash; B&auml;ume</FONT></FONT></I></FONT></P>
+<p><div class="help-header-2"><a name="SecDataManagement">Sicherheit und Datenverwaltung</a></div></p>
+<p>Dieser "Baum der B&auml;ume" erleichtert die hierarchische Sicherheits- und Datenverwaltung. Hierzu wird zun&auml;chst der gesamte Konfigurationsrichtlinienbaum einmal am Ursprung (Root) des Organisationsbaums eingef&uuml;gt. Entit&auml;tsspezifische &Auml;nderungen an den Konfigurationseinstellungen dieses urspr&uuml;nglichen Konfigurationsrichtlinienbaums werden bei der entsprechenden Entit&auml;t gespeichert. Der Einfachheit halber sind in Abbildung 1 nur die Konfigurationsrichtlinienb&auml;ume der Organisationsentit&auml;ten namens "marketing" und "jclarke" dargestellt.</P>
+<p><div class="help-header-2"><a name="GenConfigSettings">Generierung von Konfigurationseinstellungen</a></div></p>
+<P>Die Konfigurationseinstellungen f&uuml;r eine Entit&auml;t erhalten Sie durch Zusammenf&uuml;hrung. S&auml;mtliche Konfigurationeinstellungen einer Entit&auml;t im Organisations- oder Dom&auml;nenbaum hei&szlig;en Ebenen. Die Zusammenf&uuml;hrung beginnt an der Root-Ebene und verl&auml;uft den Baum entlang bis zur gew&uuml;nschten Entit&auml;t. Eine &Auml;nderung einer Konfigurationseinstellung auf der Ebene einer bestimmten Entit&auml;t wird an die Ebenen, die weiter unten im Baum befindlichen Entit&auml;ten zugeordnet sind, vererbt (siehe <A class="help-link" HREF="#fig_merging">Abbildung 2 - "Zusammenf&uuml;hrung von Ebenen"</a>). Die geerbten Werte k&ouml;nnen &uuml;berschrieben werden, wenn f&uuml;r eine bestimmte Ebene eigene Einstellungen definiert sind.</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_merge.gif" NAME="LayerMerging" ALT="Zusammenf&uuml;hrung von Ebenen" ALIGN=LEFT WIDTH=550 HEIGHT=520 BORDER=1> </FONT><P><FONT COLOR="#000000"><A NAME="fig_merging"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">Abbildung 2 &ndash; Zusammenf&uuml;hrung von Ebenen</FONT></FONT></I></FONT></P>
+<p><FONT COLOR="#000000">Diese Vererbung gilt f&uuml;r Konfigurationseinstellungen sowie f&uuml;r Sicherheitsmerkmale:</FONT> <FONT COLOR="#000000">Wenn Sie f&uuml;r eine Konfigurationseinstellung in der "o=marketing" zugeordneten Ebene das Sicherheitsattribut "protected" angeben, ist diese Konfigurationseinstellung in allen nachfolgenden Ebenen des Baums schreibgesch&uuml;tzt (siehe <A class="help-link" HREF="#fig_protection">Abbildung 3 - "Schutz"</a>).</FONT></P>
+<P><FONT COLOR="#000000"><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_protected_v3.png" NAME="Protection" ALT="Schutz" ALIGN=LEFT WIDTH=550 HEIGHT=524 BORDER=1> </FONT></FONT><P><FONT COLOR="#000000"><FONT COLOR="#000000"><A NAME="fig_protection"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">Abbildung 3 &ndash; Schutz</FONT></FONT></I></FONT></FONT></P>
+<p><div class="help-header-2"><a name="BCAssociating">Zuordnung zwischen einem Konfigurationsrichtlinienbaum und einem Organisations- oder Dom&auml;nenbaum</a></div></p>
+<p>Konfigurationsrichtlinienb&auml;ume sind auf zwei Arten mit den Entit&auml;ten eines Organisationsbaums verbunden:</P>
+<UL>
+ <li>Sie sind als selbst&auml;ndige Konfigurationsrichtlinienb&auml;ume bei der Entit&auml;t gespeichert.</li>
+ <li>Sie sind mit einer Entit&auml;t aus einer Richtliniengruppe verkn&uuml;pft.</li>
+</UL>
+<p><p><div class="help-header-2"><a name="BCPolicyGroups">Richtliniengruppen</a></div></p>
+<P>Bei Richtliniengruppen handelt es sich um Beh&auml;lter f&uuml;r Konfigurationsrichtlinien mit eindeutigen Namen. Gleichzeitig sind sie Beh&auml;lter f&uuml;r einen Konfigurationsrichtlinienbaum, da die Konfigurationseinstellungen einer Konfigurationsrichtlinie in einem Konfigurationsrichtlinienbaum abgelegt werden (siehe <A class="help-link" HREF="#fig_trees">Abbildung 1 - "B&auml;ume"</A>). Richtliniengruppen werden ihrerseits in einer Richtliniensammlung abgelegt und k&ouml;nnen durch Erstellung von Verkn&uuml;pfungen jedem Typ von Entit&auml;ten zug&auml;nglich gemacht werden. Dadurch entsteht eine gr&ouml;&szlig;ere Flexibilit&auml;t und Unabh&auml;ngigkeit von der verwendeten Datenquelle. Ein weiterer Vorteil dieser Richtliniengruppen besteht in ihrer Import- und Exportf&auml;higkeit, die wesentlich zur Erleichterung der Datenpflege beitr&auml;gt.</P>
+<P>Als Administrator k&ouml;nnen Sie Gruppen von Konfigurationsrichtlinien f&uuml;r separate semantische Bereiche erstellen, beispielsweise eine Richtliniengruppe f&uuml;r "Experten" und eine f&uuml;r "Anf&auml;nger", die in einer Richtliniensammlung gespeichert sind. Die Konfigurationsrichtlinien k&ouml;nnen dann im gesamten Organisationsbaum eingesetzt werden.</P>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Zum Seitenanfang springen" width="11" height="10" hspace="4" border="0"> Zum Anfang</a> </div><a name="ui"> </a> <div class="help-header-1">Struktur und Verhalten</div>
+<p>Configuration Manager ist in drei Bereiche gegliedert: das Impressum, einen Navigations- und einen Inhaltsbereich. Das Impressum befindet sich im oberen Seitenabschnitt. Unten links befindet sich der Navigationsbereich. Der Abschnitt unten rechts ist der Inhaltsbereich. Diese Struktur wird auch ald Links-Rechts-Layout bezeichnet. F&uuml;r die Anzeige zus&auml;tzlicher Dialoge oder der Hilfe werden separate Browser-Fenster ge&ouml;ffnet.</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Zum Seitenanfang springen" width="11" height="10" hspace="4" border="0"> Zum Anfang</a> </div><a name="login"> </a> <div class="help-header-1">Anmeldung</div>
+<p>F&uuml;r die Arbeit mit Configuration Manager m&uuml;ssen Sie sich bei Sun Web Console anmelden. Unter Sun Web Console finden Sie verschiedene Verwaltungsanwendungen mit einheitlichen Benutzeroberfl&auml;chen. Diese Konsole bietet den Vorteil, dass Sie sich als Administrator nur einmal anmelden m&uuml;ssen, um beliebige &uuml;ber die Konsole zug&auml;ngliche Anwendungen verwenden k&ouml;nnen. Zu diesem Zweck verf&uuml;gt Sun Web Console &uuml;ber eine Standard-Anmeldeseite.</p>
+<p>Auf der Anmeldeseite wird &uuml;ber den Textfeldern f&uuml;r Benutzernamen und Passwort der Server angezeigt, bei dem Sie sich anmelden.</p>
+<p>Nach einer erfolgreichen Anmeldung bei Sun Web Console sehen Sie die Anwendungsstartseite von Sun Web Console. Dort w&auml;hlen Sie die Anwendung "Configuration Manager" aus, und Configuration Manager wird gestartet.</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Zum Seitenanfang springen" width="11" height="10" hspace="4" border="0"> Zum Anfang</a> </div><a name="masthead"> </a> <div class="help-header-1">Impressum</div>
+<p>Quer &uuml;ber den Impressumsbereich erstreckt sich der vollst&auml;ndige Produktname (Sun Java[TM] Desktop System Configuration Manager). Dar&uuml;ber hinaus enth&auml;lt das Impressum verschiedene allgemeine Verkn&uuml;pfungen:</p>
+<ul><li>Die Verkn&uuml;pfung <b>Konsole</b> bringt Sie zur Anwendungsstartseite von Sun Web Console zur&uuml;ck.</li>
+ <li>Die Verkn&uuml;pfung <b>Version</b> &ouml;ffnet ein Fenster mit Versionsinformationen.</li>
+ <li>&Uuml;ber die Verkn&uuml;pfung <b>Abmelden</b> melden Sie sich von Sun Web Console ab und somit auch von Configuration Manager. Es wird wieder die Anmeldeseite angezeigt.</li>
+ <li>Die Verkn&uuml;pfung <b>Hilfe</b> f&uuml;hrt Sie zu diesen Hilfeseiten.</li>
+</ul>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Zum Seitenanfang springen" width="11" height="10" hspace="4" border="0"> Zum Anfang</a> </div><a name="navigation"> </a> <div class="help-header-1">Navigationsbereich</div>
+<p>Der Navigationsbereich dient zum Durchsuchen des Organisationsbaums mit seinen Organisationen, Benutzern und Rollen sowie des Dom&auml;nenbaums, der Dom&auml;nen und Rechner enth&auml;lt. Hier k&ouml;nnen Sie au&szlig;erdem Richtliniengruppen in den entsprechenden Benutzer- und Rechner-Richtliniensammlungen verwalten.</p>
+<p>Der Navigationsbereich weist zwei &uuml;bergeordnete Register auf: <b>Benutzer</B> und <b>Rechner</B>. </p><a name="entities"> </a> <div class="help-header-2">Benutzer-Register</div>
+<p>Dieses Register verf&uuml;gt &uuml;ber die zwei Unterregister <b>Organisationsbaum</B> und <b>Richtliniensammlung</B>. Das Register <b>Organisationsbaum</B> dient zum Durchsuchen des Organisationsbaums. </p><a name="parpath"></a><div class="help-header-3">Ursprungspfad</div>
+<p>An oberster Stelle im Register <b>Organisationsbaum</B> sehen Sie den Ursprungspfad, ein Bedienelement, das den Pfad zur aktuellen Entit&auml;t darstellt. Die einzelnen Pfadsegmente au&szlig;er dem letzten sind Verkn&uuml;pfungen, die je eine Entit&auml;t darstellen. Das letzte Segment wird als normaler Text angezeigt und steht f&uuml;r die aktuelle Entit&auml;t. Zur Navigation mittels des Ursprungspfads klicken Sie auf die gew&uuml;nschte Verkn&uuml;pfung. Dadurch wird: <ul><li>der Navigationsbereich aktualisiert, sodass der Pfad der Entit&auml;t, auf die Sie geklickt haben, und in der Navigationstabelle die dieser Entit&auml;t untergeordneten Entit&auml;ten sichtbar werden.</li>
+ <li>der Inhaltsbereich um die dieser Entit&auml;t zugeordneten Konfigurationsrichtliniendaten aktualisiert. </li>
+</ul>Navigations- und Inhaltsbereich werden stets synchronisiert, um eine einheitliche Ansicht der Daten zu gew&auml;hrleisten. </p><a name="navtable"></a><div class="help-header-3">Navigationstabelle</div>
+<p>Die Navigationstabelle befindet sich unter dem Ursprungspfad und enth&auml;lt die der aktuellen Entit&auml;t untergeordneten Entit&auml;ten. In der Spalte "Name" sind die Namen aller der aktuellen Entit&auml;t untergeordneten Entit&auml;ten aufgef&uuml;hrt. Die Spalte "Typ" zeigt den Typ der einzelnen Entit&auml;ten an. Die Spalte "Aktion" enth&auml;lt f&uuml;r jede Zeile eine Verkn&uuml;pfung namens <b>Ansicht</B>.</p>
+<p>Um eine Entit&auml;t aufzurufen, klicken Sie auf einen der aufgelisteten Namen. Dadurch wird: <ul><li>die ausgew&auml;hlte untergeordnete Entit&auml;t zur aktuellen Entit&auml;t.</li>
+ <li>der Navigationsbereich aktualisiert, sodass der Pfad der neuen aktuellen Entit&auml;t und in der Navigationstabelle die dieser Entit&auml;t untergeordneten Entit&auml;ten sichtbar werden.</li>
+ <li>der Inhaltsbereich um die dieser Entit&auml;t zugeordnete Konfigurationsrichtlinie aktualisiert. </li>
+</ul></p>M&ouml;gliche Entit&auml;tstypen sind "Organisation", "Benutzer" und "Rolle".</p>
+<p>Klicken Sie auf die Verkn&uuml;pfung <b>Ansicht</B>, um die Detailangaben einer aufgelisteten Entit&auml;t anzuzeigen. Dadurch wird: <ul><li>der Hintergrund der ausgew&auml;hlten Reihe blau angezeigt. </li>
+ <li>der Inhaltsbereich um die der ausgew&auml;hlten Entit&auml;t zugeordneten Daten aktualisiert. </li>
+</ul>Eine blau hinterlegte Zeile kennzeichnet die Entit&auml;t, deren Daten aktuell im Inhaltsbereich angezeigt werden.</p>
+<p>Die Aktionsleiste der Navigationstabelle enth&auml;lt das Dropdown-Men&uuml; <b>Filter</B> und das Symbol <b>Erweiterter Filter</b>. Wenn die Tabelle mehr als zehn Eintr&auml;ge enth&auml;lt, wird das Symbol <b>Page/Scroll Through All Data</b> eingeblendet, das zum &Auml;ndern der Ansicht der Tabelleneintr&auml;ge dient.</p>
+<p>Mit dem Dropdown-Men&uuml; <b>Filter</b> k&ouml;nnen Sie ausw&auml;hlen, welcher Entit&auml;tstyp in der Navigationstabelle angezeigt wird. Es enth&auml;lt folgende Eintr&auml;ge: <ul><li>Mit "Alle Elemente" werden in der Navigationstabelle Entit&auml;ten aller Typen angezeigt.</li>
+ <li>Mit "Organisationen" werden in der Navigationstabelle nur Entit&auml;ten vom Typ "Organisation" angezeigt.</li>
+ <li>Mit "Benutzer" werden in der Navigationstabelle nur Entit&auml;ten vom Typ "Benutzer" angezeigt.</li>
+ <li>Mit "Rollen" werden in der Navigationstabelle nur Entit&auml;ten vom Typ "Rolle" angezeigt. </li>
+</ul></p><a name="adfilter"></a><div class="help-header-3">Erweiterter Filter</div>
+<p>Klicken Sie auf das Symbol <b>Erweiterter Filter</B> in der Navigationstabelle, um den gleichnamigen Dialog zu &ouml;ffnen.</P>
+<p>Markieren Sie im Bereich <b>Typ</b> den Entit&auml;tstyp, der gefiltert werden soll. Wenn Sie einen spezifischeren Filter w&uuml;nschen, geben Sie den Namen des zu filternden Elements in das Textfeld <b>Name</b> ein. Klicken Sie dann auf die Schaltfl&auml;che <b>Filtern</B> am unteren Dialogfeldrand, um den Filter auszuf&uuml;hren. </p><a name="search"></a><div class="help-header-3">Suchen</div>
+<p>Zum &Ouml;ffnen des Suchfensters klicken Sie auf die Schaltfl&auml;che <b>Suchen</b> &uuml;ber der Navigationstabelle. Das Suchfenster enth&auml;lt ein Impressum, einen Parameterbereich auf der linken und einen Ergebnisbereich auf der rechten Seite. Es erm&ouml;glicht eine gezielte, rekursive Suche nach Entit&auml;tstypen und Entit&auml;tsnamen im Organisationsbaum. Wenn Sie auf die Schaltfl&auml;che <b>Suchen</b> im Navigationsbereich des Hauptfensters klicken, w&auml;hrend das Suchfenster im Hintergrund ge&ouml;ffnet ist, wird das Suchfenster in den Vordergrund gestellt. Die aktuelle Entit&auml;t des Suchfensters, die durch den Ursprungspfad im Parameterbereich des Suchfensters dargestellt ist, wird aktualisiert. Alle anderen Parameter sowie der Inhalt des Ergebnisbereichs bleiben unver&auml;ndert.</p>
+<p>An oberster Stelle im Parameterbereich sehen Sie den Ursprungspfad, der den Pfad zur aktuellen Entit&auml;t darstellt. Die Verwendung des Parameterbereichs ist unter <a class="help-link" href="#parpath">Ursprungspfad</a> beschrieben.</p>
+<p>F&uuml;r die Suche nach einem bestimmten Entit&auml;tstyp w&auml;hlen Sie diesen Typ in der Dropdown-Liste unter dem Ursprungspfad aus. Es stehen die sechs Auswahlm&ouml;glichkeiten "Alles Suchen", "Organisationen suchen", "Benutzer suchen", "Rollen suchen", "Dom&auml;nen suchen" und "Rechner suchen" zur Verf&uuml;gung.</p>
+<p>Um die Suche weiter einzugrenzen, verwenden Sie das Textfeld neben der Dropdown-Liste. Sie k&ouml;nnen einen Suchtext in dieses Feld eingeben und eine Suche nach Entit&auml;tsnamen durchf&uuml;hren, die mit der Eingabe &uuml;bereinstimmen. Indem Sie eine der Optionen f&uuml;r <b>Startpunkt</b> ausw&auml;hlen, k&ouml;nnen Sie festlegen, an welcher Stelle im Baum die Suche beginnt. Dabei k&ouml;nnen Sie zwischen der aktuellen Position oder der obersten Stelle im Baum als Startpunkt w&auml;hlen. Bei &Uuml;bernahme der Voreinstellung wird die Suche ab der aktuellen Position durchgef&uuml;hrt. Die Positionen werden durch ihre Namen dargestellt. Durch Klicken auf eines der Pfadsegmente im Ursprungspfad wird die ausgew&auml;hlte Entit&auml;t zur aktuellen Position f&uuml;r die Suche. Der im Navigator angezeigte Bereich &auml;ndert sich dadurch jedoch nicht.</p>
+<p>W&auml;hlen Sie in der Dropdown-Liste "Angezeigte Ergebnisse pro Seite" die gew&uuml;nschte Ergebnisanzahl aus.</p>
+<p>In allen Suchfeldern des Suchbereichs und an jeder beliebigen Stelle im Suchtext kann das Sternchen (*) als Platzhalter eingesetzt werden. Das Sternchen steht f&uuml;r eine beliebige Anzahl beliebiger Zeichen. Wenn Sie mehrere Suchkriterien angeben, werden nur die Enti&auml;ten in der Ergebnistabelle aufgef&uuml;hrt, die s&auml;mtliche Kriterien erf&uuml;llen. Die Gro&szlig;-/Kleinschreibung wird in der Suche nicht ber&uuml;cksichtigt.</p>
+<p>Zum Starten der Suche klicken Sie auf die Schaltfl&auml;che <b>Suchen</b>. Dadurch wird der Ergebnisbereich aktualisiert und zeigt eine Tabelle mit den Suchergebnissen an.</p>
+<p>Zum Zur&uuml;cksetzen der Seitenwerte klicken Sie auf die Schaltfl&auml;che <b>Zur&uuml;cksetzen</b>, wodurch der Parameterbereich aktualisiert wird und die Standardwerte anzeigt. S&auml;mtliche Textfelder werden geleert, und in allen Dropdown-Listen und Optionsgruppen wird der erste Wert ausgew&auml;hlt.</p>
+<p>Wenn das Suchfenster ge&ouml;ffnet wird, sehen Sie im Ergebnisbereich eine leere Seite. Nach der Durchf&uuml;hrung einer Suche wird eine Ergebnistabelle angezeigt. Die Ergebnistabelle enth&auml;lt drei Spalten: "Name", "Typ" und "Pfad".</p>
+<p>Zum Anzeigen eines Ergebnisses klicken Sie auf den entsprechenden Namen in der Spalte "Name". Dadurch wird: <ul><li>das Hauptfenster in den Vordergrund gestellt.</li>
+ <li>der Navigationsbereich des Hauptfensters aktualisiert, sodass die durch die Verkn&uuml;pfung "Name" dargestellte Entit&auml;t als blau hinterlegter Eintrag in der Navigationstabelle zu sehen ist. </li>
+ <li>der Inhaltsbereich des Hauptfensters um die dieser Entit&auml;t zugeordnete Konfigurationsrichtlinie aktualisiert.</li>
+ </UL>
+</p>
+<p>Die Spalte "Typ" zeigt den Typ der einzelnen Entit&auml;ten an. M&ouml;gliche Entit&auml;tstypen sind "Organisation", "Benutzer" und "Rolle".</p>
+<p>Die Spalte "Pfad" enth&auml;lt den Pfad zur Entit&auml;t. Dabei handelt es sich um den zum Startpunkt der Suche relativen Pfad.</p>
+<p>Bei einer Suche nach dem Typ "Benutzer" sehen Sie im Parameterbereich folgende Textfelder f&uuml;r die Anzeige der Benutzermerkmale: "Benutzer ID", "Vorname" und "Nachname". Im Ergebnisbereich wird rechts neben der Spalte "Name" eine weitere Spalte mit der Bezeichnung "Benutzer ID" angezeigt, in der die Benutzer-IDs aufgef&uuml;hrt sind. Wenn das Textfeld "Benutzer ID" im Paremeterbereich mindestens ein Zeichen enth&auml;lt, wird die Tabelle nach der Spalte "Benutzer ID" sortiert. Anderenfalls gibt die Spalte "Name" die Sortierreihenfolge vor. </p><a name="hoststab"> </a> <div class="help-header-2">Rechner-Register</div>
+<p>Das Register <b>Rechner</B> enth&auml;lt die zwei Unterregister <b>Dom&auml;nenbaum</B> und <b>Richtliniensammlung</B>. </p><a name="domtree"></a><div class="help-header-3">Dom&auml;nenbaum-Register</div>
+<p>Im Dom&auml;nenbaum werden die Konfigurationseinstellungen f&uuml;r die vom Benutzer verwendete Hardware angezeigt.</P>
+<p>Die Navigation im Dom&auml;nenbaum unterscheidet sich nicht von der Navigation im Organisationsbaum. N&auml;heres hierzu lesen Sie bitte unter <a href="#entities">Benutzer-Register</A> nach. <a name="actionbar"></a><div class="help-header-3">Aktionsleiste</div>
+<p>Das Dropdown-Men&uuml; <b>Filter</B> in der Navigationstabelle enth&auml;lt vier Eintr&auml;ge: <ul><li>"Alle Elemente" - es werden Entit&auml;ten aller Typen angezeigt.</li>
+ <li>"Dom&auml;nen" - es werden Dom&auml;nen-Entit&auml;ten angezeigt.</li>
+ <li>"Rechner" - es werden Rechner-Entit&auml;ten angezeigt. </li>
+</ul>
+</p><a name="adfilterhosts"></a><div class="help-header-3">Erweiterter Filter</div>
+<p>Der erweiterte Filter f&uuml;r den Dom&auml;nenbaum funktioniert wie derjenige f&uuml;r den Organisationsbaum (siehe hierzu den vorigen Abschnitt <a href="#adfilter">Erweiterter Filter</a>). Als Filterkategorien bietet der erweiterte Filter f&uuml;r den Dom&auml;nenbaum die Entit&auml;tstypen "Dom&auml;ne" und "Rechner". </p><a name="searchhosts"></a><div class="help-header-3">Suchen</div>
+<p>Wenn Sie auf die Schaltfl&auml;che <b>Suchen</b> im Register <b>Dom&auml;nenbaum</b> klicken, wird die Dom&auml;nensuche eingeblendet. Die Dom&auml;nensuche unterscheidet sich von der Suche im Organisationsbaum (siehe <a href="#">oben</a>) lediglich dadurch, dass der Startpunkt auf "Hardware" eingestellt ist.</p>
+
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Zum Seitenanfang springen" width="11" height="10" hspace="4" border="0"> Zum Anfang</a> </div><a name="psptab"> </a> <div class="help-header-2">Richtliniensammlungen</div>
+<p>Sowohl unter dem Register <b>Benutzer</b> als auch unter <b>Rechner</B> ist ein Register namens <b>Richtliniensammlung</B> vorhanden.</P>
+<p>Eine Richtliniensammlung ist ein Beh&auml;lter f&uuml;r Benutzer- oder Rechner-Richtliniengruppen. Die Richtliniengruppen sind in einer Liste nach ihrer Priori&auml;t angeordnet. </p><a name="psptable"></a><div class="help-header-3">Richtliniengruppentabelle</div>
+<P>Die Richtliniengruppentabelle befindet sich am oberen Seitenrand und enth&auml;lt eine Auflistung der Richtliniengruppen. Die Tabelle weist drei Spalten auf: eine Auswahlspalte sowie die Spalten "Name" und "Priorit&auml;t". </P>
+<P>Die Auswahlspalte dient zum Markieren der Zeilen, auf welche die im Dropdown-Men&uuml; <b>Aktionen f&uuml;r Richtliniengruppen</b> aufgef&uuml;hrten Aktionen angewendet werden sollen.</P>
+<P>Zum Aufrufen einer Richtliniengruppe klicken Sie auf deren Namen. Dadurch wird:</P>
+<UL>
+ <li>der Hintergrund der Reihe, auf die Sie geklickt haben, blau angezeigt.</li>
+ <li>der Inhaltsbereich um die der ausgew&auml;hlten Richtlinie zugeordneten Daten aktualisiert.</li>
+</ul>
+<p>In der Spalte "Priorit&auml;t" sehen Sie die Priorit&auml;t der Richtliniengruppe. Mithilfe der Priorit&auml;t l&auml;sst sich die Reihenfolge bei der Zusammenf&uuml;hrung von Richtliniengruppen bestimmen, wenn einer Entit&auml;t mehrere Richtliniengruppen zugeordnet wurden.</p>
+<P>Eine blau hinterlegte Zeile kennzeichnet die Richtliniengruppe, deren Daten aktuell im Inhaltsbereich angezeigt werden, also die angezeigte Richtliniengruppe. </P><a name="pspactions"></a><div class="help-header-3">Aktionen f&uuml;r Richtliniengruppen</div>
+<P>Das Dropdown-Men&uuml; <b>Aktionen f&uuml;r Richtliniengruppen</B> enth&auml;lt, von oben nach unten, die folgenden Aktionen: </P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <THEAD>
+ <TR VALIGN=TOP>
+ <TH WIDTH="11%">
+ <P>Name</P>
+ </TH>
+ <TH WIDTH="89%">
+ <P>Aktion</P>
+ </TH>
+ </TR>
+ </THEAD>
+ <TBODY>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+ <P>Neu</P>
+ </TD>
+ <TD WIDTH="89%">
+ <P>Es wird ein Dialogfenster f&uuml;r die Eingabe des (einmaligen) Namens der Richtliniengruppe ge&ouml;ffnet. Wenn Sie auf OK klicken, wird die Richtliniengruppe hinzugef&uuml;gt. Der Navigationsbereich wird aktualisiert und zeigt die &Auml;nderungen an.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="11%">
+ <P>L&ouml;schen</P>
+ </td>
+ <TD WIDTH="89%">
+ <P>Es wird ein Popup-Fenster mit einer Best&auml;tigungsaufforderung f&uuml;r das L&ouml;schen der Richtliniengruppen ge&ouml;ffnet. Wenn Sie auf "OK" klicken, werden die Richtliniengruppen gel&ouml;scht. Der Navigationsbereich wird aktualisiert und zeigt die &Auml;nderungen an.</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>Umbenennen</p>
+ </td>
+ <td width="89%">
+ <p>Es wird ein Dialogfenster ge&ouml;ffnet, in das Sie einen neuen (einmaligen) Namen f&uuml;r die Richtliniengruppe eingeben. Die Richtliniengruppe wird umbenannt und der Navigationsbereich um die &Auml;nderungen aktualisiert.</p>
+ </td>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>Priorit&auml;ten bearbeiten</p>
+ </td>
+ <td width="89%">
+ <p>Es wird ein Dialogfenster ge&ouml;ffnet, das ein Listenfeld zum &Auml;ndern der Priorit&auml;ten enth&auml;lt.</p>
+ </td>
+ </tr>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+ <P>Exportieren</P>
+ </TD>
+ <TD WIDTH="89%">
+ <P>Es wird ein Dialogfenster ge&ouml;ffnet. Hier geben Sie mit einem Zielpfad an, wohin die ausgew&auml;hlten Richtliniengruppen exportiert werden sollen.</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>Importieren</p>
+ </td>
+ <td width="89%">
+ <p>Es wird ein Dialogfenster ge&ouml;ffnet. Hier w&auml;hlen Sie die zu importierenden Richtliniengruppen aus. Wenn Sie auf "OK" klicken, werden die Richtliniengruppen hinzugef&uuml;gt, und der Navigationsbereich wird um die &Auml;nderungen aktualisiert.</p>
+ </td>
+ </tr>
+ </TBODY>
+</TABLE>
+
+<p><a name="psppriorities"></a><div class="help-header-3">Priorit&auml;ten der Richtliniengruppen</div></p>
+<p>Das Prinzip der Priorit&auml;ten f&uuml;r Richtliniengruppen erm&ouml;glicht es dem Administrator, die Reihenfolge zu bestimmen, in der Ebenen zusammengef&uuml;hrt werden. Die Priorit&auml;t der Richtliniengruppen ist f&uuml;r die Zusammenf&uuml;hrung bedeutend, wenn einer Entit&auml;t mehrere Richtliniengruppen zugeordnet wurden. In diesem Fall reicht die Entit&auml;tenhierarchie nicht aus, um die Reihenfolge zu bestimmen, in der die Richtliniengruppen zusammengef&uuml;hrt werden. Hierzu weisen Sie Richtliniengruppen Priorit&auml;ten zu.</p>
+<p>Zum &Ouml;ffnen des Dialogs "Priorit&auml;ten der Richtliniengruppen" w&auml;hlen Sie <b>Priorit&auml;ten bearbeiten</b> im Dropdown-Man&uuml; <b>Aktionen f&uuml;r Richtliniengruppen</b>. So setzen Sie die Priorit&auml;t einer Richtliniengruppe herauf oder herab:</p>
+<ol>
+ <li>W&auml;hlen Sie die gew&uuml;nschte Richtliniengruppe in der Liste aus.</li>
+ <li>Klicken Sie auf die Schaltfl&auml;che <b>Nach oben</b> bzw. <b>Nach unten</b>, um die Priorit&auml;t zu erh&ouml;hen bzw. zu verringern. </li>
+</ol>
+
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Zum Seitenanfang springen" width="11" height="10" hspace="4" border="0"> Zum Anfang</a> </div><a name="content"> </a> <div class="help-header-1">Inhaltsbereich</div>
+<p>Im Inhaltsbereich werden die zu der im Navigationsbereich ausgew&auml;hlten Entit&auml;t oder Richtliniengruppe geh&ouml;renden Daten angezeigt. Diese Daten sind in Registern organisiert. Von der jeweiligen Auswahl im Navigationsbereich h&auml;ngt es ab, wie viele und welche Register im Inhaltsbereich sichtbar sind. Das Register <b>Richtlinien</b> ist standardm&auml;&szlig;ig aktiv. Wenn die Auswahl im Navigationsbereich ge&auml;ndert wird, bleibt das aktuell aktive Register weiterhin aktiv, sofern dieses Register f&uuml;r die neue Auswahl zur Verf&uuml;gung steht. Anderenfalls wird das Register <b>Richtlinien</b> zum aktiven Register. Wird ein nicht aktives Register aktiviert, weist es wieder seinen vorherigen internen Status (Ursprungspfad, Sortierreihenfolge) auf. </p><a name="policies"> </a> <div class="help-header-2">Richtlinien-Register</div>
+<p>Das Register <b>Richtlinien</B> dient zur Navigation im Konfigurationsrichtlinienbaum, wobei Sie Untergruppen, Konfigurationseinstellungen oder beides anzeigen k&ouml;nnen.</p>
+<p>Auf jeder Richtlinienseite sehen Sie zwei Schaltfl&auml;chen: <ul><li><b>Bericht erstellen</b>: N&auml;heres hierzu finden Sie unter <a href="#reporting">Berichterstellung</a>.</li>
+ <li><b>Einstellungen l&ouml;schen</b>: Durch Bet&auml;tigung dieser Schaltfl&auml;che werden rekursiv alle Konfigurationsdaten unterhalb der f&uuml;r die angezeigte Entit&auml;t aktuell eingeblendeten Untergruppe gel&ouml;scht. </li>
+</ul>
+</P>
+<p>Jeder Root-Eintrag im Konfigurationsrichtlinienbaum entspricht einer Anwendung, beispielsweise "StarOffice 7". Im Baum unterhalb der Anwendung sind die Konfigurationsrichtlinien f&uuml;r diese Anwendung organisiert. Konfigurationsrichtlinien k&ouml;nnen &uuml;berall im Konfigurationsrichtlinienbaum angeordnet sein. Bei Konfigurationsrichtlinien, die nicht an einem Endpunkt des Konfigurationsrichtlinienbaums liegen, m&uuml;ssen sowohl die Richtlinientabelle als auch die Konfigurationsrichtlinie f&uuml;r die jeweilige aktuelle Position im Konfigurationsrichtlinienbaum angezeigt werden. </p><a name="caparpath"> </a> <div class="help-header-3">Ursprungspfad</div>
+<p>Am oberen Seitenrand, direkt unter den Registertiteln, sehen Sie den Ursprungspfad. Er gibt die aktuelle Position im Konfigurationsrichtlinienbaum an. Seine Funktionsweise unterscheidet sich nicht von der des Ursprungspfads im Navigationsbereich (siehe Abschnitt <a class="help-link" href="#parpath">Ursprungspfad</a> oben). </p><a name="subgroupstable"> </a> <div class="help-header-3">Untergruppentabelle</div>
+<P>Unter dem Ursprungspfad befindet sich die Untergruppentabelle. In dieser Tabelle sind die Untergruppen der aktuellen Position im Konfigurationsrichtlinienbaum aufgef&uuml;hrt. Sie weist zwei Spalten auf: "Name" und "Kommentar".</P>
+<P>Die Spalte "Name" enth&auml;lt die Namen aller Untergruppen der aktuellen Position im Konfigurationsrichtlinienbaum. Die Namen werden in Form von Verkn&uuml;pfungen angezeigt. Zur Navigation innerhalb des Konfigurationsrichtlinienbaums klicken Sie auf die gew&uuml;nschte Namensverkn&uuml;pfung. Dadurch wird:</P>
+<UL>
+ <li>der Inhaltsbereich aktualisiert, sodass der Pfad der neuen Position im Konfigurationsrichtlinienbaum angezeigt wird.</li>
+ <li>der Inhaltsbereich aktualisiert, sodass entweder eine Richtlinientabelle oder eine Richtlinie angezeigt wird.</LI>
+</UL>
+<P>Diese Art der Navigation wird als "Drilldown-Navigation" bezeichnet.</P>
+<P>Die Kommentarspalte enth&auml;lt eine Kurzbeschreibung der Untergruppe. </P><A NAME="capolicies"></A> <div class="help-header-3">Richtlinie</div>
+<P>Wenn f&uuml;r die Kombination der aktuellen Entit&auml;t und der aktuellen Konfigurationsrichtlinie g&uuml;ltige Konfigurationsrichtliniendaten vorliegen, werden diese Daten im Register "Richtlinien" im Inhaltsbereich angezeigt.</p>
+<p>Diese Daten sind in Tabellen organisiert. Die Tabellen umfassen vier Spalten. Dabei handelt es sich um eine Auswahlspalte mit Auswahlsymbolen und die Spalten "Status", "Name" und "Wert". Die Aktionsleiste in der Tabelle verf&uuml;gt &uuml;ber ein Dropdown-Men&uuml; mit verschiedenen Aktionen. </p>
+<p>Zum Ausw&auml;hlen eines Elements aktivieren Sie das Markierfeld vor dem gew&uuml;nschten Element. Anschlie&szlig;end kann eine Aktion aus dem Dropdown-Men&uuml; in der Aktionsleiste auf das ausgew&auml;hlte Element angewendet werden. In der folgenden Tabelle sind s&auml;mtliche Aktionen kurz erl&auml;utert:</p>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P><B>Aktion</B></P>
+ </TD>
+ <TD WIDTH="83%">
+ <P><B>Wirkung</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Sch&uuml;tzen</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Definiert das ausgew&auml;hlte Element als gesch&uuml;tzt.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Schutz aufheben</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Hebt den Schutz des ausgew&auml;hlten Elements auf.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Anwendungsvorgabe &uuml;bernehmen</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Wendet den in der Richtlinienvorlage festgelegten Vorgabewert an.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Entfernen</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>L&ouml;scht die im Element gespeicherten Daten.</P>
+ </TD>
+ </TR>
+
+</TABLE>
+<p>Links neben einem Elementnamen sehen Sie zwei Symbole, die den Status des Elements anzeigen. Die folgende Tabelle bietet eine Zusammenfassung der Symbole und ihrer Funktionen.</P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><B>Symbol</B></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P><B>Bedeutung</B></P>
+ </TD>
+ <TD WIDTH="32%">
+ <P><B>Wirkung</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_set_here.png" NAME="DefinedHere" ALT="Hier definiert" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Dieses Symbol bedeutet, dass der Wert des Elements in dieser Ebene des Organisationsbaums definiert wurde.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_set_above.png" NAME="DefinedLayered" ALT="Dar&uuml;ber definiert" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Dieses Symbol, das zugleich eine Verkn&uuml;pfung darstellt, bedeutet, dass der Wert des Elements in einer h&ouml;heren Ebene des Organisations- oder Dom&auml;nenbaums definiert wurde. Der f&uuml;r den Benutzer sichtbare Wert ist das Ergebnis der Zusammenf&uuml;hrung mehrerer Ebenen oder Entit&auml;tsstufen innerhalb der Organisation.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>Indem Sie auf das Symbol klicken, gelangen Sie zu der Ebene, in welcher der Wert definiert wurde.</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_protected_here.png" NAME="ProtectedHere" ALT="Hier gesch&uuml;tzt" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Dieses Symbol bedeutet, dass der Schutz des Elements in dieser Ebene des Organisationsbaums definiert wurde. Der Schutz wird innerhalb des Organisations- und des Konfigurationsrichtlinienbaums weitervererbt.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_protected_above.png" NAME="ProtectedLayered" ALT="Dar&uuml;ber gesch&uuml;tzt" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Dieses Symbol, das zugleich eine Verkn&uuml;pfung darstellt, bedeutet, dass der Schutz des Elements in einer h&ouml;heren Ebene des Organisations- oder Dom&auml;nenbaums definiert wurde. Der Schutz dieses Elements oder Eintrags ist das Ergebnis der Zusammenf&uuml;hrung von Ebenen oder Entit&auml;tsstufen innerhalb der Organisation.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>Indem Sie auf dieses Symbol klicken, gelangen Sie zu der Ebene, in welcher der Schutz definiert wurde.</P>
+ </TD>
+ </TR>
+</TABLE>
+<p>Datenwerte lassen sich durch Bearbeitung der Werte in der Spalte "Werte" &auml;ndern. Sowohl Wert- als auch Status&auml;nderungen m&uuml;ssen gespeichert werden. Zum Speichern klicken Sie auf die Schaltfl&auml;che <b>Speichern</b>. </p><a name="casets"> </a> <div class="help-header-3">S&auml;tze</div>
+<p>S&auml;tze sind dynamische Eigenschaftensammlungen. Sie k&ouml;nnen Elemente aus einem Satz l&ouml;schen oder neue hinzuf&uuml;gen.</p>
+<p>So f&uuml;gen Sie einem Satz ein Element hinzu: <ol><li>Klicken Sie auf die Schaltfl&auml;che <b>Neu</b>. </li>
+ <li>Sie erhalten die Gelegenheit, einen Namen f&uuml;r das neue Element in einen Dialog einzugeben. Daraufhin wird das Element hinzugef&uuml;gt und das Hauptfenster aktualisiert.</li>
+ <li>Das neue Element kann im Hauptfenster bearbeitet werden.</li>
+</ol>
+<p>Zum L&ouml;schen von Elementen aus einem Satz w&auml;hlen Sie das Element aus und klicken auf die Schaltfl&auml;che <b>L&ouml;schen</B>.</p>
+<p>Beachten Sie bitte, dass S&auml;tze weitere S&auml;tze enthalten k&ouml;nnen und als Verkn&uuml;pfungen dargestellt sind. Indem Sie auf eine solche Verkn&uuml;pfung klicken, gelangen Sie zu dem Satz, der von dieser Stelle aus bearbeitet werden kann. </p><a name="policysets"> </a> <div class="help-header-2">Richtliniengruppen-Register</div>
+<p>Auf dieser Richtliniengruppen-Seite k&ouml;nnen Sie Richtliniengruppen f&uuml;r die ausgew&auml;hlte Entit&auml;t entfernen oder neue hinzuf&uuml;gen.</p>
+<p>So f&uuml;gen Sie eine in der Liste <b>Verf&uuml;gbar</b> auf der linken Seite aufgef&uuml;hrte Richtliniengruppe hinzu:</p>
+<ol>
+ <li>W&auml;hlen Sie die gew&uuml;nschte Richtliniengruppe in der Liste aus.</li>
+ <li>Klicken Sie auf die Schaltfl&auml;che <b>Hinzuf&uuml;gen</b>, um die ausgew&auml;hlte Richtliniengruppe in die Liste <b>Ausgew&auml;hlt</B> auf der rechten Seite zu &uuml;bertragen.</li>
+ <li>Klicken Sie auf <b>Speichern</b>, um die neue Zuordnung zu speichern. </LI>
+</ol><a name="caentities"> </a> <div class="help-header-2">Assoziierte Entit&auml;ten</div>
+<p>Ist in der Richtliniensammlung im Navigationsbereich eine Richtliniengruppe ausgew&auml;hlt, weist der Inhaltsbereich eine Registerseite namens <b>Assoziierte Entit&auml;ten</b> auf. Auf dieser Seite sind alle der ausgew&auml;hlten Richtliniengruppe zugeordneten Entit&auml;ten aufgef&uuml;hrt.</p>
+<p>Auf der Registerseite "Assoziierte Entit&auml;ten" k&ouml;nnen die folgenden Aktionen ausgef&uuml;hrt werden: <ul><li><b>Entfernen</B> - hebt die Zuordnung zwischen der ausgew&auml;hlten Entit&auml;t und der im Navigationsbereich ausgew&auml;hlten Richtliniengruppe auf. </li>
+ <li>Durch Klicken auf eine Entit&auml;t in der Spalte "Name" wird der Navigationsbereich aktualisiert, sodass die Entit&auml;t, auf die geklickt wurde, im Navigationsbereich blau hinterlegt wird. </li>
+</ul>
+</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Zum Seitenanfang springen" width="11" height="10" hspace="4" border="0"> Zum Anfang</a> </div><a name="roles"> </a> <div class="help-header-2">Rollen-Register</div>
+<p>Ist im Navigationsbereich eine Entit&auml;t des Typs "Benutzer" ausgew&auml;hlt und dieser Benutzer ist Mitglied mindestens einer Rolle, so weist der Inhaltsbereich eine Registerseite namens <b>Rollen</B> auf. Auf der Seite <b>Rollen</B> sind s&auml;mtliche Rollen aufgef&uuml;hrt, welchen der ausgew&auml;hlte Benutzer angeh&ouml;rt.</p>
+<p>Auf dieser Seite sehen Sie die zwei Spalten "Name" und "Pfad". "Name" enth&auml;lt die Namen der Rollen und "Pfad" den absoluten Pfad der jeweiligen Rolle. </p><a name="users"> </a> <div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Zum Seitenanfang springen" width="11" height="10" hspace="4" border="0"> Zum Anfang</a> </div><a name="reporting"> </a> <div class="help-header-1">Berichterstellung</div>
+<p>Bei einem Bericht handelt es sich um eine schreibgesch&uuml;tzte Ansicht s&auml;mtlicher Konfigurationseinstellungen, f&uuml;r die Daten vorliegen. Sie erhalten einen Bericht, indem Sie auf die Schaltfl&auml;che <b>Bericht erstellen</B> klicken. Dadurch wird der Dialog "Berichts-Konfiguration" ge&ouml;ffnet.</p>
+<p>Im Dialog "Berichts-Konfiguration" lassen sich folgende Parameter anpassen: <ul><li>die zu ber&uuml;cksichtigenden B&auml;ume (Organisations- und/oder Dom&auml;nenbaum) (<b>F&uuml;r den Bericht verwenden</B>) </li>
+ <li>die im fertigen Bericht anzuzeigenden Spalten (<b>Statuspfad</b> und <b>Beschreibung</B> sind deaktivierbar). </li>
+</ul>
+<p>Nach der Anpassung klicken Sie auf die Schaltfl&auml;che "Bericht erstellen" und erhalten eine schreibgesch&uuml;tzte Ansicht der ausgew&auml;hlten Daten.</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Zum Seitenanfang springen" width="11" height="10" hspace="4" border="0"> Zum Anfang</a></div>
+
+</body>
+</html>
diff --git a/webconsole/html/de/helpNav.html b/webconsole/html/de/helpNav.html
new file mode 100644
index 0000000..1a88862
--- /dev/null
+++ b/webconsole/html/de/helpNav.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+ <title>APOC Manager - Inhalt der Hilfe </title>
+ <meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><!-- Empty script so IE5.0 Windows will draw table and button borders --><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"></script> </HEAD>
+ <BODY>
+ <table border="0">
+ <tr>
+ <td><div class="help-header-3"><span class="help-header-3">Inhalt</span></div>
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#concepts" target="contentFrame">Hintergrund und Konzepte</a> </li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#dataStructures" target="contentFrame">Datenstrukturen</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#SecDataManagement" target="contentFrame">Sicherheit und Datenverwaltung</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#GenConfigSettings" target="contentFrame">Generierung von Konfigurationseinstellungen</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#BCAssociation" target="contentFrame">Zuordnung</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#BCPolicyGroups" target="contentFrame">Richtliniengruppen</A></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#ui" target="contentFrame"> Struktur und Verhalten</a> </li>
+ <li><a class="help-toc-link" href="helpContent.html#login" target="contentFrame"> Anmeldung</a> </li>
+ <li><a class="help-toc-link" href="helpContent.html#masthead" target="contentFrame"> Impressumsbereich</a> </li>
+ <li><a class="help-toc-link" href="helpContent.html#navigation" target="contentFrame"> Navigationsbereich</a></li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#entities" target="contentFrame"> Benutzer-Register</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#parpath" target="contentFrame"> Ursprungspfad</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#navtable" target="contentFrame"> Navigationstabelle</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#adfilter" target="contentFrame"> Erweiterter Filter</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#search" target="contentFrame"> Suche</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#hoststab" target="contentFrame"> Rechner-Register</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#domtree" target="contentFrame"> Dom&auml;nenbaum</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#actionbar" target="contentFrame"> Aktionsleite</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#adfilterhosts" target="contentFrame"> Erweiterter Filter</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#searchhosts" target="contentFrame"> Suche</a></li>
+ </UL>
+ <li><a class="help-toc-link" href="helpContent.html#psptab" target="contentFrame"> Richtliniensammlungen</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#psptable" target="contentFrame"> Richtliniengruppentabelle</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#pspactions" target="contentFrame"> Aktionen f&uuml;r Richtliniengruppen</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#psppriorities" target="contentFrame"> Priorit&auml;ten der Richtliniengruppen</a></li>
+ </ul>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#content" target="contentFrame"> Inhaltsbereich</a> </li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#policies" target="contentFrame"> Richtlinien-Register</a></li>
+ <ul type="circle"><li><a class="help-toc-link" href="helpContent.html#caparpath" target="contentFrame"> Ursprungspfad</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#subgroupstable" target="contentFrame"> Untergruppentabelle</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#capolicies" target="contentFrame"> Richtlinie</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#casets" target="contentFrame"> S&auml;tze</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#policysets" target="contentFrame"> Richtliniengruppen-Register</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#caentities" target="contentFrame"> Assoziierte Entit&auml;ten</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#roles" target="contentFrame"> Rollen-Register</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#reporting" target="contentFrame"> Berichterstellung</a> </li>
+ </ul>
+ </td>
+ </tr>
+ </table>
+ </BODY>
+</HTML>
diff --git a/webconsole/html/de/helpToolbar.html b/webconsole/html/de/helpToolbar.html
new file mode 100644
index 0000000..386d099
--- /dev/null
+++ b/webconsole/html/de/helpToolbar.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+ <title>APOC Manager - Hilfe-Symbolleiste</title>
+ <meta name="Copyright" content="Copyright &copy; 2003 Sun Microsystems Inc. Alle Rechte vorbehalten.">
+ <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ </HEAD>
+ <BODY>
+ <table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><img src="/apoc/images/dot.gif" width="1" height="15" alt=""/></td>
+ <td align="right" nowrap="nowrap" valign="bottom"><div
+class="TtlBtnDiv">
+ <input name="Masthead.CloseButton" type="submit" class="Btn1" value="Schlie&szlig;en"
+title="Zum Schließen des Hilfefensters hier klicken" onclick="javascript: parent.parent.close();
+return false;" onmouseover="javascript: if (this.disabled==0)
+this.className='Btn1Hov'" onmouseout="javascript: if (this.disabled==0) this.className='Btn1'"
+on blur="javascript: if (this.disabled==0) this.className='Btn1'"
+onfocus="javascript: if (this.disabled==0) this.className='Btn1Hov'" />
+ </div></td>
+ </tr>
+ </TABLE>
+</body>
diff --git a/webconsole/html/en/Makefile.am b/webconsole/html/en/Makefile.am
new file mode 100644
index 0000000..b775f67
--- /dev/null
+++ b/webconsole/html/en/Makefile.am
@@ -0,0 +1,14 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = help
+
+endir = ${htmldir}/en
+en_DATA =notemphelp.html \
+ versionInfo.shtml \
+ help.html \
+ blank.html \
+ helpToolbar.html \
+ helpNav.html \
+ version.txt \
+ helpContent.html \ No newline at end of file
diff --git a/webconsole/html/en/blank.html b/webconsole/html/en/blank.html
new file mode 100644
index 0000000..205150e
--- /dev/null
+++ b/webconsole/html/en/blank.html
@@ -0,0 +1,4 @@
+<body>
+<html>
+</html>
+</body>
diff --git a/webconsole/html/en/help.html b/webconsole/html/en/help.html
new file mode 100644
index 0000000..3e5c6c4
--- /dev/null
+++ b/webconsole/html/en/help.html
@@ -0,0 +1,74 @@
+<html>
+ <head>
+ <title>Help - StarOffice Configuration Manager</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ </head>
+<script language="JavaScript">
+<!--
+
+var sPkgName = " "
+var sAnchorName = " "
+var sAnchorCon = " "
+var sAnchorNav = " "
+var sHelpLocale = " "
+if (window.anchor != null) {
+ sAnchorName = anchor;
+}
+if (window.top.opener.top.content.document.ContentAreaForm!=null) {
+ sAnchorName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.Anchor'].value;
+ sPkgName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.PkgName'].value;
+ sHelpLocale =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.HelpLocale'].value;
+ if (sHelpLocale=="nolocalizedhelp")
+ sHelpLocale="_en_US";
+}
+if (sAnchorName=="hoststab" || sAnchorName=="psptab" || sAnchorName=="entities" ||
+sAnchorName=="policies" || sAnchorName=="policysets" || sAnchorName=="caentities" ||
+sAnchorName=="roles" || sAnchorName=="")
+{
+ document.write('<frameset cols="30%, 70%" border="1" framespacing="0"> ');
+
+ document.write(' <frame name="navFrame"');
+ document.write(' title="Help Navigation Area"');
+ document.write(' id="nav"');
+ document.write(' src="helpNav.html">');
+
+ document.write(' <frameset rows="10%, 90%" border="1" framespacing="0">');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="contentFrame"');
+ document.write(' title="Help Content Area"');
+ document.write(' id="content"');
+ document.write(' src="helpContent.html#'+sAnchorName+'">');
+ document.write(' <\/frameset>');
+ document.write('<\/frameset>');
+
+} else {
+ // The correct package name is not available yet
+ document.write('<frameset rows="10%, 90%" border="0" framespacing="0"> ');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="templateContent"');
+ document.write(' title="Help Template"');
+ document.write(' id="temphelp"');
+ document.write(' src="../../packages/'+sPkgName+'/web/'+sAnchorName+sHelpLocale+'.html">');
+ document.write('<\/frameset>');
+}
+
+
+//-->
+
+</script>
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ </body>
+ </noframes>
+</html>
diff --git a/webconsole/html/en/help/JavaHelpSearch/DOCS b/webconsole/html/en/help/JavaHelpSearch/DOCS
new file mode 100644
index 0000000..39dd8c5
--- /dev/null
+++ b/webconsole/html/en/help/JavaHelpSearch/DOCS
Binary files differ
diff --git a/webconsole/html/en/help/JavaHelpSearch/DOCS.TAB b/webconsole/html/en/help/JavaHelpSearch/DOCS.TAB
new file mode 100644
index 0000000..2df8ef4
--- /dev/null
+++ b/webconsole/html/en/help/JavaHelpSearch/DOCS.TAB
@@ -0,0 +1,2 @@
+eÿuÿÿÿ÷_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝÿÿÿÿÿÿÿÿÿÿÿÿuÿÿÿÿÿÿÿÿÿÿÿÝÿÿÿÿÿý×ÿÝ]ÿÿÿÿÿÿÿÿÿÿÿÿ÷_ÿÝÿÿÿÿý×ÿÿÿÿÿÿÿÿÿÿÿÿÿu÷_ÿÿÿÿüÒÿÿÿu÷_óIÝÝÝÿÿÿÿÿÿÿÿÿÿÿñ±õÿÝ]ÿÿÿÿÿÿÿÿÿÿüܵÿÿÿÿÿÿÿ4µÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐ3Š2*Œ(Ìp3!bª¨b…ŠF*4¯ª8ªŽ*0ª0`\`J8hJ2¢ú4dT»Œ+ªº³J£J‡óÑÊÎ/6ÆDìØ¡‘L£Š£JAB¡#Šª£!8Ò†EŠãF…ÄŒŠŽ*ŽBÍ.Œ(Ú(å*Ž¸¾ŒÙ.¨Á¡;?Hª¨ÝŠÄÆË="ª£"¨ÂŒ*0ªªº0®Î*ì×,â«£
+0º4³¥Ë9Jú8³ªª¼ÒãJ£ Œ.ÿÿÿûŒ,Òï4¬Ò³ 3*ê¨Âº«0¯3*³n¢îÌ/«¨Â*4¿üÂÿ4¿Ì/3‹4³ 0¼ÒÍ/ÿÿÿÿÿÿó 0³ ÿ2/óbó ÿ2/ÿÿÿó ÿó ÿÿÌ,Âÿ0¿ó Ì/ÿÿ0¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö \ No newline at end of file
diff --git a/webconsole/html/en/help/JavaHelpSearch/Makefile.am b/webconsole/html/en/help/JavaHelpSearch/Makefile.am
new file mode 100644
index 0000000..338b00b
--- /dev/null
+++ b/webconsole/html/en/help/JavaHelpSearch/Makefile.am
@@ -0,0 +1,11 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+
+JavaHelpSearchdir = ${htmldir}/en/help/JavaHelpSearch
+JavaHelpSearch_DATA =DOCS \
+ SCHEMA \
+ DOCS.TAB \
+ POSITIONS \
+ TMAP \
+ OFFSETS \ No newline at end of file
diff --git a/webconsole/html/en/help/JavaHelpSearch/OFFSETS b/webconsole/html/en/help/JavaHelpSearch/OFFSETS
new file mode 100644
index 0000000..967aad0
--- /dev/null
+++ b/webconsole/html/en/help/JavaHelpSearch/OFFSETS
Binary files differ
diff --git a/webconsole/html/en/help/JavaHelpSearch/POSITIONS b/webconsole/html/en/help/JavaHelpSearch/POSITIONS
new file mode 100644
index 0000000..b2d8730
--- /dev/null
+++ b/webconsole/html/en/help/JavaHelpSearch/POSITIONS
Binary files differ
diff --git a/webconsole/html/en/help/JavaHelpSearch/SCHEMA b/webconsole/html/en/help/JavaHelpSearch/SCHEMA
new file mode 100644
index 0000000..290aa45
--- /dev/null
+++ b/webconsole/html/en/help/JavaHelpSearch/SCHEMA
@@ -0,0 +1,2 @@
+JavaSearch 1.0
+TMAP bs=2048 rt=1 fl=-1 id1=1001 id2=1
diff --git a/webconsole/html/en/help/JavaHelpSearch/TMAP b/webconsole/html/en/help/JavaHelpSearch/TMAP
new file mode 100644
index 0000000..1dd449a
--- /dev/null
+++ b/webconsole/html/en/help/JavaHelpSearch/TMAP
Binary files differ
diff --git a/webconsole/html/en/help/Makefile.am b/webconsole/html/en/help/Makefile.am
new file mode 100644
index 0000000..b5aa7b2
--- /dev/null
+++ b/webconsole/html/en/help/Makefile.am
@@ -0,0 +1,55 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = css graphics ents JavaHelpSearch
+
+helpdir = ${htmldir}/en/help
+help_DATA =gbgpn.html \
+ gbgqf.html \
+ gbgeb.html \
+ app.hs \
+ gbgps.html \
+ gbgoy.html \
+ gbgkr.html \
+ gbgpj.html \
+ gbgcd.html \
+ gbgpw.html \
+ gbzbc.html \
+ gbgou.html \
+ p1.html \
+ gbgqj.html \
+ gbgpb.html \
+ gbgot.html \
+ gbgdc.html \
+ toc.xml \
+ gbgcm.html \
+ map.jhm \
+ gbgca.html \
+ gbgni.html \
+ gbgec.html \
+ gbgpr.html \
+ gbgce.html \
+ empty.html \
+ gbgqm.html \
+ gbgpe.html \
+ gbgda.html \
+ gbgcr.html \
+ copyright.html \
+ gbgqt.html \
+ gbgpa.html \
+ gbgpm.html \
+ gbgqe.html \
+ gbgpp.html \
+ gbgoz.html \
+ gbgcg.html \
+ gbgpt.html \
+ gbgqa.html \
+ gbgdh.html \
+ index.xml \
+ gbgpu.html \
+ gbgow.html \
+ gbzci.html \
+ gbgqh.html \
+ gbgqu.html \
+ background.html \
+ gbgcn.html \ No newline at end of file
diff --git a/webconsole/html/en/help/app.hs b/webconsole/html/en/help/app.hs
new file mode 100644
index 0000000..03d3ba6
--- /dev/null
+++ b/webconsole/html/en/help/app.hs
@@ -0,0 +1,29 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE helpset PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN" "helpset_1_0.dtd">
+
+<helpset version="1.0" xml:lang="en">
+<title>about_vman</title>
+<maps>
+ <homeID></homeID>
+ <mapref location="map.jhm"/>
+</maps>
+<view>
+ <name>TOC</name>
+ <label>Contents</label>
+ <type>javax.help.TOCView</type>
+ <data>toc.xml</data>
+</view>
+<view>
+ <name>Index</name>
+ <label>Index</label>
+ <type>javax.help.IndexView</type>
+ <data>index.xml</data>
+</view>
+<view>
+ <name>Search</name>
+ <label>Search</label>
+ <type>javax.help.SearchView</type>
+ <data engine="com.sun.java.help.search.DefaultSearchEngine">JavaHelpSearch</data>
+</view>
+</helpset>
diff --git a/webconsole/html/en/help/background.html b/webconsole/html/en/help/background.html
new file mode 100644
index 0000000..05b522d
--- /dev/null
+++ b/webconsole/html/en/help/background.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+
+
+<title>About the Configuration Manager</title>
+<script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="BACKGROUND"></A><h2>Configuration Manager Help</h2>
+
+<p>Welcome to the Sun Java&#8482; Desktop System Configuration Manager Help pages.</p>
+
+<p>Using the Configuration Manager, administrators can assign
+profiles to individual users or organisational units stored in a central
+configuration storage such as an existing corporate LDAP server. The
+configuration settings defined in these profiles are then applied on behalf of
+the users to the applications running on the Sun Java Desktop System such as the
+Gnome desktop, Mozilla, StarOffice and Gnome applications like Evolution.</p>
+
+<p>To get help for a specific part of the Configuration Manager,
+click on one of the links on the left.</p>
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/copyright.html b/webconsole/html/en/help/copyright.html
new file mode 100644
index 0000000..2a2d36d
--- /dev/null
+++ b/webconsole/html/en/help/copyright.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<p>Part No: 819-3617</p><p></p>Sun Microsystems, Inc. <p><br>4150 Network Circle<br>Santa Clara, CA 95054 <br>U.S.A.</p><p>Copyright 2006, Sun Microsystems, Inc.</p><p>Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual
+property rights may include one or more U.S. patents or pending patent applications in the U.S. and in other countries.</p>
+<p>U.S. Government Rights &#8211; Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements.</p>
+<p>This distribution may include materials developed by third parties.</p>
+<p>Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively
+licensed through X/Open Company, Ltd.</p>
+<p>Sun, Sun Microsystems, the Sun logo,
+the Solaris logo, the Java Coffee Cup logo, docs.sun.com,
+Java, and
+Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S.
+and other countries. All SPARC trademarks are used under license and are trademarks
+or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+Products bearing SPARC trademarks are based upon an architecture developed by Sun
+Microsystems, Inc. </p>
+<p>The OPEN LOOK and Sun&#153; Graphical User Interface was developed by Sun Microsystems, Inc. for
+its users and licensees. Sun acknowledges the pioneering efforts of Xerox in researching
+and developing the concept of visual or graphical user interfaces for the computer
+industry. Sun holds a non-exclusive license from Xerox to the Xerox Graphical User
+Interface, which license also covers Sun's licensees who implement OPEN LOOK GUIs
+and otherwise comply with Sun's written license agreements.</p>
+<p>Products covered by and information contained in this publication are controlled by U.S. Export Control
+laws and may be subject to the export or import laws in other countries. Nuclear,
+missile, chemical or biological weapons or nuclear maritime end uses or end users,
+whether direct or indirect, are strictly prohibited. Export or reexport to countries
+subject to U.S. embargo or to entities identified on U.S. export exclusion lists,
+including, but not limited to, the denied persons and specially designated nationals
+lists is strictly prohibited.</p>
+<p>DOCUMENTATION IS PROVIDED &#8220;AS IS&#8221; AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
+IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT,
+ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.</p>
+<p></p>
+<p>Sun Microsystems, Inc. d&#233;tient les droits de propri&#233;t&#233;
+intellectuelle relatifs &#224; la technologie incorpor&#233;e dans
+le produit qui est
+d&#233;crit dans ce document. En particulier, et ce sans limitation,
+ces droits de
+propri&#233;t&#233; intellectuelle peuvent inclure un ou plusieurs
+brevets am&#233;ricains ou des
+applications de brevet en attente aux Etats-Unis et dans d'autres
+pays.</p>
+<p>Cette distribution peut comprendre des composants
+d&#233;velopp&#233;s par des tierces personnes.</p>
+<p>Certaines composants de ce produit peuvent &#234;tre
+d&#233;riv&#233;es du logiciel Berkeley BSD, licenci&#233;s par
+l'Universit&#233; de
+Californie. UNIX est une marque d&#233;pos&#233;e aux Etats-Unis et
+dans d'autres pays; elle est
+licenci&#233;e exclusivement par X/Open Company, Ltd. </p>
+<p>Sun, Sun Microsystems, le logo Sun, le logo Solaris, le logo Java
+Coffee Cup, docs.sun.com,
+ Java et Solaris sont des
+marques de fabrique ou des marques d&#233;pos&#233;es
+de Sun Microsystems, Inc. aux Etats-Unis et dans d'autres pays. Toutes
+les marques
+SPARC sont utilis&#233;es sous licence et sont des marques de fabrique
+ou des
+marques d&#233;pos&#233;es de SPARC International, Inc. aux
+Etats-Unis et dans
+d'autres pays. Les produits portant les marques SPARC sont bas&#233;s
+sur une
+architecture d&#233;velopp&#233;e par Sun Microsystems, Inc.</p>
+<p>L'interface d'utilisation graphique OPEN LOOK et
+Sun&#153; a &#233;t&#233;
+d&#233;velopp&#233;e par Sun Microsystems, Inc. pour ses
+utilisateurs et
+licenci&#233;s. Sun reconna&#238;t les efforts de pionniers de Xerox
+pour la
+recherche et le d&#233;veloppement du concept des interfaces
+d'utilisation
+visuelle ou graphique pour l'industrie de l'informatique. Sun
+d&#233;tient une licence non exclusive de Xerox sur
+l'interface d'utilisation graphique Xerox, cette licence couvrant
+&#233;galement les
+licenci&#233;s de Sun qui mettent en place l'interface d'utilisation
+graphique OPEN LOOK et
+qui, en outre, se conforment aux licences &#233;crites de Sun.</p>
+<p>Les produits qui font l'objet de cette publication et les
+informations qu'il contient sont r&#233;gis par la legislation
+am&#233;ricaine en mati&#232;re de contr&#244;le des exportations et peuvent &#234;tre soumis au droit
+d'autres pays dans le domaine des exportations et importations. Les utilisations finales, ou
+utilisateurs finaux, pour des armes nucl&#233;aires, des missiles, des armes
+chimiques ou biologiques ou pour le nucl&#233;aire maritime, directement ou
+indirectement, sont strictement interdites. Les exportations ou r&#233;exportations vers
+des pays sous embargo des Etats-Unis, ou vers des entit&#233;s figurant sur les
+listes d'exclusion d'exportation am&#233;ricaines, y compris, mais de mani&#232;re non
+exclusive, la liste de personnes qui font objet d'un ordre de ne pas participer, d'une fa&#231;on
+directe ou
+indirecte, aux exportations des produits ou des services qui sont
+r&#233;gis par la
+legislation am&#233;ricaine en mati&#232;re de contr&#244;le des
+exportations et la
+liste de ressortissants sp&#233;cifiquement design&#233;s, sont
+rigoureusement interdites.</p>
+<p>LA DOCUMENTATION EST FOURNIE "EN L'ETAT" ET TOUTES AUTRES CONDITIONS,
+DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENT EXCLUES,
+DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT
+TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A L'APTITUDE A UNE
+UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFACON. </p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/css/Makefile.am b/webconsole/html/en/help/css/Makefile.am
new file mode 100644
index 0000000..5ef3118
--- /dev/null
+++ b/webconsole/html/en/help/css/Makefile.am
@@ -0,0 +1,7 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+
+cssdir = ${htmldir}/en/help/css
+css_DATA =ic_bullet_white.gif \
+ ic_bullet.gif \ No newline at end of file
diff --git a/webconsole/html/en/help/css/ic_bullet.gif b/webconsole/html/en/help/css/ic_bullet.gif
new file mode 100644
index 0000000..03c01d0
--- /dev/null
+++ b/webconsole/html/en/help/css/ic_bullet.gif
Binary files differ
diff --git a/webconsole/html/en/help/css/ic_bullet_white.gif b/webconsole/html/en/help/css/ic_bullet_white.gif
new file mode 100644
index 0000000..13f186a
--- /dev/null
+++ b/webconsole/html/en/help/css/ic_bullet_white.gif
Binary files differ
diff --git a/webconsole/html/en/help/empty.html b/webconsole/html/en/help/empty.html
new file mode 100644
index 0000000..5fe1333
--- /dev/null
+++ b/webconsole/html/en/help/empty.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+
+
+<title>Under construction</title>
+<script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="BACKGROUND"></A><h2>Topic not available yet</h2>
+
+<p>Help for the selected topic is not available yet. We are sorry for any
+inconvinience.</p>
+
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/ents/Makefile.am b/webconsole/html/en/help/ents/Makefile.am
new file mode 100644
index 0000000..a72fe24
--- /dev/null
+++ b/webconsole/html/en/help/ents/Makefile.am
@@ -0,0 +1,24 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+
+entsdir = ${htmldir}/en/help/ents
+ents_DATA =lgr.gif \
+ reg.gif \
+ loz.gif \
+ check.gif \
+ ap.gif \
+ Scaron.gif \
+ cong.gif \
+ copy.gif \
+ OElig.gif \
+ forall.gif \
+ exist.gif \
+ oelig.gif \
+ pi.gif \
+ infin.gif \
+ trade.gif \
+ ne.gif \
+ ring.gif \
+ Yuml.gif \
+ scaron.gif \ No newline at end of file
diff --git a/webconsole/html/en/help/ents/OElig.gif b/webconsole/html/en/help/ents/OElig.gif
new file mode 100644
index 0000000..5b68fdf
--- /dev/null
+++ b/webconsole/html/en/help/ents/OElig.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/Scaron.gif b/webconsole/html/en/help/ents/Scaron.gif
new file mode 100644
index 0000000..bb634ae
--- /dev/null
+++ b/webconsole/html/en/help/ents/Scaron.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/Yuml.gif b/webconsole/html/en/help/ents/Yuml.gif
new file mode 100644
index 0000000..e5bda8a
--- /dev/null
+++ b/webconsole/html/en/help/ents/Yuml.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/ap.gif b/webconsole/html/en/help/ents/ap.gif
new file mode 100644
index 0000000..222727c
--- /dev/null
+++ b/webconsole/html/en/help/ents/ap.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/check.gif b/webconsole/html/en/help/ents/check.gif
new file mode 100644
index 0000000..1ff27bc
--- /dev/null
+++ b/webconsole/html/en/help/ents/check.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/cong.gif b/webconsole/html/en/help/ents/cong.gif
new file mode 100644
index 0000000..079a5dc
--- /dev/null
+++ b/webconsole/html/en/help/ents/cong.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/copy.gif b/webconsole/html/en/help/ents/copy.gif
new file mode 100644
index 0000000..68ba6d2
--- /dev/null
+++ b/webconsole/html/en/help/ents/copy.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/exist.gif b/webconsole/html/en/help/ents/exist.gif
new file mode 100644
index 0000000..03990ac
--- /dev/null
+++ b/webconsole/html/en/help/ents/exist.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/forall.gif b/webconsole/html/en/help/ents/forall.gif
new file mode 100644
index 0000000..4659af1
--- /dev/null
+++ b/webconsole/html/en/help/ents/forall.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/infin.gif b/webconsole/html/en/help/ents/infin.gif
new file mode 100644
index 0000000..f4d648e
--- /dev/null
+++ b/webconsole/html/en/help/ents/infin.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/lgr.gif b/webconsole/html/en/help/ents/lgr.gif
new file mode 100644
index 0000000..db61326
--- /dev/null
+++ b/webconsole/html/en/help/ents/lgr.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/loz.gif b/webconsole/html/en/help/ents/loz.gif
new file mode 100644
index 0000000..26eab3a
--- /dev/null
+++ b/webconsole/html/en/help/ents/loz.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/ne.gif b/webconsole/html/en/help/ents/ne.gif
new file mode 100644
index 0000000..cc191e0
--- /dev/null
+++ b/webconsole/html/en/help/ents/ne.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/oelig.gif b/webconsole/html/en/help/ents/oelig.gif
new file mode 100644
index 0000000..83929e4
--- /dev/null
+++ b/webconsole/html/en/help/ents/oelig.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/pi.gif b/webconsole/html/en/help/ents/pi.gif
new file mode 100644
index 0000000..4b74748
--- /dev/null
+++ b/webconsole/html/en/help/ents/pi.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/reg.gif b/webconsole/html/en/help/ents/reg.gif
new file mode 100644
index 0000000..09de9cf
--- /dev/null
+++ b/webconsole/html/en/help/ents/reg.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/ring.gif b/webconsole/html/en/help/ents/ring.gif
new file mode 100644
index 0000000..e35edf7
--- /dev/null
+++ b/webconsole/html/en/help/ents/ring.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/scaron.gif b/webconsole/html/en/help/ents/scaron.gif
new file mode 100644
index 0000000..08c1582
--- /dev/null
+++ b/webconsole/html/en/help/ents/scaron.gif
Binary files differ
diff --git a/webconsole/html/en/help/ents/trade.gif b/webconsole/html/en/help/ents/trade.gif
new file mode 100644
index 0000000..c435cfc
--- /dev/null
+++ b/webconsole/html/en/help/ents/trade.gif
Binary files differ
diff --git a/webconsole/html/en/help/gbgca.html b/webconsole/html/en/help/gbgca.html
new file mode 100644
index 0000000..17656a9
--- /dev/null
+++ b/webconsole/html/en/help/gbgca.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>1.&#160;&#160;Sun Desktop Manager 1.0.1 Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgca"></A><b>Chapter&#160;1</b><h1>Sun Desktop Manager 1.0.1 Help</h1>
+<p>Welcome to the Sun Desktop Manager Help pages. To get help for a specific part of
+the Desktop Manager, click on one of the links on the left. The online help provides
+information about the Desktop Manager functionality and usage.</p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgcd.html b/webconsole/html/en/help/gbgcd.html
new file mode 100644
index 0000000..853716c
--- /dev/null
+++ b/webconsole/html/en/help/gbgcd.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Profiles &#8212; All
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgcd"></A><h2>Profiles &#8212; All</h2>
+<A NAME="indexterm-40"></A><p>The Profiles &#8212; All page displays all available profiles, including those
+that are not assigned to an element. The profiles are shown in two tables, one for
+domain profiles and one for organization profiles.</p>
+<p>The profile tables let you perform the following actions:</p>
+<ul><li><p><A HREF="gbgcr.html#gbgcr">Creating a new Profile</A></p>
+</li>
+<li><p><A HREF="gbgpe.html#gbgpe">Deleting a Profile</A></p>
+</li>
+<li><p><A HREF="gbgpu.html#gbgpu">Renaming a Profile</A></p>
+</li>
+<li><p><A HREF="gbgow.html#gbgow">Copying and Moving a Profile</A></p>
+</li>
+<li><p><A HREF="gbgpj.html#gbgpj">Importing Profiles</A></p>
+</li>
+<li><p><A HREF="gbgou.html#gbgou">Exporting Profiles</A></p>
+</li>
+</ul>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgce.html b/webconsole/html/en/help/gbgce.html
new file mode 100644
index 0000000..f8accd5
--- /dev/null
+++ b/webconsole/html/en/help/gbgce.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Introduction
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgce"></A><h2>Introduction</h2>
+<p>The Desktop Manager is a tool that offers centralized management of configuration
+settings, called <i>profiles</i>, for desktop applications. The Desktop Manager allows
+you to view and assign profiles to the various elements of an organization's or domain's
+hierarchy. Profiles are applied when a user starts a desktop session or an application
+that is managed by the Desktop Manager. All the profiles relevant for the user or
+the host running the application are retrieved, and their settings are integrated
+with the local defaults of the application and the user's custom settings. Profiles
+can be used to provide a set of centrally managed defaults to the application or to
+enforce mandatory settings.</p>
+<p>Terms you should know:</p>
+<ul><li><p><A NAME="indexterm-1"></A><i>Configuration Repository</i>: The organization and domain
+tree container, together with the profiles stored in it.</p>
+</li>
+<li><p><A NAME="indexterm-2"></A><i>Domain</i>: An element in the domain tree. Represents
+a realm in a computer network. May contain domains and hosts.</p>
+</li>
+<li><p><A NAME="indexterm-3"></A><i>Element</i>: A logical object to which configuration
+data can be assigned. Users, roles/groups, and organizations are examples of entities
+known to the Desktop Manager</p>
+</li>
+<li><p><i>LDAP</i>: Lightweight Directory Access Protocol.
+LDAP is a directory service protocol that runs over TCP/IP. The details of LDAP are
+defined in RFC 1777 'The Lightweight Directory Access Protocol'.</p>
+</li>
+<li><p><A NAME="indexterm-4"></A><i>Organization</i>: An element in the organization tree.
+Represents an organization or a sub-organization, for example, &#8220;Call Center&#8221;.
+May contain organizations, users, or roles.</p>
+</li>
+<li><p><A NAME="indexterm-5"></A><i>Profile</i>: A named container for configuration settings.
+It is stored in a configuration repository and can be assigned to elements.</p>
+</li>
+</ul>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgcg.html b/webconsole/html/en/help/gbgcg.html
new file mode 100644
index 0000000..78206f8
--- /dev/null
+++ b/webconsole/html/en/help/gbgcg.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>General Properties
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgcg"></A><h3>General Properties</h3>
+<p>The General Properties page allows you to specify general information about
+a profile. This page is the default view of the Profile Editor window. </p>
+<p><hr size="1" noshade><p><b>Note &#8211; </b>The Profile Editor appears when the user creates a new profile by clicking
+the New button.</p>
+<hr size="1" noshade></p><p>See <A HREF="gbgpb.html#gbgpb">Specifying General Properties for a Profile</A></p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgcm.html b/webconsole/html/en/help/gbgcm.html
new file mode 100644
index 0000000..0c886e5
--- /dev/null
+++ b/webconsole/html/en/help/gbgcm.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Navigation Area
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgcm"></A><h3>Navigation Area</h3>
+<A NAME="indexterm-20"></A><p><A NAME="indexterm-21"></A><A NAME="indexterm-22"></A><A NAME="indexterm-23"></A>The navigation tree is used to browse through the organization and domain
+trees to select an element. The tree reflects the hierarchy of the elements. If a
+node has subnodes, a blue triangle is displayed to the left of the node name. Clicking
+the blue triangle, the node is expanded, and some subnodes are shown.</p>
+<p><hr size="1" noshade><p><b>Note &#8211; </b>By default, only 10 subnodes are displayed for each expanded node. If
+there are more than 10 subnodes, the 11th &#8220;node&#8221; does not refer to an
+element, but indicates that there are nodes that are not displayed: &#8220;... some
+elements not displayed&#8221;. Clicking this &#8220;node&#8221; opens the Find function.</p>
+<hr size="1" noshade></p><p>To select an element, navigate the tree and click on the desired element. Once
+an element has been selected, the element is highlighted, and the content area displays
+the element's assigned and inherited profiles.</p>
+<p>The navigation also provides a mechanism for a recursive search (see <A HREF="gbgpa.html#gbgpa">Searching for an Element</A>) and a non-recursive find (see <A HREF="gbgqt.html#gbgqt">Using the Find Function</A>), in order to locate elements in
+the tree hierarchies. Clicking the Search button opens the Search window.</p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgcn.html b/webconsole/html/en/help/gbgcn.html
new file mode 100644
index 0000000..649795e
--- /dev/null
+++ b/webconsole/html/en/help/gbgcn.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Creating a New Configuration Repository
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgcn"></A><h4>Creating a New Configuration Repository</h4>
+<A NAME="indexterm-13"></A><A NAME="indexterm-14"></A><p>A configuration repository is a place where organizational hierarchy information
+is stored, along with profile and assignment data for each element.</p>
+<h5>Steps</h5><ol><li><p><b>Click the New button in the Configuration Repositories table</b></p><p>The New Configuration Repository Wizard opens. The wizard is used to create a configuration
+repository for use with the Desktop Manager.</p>
+</li>
+<li><p><b>In the Repository Name field, type a name for the new configuration repository,
+and then click Next.</b></p></li>
+<li><p><b>Select the repository type from the Repository Type list. </b></p><p>The wizard can be used to configure three types of repositories:</p>
+<ul><li><p>LDAP: The hierarchy is taken from LDAP, and all data is stored in
+LDAP.</p>
+</li>
+<li><p>File-Based: The hierarchy is taken from a file, and all data is stored
+in directories and files.</p>
+</li>
+<li><p>Hybrid: The hierarchy is taken from LDAP, but all data is stored in
+directories and files.</p>
+</li>
+</ul>
+</li>
+<li><p><b>Click the Next button.</b></p></li>
+<li><p><b>Enter the details of the LDAP server that you want to configure for this
+repository. </b></p><p>The Hostname and Port on which the server runs are required.
+You can also choose whether or not to connect to this server using SSL. </p>
+</li>
+<li><p><b>Further steps are determined by the choices made in the preceding steps.
+Follow the instructions provided by the wizard.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgcr.html b/webconsole/html/en/help/gbgcr.html
new file mode 100644
index 0000000..dcb8bce
--- /dev/null
+++ b/webconsole/html/en/help/gbgcr.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Creating a new Profile
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgcr"></A><h3>Creating a new Profile</h3>
+<h5>Steps</h5><ol><li><p><b>Click the New button in the desired profile table, either organization
+or domain.</b></p><p>The Profile Editor wizard opens. </p>
+</li>
+<li><p><b>Follow the instructions provided by the wizard.</b></p><p>For more information
+about creating a new profile using the Profile Editor, see the <A HREF="gbgec.html#gbgec">Profile Editor</A> section of the online help.</p>
+</li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgda.html b/webconsole/html/en/help/gbgda.html
new file mode 100644
index 0000000..04e41fc
--- /dev/null
+++ b/webconsole/html/en/help/gbgda.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Settings Summary
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgda"></A><h3>Settings Summary</h3>
+<p>The Settings Summary is a read-only view of all configuration settings that
+contain data for the selected profile.</p>
+<p>The Settings Summary page contains the Settings Summary table. This table shows
+the configuration settings that contain data for the current profile, grouped into
+categories. The table has the following fields:</p>
+<ul><li><p>Name: the setting name</p>
+</li>
+<li><p>Value: the setting value</p>
+</li>
+<li><p>Status: the status column contains entries of the type &#8220;Defined
+in &#60;profileName>, where &#60;profileName> is a link that switches the Profile Editor
+to the Configuration Settings page, and navigates to the particular setting within
+this profile.</p>
+</li>
+</ul>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgdc.html b/webconsole/html/en/help/gbgdc.html
new file mode 100644
index 0000000..f8fa97f
--- /dev/null
+++ b/webconsole/html/en/help/gbgdc.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Profiles &#8212; Tree View
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgdc"></A><h2>Profiles &#8212; Tree View</h2>
+<p><A NAME="indexterm-19"></A>The Profiles &#8212; Tree View page displays all available profiles that
+are currently assigned to an element. On the left side of the page is a navigation
+area, where you can browse through the tree hierarchies to find profiles. On the right
+side of the page is the Content area, which displays information about any profile
+selected in the navigation area.</p>
+<p>See also: <A HREF="gbgcm.html#gbgcm">Navigation Area</A> and <A HREF="gbgoy.html#gbgoy">Content Area</A></p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgdh.html b/webconsole/html/en/help/gbgdh.html
new file mode 100644
index 0000000..0d63b53
--- /dev/null
+++ b/webconsole/html/en/help/gbgdh.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Advanced Options
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgdh"></A><h3>Advanced Options</h3>
+<p>The Advanced Options page allows you to specify advanced options for the current
+profile. There are two main options available on this page:</p>
+<ul><li><p>Applicable from: allows you to move the profile to a different storage
+location in the organization or domain tree. By moving the storage location, you are
+also changing the set of elements that the profile can be assigned or applied to.
+This is because a profile can only be assigned to the element it is stored at, or
+assigned to the elements that are in the subtree below the element at which it is
+stored.</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>Caution &#8211; </b>You can not change the &#8220;Application from&#8221; parameter in
+a way that the resulting layout would violate the rule mentioned above. For example,
+this would happen if you move a profile down the tree hierarchy, and an existing assignment
+connecting the profile to an element below the profile's storage location would, after
+the movement of the profile, connect the profile to the same element. But now, the
+element is above the storage location of the profile. If the you try this, the action
+is cancelled, and a warning message is displayed.</p><hr size="1" noshade></li>
+<li><p>Merge Order: specifies the order in which all profiles stored at the
+same element are merged. </p>
+<p>Because more than one profile can be assigned
+to a single element and more than one profile can define the same setting, the order
+in which the profiles are merged for a single element must be defined. This resolves
+the conflicts of one setting being defined in two or more profiles assigned to the
+same element.</p>
+<p>The storage location is used first to determine the merge
+order. The profile stored at an element that is located closer to the root of the
+tree is merged first. As a consequence, the profile that is stored deeper in the tree
+hierarchy is merged secondly. The settings of a profile merged later overwrite the
+settings of a profile merged earlier.</p>
+</li>
+</ul>
+<p>See <A HREF="gbgqu.html#gbgqu">Changing the Application from Location</A>, <A HREF="gbgqe.html#gbgqe">Assigning a Merge Order to a Profile</A></p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgeb.html b/webconsole/html/en/help/gbgeb.html
new file mode 100644
index 0000000..f0e4d39
--- /dev/null
+++ b/webconsole/html/en/help/gbgeb.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Configuration Settings
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgeb"></A><h3>Configuration Settings</h3>
+<p>The Configuration Settings page allows you to view and edit the configuration
+settings that are stored in the selected profile.</p>
+<p>See <A HREF="gbgot.html#gbgot">Viewing and Editing a Profile's Configuration Settings</A>.</p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgec.html b/webconsole/html/en/help/gbgec.html
new file mode 100644
index 0000000..f64e890
--- /dev/null
+++ b/webconsole/html/en/help/gbgec.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Profile Editor
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgec"></A><h2>Profile Editor</h2>
+<p>The Profile Editor is used to create new profiles and edit existing profiles.
+You can also view the current settings and options for the currently selected profile.</p>
+<p>You can open the Profile Editor by either clicking the name of a profile in
+one of the tables in the Profiles &#8212; Tree View content area or in the Profiles &#8212;
+All page.</p>
+<p><hr size="1" noshade><p><b>Tip &#8211; </b>To create a new profile, see <A HREF="gbgni.html#gbgni">Creating a new Profile</A>.</p>
+<hr size="1" noshade></p><p>The Profile Editor contains the following tab pages:</p>
+<ul><li><p><A HREF="gbgcg.html#gbgcg">General Properties</A></p>
+</li>
+<li><p><A HREF="gbgeb.html#gbgeb">Configuration Settings</A></p>
+</li>
+<li><p><A HREF="gbgkr.html#gbgkr">Assigned Elements</A></p>
+</li>
+<li><p><A HREF="gbgda.html#gbgda">Settings Summary</A></p>
+</li>
+<li><p><A HREF="gbgdh.html#gbgdh">Advanced Options</A></p>
+</li>
+</ul>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgkr.html b/webconsole/html/en/help/gbgkr.html
new file mode 100644
index 0000000..817dc83
--- /dev/null
+++ b/webconsole/html/en/help/gbgkr.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Assigned Elements
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgkr"></A><h3>Assigned Elements</h3>
+<p>The Assigned Elements page lists the elements that are assigned to the current
+profile, and allows you to assign or unassign elements. </p>
+<p>The current profiles elements are displayed in the Assigned Elements table,
+which contains the following information:</p>
+<ul><li><p>Name: the name of the element to which the current profile is assigned.</p>
+</li>
+<li><p>Path: the location of the element to which the current profile is
+assigned.</p>
+</li>
+</ul>
+<p>See <A HREF="gbgpm.html#gbgpm">Assigning an Element to a Profile</A>, <A HREF="gbgpp.html#gbgpp">Unassigning an Element from a Profile</A></p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgni.html b/webconsole/html/en/help/gbgni.html
new file mode 100644
index 0000000..ca6025e
--- /dev/null
+++ b/webconsole/html/en/help/gbgni.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Creating a new Profile
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgni"></A><h4>Creating a new Profile</h4>
+<A NAME="indexterm-28"></A><A NAME="indexterm-29"></A><h5>Steps</h5><ol><li><p><b>Click the New button.</b></p><p>The Profile Editor opens. </p>
+</li>
+<li><p><b>Follow the instructions provided by the Profile Editor.</b></p><p>For
+more information about how to use the Profile Editor to create a new profile, see
+the <A HREF="gbgec.html#gbgec">Profile Editor</A> section in the online help.</p>
+<p><hr size="1" noshade><p><b>Note &#8211; </b>When you have finished creating the new profile, it is automatically assigned
+to the currently selected element.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgot.html b/webconsole/html/en/help/gbgot.html
new file mode 100644
index 0000000..89d829e
--- /dev/null
+++ b/webconsole/html/en/help/gbgot.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Viewing and Editing a Profile's Configuration Settings
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgot"></A><h4>Viewing and Editing a Profile's Configuration Settings</h4>
+<h5>Steps</h5><ol><li><p><b>To view a profile's configuration setting, navigate to the setting from
+the list of categories on the right side of the page.</b></p><p>The configuration
+settings are organized hierarchically into categories that directly correspond to
+the configuration options of desktop applications, such as StarOffice&#153;,
+Mozilla&#153;, Evolution or Gnome. </p>
+</li>
+<li><p><b>Click the desired configuration setting.</b></p><p>The selected profile's
+settings appear, which displays the available settings for that profile. If necessary,
+additional context information is provided, such as the effects of individual settings
+or the allowed value range. </p>
+<p><hr size="1" noshade><p><b>Note &#8211; </b>If you select a category rather than a configuration setting, a table
+appears that lists that categories settings or sub-categories.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>For each configuration setting, you can either specify a concrete value,
+or you can leave the setting undefined.</b></p><p>If you leave the setting undefined,
+the application will not be affected by this profile setting, and instead takes advantage
+of its own factory built-in default value. In general, the Profile Editor lists and
+applications default value through additional help text or, if possible, through a
+marker directly in the setting's options list.</p>
+<p><hr size="1" noshade><p><b>Note &#8211; </b>It is important to understand that several profiles might affect the same
+user. For example, you can create a profile with settings for a specific organization.
+These settings are automatically available for all users that are part of this organization.
+Similarly, you can define additional profiles with configuration settings for sub-organizations.
+These may overwrite settings of the parent organization, for example, different proxy
+settings for sub-organizations would be defined, but leave other settings unchanged.
+The effective settings for a specific user would then be the result of a merge process
+including all profiles assigned to the organization, sub-organizations and probably
+the user. </p>
+<hr size="1" noshade></p><p><hr size="1" noshade><p><b>Tip &#8211; </b>In some cases you might want to control this merge process and want to
+enforce a configuration setting, meaning that it should not be possible for other
+profiles to overwrite your setting and to define a different value. The Profile Editor
+allows to specify for each setting the desired merging behavior. The default is that
+other "profiles may overwrite" a setting. Deselecting this option will enforce the
+setting and other profiles can no longer overwrite your value.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgou.html b/webconsole/html/en/help/gbgou.html
new file mode 100644
index 0000000..a002e10
--- /dev/null
+++ b/webconsole/html/en/help/gbgou.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Exporting Profiles
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgou"></A><h3>Exporting Profiles</h3>
+<h5>Steps</h5><ol><li><p><b>Select the check box corresponding to the profile that you want to export.</b></p></li>
+<li><p><b>Choose Export from the actions list.</b></p><p>A dialog opens, which
+allows you to specify the location to which you want to export the file.</p>
+</li>
+<li><p><b>Select the Save to Disk option in the dialog and click OK.</b></p></li>
+<li><p><b>Choose the location where you want to save the exported file and click
+OK.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgow.html b/webconsole/html/en/help/gbgow.html
new file mode 100644
index 0000000..fbdc060
--- /dev/null
+++ b/webconsole/html/en/help/gbgow.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Copying and Moving a Profile
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgow"></A><h3>Copying and Moving a Profile</h3>
+<h5>Steps</h5><ol><li><p><b>Select the check box corresponding to the profile that you want to copy
+or move.</b></p></li>
+<li><p><b>Choose Copy and Move from the actions list.</b></p><p>The Copy and Move
+wizard opens.</p>
+</li>
+<li><p><b>Follow the instructions provided by the Copy and Move wizard to perform
+your task.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgoy.html b/webconsole/html/en/help/gbgoy.html
new file mode 100644
index 0000000..e8f071d
--- /dev/null
+++ b/webconsole/html/en/help/gbgoy.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Content Area
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgoy"></A><h3>Content Area</h3>
+<p><A NAME="indexterm-27"></A>When you select an element, information about that element is displayed
+in the content area of the Profiles &#8212; Tree View page. The content area can contain
+up to three tables:</p>
+<ul><li><p>Assigned Profiles table: this table is always displayed. This table
+shows the profiles that are assigned to the currently selected element. It contains
+three columns, Name, Author, and Last Modified. The value of the Last Modified column
+changes only if a setting of the profile is changed, but not if the profile itself
+is renamed, moved or re-prioritized. </p>
+<p>The Assign Profiles table lets you
+perform the following actions:</p>
+<ul><li><p><A HREF="gbgni.html#gbgni">Creating a new Profile</A></p>
+</li>
+<li><p><A HREF="gbgpr.html#gbgpr">Deleting a Profile</A></p>
+</li>
+<li><p><A HREF="gbgpn.html#gbgpn">Assigning a Profile</A></p>
+</li>
+<li><p><A HREF="gbgqj.html#gbgqj">Unassigning a Profile</A></p>
+</li>
+<li><p><A HREF="gbgpw.html#gbgpw">Renaming a Profile</A></p>
+</li>
+<li><p><A HREF="gbgqf.html#gbgqf">Copying and Moving a Profile</A></p>
+</li>
+<li><p><A HREF="gbgps.html#gbgps">Importing Profiles</A></p>
+</li>
+<li><p><A HREF="gbgqh.html#gbgqh">Exporting Profiles</A></p>
+</li>
+</ul>
+</li>
+<li><p>Inherited Profiles table: this table is displayed if any element above
+the selected element in the hierarchy has an assigned profile. This profile is listed
+in the table. It contains two columns, Name and Assigned To. Assigned To shows the
+path and name of the element that the profile is assigned to.</p>
+</li>
+<li><p>Users or Roles table: this table appears when an element of &#8220;user&#8221;
+or &#8220;role&#8221; type is selected. If the element is a user who is a member of
+at least one role, then those roles are shown in the Roles table. If the element is
+a role that has members, these members are displayed in the Users table.</p>
+</li>
+</ul>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgoz.html b/webconsole/html/en/help/gbgoz.html
new file mode 100644
index 0000000..4d7f11a
--- /dev/null
+++ b/webconsole/html/en/help/gbgoz.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Viewing Effective Settings
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgoz"></A><h3>Viewing Effective Settings</h3>
+<p><A NAME="indexterm-39"></A>Effective Settings is a read-only view of the effective configuration
+settings for a given element, such as an organization, domain or host.</p>
+<p>The effective settings of a specific user are the result of a merge process,
+including the configuration settings stored at the involved organization level(s),
+role(s), and the user. You can display the merged configuration settings of a selected
+element in a separate Effective Settings window. This allows for easy verification
+and also error debugging. An Effective Settings report can also be printed and stored
+for archival purposes.</p>
+<h5>Steps</h5><ol><li><p><b>Click the Effective Settings button in the Assigned Profiles table.</b></p><p>When first opened, the effective settings for the selected element in the navigation
+tree are displayed.</p>
+<p>The Effective Settings window consists of the following
+two sections:</p>
+<ul><li><p>In the Modify Effective Settings Parameters section, the Create the
+Effective Settings Using area lets you choose which tree to take into account. The
+Select an element from the Domain Tree option lets you choose which entities to generate
+a Effective Settings report for. Use the Browse button to select an element in the
+organization or domain tree.</p>
+</li>
+<li><p>The Effective Settings section displays the following:</p>
+<ul><li><p>The location of the selected element in the hierarchy and the hostname.</p>
+</li>
+<li><p>The time and date when the current effective settings report was generated.</p>
+</li>
+<li><p>In the Profiles Involved section, the list of profiles involved in
+generating the effective settings report for the current element. They are listed
+in merge order form most relevant to least relevant. Each profile is a link that opens
+the Profile Editor window for the profile.</p>
+</li>
+<li><p>The Settings Summary area displays the configuration settings for
+the current effective settings report, grouped into categories. The Settings Summary
+contains Name, Value, and Status fields.</p>
+<p>The Status column contains entries
+of the type &#8220;Defined In &#60;pofileName>&#8221;, where &#60;profileName> is a
+link that opens the Profile Editor for that profile on the Configuration Settings
+tab, and navigates to the particular setting within this profile.</p>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><p><b>You can modify a generated effective settings report by changing any relevant
+effective settings parameters, and then clicking the Generate Effective Settings button
+at the top of the Effective Settings window. </b></p><p>A new report is then displayed
+in the Effective Settings window.</p>
+</li>
+<li><p><b>To print an effective settings report, click the Print button at the top
+or bottom of the Effective Settings Window.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgpa.html b/webconsole/html/en/help/gbgpa.html
new file mode 100644
index 0000000..4fa583d
--- /dev/null
+++ b/webconsole/html/en/help/gbgpa.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Searching for an Element
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgpa"></A><h4>Searching for an Element</h4>
+<A NAME="indexterm-24"></A><A NAME="indexterm-25"></A><p>The Search function allows you to recursively search for an element in the domain
+or organization hierarchy. It searches for not only the direct children of an element,
+but also all descendents. To perform a search of only the direct children of an element,
+use the Find function.</p>
+<p>A search opens the Search window, which also allows you to perform a more advanced
+search.</p>
+<h5>Steps</h5><ol><li><p><b>Type the name or partial name of the element that you wish to search for
+into the search field.</b></p><p><hr size="1" noshade><p><b>Note &#8211; </b>The search is not case-sensitive and not strict, for example, the search
+string "bc" will match "ABC" and "bcd". An asterisk (*) denotes an arbitrary sequence
+of characters within a search string. You can use more than one asterisk at any location
+in the string. An empty field is equivalent to a field with the search string &#8220;*&#8221;.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Click the Search button.</b></p><p>The Search window opens. Any string
+that you typed into the search field of the Navigation area is moved from that search
+field to the search field of the Search window, and a search for that string is started
+automatically. Any results are then displayed in a results table, which shows the
+name, type and path of any found elements.</p>
+<p><hr size="1" noshade><p><b>Note &#8211; </b>The maximum number of results is capped at 100.</p>
+<hr size="1" noshade></p><p>If no results were found, or if you left the search field in the Navigation
+area blank, you can type in the name of an element in the search field of the Search
+window. </p>
+<p><hr size="1" noshade><p><b>Tip &#8211; </b>Use the type modifier list, located next to the search field, to search
+for a specific element type, such as &#8220;Search domains&#8221;.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>If necessary, add advanced options to the search by clicking the Show
+Advanced Options button.</b></p><p>The advanced options consist of the following:</p>
+<ul><li><p>Restrict to: you can determine the element at which the search algorithm
+should start to traverse through the tree.</p>
+</li>
+<li><p>Results displayed per page: allows you to determine the number of
+results displayed on every page of the results table.</p>
+</li>
+</ul>
+</li>
+<li><p><b>Click the Search button again to view results for a new or modified search.</b></p><p><hr size="1" noshade><p><b>Note &#8211; </b>Clicking the Reset button changes all search parameters to the default
+and clears the Search field.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgpb.html b/webconsole/html/en/help/gbgpb.html
new file mode 100644
index 0000000..399f5ec
--- /dev/null
+++ b/webconsole/html/en/help/gbgpb.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Specifying General Properties for a Profile
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgpb"></A><h4>Specifying General Properties for a Profile</h4>
+<h5>Steps</h5><ol><li><p><b>In the Name field, type the desired name of the profile.</b></p></li>
+<li><p><b>Add any comments into the Comments field.</b></p><p>You can leave the
+Comments field blank.</p>
+<p><hr size="1" noshade><p><b>Note &#8211; </b>The Author and Last Modified fields are read-only, and cannot be modified.
+The Author field displays the profiles author, and the Last Modified field shows the
+date and time of the last modification.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Click the Save button.</b></p><p>If you close the window before saving
+any new information, and warning dialog appears that prompts you to save the settings.</p>
+</li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgpe.html b/webconsole/html/en/help/gbgpe.html
new file mode 100644
index 0000000..89045b9
--- /dev/null
+++ b/webconsole/html/en/help/gbgpe.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Deleting a Profile
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgpe"></A><h3>Deleting a Profile</h3>
+<h5>Steps</h5><ol><li><p><b>Select the check box corresponding to the profile that you want to delete.</b></p></li>
+<li><p><b>Click the Delete button.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgpj.html b/webconsole/html/en/help/gbgpj.html
new file mode 100644
index 0000000..f9e9058
--- /dev/null
+++ b/webconsole/html/en/help/gbgpj.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Importing Profiles
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgpj"></A><h3>Importing Profiles</h3>
+<h5>Steps</h5><ol><li><p><b>Make sure all check boxes are deselected.</b></p></li>
+<li><p><b>Choose Import from the actions list.</b></p><p>The Import Profile dialog
+opens.</p>
+</li>
+<li><p><b>Enter the path of the file that you want to import, or click the Browse
+button to choose a file from the default file chooser dialog of your operating system.</b></p></li>
+<li><p><b>Click the Import button.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgpm.html b/webconsole/html/en/help/gbgpm.html
new file mode 100644
index 0000000..55fabe6
--- /dev/null
+++ b/webconsole/html/en/help/gbgpm.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Assigning an Element to a Profile
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgpm"></A><h4>Assigning an Element to a Profile</h4>
+<h5>Steps</h5><ol><li><p><b>Click the Assign Element button.</b></p><p>A window containing a navigation
+tree appears.</p>
+</li>
+<li><p><b>Navigate the tree, and select the desired element.</b></p><p><hr size="1" noshade><p><b>Tip &#8211; </b>If you can't find the desired element in the tree, you can click the Search
+button to open the Search window and find the element.</p>
+<hr size="1" noshade></p><p>The element then appears in the Assigned Elements table, now assigned to the
+current profile.</p>
+</li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgpn.html b/webconsole/html/en/help/gbgpn.html
new file mode 100644
index 0000000..c8444b3
--- /dev/null
+++ b/webconsole/html/en/help/gbgpn.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Assigning a Profile
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgpn"></A><h4>Assigning a Profile</h4>
+<A NAME="indexterm-32"></A><A NAME="indexterm-33"></A><h5>Steps</h5><ol><li><p><b>Click the Assign Profile button.</b></p><p>A dialog opens, listing all
+available profiles that can be assigned to the selected element. </p>
+<p><hr size="1" noshade><p><b>Note &#8211; </b>Profiles already assigned to the selected element, as well as profiles
+that are not stored at or above the currently selected element, are not listed.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Select one or more of the listed profiles, and click OK.</b></p><p>The newly assigned profiles now appear in the Assigned Profiles table.</p>
+</li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgpp.html b/webconsole/html/en/help/gbgpp.html
new file mode 100644
index 0000000..6f780e8
--- /dev/null
+++ b/webconsole/html/en/help/gbgpp.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Unassigning an Element from a Profile
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgpp"></A><h4>Unassigning an Element from a Profile</h4>
+<h5>Steps</h5><ol><li><p><b>Select the check box corresponding to the element that you want to unassign.</b></p></li>
+<li><p><b>Click the Unassign Element button.</b></p><p>The element is now not
+assigned to the current profile, and disappears from the Assigned Elements table.</p>
+</li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgpr.html b/webconsole/html/en/help/gbgpr.html
new file mode 100644
index 0000000..a9925d5
--- /dev/null
+++ b/webconsole/html/en/help/gbgpr.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Deleting a Profile
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgpr"></A><h4>Deleting a Profile</h4>
+<A NAME="indexterm-30"></A><A NAME="indexterm-31"></A><h5>Steps</h5><ol><li><p><b>Select the check box corresponding to the profile that you want to delete.</b></p><p>A confirmation dialog appears.</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>Caution &#8211; </b>It is important to understand that Delete removes all assignments and
+then physically deletes the profile. You cannot retrieve it, it is gone. Deleting
+a profile also causes assignments to other elements besides the current element to
+be removed. To simply remove a profile assignment from an element, use Unassign.</p><hr size="1" noshade></li>
+<li><p><b>Click the Delete button.</b></p></li>
+<li><p><b>If you really want to delete the profile, click the OK button in the confirmation
+dialog.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgps.html b/webconsole/html/en/help/gbgps.html
new file mode 100644
index 0000000..2c33beb
--- /dev/null
+++ b/webconsole/html/en/help/gbgps.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Importing Profiles
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgps"></A><h4>Importing Profiles</h4>
+<A NAME="indexterm-35"></A><A NAME="indexterm-36"></A><h5>Steps</h5><ol><li><p><b>Make sure all check boxes are deselected.</b></p></li>
+<li><p><b>Choose Import from the actions list.</b></p><p>The Import Profile dialog
+opens.</p>
+</li>
+<li><p><b>Enter the path of the file that you want to import, or click the Browse
+button to choose a file from the default file chooser dialog of your operating system.</b></p></li>
+<li><p><b>Click the Import button.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgpt.html b/webconsole/html/en/help/gbgpt.html
new file mode 100644
index 0000000..d2c4448
--- /dev/null
+++ b/webconsole/html/en/help/gbgpt.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Configuration Repositories Table
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgpt"></A><h3>Configuration Repositories Table</h3>
+<p><A NAME="indexterm-8"></A>The Configuration Repositories table consists of five columns:</p>
+<ul><li><p>The Selection column, which contains check boxes to select repositories</p>
+<p>By selecting one or more repositories, the Remove, Rename, and Synchronize
+functions are enabled.</p>
+<p><hr size="1" noshade><p><b>Note &#8211; </b>Selecting a repository disables the New button.</p>
+<hr size="1" noshade></p></li>
+<li><p>Name: contains the name of the repositories</p>
+<p>The contents
+of the Name column are links. If you click on one of these links, the Configuration
+Repositories view is replaced by the Profile Editor page for the selected repository.</p>
+</li>
+<li><p>Type: can be one of three types, LDAP, file, or hybrid</p>
+<ul><li><p><A NAME="indexterm-9"></A><A NAME="indexterm-10"></A>LDAP: an LDAP repository reads the organizational structure (users, organization,
+hosts, domains, and so on) of the company from an LDAP server and reads/writes the
+configuration settings using that same LDAP server. </p>
+</li>
+<li><p><A NAME="indexterm-11"></A>File: a file repository reads the organizational structure of the company
+from the file system, and reads/writes the configuration settings using that same
+file system. </p>
+</li>
+<li><p><A NAME="indexterm-12"></A>Hybrid: a hybrid repository reads the organizational structure of the
+company from an LDAP server, and then read/writes the configuration settings into
+a file system.</p>
+</li>
+</ul>
+</li>
+<li><p>Location of Organization Data: either a file, if a file repository,
+or LDAP URL, if an LDAP or hybrid repository. Designates the storage location of the
+organizational data.</p>
+</li>
+<li><p>Location of Profile Data: either a file, if a file repository, or
+LDAP URL, if an LDAP or hybrid repository. Designates the storage location of the
+ configuration settings. A profile is a named collection of configuration settings
+that is assigned to users, organizations, hosts, and domains.</p>
+</li>
+</ul>
+<p>You can perform the following actions within the Configuration Repositories
+table:</p>
+<ul><li><p><A HREF="gbgcn.html#gbgcn">New</A>: creates a
+new configuration repository </p>
+</li>
+<li><p>Remove: removes an existing configuration repository</p>
+</li>
+<li><p>Rename: renames a configuration repository</p>
+</li>
+<li><p><A HREF="gbgqm.html#gbgqm">Synchronize</A>: synchronizes
+configuration repositories</p>
+<p>This function is only enabled when one or two
+repositories are selected</p>
+</li>
+</ul>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgpu.html b/webconsole/html/en/help/gbgpu.html
new file mode 100644
index 0000000..2cc4ee6
--- /dev/null
+++ b/webconsole/html/en/help/gbgpu.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Renaming a Profile
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgpu"></A><h3>Renaming a Profile</h3>
+<h5>Steps</h5><ol><li><p><b>Select the check box corresponding to the profile that you want to rename.</b></p></li>
+<li><p><b>Choose Rename from the actions list.</b></p><p>A dialog box appears.</p>
+</li>
+<li><p><b>Type the new name of the profile in the text field of the dialog, and
+click OK.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgpw.html b/webconsole/html/en/help/gbgpw.html
new file mode 100644
index 0000000..5f2972b
--- /dev/null
+++ b/webconsole/html/en/help/gbgpw.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Renaming a Profile
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgpw"></A><h4>Renaming a Profile</h4>
+<h5>Steps</h5><ol><li><p><b>Select the check box corresponding to the profile that you want to rename.</b></p></li>
+<li><p><b>Choose Rename from the actions list.</b></p><p>A Rename dialog opens.</p>
+</li>
+<li><p><b>Type the new name of the profile in the text field of the dialog, and
+click OK.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgqa.html b/webconsole/html/en/help/gbgqa.html
new file mode 100644
index 0000000..55cb6ca
--- /dev/null
+++ b/webconsole/html/en/help/gbgqa.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Configuration Repositories Window
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgqa"></A><h2>Configuration Repositories Window</h2>
+<p><A NAME="indexterm-6"></A>The configuration repository is the storage location for the configuration
+data that you need to configure your applications and where organizational hierarchy
+information is stored, along with profile and assignment data for each element. In
+the Configuration Repositories window, you can create new repositories, as well as
+work with and synchronize existing repositories.</p>
+<p>The Configuration Repositories Window consists of a masthead and the Configuration
+Repositories list.</p>
+<p>The masthead provides a number of general links. The upper part of the masthead
+contains the Utility Bar, which contains four links (from left to right):</p>
+<ul><li><p>The Console button opens the Java Web Console launch page.</p>
+</li>
+<li><p>The Version button opens a window that displays version information
+about the Desktop Manager.</p>
+</li>
+<li><p><A NAME="indexterm-7"></A>The Log Out button logs you out of the Java Web Console, and thus the Configuration
+Manager, returning you to the Login page.</p>
+</li>
+<li><p>The Help button opens the online help pages. </p>
+</li>
+</ul>
+<p>The lower section of the masthead contains the product name, the server name,
+and the name of the administrator currently logged in.</p>
+<p>See <A HREF="gbgpt.html#gbgpt">Configuration Repositories Table</A>, <A HREF="gbgcn.html#gbgcn">Creating a New Configuration Repository</A></p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgqe.html b/webconsole/html/en/help/gbgqe.html
new file mode 100644
index 0000000..18d8162
--- /dev/null
+++ b/webconsole/html/en/help/gbgqe.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Assigning a Merge Order to a Profile
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgqe"></A><h4>Assigning a Merge Order to a Profile</h4>
+<h5>Steps</h5><ol><li><p><b>Select the desired profile in the Selected list.</b></p></li>
+<li><p><b>Use the buttons on the right of the list to move the profile up or down
+within the list.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgqf.html b/webconsole/html/en/help/gbgqf.html
new file mode 100644
index 0000000..08f9b25
--- /dev/null
+++ b/webconsole/html/en/help/gbgqf.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Copying and Moving a Profile
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgqf"></A><h4>Copying and Moving a Profile</h4>
+<h5>Steps</h5><ol><li><p><b>Select the check box corresponding to the profile that you want to copy
+or move.</b></p></li>
+<li><p><b>Choose Copy and Move from the actions list.</b></p><p>The Copy and Move
+wizard opens.</p>
+</li>
+<li><p><b>Follow the instructions provided by the Copy and Move wizard to perform
+your task.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgqh.html b/webconsole/html/en/help/gbgqh.html
new file mode 100644
index 0000000..b1ade3e
--- /dev/null
+++ b/webconsole/html/en/help/gbgqh.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Exporting Profiles
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgqh"></A><h4>Exporting Profiles</h4>
+<A NAME="indexterm-37"></A><A NAME="indexterm-38"></A><h5>Steps</h5><ol><li><p><b>Select the check box corresponding to the profile that you want to export.</b></p></li>
+<li><p><b>Choose Export from the actions list.</b></p><p>A dialog opens, which
+allows you to specify the location to which you want to export the file.</p>
+</li>
+<li><p><b>Select the Save to Disk option in the dialog and click OK.</b></p></li>
+<li><p><b>Choose the location where you want to save the exported file and click
+OK.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgqj.html b/webconsole/html/en/help/gbgqj.html
new file mode 100644
index 0000000..718fd60
--- /dev/null
+++ b/webconsole/html/en/help/gbgqj.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Unassigning a Profile
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgqj"></A><h4>Unassigning a Profile</h4>
+<A NAME="indexterm-34"></A><h5>Steps</h5><ol><li><p><b>Select the check box corresponding to the profile that you want to unassign.</b></p></li>
+<li><p><b>Click the Unassign Profile button.</b></p><p>The profile is now unassigned,
+and disappears from the Assigned Profiles table.</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>Caution &#8211; </b>There is no warning dialog, so if you clicked the Unassign Profile
+button by mistake, you can reverse this by using the Assign Profile function.</p><hr size="1" noshade></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgqm.html b/webconsole/html/en/help/gbgqm.html
new file mode 100644
index 0000000..a64bb19
--- /dev/null
+++ b/webconsole/html/en/help/gbgqm.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Synchronizing Configuration Repositories
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgqm"></A><h4>Synchronizing Configuration Repositories</h4>
+<A NAME="indexterm-17"></A><A NAME="indexterm-18"></A><p>With the Desktop Manager you can manage multiple back ends in parallel. This
+allows you to define one back end for testing and one back end for the final production.
+Configuration changes can now be defined and evaluated first in the test back end.
+Thereafter you can <i>synchronize</i> parts or the complete test back
+end with the production back end to apply the required changes quickly and safely
+to the production system. This method can also be used for a simple backup and restore
+mechanism of the production back end. The Synchronization window allows you to perform
+this synchronization.</p>
+<h5>Steps</h5><ol><li><p><b>In the Configuration Repositories window, select the repository that you
+want to synchronize.</b></p><p>The Synchronization window opens.</p>
+</li>
+<li><p><b>Select the source repository from the Source Configuration Repository
+list.</b></p><p>You can change the source repository which serves as source for
+the changes. This repository is <i>not</i> changed. </p>
+</li>
+<li><p>(Optional) <b>You can restrict the source repository by clicking
+the Change button next to Source Starting Point.</b></p><p>This specifies another
+element than the root as the source starting point for the synchronization.</p>
+<p>A dialog opens, which allows you to navigate to the desired organization or
+domain element. Once an element is selected, the new path is reflected in the Source
+Starting Point.</p>
+</li>
+<li><p><b>Select a target repository from the Target Configuration Repository list.</b></p><p>You can change the target repository which serves as target for the changes.
+This repository <i>is</i> changed. </p>
+</li>
+<li><p>(Optional) <b>You can restrict the target repository by clicking
+the Change button next to Target Starting Point. </b></p><p>This specifies another
+element than the root as the target for the synchronization.</p>
+<p>A dialog
+opens, which allows you to navigate to the desired organization or domain element.
+Once an element is selected, the new path is reflected in the Target Starting Point.</p>
+</li>
+<li><p><b>Click the Compare button.</b></p><p>The two trees are compared and all
+differences are listed in a table. </p>
+</li>
+<li><p><b>Select the check boxes next to the table rows containing the profiles
+you want to synchronize and click the Synchronize button. </b></p><p>When the synchronization
+is finished the target repository matches the source repository regarding the selected
+profiles.</p>
+</li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgqt.html b/webconsole/html/en/help/gbgqt.html
new file mode 100644
index 0000000..c904d94
--- /dev/null
+++ b/webconsole/html/en/help/gbgqt.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Using the Find Function
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgqt"></A><h4>Using the Find Function</h4>
+<A NAME="indexterm-26"></A><p>The Find function allows you to perform a qualified find for all elements that
+are <i>direct</i> children of the expanded element. This is in contrast
+to the search function, which provides a recursive search for elements.</p>
+<h5>Steps</h5><ol><li><p><b>Click the Some Elements are not Displayed node in the navigation tree.</b></p><p>The Find window opens.</p>
+</li>
+<li><p><b>Type a string or partial string into the Find field.</b></p><p> The
+search is not case-sensitive and not strict, for example, the search string "bc" will
+match "ABC" and "bcd". An asterisk (*) denotes an arbitrary sequence of characters
+within a search string. You can use more than one asterisk at any location in the
+search string. An empty field is equivalent to a field with the search string &#8220;*&#8221;.</p>
+</li>
+<li><p><b>Click the Find button.</b></p><p>A list of results is displayed. The
+number of results is capped at 100.</p>
+</li>
+<li><p><b>To add a found element to the navigation tree, click the desired element
+in the results list.</b></p><p>The Find window closes, and the element is added
+to the list of subnodes in the navigation tree.</p>
+</li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbgqu.html b/webconsole/html/en/help/gbgqu.html
new file mode 100644
index 0000000..fe9dae5
--- /dev/null
+++ b/webconsole/html/en/help/gbgqu.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Changing the Application from Location
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgqu"></A><h4>Changing the Application from Location</h4>
+<h5>Steps</h5><ol><li><p><b>Click the Change button.</b></p><p>A window containing a navigation
+tree appears.</p>
+</li>
+<li><p><b>Navigate the tree, and select the desired element.</b></p><p><hr size="1" noshade><p><b>Tip &#8211; </b>If you can't find the desired element in the tree, you can click the Search
+button to open the Search window and find the element.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Click the OK button.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbzbc.html b/webconsole/html/en/help/gbzbc.html
new file mode 100644
index 0000000..a31df65
--- /dev/null
+++ b/webconsole/html/en/help/gbzbc.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Removing a Configuration Repository
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbzbc"></A><h4>Removing a Configuration Repository</h4>
+<A NAME="indexterm-15"></A><h5>Steps</h5><ol><li><p><b>Select the check box corresponding to the configuration repository that
+you want to remove.</b></p></li>
+<li><p><b>Click the Remove button.</b></p><p>A confirmation dialog appears.</p>
+</li>
+<li><p><b>If you really want to remove the configuration repository, click the OK
+button in the confirmation dialog.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/gbzci.html b/webconsole/html/en/help/gbzci.html
new file mode 100644
index 0000000..4bdc9a3
--- /dev/null
+++ b/webconsole/html/en/help/gbzci.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Renaming a Configuration Repository
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbzci"></A><h4>Renaming a Configuration Repository</h4>
+<A NAME="indexterm-16"></A><h5>Steps</h5><ol><li><p><b>Select the check box corresponding to the configuration repository that
+you want to rename.</b></p></li>
+<li><p><b>Click the Rename button.</b></p><p>A Rename dialog opens.</p>
+</li>
+<li><p><b>Type the new name of the configuration repository in the text field of
+the dialog, and click OK.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/graphics/Makefile.am b/webconsole/html/en/help/graphics/Makefile.am
new file mode 100644
index 0000000..fe0b899
--- /dev/null
+++ b/webconsole/html/en/help/graphics/Makefile.am
@@ -0,0 +1,25 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+
+graphicsdir = ${htmldir}/en/help/graphics
+graphics_DATA =tx_lg_support_training.gif \
+ ix-procedure.gif \
+ procedure-toc.gif \
+ contract.gif \
+ ar_lg_red_r_pad.gif \
+ expand.gif \
+ caution.gif \
+ procedure.gif \
+ down.gif \
+ ix-example.gif \
+ prev.gif \
+ ar_lg_yell_r_pad.gif \
+ ix-general.gif \
+ tx_lg_products_services.gif \
+ logo_sun.gif \
+ violet-bar.gif \
+ ix-generic.gif \
+ dot.gif \
+ next.gif \
+ a.gif \ No newline at end of file
diff --git a/webconsole/html/en/help/graphics/a.gif b/webconsole/html/en/help/graphics/a.gif
new file mode 100644
index 0000000..35d42e8
--- /dev/null
+++ b/webconsole/html/en/help/graphics/a.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/ar_lg_red_r_pad.gif b/webconsole/html/en/help/graphics/ar_lg_red_r_pad.gif
new file mode 100644
index 0000000..7a457fd
--- /dev/null
+++ b/webconsole/html/en/help/graphics/ar_lg_red_r_pad.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/ar_lg_yell_r_pad.gif b/webconsole/html/en/help/graphics/ar_lg_yell_r_pad.gif
new file mode 100644
index 0000000..769d782
--- /dev/null
+++ b/webconsole/html/en/help/graphics/ar_lg_yell_r_pad.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/caution.gif b/webconsole/html/en/help/graphics/caution.gif
new file mode 100644
index 0000000..b859d23
--- /dev/null
+++ b/webconsole/html/en/help/graphics/caution.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/contract.gif b/webconsole/html/en/help/graphics/contract.gif
new file mode 100644
index 0000000..fe42f61
--- /dev/null
+++ b/webconsole/html/en/help/graphics/contract.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/dot.gif b/webconsole/html/en/help/graphics/dot.gif
new file mode 100644
index 0000000..1d11fa9
--- /dev/null
+++ b/webconsole/html/en/help/graphics/dot.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/down.gif b/webconsole/html/en/help/graphics/down.gif
new file mode 100644
index 0000000..df8a984
--- /dev/null
+++ b/webconsole/html/en/help/graphics/down.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/expand.gif b/webconsole/html/en/help/graphics/expand.gif
new file mode 100644
index 0000000..20181fe
--- /dev/null
+++ b/webconsole/html/en/help/graphics/expand.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/ix-example.gif b/webconsole/html/en/help/graphics/ix-example.gif
new file mode 100644
index 0000000..c94c675
--- /dev/null
+++ b/webconsole/html/en/help/graphics/ix-example.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/ix-general.gif b/webconsole/html/en/help/graphics/ix-general.gif
new file mode 100644
index 0000000..95cbf32
--- /dev/null
+++ b/webconsole/html/en/help/graphics/ix-general.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/ix-generic.gif b/webconsole/html/en/help/graphics/ix-generic.gif
new file mode 100644
index 0000000..0b5adb3
--- /dev/null
+++ b/webconsole/html/en/help/graphics/ix-generic.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/ix-procedure.gif b/webconsole/html/en/help/graphics/ix-procedure.gif
new file mode 100644
index 0000000..2eae59c
--- /dev/null
+++ b/webconsole/html/en/help/graphics/ix-procedure.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/logo_sun.gif b/webconsole/html/en/help/graphics/logo_sun.gif
new file mode 100644
index 0000000..cf8ff5f
--- /dev/null
+++ b/webconsole/html/en/help/graphics/logo_sun.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/next.gif b/webconsole/html/en/help/graphics/next.gif
new file mode 100644
index 0000000..bbb7196
--- /dev/null
+++ b/webconsole/html/en/help/graphics/next.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/prev.gif b/webconsole/html/en/help/graphics/prev.gif
new file mode 100644
index 0000000..e80a312
--- /dev/null
+++ b/webconsole/html/en/help/graphics/prev.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/procedure-toc.gif b/webconsole/html/en/help/graphics/procedure-toc.gif
new file mode 100644
index 0000000..f4761f0
--- /dev/null
+++ b/webconsole/html/en/help/graphics/procedure-toc.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/procedure.gif b/webconsole/html/en/help/graphics/procedure.gif
new file mode 100644
index 0000000..7b729ba
--- /dev/null
+++ b/webconsole/html/en/help/graphics/procedure.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/tx_lg_products_services.gif b/webconsole/html/en/help/graphics/tx_lg_products_services.gif
new file mode 100644
index 0000000..488ae1e
--- /dev/null
+++ b/webconsole/html/en/help/graphics/tx_lg_products_services.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/tx_lg_support_training.gif b/webconsole/html/en/help/graphics/tx_lg_support_training.gif
new file mode 100644
index 0000000..834a1b0
--- /dev/null
+++ b/webconsole/html/en/help/graphics/tx_lg_support_training.gif
Binary files differ
diff --git a/webconsole/html/en/help/graphics/violet-bar.gif b/webconsole/html/en/help/graphics/violet-bar.gif
new file mode 100644
index 0000000..0354977
--- /dev/null
+++ b/webconsole/html/en/help/graphics/violet-bar.gif
Binary files differ
diff --git a/webconsole/html/en/help/index.xml b/webconsole/html/en/help/index.xml
new file mode 100644
index 0000000..54cc1d1
--- /dev/null
+++ b/webconsole/html/en/help/index.xml
@@ -0,0 +1,32 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE index PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN" "index_1_0.dtd">
+<index version="1.0">
+<indexitem target="gbgpn" text="assigning profiles"></indexitem>
+<indexitem target="gbgce" text="configuration repositories"><indexitem target="gbgcn" text="creating new"></indexitem><indexitem target="gbzbc" text="removing"></indexitem><indexitem target="gbzci" text="renaming"></indexitem><indexitem target="gbgqm" text="synchronizing"></indexitem><indexitem text="types"><indexitem target="gbgpt" text="file"></indexitem><indexitem target="gbgpt" text="hybrid"></indexitem><indexitem target="gbgpt" text="LDAP (Lightweight Directory Access Protocol)"></indexitem>
+</indexitem>
+<indexitem target="gbgpt" text="viewing details"></indexitem>
+</indexitem>
+<indexitem target="gbgni" text="creating profiles"></indexitem>
+<indexitem target="gbgcn" text="creating repositories"></indexitem>
+<indexitem target="gbgpr" text="deleting profiles"></indexitem>
+<indexitem target="gbgce" text="domains"></indexitem>
+<indexitem target="gbgoz" text="effective settings, viewing"></indexitem>
+<indexitem target="gbgcm" text="element trees"></indexitem>
+<indexitem target="gbgce" text="elements"><indexitem target="gbgqt" text="find function"></indexitem><indexitem target="gbgoy" text="information about"></indexitem><indexitem target="gbgpa" text="searching for"></indexitem>
+</indexitem>
+<indexitem target="gbgqh" text="exporting profiles"></indexitem>
+<indexitem target="gbgps" text="importing profiles"></indexitem>
+<indexitem target="gbgpt" text="LDAP (Lightweight Directory Access Protocol)"></indexitem>
+<indexitem target="gbgqa" text="logging out"></indexitem>
+<indexitem target="gbgcm" text="navigating"></indexitem>
+<indexitem target="gbgce" text="organizations"></indexitem>
+<indexitem target="gbgcm" text="profile trees"></indexitem>
+<indexitem target="gbgce" text="profiles"><indexitem target="gbgpn" text="assigning"></indexitem><indexitem target="gbgni" text="creating new"></indexitem><indexitem target="gbgpr" text="deleting"></indexitem><indexitem target="gbgqh" text="exporting"></indexitem><indexitem target="gbgps" text="importing"></indexitem><indexitem target="gbgcm" text="navigating"></indexitem><indexitem target="gbgqj" text="unassigning"></indexitem>
+</indexitem>
+<indexitem target="gbgqa" text="repositories"></indexitem>
+<indexitem target="gbgpa" text="searching"></indexitem>
+<indexitem target="gbgqm" text="synchronization"></indexitem>
+<indexitem target="gbgcd" text="viewing all profiles"></indexitem>
+<indexitem target="gbgdc" text="viewing assigned profiles"></indexitem>
+</index>
diff --git a/webconsole/html/en/help/map.jhm b/webconsole/html/en/help/map.jhm
new file mode 100644
index 0000000..a14c734
--- /dev/null
+++ b/webconsole/html/en/help/map.jhm
@@ -0,0 +1,46 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN" "map_1_0.dtd">
+<map version="1.0">
+ <mapID target="gbgca" url="gbgca.html"/>
+ <mapID target="gbgce" url="gbgce.html"/>
+ <mapID target="gbgqa" url="gbgqa.html"/>
+ <mapID target="gbgpt" url="gbgpt.html"/>
+ <mapID target="gbgcn" url="gbgcn.html"/>
+ <mapID target="gbzbc" url="gbzbc.html"/>
+ <mapID target="gbzci" url="gbzci.html"/>
+ <mapID target="gbgqm" url="gbgqm.html"/>
+ <mapID target="gbgdc" url="gbgdc.html"/>
+ <mapID target="gbgcm" url="gbgcm.html"/>
+ <mapID target="gbgpa" url="gbgpa.html"/>
+ <mapID target="gbgqt" url="gbgqt.html"/>
+ <mapID target="gbgoy" url="gbgoy.html"/>
+ <mapID target="gbgni" url="gbgni.html"/>
+ <mapID target="gbgpr" url="gbgpr.html"/>
+ <mapID target="gbgpn" url="gbgpn.html"/>
+ <mapID target="gbgqj" url="gbgqj.html"/>
+ <mapID target="gbgpw" url="gbgpw.html"/>
+ <mapID target="gbgqf" url="gbgqf.html"/>
+ <mapID target="gbgps" url="gbgps.html"/>
+ <mapID target="gbgqh" url="gbgqh.html"/>
+ <mapID target="gbgoz" url="gbgoz.html"/>
+ <mapID target="gbgcd" url="gbgcd.html"/>
+ <mapID target="gbgcr" url="gbgcr.html"/>
+ <mapID target="gbgpe" url="gbgpe.html"/>
+ <mapID target="gbgpu" url="gbgpu.html"/>
+ <mapID target="gbgow" url="gbgow.html"/>
+ <mapID target="gbgpj" url="gbgpj.html"/>
+ <mapID target="gbgou" url="gbgou.html"/>
+ <mapID target="gbgec" url="gbgec.html"/>
+ <mapID target="gbgcg" url="gbgcg.html"/>
+ <mapID target="gbgpb" url="gbgpb.html"/>
+ <mapID target="gbgeb" url="gbgeb.html"/>
+ <mapID target="gbgot" url="gbgot.html"/>
+ <mapID target="gbgkr" url="gbgkr.html"/>
+ <mapID target="gbgpm" url="gbgpm.html"/>
+ <mapID target="gbgpp" url="gbgpp.html"/>
+ <mapID target="gbgda" url="gbgda.html"/>
+ <mapID target="gbgdh" url="gbgdh.html"/>
+ <mapID target="gbgqu" url="gbgqu.html"/>
+ <mapID target="gbgqe" url="gbgqe.html"/>
+</map>
diff --git a/webconsole/html/en/help/p1.html b/webconsole/html/en/help/p1.html
new file mode 100644
index 0000000..0a70a47
--- /dev/null
+++ b/webconsole/html/en/help/p1.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Sun Desktop Manager 1.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<h1>Sun Desktop Manager 1.0 Online Help</h1>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/en/help/toc.xml b/webconsole/html/en/help/toc.xml
new file mode 100644
index 0000000..f62b1b3
--- /dev/null
+++ b/webconsole/html/en/help/toc.xml
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE toc PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN" "toc_1_0.dtd">
+<toc version="1.0">
+<tocitem target="gbgca" text="Sun Desktop Manager 1.0.1 Help"><tocitem target="gbgce" text="Introduction"></tocitem>
+<tocitem target="gbgqa" text="Configuration Repositories Window"><tocitem target="gbgpt" text="Configuration Repositories Table"><tocitem target="gbgcn" text="Creating a New Configuration Repository"></tocitem>
+<tocitem target="gbzbc" text="Removing a Configuration Repository"></tocitem>
+<tocitem target="gbzci" text="Renaming a Configuration Repository"></tocitem>
+<tocitem target="gbgqm" text="Synchronizing Configuration Repositories"></tocitem>
+</tocitem>
+</tocitem>
+<tocitem target="gbgdc" text="Profiles &#8212; Tree View"><tocitem target="gbgcm" text="Navigation Area"><tocitem target="gbgpa" text="Searching for an Element"></tocitem>
+<tocitem target="gbgqt" text="Using the Find Function"></tocitem>
+</tocitem>
+<tocitem target="gbgoy" text="Content Area"><tocitem target="gbgni" text="Creating a new Profile"></tocitem>
+<tocitem target="gbgpr" text="Deleting a Profile"></tocitem>
+<tocitem target="gbgpn" text="Assigning a Profile"></tocitem>
+<tocitem target="gbgqj" text="Unassigning a Profile"></tocitem>
+<tocitem target="gbgpw" text="Renaming a Profile"></tocitem>
+<tocitem target="gbgqf" text="Copying and Moving a Profile"></tocitem>
+<tocitem target="gbgps" text="Importing Profiles"></tocitem>
+<tocitem target="gbgqh" text="Exporting Profiles"></tocitem>
+</tocitem>
+<tocitem target="gbgoz" text="Viewing Effective Settings"></tocitem>
+</tocitem>
+<tocitem target="gbgcd" text="Profiles &#8212; All"><tocitem target="gbgcr" text="Creating a new Profile"></tocitem>
+<tocitem target="gbgpe" text="Deleting a Profile"></tocitem>
+<tocitem target="gbgpu" text="Renaming a Profile"></tocitem>
+<tocitem target="gbgow" text="Copying and Moving a Profile"></tocitem>
+<tocitem target="gbgpj" text="Importing Profiles"></tocitem>
+<tocitem target="gbgou" text="Exporting Profiles"></tocitem>
+</tocitem>
+<tocitem target="gbgec" text="Profile Editor"><tocitem target="gbgcg" text="General Properties"><tocitem target="gbgpb" text="Specifying General Properties for a Profile"></tocitem>
+</tocitem>
+<tocitem target="gbgeb" text="Configuration Settings"><tocitem target="gbgot" text="Viewing and Editing a Profile's Configuration Settings"></tocitem>
+</tocitem>
+<tocitem target="gbgkr" text="Assigned Elements"><tocitem target="gbgpm" text="Assigning an Element to a Profile"></tocitem>
+<tocitem target="gbgpp" text="Unassigning an Element from a Profile"></tocitem>
+</tocitem>
+<tocitem target="gbgda" text="Settings Summary"></tocitem>
+<tocitem target="gbgdh" text="Advanced Options"><tocitem target="gbgqu" text="Changing the Application from Location"></tocitem>
+<tocitem target="gbgqe" text="Assigning a Merge Order to a Profile"></tocitem>
+</tocitem>
+</tocitem>
+</tocitem>
+
+</toc>
diff --git a/webconsole/html/en/helpContent.html b/webconsole/html/en/helpContent.html
new file mode 100644
index 0000000..7859e4d
--- /dev/null
+++ b/webconsole/html/en/helpContent.html
@@ -0,0 +1,666 @@
+<html>
+<head>
+<title>Sun Java[TM] Desktop System Configuration Manager - Help Content</title>
+<meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+</head>
+
+<body class="help-body">
+<a name="top"></a>
+
+<p><a name="intro"> </a><div class="help-header-1">Configuration Manager Help</div></p>
+<p>Welcome to the Sun Java[TM] Desktop System Configuration Manager Help pages.
+To get help for a specific part of the Java Desktop System Configuration Manager,
+ click on one of the links on the left.</p>
+<p>The help starts by describing the Configuration Manager general product
+ background and concepts - <a
+class="help-link" href="#concepts">Background & Concepts</a>. Some general
+ layout and behavioral aspects of the Configuration Manager can be found in
+ <a
+class="help-link" href="#ui">Layout and Behavior</a>.
+</p>
+<p>After the general pages more specific help is available for the <a
+class="help-link" href="#masthead"><b>Masthead</b></a>, the <a
+class="help-link" href="#navigation"><b>Navigation pane</b></a> and the <a
+class="help-link" href="#content"><b>Content
+pane</b></a>. There are also pages that cover the <a class="help-link"
+href="#login">Login</a> and the <a href="#reporting">Reporting</a> feature.
+
+<p><a name="concepts"> </a>
+<div class="help-header-1">Background & Concepts</div></p>
+<p>The Configuration Manager enables the centralized management of configuration
+ settings. It is possible to view, define, and enforce configuration settings on
+ different levels of an organization's hierarchy. Configuration settings that are
+ semantically coherent are referred to as "configuration policies" in the rest of
+ this document.</p>
+<P>The Configuration Manager deals with three different hierarchical structures,
+ also known as trees. To understand the Configuration Manager user interface, it
+ is important to distinguish between the two trees:</P>
+<p><div class="help-header-2"><a name="dataStructures">Data Structures</a></div></p>
+<P>One tree is formed by the configuration policies, and is thus called the
+ configuration policy tree (see blue parts of figure 1 - "Trees"). A hierarchical
+ organization of configuration settings is already familiar to users from many
+ programs that have a more sophisticated configuration, like Mozilla. A typical
+ configuration policy can be referred to with "/Mozilla/Navigator", a configuration
+ setting with "/Mozilla/Navigator/HomeUrl".</P>
+<P>Configuration policy trees are incorporated into the second type of tree, the
+ organization tree (see gray parts of figure 1 - "Trees"). The organization tree
+ represents relationships between organizational units. The result is an
+ "organization tree containing configuration policy trees". The organization tree
+ is represented using an LDAP server.</P>
+<p>The third type of tree is the domain tree. The domain tree represents
+ relationships between hardware units. Configuration policy trees are incorporated
+ into the domain tree, resulting in a domain tree containing configuration policy
+ trees. The domain tree is represented using an LDAP server.</p>
+<p>The concepts for working with the organization tree and the domain tree are the
+same. The main difference between the two is that the organization tree maintains
+ users and the domain tree maintains hosts. Having users and hosts in two separate
+trees enables the Configuration Manager to provide user-based and host-based configuration.
+ Due to the similarities between the two trees, this section focuses on the organization
+ tree and only mentions the domain tree when differences exist between the organization
+ tree and the domain tree.</p>
+<P>LDAP servers are commonly used in large enterprises to map
+organizational data in a hierarchical way. Each location within the
+organization tree in LDAP is called an entity.</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_ldap_v4.png" NAME="Trees" ALT="Trees" ALIGN=LEFT WIDTH=550 HEIGHT=369 BORDER=1>
+<P><A NAME="fig_trees"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">Figure
+1 &ndash; Trees</FONT></FONT></I></P>
+<p><div class="help-header-2"><a name="SecDataManagement">Security and Data
+Management</a></div></p>
+<p>This "tree of trees" facilitates hierarchical security and data management.
+This is accomplished by initially inserting the whole configuration policy tree
+once at the root of the organization tree. Entity-specific changes to the
+configuration settings of that initial configuration policy tree are stored at
+the corresponding entity. For simplicity, figure 1 only illustrates the configuration
+ policy trees associated with the organizational entities that are called
+"marketing" and "jclarke".</P>
+<p><div class="help-header-2"><a name="GenConfigSettings">Generation of Configuration
+Settings</a></div></p>
+<P>The configuration settings for an entity are gotten by merging. All configuration
+ settings, which are associated with an entity in the organization or domain tree,
+ are called layers. The merging begins with the root layer and follows the tree
+ until the desired entity is reached. A change in a configuration setting, in a
+ layer associated with an entity, is inherited by the layers that are associated
+ with entities farther down in the tree hierarchy (see <A class="help-link" HREF="#fig_merging">figure 2 - "Layer
+Merging"</a>).
+ The inherited values can be overwritten if a particular layer defines its own
+settings.</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_merge.gif" NAME="LayerMerging" ALT="Layer Merging" ALIGN=LEFT WIDTH=550 HEIGHT=520 BORDER=1>
+<P><A NAME="fig_merging"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">Figure
+2 &ndash; Layer Merging</FONT></FONT></I></P>
+<p>This inheritance holds true for configuration settings, and also holds true for
+ security characteristics: specifying the security attribute "protected" for one
+configuration setting in the layer attached to "o=marketing" will make this configuration
+ setting in all subsequent layers of the tree read-only (see <A class="help-link" HREF="#fig_protection">figure 3 -
+"Protection"</a>).</P>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_protected_v3.png" NAME="Protection" ALT="Protection" ALIGN=LEFT WIDTH=550 HEIGHT=524 BORDER=1>
+<P><A NAME="fig_protection"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">Figure
+3 &ndash; Protection</FONT></FONT></I></P>
+<p><div class="help-header-2"><a name="BCAssociating">Associating a Configuration Policy Tree with an Organization or Domain
+Tree</a></div></p>
+<p>Configuration policy trees are bound to the entities
+ of an organization tree in two different ways:</P>
+<UL>
+ <li>Stored at an entity as
+ self-contained configuration policy trees</li>
+ <li>Linked to an entity from a policy
+ group</li>
+</UL>
+<p><p><div class="help-header-2"><a name="BCPolicyGroups">Policy
+Groups</a></div></p>
+<P>Policy groups are containers for configuration
+policies, they each have a (unique) name associated with them. They
+are also containers for a configuration policy tree, because
+configuration policies store their configuration settings in a
+configuration policy tree (see <A class="help-link" HREF="#fig_trees">figure 1 &ndash;
+&quot;Trees&quot;</A>). Policy groups are stored in a policy repository
+ and can be used by all types of entities by creating link(s)
+to policy group(s). This allows more flexibility, independent of the
+backend used. Another advantage of the policy groups is that they can
+be imported and exported which eases maintenance.</P>
+<P>The administrator can create collections of configuration policies for
+ separate semantic ranges, for instance an "Experts" and a "Novice" policy group
+ stored in the policy repository. The configuration policies can then be used
+throughout the organization tree.</P>
+<div align="right"><a href="#top" class="help-return-link">
+ <img src="/com_sun_web_ui/images/href/to_top.gif"
+ alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">
+ Back to top</a></div>
+
+<a name="ui"> </a>
+<div class="help-header-1">Layout and Behaviour</div>
+<p>The layout for the Configuration Manager consists of three areas: a Masthead,
+ a Navigation pane, and a Content pane. The masthead is located on the top section
+ of the page. The area on the lower left side contains the Navigation pane.
+ The area on the lower right is the Content pane. This type of layout is also
+ referred to as Left-Right pane set. Separate browser windows are opened for
+ displaying additional dialogs and displaying help content.</p>
+<div align="right"><a href="#top" class="help-return-link">
+ <img src="/com_sun_web_ui/images/href/to_top.gif"
+ alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">
+ Back to top</a></div>
+
+
+<a name="login"> </a>
+<div class="help-header-1">Login</div>
+<p>To use the Configuration Manager, you must login to the Sun Web Console. The
+ Sun Web Console is the location for management applications, all of which have
+ a consistent user interface. An advantage of the Console is that an administrator
+ can log in once and use any application inside the console. For this purpose the
+Sun Web Console provides a standard login page.</p>
+<p>On the standard login page, the server that you are going to log into is displayed
+ above the text fields for the user name and password.</p>
+<p>After you have logged into the Web Console successfully, you arrive at the Web
+ Console application launch page. From there, you can select the "Configuration Manager"
+ application, which launches the Configuration Manager.</p>
+<div align="right"><a href="#top" class="help-return-link">
+ <img src="/com_sun_web_ui/images/href/to_top.gif"
+ alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">
+ Back to top</a></div>
+
+<a name="masthead"> </a>
+<div class="help-header-1">Masthead</div>
+<p>The Masthead has the full product name (Sun Java[TM] Desktop System Configuration Manager) across it.
+The Masthead also provides a number of general links:</p>
+<ul><li>The <b>Console</b> link returns you to the Sun Web Console application launch page.</li>
+ <li>The <b>version</b> link opens a version window.</li>
+ <li>The <b>Log Out</b> link logs you out of the Sun Web Console, and thus the
+ Configuration Manager, returning you to the Login page.</li>
+ <li>The <b>Help</b> link opens these help pages.</li>
+</ul>
+<div align="right"><a href="#top" class="help-return-link">
+ <img src="/com_sun_web_ui/images/href/to_top.gif"
+ alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">
+ Back to top</a></div>
+
+<a name="navigation"> </a>
+<div class="help-header-1">Navigation pane</div>
+<p>The Navigation pane allows you to browse the organization tree, which contains
+ organizations, users and roles, and to browse the domain tree, which contains
+ domains and hosts. It also allows you to manage policy groups in the corresponding
+ users and hosts policy repositories.</p>
+<p>There are two top-level tabs in the Navigation pane: <b>Users</B> and
+<b>Hosts</B>.</p>
+<a name="entities"> </a>
+<div class="help-header-2">Users Tab</div>
+<p>Two sub-tabs, <b>Organization Tree</B> and <b>Policy Repository</B>, are provided. Browse
+ the organization tree using the <b>Organization Tree</B> tab.</p>
+<a name="parpath"></a><div class="help-header-3">Parentage Path</div>
+<p>At the top of the <b>Organization Tree</B> tab is the parentage path, which is a
+ control that visualizes the path to the current entity. Every path particle
+ is a link that represents an entity, except for the last link, which is displayed
+ as normal text and denotes the current entity. To navigate using the parentage
+ path, click on a link. This will:
+<ul><li>Refresh the Navigation pane so that the parentage path points to the
+clicked entity, and so that the navigation table contains the sub-entities of
+ that entity.</li>
+ <li>Refresh the Content pane with the configuration policy data associated
+with that entity. </li>
+</ul>
+The navigation and Content pane are synchronized throughout the application to
+provide a homogeneous view of the data.</p>
+<a name="navtable"></a><div class="help-header-3">Navigation Table</div>
+<p>The navigation table is located below the parentage path, and lists the
+sub-entities of the current entity. The "Name" column contains the names of all
+sub-entities of the current entity. The "Type" column displays the type of the
+entity. The "Action" column contains a <b>View</B> link for every row.</p>
+<p>To navigate to an entity click on a listed name, this will:
+<ul><li>Make the selected sub-entity the current entity.</li>
+ <li>Refresh the Navigation pane so that the parentage path points to the new
+ current entity, and so that the navigation table contains the sub-entities of that entity.</li>
+ <li>Refresh the Content pane with the configuration policy associated with that entity.</li>
+</ul></p>
+An entity can be of type "Organization", "User" or "Role".</p>
+<p>To view a listed entity's details click on the <b>View</B> link. This will:
+<ul><li>Change the background color of the selected row to blue. </li>
+ <li>Refresh the Content pane with the data associated with the selected entity.</li>
+</ul>
+A row with blue background marks the entity whose data is currently visible in
+the Content pane.</p>
+<p>The action bar of the navigation table contains the <b>Filter</B> drop-down menu
+and and the <b>Advanced Filter</b> icon. When the table contains more than ten entries,
+the <b>Page/Scroll Through All Data</b> icon appears, which allows you to change the view of
+the table entries.</p>
+<p>The<b>Filter</b> drop-down menu allows you to choose which type of entity to display in the
+navigation table. It contains the following items:
+<ul><li>"All Items" displays all types of entities in the navigation table.</li>
+ <li>"Organizations" displays only entities of type "Organization" in the
+navigation table.</li>
+ <li>"Users" displays only entities of type "User" in the navigation
+table.</li>
+ <li>"Roles" displays only entities of type "Role" in the navigation
+table.</li>
+</ul></p>
+
+<a name="adfilter"></a><div class="help-header-3">Advanced Filter</div>
+<p>Click the <b>Advanced Filter</B> icon in the navigation table to open the Advanced Filter dialog.</P>
+<p>In the <b>Type</b> section, mark the type of entity that you want to filter. For a
+more specific filter, enter the name that you want to perform the filter on in
+the <b>Name</b> text field. Then click the <b>Filter</B> button at the bottom of the dialog
+to run the filter.</p>
+
+<a name="search"></a><div class="help-header-3">Search</div>
+<p>To open the Search window click the <b>Search</b> button above the navigation table.
+The Search window contains a masthead, a parameter area on the left, and a result
+area on the right. The Search window can be used to recursively search through
+the organization tree for certain entity types and entity names. If the
+<b>Search</b>
+button in the Navigation pane of the main window is clicked while the Search window
+is open in the background, the Search window becomes the topmost window. The
+current entity of the Search window, which is displayed by the parentage path
+in the parameter area of the Search window, is refreshed. All other parameters
+and the content of the result area are unchanged.</p>
+<p>The parameter area displays the parentage path at the top, and it visualizes the
+path to the current entity. The use of the parameter area is described in the
+ <a class="help-link" href="#parpath">Parentage Path</a> section.</p>
+<p>To search for a particular entity type, select that type from the drop-down
+list underneath the parentage path. The six selections are "Search All",
+"Search Organizations", "Search Users", "Search Roles", "Search Domains", and
+"Search Hosts".</p>
+<p>To further narrow the search, you can use the text box that is located next to the drop-down
+list. This allows you to search for entity names that match the search string
+that you entered in this field. The starting point to search from in the tree
+can be specified selecting one of the <b>Starting Point</b> radio buttons. The choices
+are to search from the current location or to search from the top of the tree.
+The default value is to search from the current location. The locations are r
+epresented by their names. Clicking on any path particle in the parentage path
+will change the current location for the search to the selected entity but will
+not change the scope of the navigator's view.</p>
+<p>Select the number of results to be displayed from the
+"Results displayed per page" drop-down list.</p>
+<p>All search fields in the search pane accept the asterisk "*" as a wildcard at
+ any position in a search string. The asterisk represents an arbitrary number of
+ arbitrary characters. If multiple search criteria are specified, all search
+criteria must be fulfilled for an entity to be added to the result table.
+The search is not case-sensitive.</p>
+<p>To perform the search, click on the <b>Search</b> button, which refreshes the result
+ area with a table containing the search results.</p>
+<p>To reset the page values click on the <b>Reset</b> button, which refreshes the
+parameter area with the default values. All text boxes are emptied, and the
+first value is selected in all drop-down lists and radio button groups.</p>
+<p>The result area contains a blank page when the Search window is created.
+After performing a search, a result table is displayed. The result table
+contains three columns: "Name", "Type" and "Path".</p>
+<p>To view a result, click on the corresponding name under the "Name" column. This will:
+ <ul><li>Make the main window the topmost window.</li>
+ <li>Refresh the Navigation pane of the main window so that the entity
+represented by the "Name" link is an entry in the navigation table with a blue
+background. </li>
+ <li>Refresh the content area of the main window with the configuration
+policy associated with that entity.</li>
+ </UL>
+</p>
+<p>The "Type" column displays the type of the entity. An entity can be either of
+type "Organization", "User"or "Role".</p>
+<p>The "Path" column contains the path to the entity. The path is relative to
+the starting point of the search.</p>
+<p>If the type searched for is "User", the parameter area displays different
+text boxes to accommodate the characteristics of a user: "User ID", "First Name",
+and "Last Name". In the result area, an additional "User ID" column appears to
+the right to the "Name" column, containing the user IDs. If the "User ID" text
+box in the parameter area contains at least one character, the primary sort
+column is the "User ID" column. If not, the primary sort column is the "Name" column.</p>
+<a name="hoststab"> </a>
+<div class="help-header-2">Hosts Tab</div>
+<p>The <b>Hosts</B> tab contains two sub-tabs that are called <b>Domain Tree</B> and
+<b>Policy Repository</B>, respectively.</p>
+<a name="domtree"></a><div class="help-header-3">Domain Tree Tab</div>
+<p>The Domain Tree displays the configuration settings for the hardware that the
+user is working on.</P>
+<p>Navigation through the Domain Tree works in the same way as navigation through
+ the Organization Tree, see the <a href="#entities">Users Tab</A> section for more details.
+<a name="actionbar"></a><div class="help-header-3">Action Bar</div>
+<p>The <b>Filter</B> drop down menu in the navigation table contains four items:
+<ul><li>"All Items" - displays all types of entities</li>
+ <li>"Domains" - displays entities of type Domain</li>
+ <li>"Hosts" - displays entities of type Host</li>
+</ul>
+</p>
+<a name="adfilterhosts"></a><div class="help-header-3">Advanced Filter</div>
+<p>The Advanced Filter for the Domain Tree works in the same way as the Advanced
+Filter for the Organization Tree (see the previous <a href="#adfilter">Advanced
+Filter</a> section). The Advanced Filter for the Domain tree provides "Domain" and "Host" entity types to
+filter from.</p>
+<a name="searchhosts"></a><div class="help-header-3">Search</div>
+<p>When you click on the <b>Search</b> button in the <b>Domain Tree</b> tab, the
+Domain Search appears. The Domain Search operates in the same way as the search
+in the Organization Tree (see <a href="#">above</a>), but the Staring Point field
+is set to "Hardware".</p>
+
+<div align="right"><a href="#top" class="help-return-link">
+ <img src="/com_sun_web_ui/images/href/to_top.gif"
+ alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">
+ Back to top</a></div>
+
+<a name="psptab"> </a>
+<div class="help-header-2">Policy Repositories</div>
+<p>A <b>Policy Repository</b> tab exists under both the <b>Users</B> tab and under
+the <b>Hosts</B> tab.</P>
+<p>A policy repository is a container for either user policy groups or host
+policy groups. The policy groups are organized in an ordered list. The sequence
+ is defined by priorities.</p>
+
+<a name="psptable"></a><div class="help-header-3">Policy Group Table</div>
+<P>The policy group table is located at the top of the page and lists the policy
+ groups. The table contains three columns: a selection column, "Name", and "Priority". </P>
+<P>The selection column is used to mark the rows to which the actions listed in
+ the <b>Policy Group Action</b> drop-down menu are applied.</P>
+<P>To navigate to a Policy Group, click on its name. This will:</P>
+<UL>
+ <li>Change the background color of the row clicked on to blue.</li>
+ <li>Refresh the Content pane with the data that is associated with the
+selected policy.</li>
+</ul>
+<p>The "Priority" column contains the priority of the policy group. The priority
+is used to define the merge order of the policy groups if an administrator has
+ associated more than one policy group to an entity.</p>
+<P>A row with blue background marks the policy group whose data is currently viewed
+ in the Content pane, the viewed policy group.</P>
+
+<a name="pspactions"></a><div class="help-header-3">Policy Group Action Bar</div>
+<P>The <b>Policy Group Actions</B> drop-down menu contains the following actions, displayed from top to bottom:
+</P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <THEAD>
+ <TR VALIGN=TOP>
+ <TH WIDTH="11%">
+ <P>Name</P>
+ </TH>
+ <TH WIDTH="89%">
+ <P>Action</P>
+ </TH>
+ </TR>
+ </THEAD>
+ <TBODY>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+ <P>New</P>
+ </TD>
+ <TD WIDTH="89%">
+ <P>A dialog window opens, where the user enters the (unique) name of the policy group. After clicking OK, the policy group is added. The Navigation pane is refreshed to reflect the changes.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="11%">
+ <P>Delete</P>
+ </td>
+ <TD WIDTH="89%">
+ <P>A pop-up window opens, with a warning message to confirm deletion of the policy group(s). If the user clicks OK, the policy group(s) are deleted. The Navigation pane is refreshed to reflect the changes.</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>Rename</p>
+ </td>
+ <td width="89%">
+ <p>A dialog window opens, the user enters the new (unique) name for the policy group, the policy group is renamed and the Navigation pane is refreshed to reflect the changes.</p>
+ </td>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>Edit Priorities</p>
+ </td>
+ <td width="89%">
+ <p>A dialog window opens, which contains a list box for changing the priorities.</p>
+ </td>
+ </tr>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+ <P>Export</P>
+ </TD>
+ <TD WIDTH="89%">
+ <P>A dialog window opens. The user enters the destination path where the selected policy group(s) are exported to.</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>Import</p>
+ </td>
+ <td width="89%">
+ <p>A dialog window opens. The user selects the policy group(s) to be imported. After clicking OK, the policy group is added and the Navigation pane is refreshed to reflect the changes.</p>
+ </td>
+ </tr>
+ </TBODY>
+</TABLE>
+
+<p><a name="psppriorities"></a><div class="help-header-3">Policy Group
+Priorities</div></p>
+<p>The concept of policy group priorities allows the administrator to define the order in which the layers are merged. The policy group priorities are used during merging if an entity has more than one policy group assigned. In this case, the hierarchy of entities is not sufficient to determine the sequence in which the policy groups are merged. This is solved by assigning priorities to policy groups.</p>
+<p>To open the policy group priorities dialog select <b>Edit Priorities</b> from the
+ <b>Policy Group Actions</b> drop down menu. To increase or decrease the priority of a policy group:</p>
+<ol>
+ <li>Select the policy group from the list</li>
+ <li>Click on the <b>Move Up</b> or <b>Move Down</b> button to increase/decrease the priority </li>
+</ol>
+
+<div align="right"><a href="#top" class="help-return-link">
+ <img src="/com_sun_web_ui/images/href/to_top.gif"
+ alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">
+ Back to top</a></div>
+
+<a name="content"> </a>
+<div class="help-header-1">Content Pane</div>
+<p>The Content pane displays the data associated with the selected entity or
+ policy group in the Navigation pane. The data is grouped in tabs. The
+ selections made in the Navigation pane determine the number and type of
+ tabs displayed in the Content pane. The <b>Policies</b> tab is the default active
+tab. The currently active tab stays active if selections are changed in the
+ Navigation pane, as long as the selection made offers that tab. If not, the
+ <b>Policies</b> tab becomes the active tab. The internal state of a tab (parentage path,
+ sort order) is recalled when the tab becomes active again.</p>
+<a name="policies"> </a>
+<div class="help-header-2">Policies Tab</div>
+<p>Use the <b>Policies</B> tab to navigate the configuration policy tree displaying subgroups, configuration settings or both.</p>
+<p>Every Policies page has two buttons:
+<ul><li><b>Report</b>: see the <a href="#reporting">Reporting</a> section for details.</li>
+ <li><b>Clear Settings</b>: this button recursively deletes all configuration data below the subgroup currently displayed for the viewed entity. </li>
+</ul>
+</P>
+<p>Every root entry in the configuration policy tree denotes an application, for instance, "StarOffice 7". The tree below the application organizes the configuration policies that belong to that application. Configuration policies can be located anywhere in the configuration policy tree. If a configuration policy is not a leaf of the configuration policy tree, the policy table as well as the configuration policy need to be displayed for one current location in the configuration policy tree. </p>
+<a name="caparpath"> </a>
+<div class="help-header-3">Parentage Path</div>
+<p>The parentage path is displayed at the top of the page underneath the tabs.
+It visualizes the current location in the configuration policy tree. It
+functions in the same way as the parentage path in the Navigation pane (see
+previous<a
+class="help-link" href="#parpath">Parentage Path</a> section).</p>
+<a name="subgroupstable"> </a>
+<div class="help-header-3">Subgroups Table</div>
+<P>The Subgroups table is located below the parentage path. The table lists the subgroups of the current location in the configuration policy tree. It contains two columns: "Name" and "Comment".</P>
+<P>The "Name" column contains the names of all subgroups of the current location in the configuration policy tree. The name is displayed as a link. To navigate through the configuration policy tree click on a name link. This will:</P>
+<UL>
+ <li>Refresh the Content pane so that the parentage path points to the new location in the configuration policy
+tree.</li>
+ <li>Refresh the Content pane so that either a policy table or a policy is
+displayed.</LI>
+</UL>
+<P>This kind of navigation is referred to as "drill down"
+type navigation.</P>
+<P>The Comment column contains a short description of the subgroup.</P>
+<A NAME="capolicies"></A>
+<div class="help-header-3">Policy</div>
+<P>If valid configuration policy data is available for the combination of the current entity and the current configuration policy, the "Policies" tab in the Content pane displays that data.</p>
+<p>The data is presented in tables. The tables have four columns. A selection column that contains selection icons, a "Status" column, a "Name" column and a "Value" column. The action bar on the table has a drop down actions menu </p>
+<p>To select an element check the checkbox in front it. An action from the drop down actions menu in the action bar can now be performed on the selected element. The following table describes all actions:</p>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P><B>Action</B></P>
+ </TD>
+ <TD WIDTH="83%">
+ <P><B>Operation</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Protect</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Set the selected element to be protected.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Unprotect</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Removes the protection for the selected element.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Apply Default</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Uses the hard-coded default data from the policy template.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Clear</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Deletes the data that is stored in the element.</P>
+ </TD>
+ </TR>
+
+</TABLE>
+<p>To the left of an element name, two icons show the status of that element. The following table summarizes the icons and their function:</P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><B>Icon</B></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P><B>Meaning</B></P>
+ </TD>
+ <TD WIDTH="32%">
+ <P><B>Operation</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_set_here.png" NAME="DefinedHere" ALT="Defined
+Here" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>This icon illustrates that the value of the element was set at
+ this level of the organization tree.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_set_above.png" NAME="DefinedLayered"
+ALT="Defined Layered" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>This icon, which is also a link, illustrates that the value of the element was set at a higher level of the organization (or domain) tree. The value that the user sees is the result of the merging of layers, or entity levels, within the organization.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>When you click on the icon, it navigates you to where the value was set.</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_protected_here.png" NAME="ProtectedHere"
+ALT="Protected Here" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>This icon illustrates that the protection of the element was set at this level of the organization (or domain) tree. Protection is inherited through both the organization and configuration policy trees.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_protected_above.png" NAME="ProtectedLayered"
+ALT="Protected Layered" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>This icon, which is also a link, illustrates that the protection of the element was set at a higher level of the organization (or domain) tree. The protection of this element or item is as a result of merging of layers, or entity levels, within the organization.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>Clicking on this icon navigates the user to where the protection was set.</P>
+ </TD>
+ </TR>
+</TABLE>
+<p>Data values can be changed by changing the values in the "Value" column. Value changes as well as status changes must be saved. Saving is done by clicking on the
+<b>Save</b> button.</p>
+<a name="casets"> </a>
+<div class="help-header-3">Sets</div>
+<p>Sets are dynamic collections of properties. You can add and remove elements from the set.</p>
+<p>To add an element to a set:
+<ol><li>Click on the <b>New</b> button. </li>
+ <li>A dialog allows you to enter the name of the new element. The element
+is then added and the main window refreshed.</li>
+ <li>In the main window the new element can be editied</li>
+</ol>
+<p>To delete elements from a set, select the element and click the <b>Delete</B> button.</p>
+<p>Note that sets can contain sets and they are represented as links. Clicking
+on the link will navigate you to the set and the set can be edited from
+there</p>
+
+<a name="policysets"> </a>
+<div class="help-header-2">Policy Groups Tab</div>
+<p>This Policy Group page allows you to add and remove policy groups to the selected entity.</p>
+<p>To add a policy group listed in the <b>Available</b> list on the left side:</p>
+<ol>
+ <li>Select the policy group from the list</li>
+ <li>Click the <b>Add</b> button to add the selected policy group to the
+<b>Selected</B> list on the right side.</li>
+ <li>Click <b>Save</b> to store the new assignment. </LI>
+</ol>
+
+<a name="caentities"> </a>
+<div class="help-header-2">Assignees Tab</div>
+<p>If a policy group is selected in the Policy Repository of the Navigation pane, the Content pane contains the
+<b>Assignees</b> tab page. The Assignees page lists all entities that the selected policy group is assigned to.</p>
+<p>Actions that can be performed on the Assignees Tab page are:
+<ul><li><b>Remove</B> breaks the association between the selected entity(s) and the policy group selected in the Navigation pane. </li>
+ <li>Clicking on an entity in the "Name" column refreshes the Navigation pane, so that the clicked entity is the entity in the Navigation pane with the blue background. </li>
+</ul>
+</p>
+<div align="right"><a href="#top" class="help-return-link">
+ <img src="/com_sun_web_ui/images/href/to_top.gif"
+ alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">
+ Back to top</a></div>
+
+<a name="roles"> </a>
+<div class="help-header-2">Roles Tab</div>
+<p>If an entity of type "User" is selected in the Navigation pane, and that user is a member of at least one role, the Content pane contains the
+<b>Roles</B> tab page. The
+<b>Roles</B> page lists all the roles that the selected user is a member of.</p>
+<p>This page has two columns "Name" and "Path". "Name" contains the names of
+the roles and "Path" contains the absolute path to the Role.</p>
+<a name="users"> </a>
+<div align="right"><a href="#top" class="help-return-link">
+ <img src="/com_sun_web_ui/images/href/to_top.gif"
+ alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">
+ Back to top</a></div>
+
+<a name="reporting"> </a>
+<div class="help-header-1">Reporting</div>
+<p>A report is a read-only view of all configuration settings that contain data. A report is triggered by clicking a
+<b>Report</B> button. The Configure Report dialog then appears.</p>
+<p>The "Configure Report" dialog allows you to customise:
+<ul><li>Which tree (organization and/or domain tree) to take into account (<b>Use for
+Report</B>) </li>
+ <li>Which columns to show in the generated report (<b>Status Path</b> and
+<b>Description</B> can be disabled) </li>
+</ul>
+<p>Once customised clicking on the report will open a read only view of the
+selected data.</p>
+<div align="right"><a href="#top" class="help-return-link">
+ <img src="/com_sun_web_ui/images/href/to_top.gif"
+ alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">
+ Back to top</a></div>
+
+</body>
+</html>
diff --git a/webconsole/html/en/helpNav.html b/webconsole/html/en/helpNav.html
new file mode 100644
index 0000000..7f69192
--- /dev/null
+++ b/webconsole/html/en/helpNav.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+ <title>APOC Manager - Help Content</title>
+ <meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ </HEAD>
+ <BODY>
+ <table border="0">
+ <tr>
+ <td><div class="help-header-3">
+ <span class="help-header-3">Contents</span></div>
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ <ul>
+ <li><a class="help-toc-link"
+ href="helpContent.html#concepts"
+ target="contentFrame">
+ Background & Concepts</a> </li>
+ <ul>
+ <li><a class="help-toc-link"
+ href="helpContent.html#dataStructures"
+ target="contentFrame">Data Structures</A></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#SecDataManagement"
+ target="contentFrame">Security and Data Management</A></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#GenConfigSettings"
+ target="contentFrame">Generation of Config Settings</A></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#BCAssociation"
+ target="contentFrame">Association</A></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#BCPolicyGroups"
+ target="contentFrame">Policy Groups</A></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#ui"
+ target="contentFrame">
+ Layout and Behaviour</a> </li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#login"
+ target="contentFrame">
+ Login</a> </li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#masthead"
+ target="contentFrame">
+ Masthead Pane</a> </li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#navigation"
+ target="contentFrame">
+ Navigation Pane</a></li>
+ <ul>
+ <li><a class="help-toc-link"
+ href="helpContent.html#entities"
+ target="contentFrame">
+ Users Tab</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link"
+ href="helpContent.html#parpath"
+ target="contentFrame">
+ Parentage Path</a></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#navtable"
+ target="contentFrame">
+ Navigation Table</a></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#adfilter"
+ target="contentFrame">
+ Advanced Filter</a></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#search"
+ target="contentFrame">
+ Search</a></li>
+ </ul>
+ <li><a class="help-toc-link"
+ href="helpContent.html#hoststab"
+ target="contentFrame">
+ Hosts Tab</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link"
+ href="helpContent.html#domtree"
+ target="contentFrame">
+ Domain Tree</a></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#actionbar"
+ target="contentFrame">
+ Action Bar</a></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#adfilterhosts"
+ target="contentFrame">
+ Advanced Filter</a></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#searchhosts"
+ target="contentFrame">
+ Search</a></li>
+ </UL>
+ <li><a class="help-toc-link"
+ href="helpContent.html#psptab"
+ target="contentFrame">
+ Policy Repositories</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link"
+ href="helpContent.html#psptable"
+ target="contentFrame">
+ Policy Group Table</a></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#pspactions"
+ target="contentFrame">
+ Policy Group Action Bar</a></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#psppriorities"
+ target="contentFrame">
+ Policy Group Priorities</a></li>
+ </ul>
+ </ul>
+ <li><a class="help-toc-link"
+ href="helpContent.html#content"
+ target="contentFrame">
+ Content Pane</a> </li>
+ <ul>
+ <li><a class="help-toc-link"
+ href="helpContent.html#policies"
+ target="contentFrame">
+ Policies Tab</a></li>
+ <ul type="circle"><li><a class="help-toc-link"
+ href="helpContent.html#caparpath"
+ target="contentFrame">
+ Parentage Path</a></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#subgroupstable"
+ target="contentFrame">
+ Subgroups Table</a></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#capolicies"
+ target="contentFrame">
+ Policy</a></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#casets"
+ target="contentFrame">
+ Sets</a></li>
+ </ul>
+ <li><a class="help-toc-link"
+ href="helpContent.html#policysets"
+ target="contentFrame">
+ Policy Groups Tab</a></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#caentities"
+ target="contentFrame">
+ Assignees Tab</a></li>
+ <li><a class="help-toc-link"
+ href="helpContent.html#roles"
+ target="contentFrame">
+ Roles Tab</a></li>
+ </ul>
+ <li><a class="help-toc-link"
+ href="helpContent.html#reporting"
+ target="contentFrame">
+ Reporting</a> </li>
+ </ul>
+ </td>
+ </tr>
+ </table>
+ </BODY>
+</HTML>
diff --git a/webconsole/html/en/helpToolbar.html b/webconsole/html/en/helpToolbar.html
new file mode 100644
index 0000000..9af73ef
--- /dev/null
+++ b/webconsole/html/en/helpToolbar.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+ <title>APOC Manager - Help Toolbar</title>
+ <meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ </HEAD>
+ <BODY>
+ <table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><img src="/apoc/images/dot.gif" width="1" height="15" alt=""/></td>
+ <td align="right" nowrap="nowrap" valign="bottom"><div
+class="TtlBtnDiv">
+ <input name="Masthead.CloseButton" type="submit" class="Btn1" value="Close"
+title="Click to Close the Help Window" onclick="javascript: parent.parent.close();
+return false;" onmouseover="javascript: if (this.disabled==0)
+this.className='Btn1Hov'" onmouseout="javascript: if (this.disabled==0) this.className='Btn1'"
+on blur="javascript: if (this.disabled==0) this.className='Btn1'"
+onfocus="javascript: if (this.disabled==0) this.className='Btn1Hov'" />
+ </div></td>
+ </tr>
+ </TABLE>
+</body> \ No newline at end of file
diff --git a/webconsole/html/en/notemphelp.html b/webconsole/html/en/notemphelp.html
new file mode 100644
index 0000000..b03c1e3
--- /dev/null
+++ b/webconsole/html/en/notemphelp.html
@@ -0,0 +1,14 @@
+<html>
+ <head>
+ <title>Help - StarOffice Configuration Manager</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ </head>
+<body>No template help was provided</body>
+
+
+</script>
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ </body>
+ </noframes>
+</html>
diff --git a/webconsole/html/en/version.txt b/webconsole/html/en/version.txt
new file mode 100644
index 0000000..8602f85
--- /dev/null
+++ b/webconsole/html/en/version.txt
@@ -0,0 +1 @@
+Sun Desktop Manager, Version 1.0.1
diff --git a/webconsole/html/en/versionInfo.shtml b/webconsole/html/en/versionInfo.shtml
new file mode 100644
index 0000000..28ac049
--- /dev/null
+++ b/webconsole/html/en/versionInfo.shtml
@@ -0,0 +1,39 @@
+<html>
+<head>
+<title><!--#include file="version.txt"--></title>
+<meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc.
+All Rights Reserved.">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+</head>
+<body class="DefBdy">
+ <div class="VrsMgn">
+ <div class="VrsHdrTxt">
+ <!--#include file="version.txt"--> (July 31 2007 12:59 PM)
+ </div>
+ <p>
+ <div class="VrsTxt">
+ Copyright &copy; 2007 Sun Microsystems, Inc. All rights reserved.
+ Sun Microsystems, Inc. has intellectual property rights relating to
+ technology embodied in the product that is described in this document.
+ In particular, and without limitation, these intellectual property
+ rights may include one or more of the U.S. patents listed at
+ http://www.sun.com/patents and one or more additional patents or
+ pending patent applications in the U.S. and in other countries.
+ SUN PROPRIETARY/CONFIDENTIAL. U.S. Government Rights - Commercial software.
+ Government users are subject to the Sun Microsystems, Inc. standard
+ license agreement and applicable provisions of the FAR and its supplements.
+ Use is subject to license terms. Sun, Sun Microsystems, the Sun logo,
+ Java, Solaris, StarOffice, Sun Ray and Sun Desktop Manager are
+ trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S.
+ and other countries. All SPARC trademarks are used under license and
+ are trademarks or registered trademarks of SPARC International, Inc.
+ in the U.S. and other countries. UNIX is a registered trademark in
+ the U.S. and other countries, exclusively licensed through X/Open
+ Company, Ltd.
+ </div>
+ </div>
+</body>
+</html>
diff --git a/webconsole/html/es/Makefile.am b/webconsole/html/es/Makefile.am
new file mode 100644
index 0000000..89a6f3b
--- /dev/null
+++ b/webconsole/html/es/Makefile.am
@@ -0,0 +1,10 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = help
+
+esdir = ${htmldir}/es
+es_DATA =helpToolbar.html \
+ help.html \
+ helpNav.html \
+ helpContent.html \ No newline at end of file
diff --git a/webconsole/html/es/help.html b/webconsole/html/es/help.html
new file mode 100644
index 0000000..3e5c6c4
--- /dev/null
+++ b/webconsole/html/es/help.html
@@ -0,0 +1,74 @@
+<html>
+ <head>
+ <title>Help - StarOffice Configuration Manager</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ </head>
+<script language="JavaScript">
+<!--
+
+var sPkgName = " "
+var sAnchorName = " "
+var sAnchorCon = " "
+var sAnchorNav = " "
+var sHelpLocale = " "
+if (window.anchor != null) {
+ sAnchorName = anchor;
+}
+if (window.top.opener.top.content.document.ContentAreaForm!=null) {
+ sAnchorName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.Anchor'].value;
+ sPkgName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.PkgName'].value;
+ sHelpLocale =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.HelpLocale'].value;
+ if (sHelpLocale=="nolocalizedhelp")
+ sHelpLocale="_en_US";
+}
+if (sAnchorName=="hoststab" || sAnchorName=="psptab" || sAnchorName=="entities" ||
+sAnchorName=="policies" || sAnchorName=="policysets" || sAnchorName=="caentities" ||
+sAnchorName=="roles" || sAnchorName=="")
+{
+ document.write('<frameset cols="30%, 70%" border="1" framespacing="0"> ');
+
+ document.write(' <frame name="navFrame"');
+ document.write(' title="Help Navigation Area"');
+ document.write(' id="nav"');
+ document.write(' src="helpNav.html">');
+
+ document.write(' <frameset rows="10%, 90%" border="1" framespacing="0">');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="contentFrame"');
+ document.write(' title="Help Content Area"');
+ document.write(' id="content"');
+ document.write(' src="helpContent.html#'+sAnchorName+'">');
+ document.write(' <\/frameset>');
+ document.write('<\/frameset>');
+
+} else {
+ // The correct package name is not available yet
+ document.write('<frameset rows="10%, 90%" border="0" framespacing="0"> ');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="templateContent"');
+ document.write(' title="Help Template"');
+ document.write(' id="temphelp"');
+ document.write(' src="../../packages/'+sPkgName+'/web/'+sAnchorName+sHelpLocale+'.html">');
+ document.write('<\/frameset>');
+}
+
+
+//-->
+
+</script>
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ </body>
+ </noframes>
+</html>
diff --git a/webconsole/html/es/help/JavaHelpSearch/DOCS b/webconsole/html/es/help/JavaHelpSearch/DOCS
new file mode 100644
index 0000000..6e9f744
--- /dev/null
+++ b/webconsole/html/es/help/JavaHelpSearch/DOCS
Binary files differ
diff --git a/webconsole/html/es/help/JavaHelpSearch/DOCS.TAB b/webconsole/html/es/help/JavaHelpSearch/DOCS.TAB
new file mode 100644
index 0000000..ef14cc8
--- /dev/null
+++ b/webconsole/html/es/help/JavaHelpSearch/DOCS.TAB
Binary files differ
diff --git a/webconsole/html/es/help/JavaHelpSearch/Makefile.am b/webconsole/html/es/help/JavaHelpSearch/Makefile.am
new file mode 100644
index 0000000..a8561a2
--- /dev/null
+++ b/webconsole/html/es/help/JavaHelpSearch/Makefile.am
@@ -0,0 +1,11 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+
+JavaHelpSearchdir = ${htmldir}/es/help/JavaHelpSearch
+JavaHelpSearch_DATA =TMAP \
+ POSITIONS \
+ OFFSETS \
+ SCHEMA \
+ DOCS \
+ DOCS.TAB \ No newline at end of file
diff --git a/webconsole/html/es/help/JavaHelpSearch/OFFSETS b/webconsole/html/es/help/JavaHelpSearch/OFFSETS
new file mode 100644
index 0000000..f06a240
--- /dev/null
+++ b/webconsole/html/es/help/JavaHelpSearch/OFFSETS
@@ -0,0 +1 @@
+…žœ“u½™ŒZ$3HØöjé6Jç’káÆHv–ffL@€WmoE15œpÞâÌŠDM&j2:שÁU¡3&˜,.Bµ¼¼ˆ‹ö†¨’+w\i¦JÈÀÎÇ5ÌÃ%ÐÁŽb&Ò´J_a„}½Lj6.bE‡=ìa~üëÛè \ No newline at end of file
diff --git a/webconsole/html/es/help/JavaHelpSearch/POSITIONS b/webconsole/html/es/help/JavaHelpSearch/POSITIONS
new file mode 100644
index 0000000..7ba83de
--- /dev/null
+++ b/webconsole/html/es/help/JavaHelpSearch/POSITIONS
Binary files differ
diff --git a/webconsole/html/es/help/JavaHelpSearch/SCHEMA b/webconsole/html/es/help/JavaHelpSearch/SCHEMA
new file mode 100644
index 0000000..10b274a
--- /dev/null
+++ b/webconsole/html/es/help/JavaHelpSearch/SCHEMA
@@ -0,0 +1,2 @@
+JavaSearch 1.0
+TMAP bs=2048 rt=1 fl=-1 id1=800 id2=1
diff --git a/webconsole/html/es/help/JavaHelpSearch/TMAP b/webconsole/html/es/help/JavaHelpSearch/TMAP
new file mode 100644
index 0000000..c6dbb9d
--- /dev/null
+++ b/webconsole/html/es/help/JavaHelpSearch/TMAP
Binary files differ
diff --git a/webconsole/html/es/help/Makefile.am b/webconsole/html/es/help/Makefile.am
new file mode 100644
index 0000000..3d93e50
--- /dev/null
+++ b/webconsole/html/es/help/Makefile.am
@@ -0,0 +1,55 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = JavaHelpSearch
+
+helpdir = ${htmldir}/es/help
+help_DATA =gbgpr.html \
+ gbgec.html \
+ gbgni.html \
+ gbgca.html \
+ empty.html \
+ index.xml \
+ gbgce.html \
+ gbgdc.html \
+ gbgot.html \
+ gbgcm.html \
+ gbgou.html \
+ gbzbc.html \
+ gbgpb.html \
+ gbgqj.html \
+ gbgps.html \
+ gbgeb.html \
+ gbgqf.html \
+ gbgpn.html \
+ gbgpw.html \
+ gbgpj.html \
+ gbgcd.html \
+ gbgoy.html \
+ gbgkr.html \
+ copyright.html \
+ gbzci.html \
+ gbgow.html \
+ p1.html \
+ gbgcn.html \
+ gbgqu.html \
+ app.hs \
+ gbgqh.html \
+ gbgdh.html \
+ gbgpu.html \
+ gbgpp.html \
+ gbgqe.html \
+ gbgpm.html \
+ gbgqa.html \
+ gbgpt.html \
+ gbgcg.html \
+ gbgoz.html \
+ toc.xml \
+ gbgda.html \
+ gbgpe.html \
+ map.jhm \
+ background.html \
+ gbgqm.html \
+ gbgpa.html \
+ gbgqt.html \
+ gbgcr.html \ No newline at end of file
diff --git a/webconsole/html/es/help/app.hs b/webconsole/html/es/help/app.hs
new file mode 100644
index 0000000..9824c0b
--- /dev/null
+++ b/webconsole/html/es/help/app.hs
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE helpset PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN" "helpset_1_0.dtd">
+<helpset version="1.0" xml:lang="es">
+<title>about_vman</title>
+<maps> <homeID></homeID> <mapref location="map.jhm"/>
+</maps>
+<view> <name>TOC</name> <label>Contenido</label> <type>javax.help.TOCView</type> <data>toc.xml</data>
+</view>
+<view> <name>Index</name> <label>�ndice</label> <type>javax.help.IndexView</type> <data>index.xml</data>
+</view>
+<view> <name>Search</name> <label>Buscar</label> <type>javax.help.SearchView</type> <data engine="com.sun.java.help.search.DefaultSearchEngine">JavaHelpSearch</data>
+</view>
+</helpset>
diff --git a/webconsole/html/es/help/background.html b/webconsole/html/es/help/background.html
new file mode 100644
index 0000000..05b522d
--- /dev/null
+++ b/webconsole/html/es/help/background.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+
+
+<title>About the Configuration Manager</title>
+<script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="BACKGROUND"></A><h2>Configuration Manager Help</h2>
+
+<p>Welcome to the Sun Java&#8482; Desktop System Configuration Manager Help pages.</p>
+
+<p>Using the Configuration Manager, administrators can assign
+profiles to individual users or organisational units stored in a central
+configuration storage such as an existing corporate LDAP server. The
+configuration settings defined in these profiles are then applied on behalf of
+the users to the applications running on the Sun Java Desktop System such as the
+Gnome desktop, Mozilla, StarOffice and Gnome applications like Evolution.</p>
+
+<p>To get help for a specific part of the Configuration Manager,
+click on one of the links on the left.</p>
+
+</body>
+</html>
diff --git a/webconsole/html/es/help/copyright.html b/webconsole/html/es/help/copyright.html
new file mode 100644
index 0000000..2a2d36d
--- /dev/null
+++ b/webconsole/html/es/help/copyright.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<p>Part No: 819-3617</p><p></p>Sun Microsystems, Inc. <p><br>4150 Network Circle<br>Santa Clara, CA 95054 <br>U.S.A.</p><p>Copyright 2006, Sun Microsystems, Inc.</p><p>Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual
+property rights may include one or more U.S. patents or pending patent applications in the U.S. and in other countries.</p>
+<p>U.S. Government Rights &#8211; Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements.</p>
+<p>This distribution may include materials developed by third parties.</p>
+<p>Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively
+licensed through X/Open Company, Ltd.</p>
+<p>Sun, Sun Microsystems, the Sun logo,
+the Solaris logo, the Java Coffee Cup logo, docs.sun.com,
+Java, and
+Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S.
+and other countries. All SPARC trademarks are used under license and are trademarks
+or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+Products bearing SPARC trademarks are based upon an architecture developed by Sun
+Microsystems, Inc. </p>
+<p>The OPEN LOOK and Sun&#153; Graphical User Interface was developed by Sun Microsystems, Inc. for
+its users and licensees. Sun acknowledges the pioneering efforts of Xerox in researching
+and developing the concept of visual or graphical user interfaces for the computer
+industry. Sun holds a non-exclusive license from Xerox to the Xerox Graphical User
+Interface, which license also covers Sun's licensees who implement OPEN LOOK GUIs
+and otherwise comply with Sun's written license agreements.</p>
+<p>Products covered by and information contained in this publication are controlled by U.S. Export Control
+laws and may be subject to the export or import laws in other countries. Nuclear,
+missile, chemical or biological weapons or nuclear maritime end uses or end users,
+whether direct or indirect, are strictly prohibited. Export or reexport to countries
+subject to U.S. embargo or to entities identified on U.S. export exclusion lists,
+including, but not limited to, the denied persons and specially designated nationals
+lists is strictly prohibited.</p>
+<p>DOCUMENTATION IS PROVIDED &#8220;AS IS&#8221; AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
+IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT,
+ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.</p>
+<p></p>
+<p>Sun Microsystems, Inc. d&#233;tient les droits de propri&#233;t&#233;
+intellectuelle relatifs &#224; la technologie incorpor&#233;e dans
+le produit qui est
+d&#233;crit dans ce document. En particulier, et ce sans limitation,
+ces droits de
+propri&#233;t&#233; intellectuelle peuvent inclure un ou plusieurs
+brevets am&#233;ricains ou des
+applications de brevet en attente aux Etats-Unis et dans d'autres
+pays.</p>
+<p>Cette distribution peut comprendre des composants
+d&#233;velopp&#233;s par des tierces personnes.</p>
+<p>Certaines composants de ce produit peuvent &#234;tre
+d&#233;riv&#233;es du logiciel Berkeley BSD, licenci&#233;s par
+l'Universit&#233; de
+Californie. UNIX est une marque d&#233;pos&#233;e aux Etats-Unis et
+dans d'autres pays; elle est
+licenci&#233;e exclusivement par X/Open Company, Ltd. </p>
+<p>Sun, Sun Microsystems, le logo Sun, le logo Solaris, le logo Java
+Coffee Cup, docs.sun.com,
+ Java et Solaris sont des
+marques de fabrique ou des marques d&#233;pos&#233;es
+de Sun Microsystems, Inc. aux Etats-Unis et dans d'autres pays. Toutes
+les marques
+SPARC sont utilis&#233;es sous licence et sont des marques de fabrique
+ou des
+marques d&#233;pos&#233;es de SPARC International, Inc. aux
+Etats-Unis et dans
+d'autres pays. Les produits portant les marques SPARC sont bas&#233;s
+sur une
+architecture d&#233;velopp&#233;e par Sun Microsystems, Inc.</p>
+<p>L'interface d'utilisation graphique OPEN LOOK et
+Sun&#153; a &#233;t&#233;
+d&#233;velopp&#233;e par Sun Microsystems, Inc. pour ses
+utilisateurs et
+licenci&#233;s. Sun reconna&#238;t les efforts de pionniers de Xerox
+pour la
+recherche et le d&#233;veloppement du concept des interfaces
+d'utilisation
+visuelle ou graphique pour l'industrie de l'informatique. Sun
+d&#233;tient une licence non exclusive de Xerox sur
+l'interface d'utilisation graphique Xerox, cette licence couvrant
+&#233;galement les
+licenci&#233;s de Sun qui mettent en place l'interface d'utilisation
+graphique OPEN LOOK et
+qui, en outre, se conforment aux licences &#233;crites de Sun.</p>
+<p>Les produits qui font l'objet de cette publication et les
+informations qu'il contient sont r&#233;gis par la legislation
+am&#233;ricaine en mati&#232;re de contr&#244;le des exportations et peuvent &#234;tre soumis au droit
+d'autres pays dans le domaine des exportations et importations. Les utilisations finales, ou
+utilisateurs finaux, pour des armes nucl&#233;aires, des missiles, des armes
+chimiques ou biologiques ou pour le nucl&#233;aire maritime, directement ou
+indirectement, sont strictement interdites. Les exportations ou r&#233;exportations vers
+des pays sous embargo des Etats-Unis, ou vers des entit&#233;s figurant sur les
+listes d'exclusion d'exportation am&#233;ricaines, y compris, mais de mani&#232;re non
+exclusive, la liste de personnes qui font objet d'un ordre de ne pas participer, d'une fa&#231;on
+directe ou
+indirecte, aux exportations des produits ou des services qui sont
+r&#233;gis par la
+legislation am&#233;ricaine en mati&#232;re de contr&#244;le des
+exportations et la
+liste de ressortissants sp&#233;cifiquement design&#233;s, sont
+rigoureusement interdites.</p>
+<p>LA DOCUMENTATION EST FOURNIE "EN L'ETAT" ET TOUTES AUTRES CONDITIONS,
+DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENT EXCLUES,
+DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT
+TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A L'APTITUDE A UNE
+UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFACON. </p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/es/help/empty.html b/webconsole/html/es/help/empty.html
new file mode 100644
index 0000000..1e163ae
--- /dev/null
+++ b/webconsole/html/es/help/empty.html
@@ -0,0 +1,51 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+<title>En creaci&oacute;n
+</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+
+<meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="BACKGROUND"></A><h2>Tema todav&iacute;a no disponible</h2>
+<p>El tema seleccionado de la Ayuda todav&iacute;a no est&aacute; disponible. Pedimos disculpas por las molestias.</p>
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgca.html b/webconsole/html/es/help/gbgca.html
new file mode 100644
index 0000000..61412bf
--- /dev/null
+++ b/webconsole/html/es/help/gbgca.html
@@ -0,0 +1,11 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>1.  Ayuda de Sun Desktop Manager 1.0.1 </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgca"></A><b>Cap&iacute;tulo 1</b><h1>Ayuda de Sun Desktop Manager 1.0.1</h1>
+<p>Bienvenido a las p&aacute;ginas de Ayuda de Sun Desktop Manager. Si desea obtener ayuda sobre una parte espec&iacute;fica de Desktop Manager, haga clic en uno de los v&iacute;nculos que se encuentran a la izquierda. La Ayuda en l&iacute;nea contiene informaci&oacute;n relativa al uso y las funciones de Desktop Manager.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgcd.html b/webconsole/html/es/help/gbgcd.html
new file mode 100644
index 0000000..cd99d97
--- /dev/null
+++ b/webconsole/html/es/help/gbgcd.html
@@ -0,0 +1,25 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Todos los perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcd"></A><h2>Todos los perfiles</h2>
+<p>En la p&aacute;gina Todos los perfiles se enumeran los perfiles disponibles, incluso los que no est&aacute;n asignados a un elemento. Los perfiles aparecen en dos tablas, una para perfiles y otra para organizaciones.</p>
+<p>En las tablas de perfiles se pueden efectuar las acciones siguientes:</p>
+<ul><li><p><A HREF="gbgcr.html#gbgcr">Crear perfiles</A></p>
+</li>
+<li><p><A HREF="gbgpe.html#gbgpe">Suprimir perfiles</A></p>
+</li>
+<li><p><A HREF="gbgpu.html#gbgpu">Cambiar el nombre de perfiles</A></p>
+</li>
+<li><p><A HREF="gbgow.html#gbgow">Copiar y mover perfiles</A></p>
+</li>
+<li><p><A HREF="gbgpj.html#gbgpj">Importar perfiles</A></p>
+</li>
+<li><p><A HREF="gbgou.html#gbgou">Exportar perfiles</A></p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgce.html b/webconsole/html/es/help/gbgce.html
new file mode 100644
index 0000000..198d60e
--- /dev/null
+++ b/webconsole/html/es/help/gbgce.html
@@ -0,0 +1,25 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Introducci&oacute;n </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgce"></A><h2>Introducci&oacute;n</h2>
+<p>Desktop Manager es una herramienta para la administraci&oacute;n centralizada de los valores de configuraci&oacute;n, denominados <i>perfiles</i>, para aplicaciones de escritorio. Mediante Desktop Manager se ven y asignan perfiles a los distintos elementos que componen la jerarqu&iacute;a de una organizaci&oacute;n o dominio. Los perfiles se aplican cuando un usuario inicia una sesi&oacute;n de escritorio o una aplicaci&oacute;n administrada por Desktop Manager. Se recuperan todos los perfiles correspondientes del usuario o el host que ejecuta la aplicaci&oacute;n; la configuraci&oacute;n se integra con los valores predeterminados locales de la aplicaci&oacute;n y los predeterminados del usuario. Los perfiles sirven para proporcionar a la aplicaci&oacute;n una serie de valores predeterminados que se administran de manera centralizada o para establecer una configuraci&oacute;n obligatoria.</p>
+<p>T&eacute;rminos que hace falta conocer:</p>
+<ul><li><p><i>Dep&oacute;sito de configuraci&oacute;n</i>: Contenedor en forma de &aacute;rbol de la organizaci&oacute;n y el dominio, junto con los perfiles que tiene almacenados.</p>
+</li>
+<li><p><i>Dominio</i>: Elemento del &aacute;rbol del dominio. Representa una agrupaci&oacute;n dentro de una red de sistemas. Puede contener dominios y hosts.</p>
+</li>
+<li><p><i>Elemento</i>: Objeto l&oacute;gico al que se pueden asignar datos de configuraci&oacute;n. Los usuarios, grupos o roles, y las organizaciones son ejemplos de entidades que Desktop Manager conoce</p>
+</li>
+<li><p><i>LDAP</i>: Protocolo ligero de acceso a directorios (LDAP, del ingl&eacute;s Lightweight Directory Access Protocol). LDAP es un protocolo de servicio de directorios que funciona mediante TCP/IP. La definici&oacute;n de LDAP se explica en RFC 1777 'The Lightweight Directory Access Protocol' (Protocolo ligero de acceso a directorios).</p>
+</li>
+<li><p><i>Organizaci&oacute;n</i>: Elemento del &aacute;rbol de organizaciones. Representa una organizaci&oacute;n o suborganizaci&oacute;n, por ejemplo &#8220;Centro de llamadas&#8221;. Puede contener organizaciones, usuarios o roles.</p>
+</li>
+<li><p><i>Perfil</i>: Contenedor asignado para valores de configuraci&oacute;n. Se almacena en un dep&oacute;sito de configuraciones y se puede asignar a elementos.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgcg.html b/webconsole/html/es/help/gbgcg.html
new file mode 100644
index 0000000..0ced2a0
--- /dev/null
+++ b/webconsole/html/es/help/gbgcg.html
@@ -0,0 +1,13 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Propiedades generales </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcg"></A><h3>Propiedades generales</h3>
+<p>En la p&aacute;gina Propiedades generales se especifica informaci&oacute;n general relativa a un perfil. Es la vista predeterminada de la ventana Editor de perfiles. </p>
+<p><hr size="1" noshade><p><b>Nota &#8211; </b>El Editor de perfiles aparece en pantalla cuando el usuario crea un perfil haciendo clic en el bot&oacute;n Nuevo.</p>
+<hr size="1" noshade></p><p>Consulte <A HREF="gbgpb.html#gbgpb">Especificaci&oacute;n de las propiedades generales de un perfil</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgcm.html b/webconsole/html/es/help/gbgcm.html
new file mode 100644
index 0000000..faeb336
--- /dev/null
+++ b/webconsole/html/es/help/gbgcm.html
@@ -0,0 +1,14 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>&Aacute;rea de navegaci&oacute;n </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcm"></A><h3>&Aacute;rea de navegaci&oacute;n</h3>
+<p>El &aacute;rbol de navegaci&oacute;n sirve para buscar y seleccionar un elemento en los &aacute;rboles de la organizaci&oacute;n y el dominio. El &aacute;rbol refleja la jerarqu&iacute;a de los elementos. Un tri&aacute;ngulo de color azul a la izquierda del nombre de un nodo denota la existencia de subnodos. Si se hace clic en el tri&aacute;ngulo azul, se expande el nodo y aparecen en pantalla los subnodos.</p>
+<p><hr size="1" noshade><p><b>Nota &#8211; </b>De forma predeterminada, en pantalla s&oacute;lo se muestran 10 subnodos de un nodo expandido. Si el nodo tiene m&aacute;s de 10 subnodos, el &#8220;nodo&#8221; und&eacute;cimo no hace referencia a un elemento, sino que indica que hay otros nodos que no se muestran: &#8220;... algunos elementos no se muestran en pantalla&#8221;. Si se hace clic en este &#8220;nodo&#8221;, se abre la funci&oacute;n Buscar.</p>
+<hr size="1" noshade></p><p>Para seleccionar un elemento, b&uacute;squelo en el &aacute;rbol y haga clic en el elemento. Tras haber seleccionado un elemento, &eacute;ste se resalta y el &aacute;rea de contenido muestra los perfiles heredados y asignados del elemento.</p>
+<p>Adem&aacute;s, la navegaci&oacute;n proporciona un mecanismo para b&uacute;squedas recursivas (consulte <A HREF="gbgpa.html#gbgpa">B&uacute;squeda de un elemento</A>) y no recursivas (consulte <A HREF="gbgqt.html#gbgqt">Uso de la funci&oacute;n Buscar</A>), a fin de poder encontrar elementos de las tres jerarqu&iacute;as. Si se hace clic en el bot&oacute;n Buscar, se abre la ventana Buscar.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgcn.html b/webconsole/html/es/help/gbgcn.html
new file mode 100644
index 0000000..e526bea
--- /dev/null
+++ b/webconsole/html/es/help/gbgcn.html
@@ -0,0 +1,28 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Creaci&oacute;n de un dep&oacute;sito de configuraci&oacute;n </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcn"></A><h4>Creaci&oacute;n de un dep&oacute;sito de configuraci&oacute;n</h4>
+<p>Un dep&oacute;sito de configuraci&oacute;n consiste en una ubicaci&oacute;n de almacenamiento de la informaci&oacute;n jer&aacute;rquica de la organizaci&oacute;n, adem&aacute;s de los datos de asignaciones y perfiles de cada elemento.</p>
+<h5>Pasos</h5><ol><li><p><b>En la tabla Dep&oacute;sitos de configuraci&oacute;n, haga clic en Nuevo</b></p><p>Se abre el Asistente para nuevo dep&oacute;sito de configuraci&oacute;n. Este asistente sirve para crear un dep&oacute;sito de configuraci&oacute;n que se utiliza con Desktop Manager.</p>
+</li>
+<li><p><b>En el campo Nombre de dep&oacute;sito, asigne un nombre al nuevo dep&oacute;sito de configuraci&oacute;n y haga clic en Siguiente.</b></p></li>
+<li><p><b>En la lista Tipo de dep&oacute;sito, seleccione la clase de dep&oacute;sito.</b> </p><p>El asistente es v&aacute;lido para configurar tres tipos de dep&oacute;sitos:</p>
+<ul><li><p>LDAP: La jerarqu&iacute;a se toma de LDAP y todos los datos se almacenan en LDAP.</p>
+</li>
+<li><p>Basado en archivos: La jerarqu&iacute;a se toma de un archivo y todos los datos se almacenan en directorios y archivos.</p>
+</li>
+<li><p>H&iacute;brido: La jerarqu&iacute;a se toma de LDAP, pero todos los datos se almacenan en directorios y archivos.</p>
+</li>
+</ul>
+</li>
+<li><p><b>Haga clic en el bot&oacute;n Siguiente.</b></p></li>
+<li><p><b>Especifique los detalles del servidor LDAP que desea configurar para este dep&oacute;sito.</b> </p><p>Hace falta indicar el nombre de host y el puerto en que se ejecuta el servidor. Asimismo, se puede elegir si conectarse o no con este servidor mediante SSL. </p>
+</li>
+<li><p><b>La configuraci&oacute;n que se haya elegido en los pasos anteriores condiciona los pasos posteriores.</b> <b>Siga las instrucciones que proporciona el asistente.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgcr.html b/webconsole/html/es/help/gbgcr.html
new file mode 100644
index 0000000..27f213b
--- /dev/null
+++ b/webconsole/html/es/help/gbgcr.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Creaci&oacute;n de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcr"></A><h3>Creaci&oacute;n de perfiles</h3>
+<h5>Pasos</h5><ol><li><p><b>En una tabla de perfiles (organizaci&oacute;n o dominio), haga clic en el bot&oacute;n Nuevo.</b></p><p>Se abre el Asistente para el Editor de perfiles. </p>
+</li>
+<li><p><b>Siga las instrucciones que proporciona el asistente.</b></p><p>Si desea m&aacute;s informaci&oacute;n sobre la creaci&oacute;n de perfiles mediante el Editor de perfiles, consulte la secci&oacute;n <A HREF="gbgec.html#gbgec">Editor de perfiles</A> de la Ayuda en l&iacute;nea.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgda.html b/webconsole/html/es/help/gbgda.html
new file mode 100644
index 0000000..9d7bf53
--- /dev/null
+++ b/webconsole/html/es/help/gbgda.html
@@ -0,0 +1,20 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Resumen de configuraci&oacute;n </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgda"></A><h3>Resumen de configuraci&oacute;n</h3>
+<p>Se trata de una vista de s&oacute;lo lectura de todos los valores de configuraci&oacute;n que contienen datos del perfil seleccionado.</p>
+<p>La p&aacute;gina Resumen de configuraci&oacute;n contiene la tabla Resumen de configuraci&oacute;n. En ella figuran los valores de configuraci&oacute;n que contienen datos del perfil activo, agrupados por categor&iacute;as. La tabla se compone de los campos siguientes:</p>
+<p></p>
+<ul><li><p>Nombre: el nombre del valor</p>
+</li>
+<li><p>Valor: el valor del par&aacute;metro</p>
+</li>
+<li><p>Estado: en esta columna figuran las entradas del tipo &#8220;Definido en &lt;profileName>, en la que &lt;profileName> es un v&iacute;nculo que pasa del Editor de perfiles a la p&aacute;gina Valores de configuraci&oacute;n, y busca el valor concreto dentro de este perfil.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgdc.html b/webconsole/html/es/help/gbgdc.html
new file mode 100644
index 0000000..9b61be2
--- /dev/null
+++ b/webconsole/html/es/help/gbgdc.html
@@ -0,0 +1,12 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Perfiles &#8212; Vista de &aacute;rbol </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgdc"></A><h2>Perfiles &#8212; Vista de &Aacute;rbol</h2>
+<p>La p&aacute;gina Perfiles &#8212; Vista de &Aacute;rbol muestra todos los perfiles que est&aacute;n asignados a un elemento. En la parte izquierda de la p&aacute;gina hay un &aacute;rea de navegaci&oacute;n para navegar por las tres jerarqu&iacute;as y buscar perfiles. En la parte derecha de la p&aacute;gina se encuentra el &aacute;rea de contenido, en la que aparece informaci&oacute;n sobre el perfil que se seleccione en el &aacute;rea de navegaci&oacute;n.</p>
+<p>Consulte tambi&eacute;n: <A HREF="gbgcm.html#gbgcm">&Aacute;rea de navegaci&oacute;n</A> y <A HREF="gbgoy.html#gbgoy">&Aacute;rea de contenido</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgdh.html b/webconsole/html/es/help/gbgdh.html
new file mode 100644
index 0000000..498504c
--- /dev/null
+++ b/webconsole/html/es/help/gbgdh.html
@@ -0,0 +1,19 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Opciones avanzadas </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgdh"></A><h3>Opciones avanzadas</h3>
+<p>En la p&aacute;gina Opciones avanzadas se especifican las opciones avanzadas del perfil activo. La p&aacute;gina contiene dos opciones principales:</p>
+<ul><li><p>Aplicable desde: permite colocar el perfil en otra ubicaci&oacute;n de almacenamiento del &aacute;rbol de la organizaci&oacute;n o el dominio. Al cambiar la ubicaci&oacute;n de almacenamiento tambi&eacute;n lo hacen los elementos a los que se puede asignar o aplicar el perfil. Eso se debe a que un perfil s&oacute;lo se puede asignar al elemento en el que se almacena, o a los elementos del sub&aacute;rbol debajo del elemento en que se almacena.</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>Precauci&oacute;n &#8211; </b>El par&aacute;metro &#8220;Aplicable desde&#8221; se puede modificar de forma que la organizaci&oacute;n resultante contradiga la norma mencionada antes. Por ejemplo, sucede al mover un perfil abajo en la jerarqu&iacute;a del &aacute;rbol, y una asignaci&oacute;n que conecta el perfil con un elemento debajo de la ubicaci&oacute;n de almacenamiento del perfil, despu&eacute;s de moverlo, conecta el perfil con el mismo elemento. Sin embargo, ahora el elemento est&aacute; por encima de la ubicaci&oacute;n de almacenamiento del perfil. Si se intenta, la acci&oacute;n se cancela y aparece en pantalla un mensaje de advertencia.</p><hr size="1" noshade></li>
+<li><p>Orden de combinaci&oacute;n: determina el orden en que se combinan todos los perfiles que se almacenan en el mismo elemento. </p>
+<p>Como se puede asignar m&aacute;s de un perfil a un solo elemento, y como m&aacute;s de un perfil puede definir el mismo valor, debe establecerse el orden de combinaci&oacute;n de los perfiles con un solo elemento. De esta forma, se solucionan los conflictos de un solo valor que se define en dos o m&aacute;s perfiles asignados al mismo elemento.</p>
+<p>Para establecer el orden de combinaci&oacute;n, primero se emplea la ubicaci&oacute;n de almacenamiento. Primero se combina el perfil almacenado en el elemento que se halla m&aacute;s cerca de la ra&iacute;z del &aacute;rbol. Despu&eacute;s se combina el perfil almacenado en un &aacute;rea m&aacute;s profunda de la jerarqu&iacute;a del &aacute;rbol. La configuraci&oacute;n de un perfil que se combina posteriormente sobrescribe la de un perfil que se ha combinado antes.</p>
+</li>
+</ul>
+<p>Consulte <A HREF="gbgqu.html#gbgqu">Cambio de la ubicaci&oacute;n de la aplicaci&oacute;n</A>, <A HREF="gbgqe.html#gbgqe">Asignaci&oacute;n de un orden de combinaci&oacute;n a un perfil</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgeb.html b/webconsole/html/es/help/gbgeb.html
new file mode 100644
index 0000000..fa6a469
--- /dev/null
+++ b/webconsole/html/es/help/gbgeb.html
@@ -0,0 +1,12 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Valores de configuraci&oacute;n </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgeb"></A><h3>Valores de configuraci&oacute;n</h3>
+<p>En la p&aacute;gina Valores de configuraci&oacute;n se ven y modifican los valores de configuraci&oacute;n que se almacenan en el perfil seleccionado.</p>
+<p>Consulte <A HREF="gbgot.html#gbgot">Visualizaci&oacute;n y edici&oacute;n de los valores de configuraci&oacute;n de perfiles</A>.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgec.html b/webconsole/html/es/help/gbgec.html
new file mode 100644
index 0000000..59e020d
--- /dev/null
+++ b/webconsole/html/es/help/gbgec.html
@@ -0,0 +1,25 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Editor de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgec"></A><h2>Editor de perfiles</h2>
+<p>El Editor de perfiles sirve para crear y modificar perfiles. Tambi&eacute;n permite ver la configuraci&oacute;n y las opciones del perfil activo.</p>
+<p>El Editor de perfiles se abre haciendo clic en un nombre de perfil de una de las tablas del &aacute;rea de contenido Perfiles &#8212; Vista de &Aacute;rbol o en la p&aacute;gina Perfiles &#8212; Todos.</p>
+<p><hr size="1" noshade><p><b>Sugerencia&#8211; </b>Parea crear un perfil, consulte <A HREF="gbgni.html#gbgni">Creaci&oacute;n de perfiles</A>.</p>
+<hr size="1" noshade></p><p>El Editor de perfiles contiene las p&aacute;ginas siguientes:</p>
+<ul><li><p><A HREF="gbgcg.html#gbgcg">Propiedades generales</A></p>
+</li>
+<li><p><A HREF="gbgeb.html#gbgeb">Valores de configuraci&oacute;n</A></p>
+</li>
+<li><p><A HREF="gbgkr.html#gbgkr">Elementos asignados</A></p>
+</li>
+<li><p><A HREF="gbgda.html#gbgda">Resumen de configuraci&oacute;n</A></p>
+</li>
+<li><p><A HREF="gbgdh.html#gbgdh">Opciones avanzadas</A></p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgkr.html b/webconsole/html/es/help/gbgkr.html
new file mode 100644
index 0000000..c7e4b45
--- /dev/null
+++ b/webconsole/html/es/help/gbgkr.html
@@ -0,0 +1,18 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Elementos asignados </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgkr"></A><h3>Elementos asignados</h3>
+<p>En la p&aacute;gina Elementos asignados figuran los elementos asignados al perfil activo; en ella se asignan o anulan asignaciones de elementos. </p>
+<p>Los elementos de perfiles activos se muestran en la tabla Elementos asignados, que presenta la informaci&oacute;n siguiente:</p>
+<ul><li><p>Nombre: nombre del elemento al que se asigna el perfil activo.</p>
+</li>
+<li><p>Ruta: ubicaci&oacute;n del elemento al que se asigna el perfil activo.</p>
+</li>
+</ul>
+<p>Consulte <A HREF="gbgpm.html#gbgpm">Asignaci&oacute;n de elementos a perfiles</A>, <A HREF="gbgpp.html#gbgpp">Anulaci&oacute;n de asignaciones de elementos de perfiles</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgni.html b/webconsole/html/es/help/gbgni.html
new file mode 100644
index 0000000..9ae39af
--- /dev/null
+++ b/webconsole/html/es/help/gbgni.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Creaci&oacute;n de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgni"></A><h4>Creaci&oacute;n de perfiles</h4>
+<h5>Pasos</h5><ol><li><p><b>Haga clic en el bot&oacute;n Nuevo.</b></p><p>Se abre el Editor de perfiles. </p>
+</li>
+<li><p><b>Siga las instrucciones que proporciona el Editor de perfiles.</b></p><p>Si desea m&aacute;s informaci&oacute;n sobre el uso del Editor de perfiles para crear perfiles, consulte la secci&oacute;n <A HREF="gbgec.html#gbgec">Editor de perfiles</A> de la Ayuda en l&iacute;nea.</p>
+<p><hr size="1" noshade><p><b>Nota &#8211; </b>Al concluir la creaci&oacute;n de un perfil, &eacute;ste se asigna autom&aacute;ticamente al elemento que est&eacute; seleccionado.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgot.html b/webconsole/html/es/help/gbgot.html
new file mode 100644
index 0000000..0146964
--- /dev/null
+++ b/webconsole/html/es/help/gbgot.html
@@ -0,0 +1,20 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Visualizaci&oacute;n y edici&oacute;n de los valores de configuraci&oacute;n de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgot"></A><h4>Visualizaci&oacute;n y edici&oacute;n de los valores de configuraci&oacute;n de perfiles</h4>
+<h5>Pasos</h5><ol><li><p><b>Para ver el valor de configuraci&oacute;n de un perfil, b&uacute;squelo en la lista de categor&iacute;as que hay en la parte derecha de la p&aacute;gina.</b></p><p>Los valores de configuraci&oacute;n se organizan jer&aacute;rquicamente en categor&iacute;as que equivalen a las opciones de configuraci&oacute;n de aplicaciones de escritorio como StarOffice™, Mozilla™, Evolution o Gnome. </p>
+</li>
+<li><p><b>Haga clic en un valor de configuraci&oacute;n.</b></p><p>Aparece en pantalla la configuraci&oacute;n del perfil con los valores vigentes en ese momento. Si es preciso, se proporciona informaci&oacute;n contextual complementaria, por ejemplo los efectos de valores determinados o el intervalo de valores permitido. </p>
+<p><hr size="1" noshade><p><b>Nota &#8211; </b>Si en lugar de un valor de configuraci&oacute;n selecciona una categor&iacute;a, en pantalla aparece una tabla con valores de categor&iacute;as o subcategor&iacute;as.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>En cada valor de configuraci&oacute;n se puede establecer un valor concreto o no definirlo.</b></p><p>Si opta por no definirlo, el valor de este perfil no afecta a la aplicaci&oacute;n, que recurre al valor predeterminado que se haya proporcionado de f&aacute;brica. En general, las listas y aplicaciones del Editor de perfiles establecen el valor predeterminado mediante texto de ayuda adicional o, si es posible, con marcador directamente en la lista de opciones del valor.</p>
+<p><hr size="1" noshade><p><b>Nota &#8211; </b>Es importante saber que varios perfiles pueden afectar al mismo usuario. Por ejemplo, se puede crear un perfil con valores para una determinada organizaci&oacute;n. Estos valores quedan, autom&aacute;ticamente, disponibles para todos los usuarios que pertenecen a la misma organizaci&oacute;n. Asimismo, se pueden definir perfiles adicionales con valores de configuraci&oacute;n para suborganizaciones. Estos valores pueden sobrescribir los de la organizaci&oacute;n superior; por ejemplo, se pueden definir distintas configuraciones de proxy para suborganizaciones, sin cambiar otros valores. As&iacute; pues, la configuraci&oacute;n que se aplica a un usuario concreto puede llegar a ser el resultado de un proceso de combinaci&oacute;n que abarca todos los perfiles asignados a la organizaci&oacute;n, las suborganizaciones y, probablemente, el usuario. </p>
+<hr size="1" noshade></p><p><hr size="1" noshade><p><b>Sugerencia&#8211; </b>En algunos casos, quiz&aacute; desee controlar el proceso de combinaci&oacute;n y aplicar un valor de configuraci&oacute;n concreto, lo que significa que otros perfiles no puedan sobrescribir dicho valor y definir otro. El Editor de perfiles posibilita especificar un comportamiento de combinaci&oacute;n concreto para cada valor. El valor predeterminado es el de que "los perfiles pueden sobrescribir" un valor. Si anula esta selecci&oacute;n, ni el valor ni otros perfiles podr&aacute;n sobrescribir su valor.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgou.html b/webconsole/html/es/help/gbgou.html
new file mode 100644
index 0000000..7686611
--- /dev/null
+++ b/webconsole/html/es/help/gbgou.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Exportaci&oacute;n de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgou"></A><h3>Exportaci&oacute;n de perfiles</h3>
+<h5>Pasos</h5><ol><li><p><b>Seleccione la casilla de verificaci&oacute;n del perfil que desea exportar.</b></p></li>
+<li><p><b>En la lista de acciones, seleccione Exportar.</b></p><p>Se abre un cuadro de di&aacute;logo para especificar en &eacute;l la ubicaci&oacute;n a la que desea exportar el archivo.</p>
+</li>
+<li><p><b>Seleccione Guardar en disco y haga clic en Aceptar.</b></p></li>
+<li><p><b>Elija la ubicaci&oacute;n para guardar el archivo exportado y haga clic en Aceptar.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgow.html b/webconsole/html/es/help/gbgow.html
new file mode 100644
index 0000000..ab15245
--- /dev/null
+++ b/webconsole/html/es/help/gbgow.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Copia y cambio de ubicaci&oacute;n de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgow"></A><h3>Copia y cambio de ubicaci&oacute;n de perfiles</h3>
+<h5>Pasos</h5><ol><li><p><b>Seleccione la casilla de verificaci&oacute;n del perfil que desea cambiar o mover.</b></p></li>
+<li><p><b>En la lista de acciones, elija Copiar y mover.</b></p><p>Se abre el Asistente para copiar y mover.</p>
+</li>
+<li><p><b>Siga las instrucciones que proporciona el Asistente para copiar y mover.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgoy.html b/webconsole/html/es/help/gbgoy.html
new file mode 100644
index 0000000..6425948
--- /dev/null
+++ b/webconsole/html/es/help/gbgoy.html
@@ -0,0 +1,36 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>&Aacute;rea de contenido </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgoy"></A><h3>&Aacute;rea de contenido</h3>
+<p>Al seleccionar un elemento, su informaci&oacute;n se muestra en el &aacute;rea de contenido de la p&aacute;gina Perfiles &#8212; Vista de &Aacute;rbol. En el &aacute;rea de contenido puede haber hasta tres tablas:</p>
+<ul><li><p>La tabla Perfiles asignados: siempre aparece en pantalla. En esta tabla figuran los perfiles asignados al elemento seleccionado. Contiene tres columnas: Nombre, Autor y Modificado el. El valor de Modificado el s&oacute;lo cambia si se modifica un valor del perfil, pero no si se el perfil se cambia de nombre, se mueve o se le asigna otra prioridad. </p>
+<p>En la tabla Perfiles asignados se pueden efectuar las acciones siguientes:</p>
+<ul><li><p><A HREF="gbgni.html#gbgni">Crear perfiles</A></p>
+</li>
+<li><p><A HREF="gbgpr.html#gbgpr">Suprimir perfiles</A></p>
+</li>
+<li><p><A HREF="gbgpn.html#gbgpn">Asignar perfiles</A></p>
+</li>
+<li><p><A HREF="gbgqj.html#gbgqj">Anular asignaciones de perfiles</A></p>
+</li>
+<li><p><A HREF="gbgpw.html#gbgpw">Cambiar el nombre de perfiles</A></p>
+</li>
+<li><p><A HREF="gbgqf.html#gbgqf">Copiar y mover perfiles</A></p>
+</li>
+<li><p><A HREF="gbgps.html#gbgps">Importar perfiles</A></p>
+</li>
+<li><p><A HREF="gbgqh.html#gbgqh">Exportar perfiles</A></p>
+</li>
+</ul>
+</li>
+<li><p>La tabla Perfiles heredados: en ella se muestran todos los elementos jer&aacute;rquicamente superiores al elemento seleccionado que tengan asignado un perfil. El perfil figura en la tabla. Contiene dos columnas, Nombre y Asignado a. Asignado a muestra la ruta y el nombre del elemento al que est&aacute; asignado el perfil.</p>
+</li>
+<li><p>La tabla Usuarios o Roles: aparece en pantalla si se selecciona un elemento de tipo &#8220;usuario&#8221; o &#8220;rol&#8221;. Si el elemento es un usuario que es un miembro de al menos un rol, esos roles figuran en la tabla Roles. Si el elemento es un rol que tiene miembros, dichos miembros figuran en la tabla Usuarios.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgoz.html b/webconsole/html/es/help/gbgoz.html
new file mode 100644
index 0000000..faf06db
--- /dev/null
+++ b/webconsole/html/es/help/gbgoz.html
@@ -0,0 +1,34 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Visualizaci&oacute;n de Configuraci&oacute;n vigente </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgoz"></A><h3>Visualizaci&oacute;n de Configuraci&oacute;n vigente</h3>
+<p>La vista Configuraci&oacute;n vigente es de s&oacute;lo lectura. Presenta los valores vigentes de un elemento determinado, por ejemplo organizaciones, dominios o hosts.</p>
+<p>La configuraci&oacute;n vigente de un usuario es el resultado de un proceso de combinaci&oacute;n en el que intervienen los valores de configuraci&oacute;n almacenados en los correspondientes niveles y roles de la organizaci&oacute;n, y el usuario. Los valores de configuraci&oacute;n combinados de un elemento espec&iacute;fico se pueden ver en una ventana Configuraci&oacute;n vigente aparte. De esta forma, se facilita la verificaci&oacute;n y depuraci&oacute;n de errores. Tambi&eacute;n se puede imprimir un informe sobre la configuraci&oacute;n vigente y almacenarlo para finalidades de archivo.</p>
+<h5>Pasos</h5><ol><li><p><b>En la tabla Perfiles asignados, haga clic en el bot&oacute;n Configuraci&oacute;n vigente.</b></p><p>Al abrirse, en el &aacute;rbol de navegaci&oacute;n aparece la configuraci&oacute;n vigente del elemento seleccionado.</p>
+<p>La ventana Configuraci&oacute;n vigente se divide en dos secciones:</p>
+<ul><li><p>En la secci&oacute;n Modificar los par&aacute;metros de configuraci&oacute;n vigentes, en el &aacute;rea para la especificaci&oacute;n de la configuraci&oacute;n vigente se elige el &aacute;rbol que se tener en cuenta. En la opci&oacute;n Seleccionar un elemento del &aacute;rbol de organizaci&oacute;n se eligen las entidades para generar un informe sobre la configuraci&oacute;n vigente. Con el bot&oacute;n Examinar, busque en el &aacute;rbol de la organizaci&oacute;n o el dominio un elemento que seleccionar.</p>
+</li>
+<li><p>La secci&oacute;n Configuraci&oacute;n vigente muestra los datos siguientes:</p>
+<ul><li><p>La ubicaci&oacute;n del elemento seleccionado en la jerarqu&iacute;a y el nombre de host.</p>
+</li>
+<li><p>La fecha y la hora de generaci&oacute;n del informe sobre la configuraci&oacute;n vigente.</p>
+</li>
+<li><p>En la secci&oacute;n Perfiles implicados, los perfiles que han intervenido en la generaci&oacute;n del informe sobre la configuraci&oacute;n vigente del elemento activo. Aparecen en orden de combinaci&oacute;n de m&aacute;s a menos pertinente. Cada perfil es un v&iacute;nculo que abre la ventana del Editor de perfiles del perfil.</p>
+</li>
+<li><p>El &aacute;rea Resumen de configuraci&oacute;n muestra los valores de configuraci&oacute;n del informe sobre la configuraci&oacute;n vigente, agrupados por categor&iacute;as. El &aacute;rea Resumen de configuraci&oacute;n se compone de los campos Nombre, Valor y Estado.</p>
+<p>En la columna Estado se encuentran las entradas del tipo &#8220;Definido en &lt;pofileName>&#8221;, donde &lt;profileName> es un v&iacute;nculo que abre la ventana del Editor de perfiles de ese perfil en la p&aacute;gina Valores de configuraci&oacute;n y busca el valor concreto dentro de dicho perfil.</p>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><p><b>El informe sobre la configuraci&oacute;n vigente se puede modificar en cualquiera de sus par&aacute;metros para, a continuaci&oacute;n, hacer clic en el bot&oacute;n Generar configuraci&oacute;n que se aplica, que se encuentra en la parte superior de la ventana Configuraci&oacute;n vigente.</b> </p><p>As&iacute;, en la ventana Configuraci&oacute;n vigente aparece un informe nuevo.</p>
+</li>
+<li><p><b>Si desea imprimir el informe sobre la configuraci&oacute;n vigente, haga clic en el bot&oacute;n Imprimir, en la parte superior o inferior de la p&aacute;gina Configuraci&oacute;n vigente.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgpa.html b/webconsole/html/es/help/gbgpa.html
new file mode 100644
index 0000000..d738259
--- /dev/null
+++ b/webconsole/html/es/help/gbgpa.html
@@ -0,0 +1,29 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>B&uacute;squeda de un elemento </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpa"></A><h4>B&uacute;squeda de un elemento</h4>
+<p>La funci&oacute;n Buscar permite la b&uacute;squeda recursiva de un elemento en la jerarqu&iacute;a de la organizaci&oacute;n o el dominio. Busca tanto en el subdirectorio del elemento como en el resto de directorios secundarios. Si desea buscar &uacute;nicamente en el subdirectorio de un elemento, utilice la funci&oacute;n Buscar.</p>
+<p>La funci&oacute;n de b&uacute;squeda abre la ventana Buscar. En ella, se puede especificar una b&uacute;squeda m&aacute;s precisa.</p>
+<h5>Pasos</h5><ol><li><p><b>En el campo de b&uacute;squeda, escriba el nombre total o parcial del elemento que desea buscar.</b></p><p><hr size="1" noshade><p><b>Nota &#8211; </b>La b&uacute;squeda no distingue may&uacute;sculas y min&uacute;sculas; as&iacute;, por ejemplo, la cadena de caracteres de b&uacute;squeda "bc" detectar&aacute; "ABC" y "bcd". Un asterisco (*) denota una secuencia arbitraria de caracteres dentro de una cadena de caracteres de b&uacute;squeda. En la cadena de caracteres de b&uacute;squeda se puede incluir m&aacute;s de un asterisco. Un campo vac&iacute;o equivale a un campo con la cadena de caracteres de b&uacute;squeda &#8220;*&#8221;.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Haga clic en el bot&oacute;n Buscar.</b></p><p>Se abre la ventana Buscar. La cadena de caracteres insertada en el campo de b&uacute;squeda del &aacute;rea de navegaci&oacute;n pasa del campo de b&uacute;squeda a la ventana Buscar y, de forma autom&aacute;tica, se inicia la b&uacute;squeda de dicha cadena de caracteres. Los resultados aparecen en una tabla; en ella, figuran el nombre, el tipo y la ruta de los elementos que se hayan encontrado.</p>
+<p><hr size="1" noshade><p><b>Nota &#8211; </b>Se puede obtener un m&aacute;ximo de 100 resultados de b&uacute;squeda.</p>
+<hr size="1" noshade></p><p>Si la b&uacute;squeda no obtiene resultados, o si el campo de b&uacute;squeda del &aacute;rea de navegaci&oacute;n est&aacute; vac&iacute;o, se puede escribir el nombre de un elemento en el campo de b&uacute;squeda de la ventana Buscar. </p>
+<p><hr size="1" noshade><p><b>Sugerencia &#8211; </b>Si desea buscar un tipo de elemento en particular, por ejemplo, &#8220;Buscar dominios&#8221;, utilice la lista de modificadores de tipo que hay junto al campo de b&uacute;squeda.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Si lo necesita, incorpore opciones de b&uacute;squeda m&aacute;s precisas; para ello, haga clic en el bot&oacute;n Mostrar opciones avanzadas.</b></p><p>Las opciones avanzadas son:</p>
+<ul><li><p>Restringir a: puede indicar el elemento en el que el algoritmo de b&uacute;squeda debe comenzar a buscar por el &aacute;rbol.</p>
+</li>
+<li><p>Resultados mostrados por p&aacute;gina: permite establecer el n&uacute;mero de resultados que deben mostrarse en pantalla en la p&aacute;gina de la tabla de resultados.</p>
+</li>
+</ul>
+</li>
+<li><p><b>Haga clic de nuevo en el bot&oacute;n Buscar para ver los resultados de una b&uacute;squeda nueva o con criterios de b&uacute;squeda modificados.</b></p><p><hr size="1" noshade><p><b>Nota &#8211; </b>Al hacer clic en el bot&oacute;n Restablecer, se restauran todos los par&aacute;metros predeterminados de b&uacute;squeda y se elimina el contenido del campo de b&uacute;squeda.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgpb.html b/webconsole/html/es/help/gbgpb.html
new file mode 100644
index 0000000..50a3eda
--- /dev/null
+++ b/webconsole/html/es/help/gbgpb.html
@@ -0,0 +1,17 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Especificaci&oacute;n de las propiedades generales de un perfil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpb"></A><h4>Especificaci&oacute;n de las propiedades generales de un perfil</h4>
+<h5>Pasos</h5><ol><li><p><b>En el campo Nombre, asigne un nombre al perfil.</b></p></li>
+<li><p><b>En el campo Comentarios, escriba alguna observaci&oacute;n.</b></p><p>El campo Comentarios se puede dejar en blanco.</p>
+<p><hr size="1" noshade><p><b>Nota &#8211; </b>Los campos Autor y Modificado el son de s&oacute;lo lectura, por lo tanto no se pueden cambiar. En el campo Autor figura el autor de los perfiles; en el campo Modificado el, se indican la fecha y la hora de la &uacute;ltima modificaci&oacute;n efectuada.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Haga clic en el bot&oacute;n Guardar.</b></p><p>Si cierra la ventana antes de guardar la informaci&oacute;n nueva, un cuadro de di&aacute;logo pregunta si desea guardar o no la configuraci&oacute;n.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgpe.html b/webconsole/html/es/help/gbgpe.html
new file mode 100644
index 0000000..a30a155
--- /dev/null
+++ b/webconsole/html/es/help/gbgpe.html
@@ -0,0 +1,13 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Supresi&oacute;n de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpe"></A><h3>Supresi&oacute;n de perfiles</h3>
+<h5>Pasos</h5><ol><li><p><b>Seleccione la casilla de verificaci&oacute;n del perfil que desea suprimir.</b></p></li>
+<li><p>Haga clic en el bot&oacute;n <b>Borrar</b>.</p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgpj.html b/webconsole/html/es/help/gbgpj.html
new file mode 100644
index 0000000..8b535cb
--- /dev/null
+++ b/webconsole/html/es/help/gbgpj.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Importaci&oacute;n de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpj"></A><h3>Importaci&oacute;n de perfiles</h3>
+<h5>Pasos</h5><ol><li><p><b>Compruebe que todas las casillas de verificaci&oacute;n est&eacute;n deshabilitadas.</b></p></li>
+<li><p><b>En la lista de acciones, elija Importar.</b></p><p>Se abre el cuadro de di&aacute;logo Importar perfil.</p>
+</li>
+<li><p><b>Indique la ruta del archivo que desea importar, o haga clic en el bot&oacute;n Examinar para elegir un archivo en el cuadro de di&aacute;logo predeterminado de selecci&oacute;n de archivos del sistema operativo.</b></p></li>
+<li><p><b>Haga clic en el bot&oacute;n Importar.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgpm.html b/webconsole/html/es/help/gbgpm.html
new file mode 100644
index 0000000..1c3afbf
--- /dev/null
+++ b/webconsole/html/es/help/gbgpm.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Asignaci&oacute;n de elementos a perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpm"></A><h4>Asignaci&oacute;n de elementos a perfiles</h4>
+<h5>Pasos</h5><ol><li><p><b>Haga clic en el bot&oacute;n Asignar elemento.</b></p><p>Aparece en pantalla una ventana con un &aacute;rbol de navegaci&oacute;n.</p>
+</li>
+<li><p><b>Busque en el &aacute;rbol y seleccione un elemento.</b></p><p><hr size="1" noshade><p><b>Sugerencia&#8211; </b>Si no encuentra el elemento en el &aacute;rbol, haga clic en el bot&oacute;n Buscar para abrir la ventana Buscar y encontrarlo all&iacute;.</p>
+<hr size="1" noshade></p><p>Una vez encontrado, el elemento aparece en la tabla Elementos asignados, asignado ya al perfil activo.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgpn.html b/webconsole/html/es/help/gbgpn.html
new file mode 100644
index 0000000..35796d4
--- /dev/null
+++ b/webconsole/html/es/help/gbgpn.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Asignaci&oacute;n de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpn"></A><h4>Asignaci&oacute;n de perfiles</h4>
+<h5>Pasos</h5><ol><li><p><b>Haga clic en el bot&oacute;n Asignar perfil.</b></p><p>Aparece un cuadro de di&aacute;logo con todos los perfiles que se pueden asignar al elemento seleccionado. </p>
+<p><hr size="1" noshade><p><b>Nota&#8211; </b>No figuran los elementos que ya est&aacute;n asignados al elemento, as&iacute; como los que no est&aacute;n almacenados en el elemento o por encima de &eacute;l.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Seleccione los perfiles que necesite y haga clic en Aceptar.</b></p><p>En la tabla Perfiles asignados aparecen los perfiles que acaba de seleccionar.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgpp.html b/webconsole/html/es/help/gbgpp.html
new file mode 100644
index 0000000..811fd1e
--- /dev/null
+++ b/webconsole/html/es/help/gbgpp.html
@@ -0,0 +1,14 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Anulaci&oacute;n de la asignaci&oacute;n de elementos de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpp"></A><h4>Anulaci&oacute;n de la asignaci&oacute;n de elementos de perfiles</h4>
+<h5>Pasos</h5><ol><li><p><b>Seleccione la casilla de verificaci&oacute;n del elemento cuya asignaci&oacute;n desea anular.</b></p></li>
+<li><p><b>Haga clic en el bot&oacute;n Anular asignaci&oacute;n de elemento.</b></p><p>El elemento deja de estar asignado al perfil activo y desaparece de tabla Elementos asignados.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgpr.html b/webconsole/html/es/help/gbgpr.html
new file mode 100644
index 0000000..e2f804c
--- /dev/null
+++ b/webconsole/html/es/help/gbgpr.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Eliminación de perfiles
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgpr"></A><h4>Eliminación de perfiles</h4>
+<h5>Pasos</h5><ol><li><p><b>Seleccione la casilla de verificación correspondiente al perfil que desea eliminar.</b></p><p>Se muestra un cuadro de diálogo de confirmación.</p>
+<hr size="1" noshade><p><IMG ALT="Advertencia" src="graphics/caution.gif"> <b>Advertencia: </b>Es necesario saber que la opción de eliminar borra todas las asignaciones y elimina el perfil por completo. No podrá recuperarlo. La eliminación de un perfil también genera asignaciones a otros elementos, distintos al elemento eliminado. Si sólo desea eliminar una asignación de perfil de un elemento, utilice la opción de anular selección.</p><hr size="1" noshade></li>
+<li><p><b>Haga clic en el botón Suprimir.</b></p></li>
+<li><p><b>Si desea eliminar realmente el perfil, haga clic en Aceptar en el cuadro de diálogo de confirmación.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgps.html b/webconsole/html/es/help/gbgps.html
new file mode 100644
index 0000000..7d47f6d
--- /dev/null
+++ b/webconsole/html/es/help/gbgps.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Importaci&oacute;n de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgps"></A><h4>Importaci&oacute;n de perfiles</h4>
+<h5>Pasos</h5><ol><li><p><b>Compruebe que est&eacute;n deshabilitadas todas las casillas de verificaci&oacute;n.</b></p></li>
+<li><p><b>En la lista de acciones, elija Importar.</b></p><p>Se abre el cuadro de di&aacute;logo Importar perfil.</p>
+</li>
+<li><p><b>Indique la ruta del archivo que desea importar, o haga clic en el bot&oacute;n Examinar del cuadro de di&aacute;logo predeterminado de selecci&oacute;n de archivos del sistema operativo.</b></p></li>
+<li><p><b>Haga clic en el bot&oacute;n Importar.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgpt.html b/webconsole/html/es/help/gbgpt.html
new file mode 100644
index 0000000..ae7e356
--- /dev/null
+++ b/webconsole/html/es/help/gbgpt.html
@@ -0,0 +1,43 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Tabla Configuraci&oacute;n de dep&oacute;sitos </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpt"></A><h3>Tabla Configuraci&oacute;n de dep&oacute;sitos</h3>
+<p>La tabla Configuraci&oacute;n de dep&oacute;sitos se compone de cinco columnas:</p>
+<ul><li><p>La columna Selecci&oacute;n, con casillas de verificaci&oacute;n para elegir dep&oacute;sitos.</p>
+<p>Al seleccionar uno o varios dep&oacute;sitos, se habilitan las funciones Borrar, Cambiar nombre y Sincronizar.</p>
+<p><hr size="1" noshade><p><b>Nota&#8211; </b>La selecci&oacute;n de un dep&oacute;sito deshabilita el bot&oacute;n Nuevo.</p>
+<hr size="1" noshade></p></li>
+<li><p>Nombre: contiene el nombre de los dep&oacute;sitos.</p>
+<p>La columna Nombre contiene v&iacute;nculos. Al hacer clic en un v&iacute;nculo, en lugar de la vista Dep&oacute;sitos de configuraci&oacute;n aparece en pantalla la ventana Editor de perfiles del perfil activo.</p>
+</li>
+<li><p>Tipo: puede ser LDAP, basado en archivos o h&iacute;brido.</p>
+<ul><li><p>LDAP: un dep&oacute;sito LDAP lee la estructura de la organizaci&oacute;n (usuarios, organizaci&oacute;n, hosts, dominios, etc.) de la compa&ntilde;&iacute;a desde un servidor LDAP, y lee o escribe los valores de configuraci&oacute;n desde dicho servidor LDAP. </p>
+</li>
+<li><p>Archivo: un dep&oacute;sito de archivos lee la estructura de la organizaci&oacute;n de la compa&ntilde;&iacute;a desde el sistema de archivos, y lee o escribe los valores de configuraci&oacute;n desde dicho sistema de archivos. </p>
+</li>
+<li><p>H&iacute;brido: un dep&oacute;sito h&iacute;brido lee la estructura de la organizaci&oacute;n de la compa&ntilde;&iacute;a desde un servidor LDAP, y lee o escribe los valores de configuraci&oacute;n desde un sistema de archivos.</p>
+</li>
+</ul>
+</li>
+<li><p>Ubicaci&oacute;n de datos de organizaci&oacute;n: en un dep&oacute;sito h&iacute;brido o LDAP, en un archivo, dep&oacute;sito de archivos o URL LDAP. Designa la ubicaci&oacute;n de almacenamiento de los datos de organizaci&oacute;n.</p>
+</li>
+<li><p>Ubicaci&oacute;n de datos de perfil: en un dep&oacute;sito LDAP o h&iacute;brido, en un archivo, dep&oacute;sito de archivos o URL LDAP. Designa la ubicaci&oacute;n de almacenamiento de los valores de configuraci&oacute;n. Un perfil es un conjunto de valores de configuraci&oacute;n concretos que se asignan a usuarios, organizaciones, hosts y dominios.</p>
+</li>
+</ul>
+<p>La tabla Dep&oacute;sitos de configuraci&oacute;n presenta las opciones siguientes:</p>
+<ul><li><p><A HREF="gbgcn.html#gbgcn">Nuevo</A>: crea un dep&oacute;sito de configuraci&oacute;n. </p>
+</li>
+<li><p>Borrar: suprime un dep&oacute;sito de configuraci&oacute;n.</p>
+</li>
+<li><p>Cambiar nombre: cambia el nombre de un dep&oacute;sito de configuraci&oacute;n.</p>
+</li>
+<li><p><A HREF="gbgqm.html#gbgqm">Sincronizar</A>: sincroniza dep&oacute;sitos de configuraci&oacute;n.</p>
+<p>Esta funci&oacute;n s&oacute;lo est&aacute; habilitada cuando se seleccionan uno o dos dep&oacute;sitos.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgpu.html b/webconsole/html/es/help/gbgpu.html
new file mode 100644
index 0000000..11bf7b2
--- /dev/null
+++ b/webconsole/html/es/help/gbgpu.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Cambio de nombre de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpu"></A><h3>Cambio de nombre de perfiles</h3>
+<h5>Pasos</h5><ol><li><p><b>Seleccione la casilla de verificaci&oacute;n del perfil cuyo nombre desea cambiar.</b></p></li>
+<li><p><b>En la lista de acciones, elija Cambiar nombre.</b></p><p>Aparecer&aacute; un cuadro de di&aacute;logo.</p>
+</li>
+<li><p><b>En el cuadro de texto del perfil activo, escriba un nombre nuevo y haga clic en Aceptar.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgpw.html b/webconsole/html/es/help/gbgpw.html
new file mode 100644
index 0000000..13183ba
--- /dev/null
+++ b/webconsole/html/es/help/gbgpw.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Cambio de nombre de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpw"></A><h4>Cambio de nombre de perfiles</h4>
+<h5>Pasos</h5><ol><li><p><b>Seleccione la casilla de verificaci&oacute;n cuyo perfil desea cambiar de nombre.</b></p></li>
+<li><p><b>En la lista de acciones, seleccione Cambiar nombre.</b></p><p>Se abre un cuadro de di&aacute;logo para cambiar el nombre.</p>
+</li>
+<li><p><b>En el campo de texto, escriba el nombre nuevo del perfil activo y haga clic en Aceptar.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgqa.html b/webconsole/html/es/help/gbgqa.html
new file mode 100644
index 0000000..f521adb
--- /dev/null
+++ b/webconsole/html/es/help/gbgqa.html
@@ -0,0 +1,24 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Ventana Configuraci&oacute;n de dep&oacute;sitos </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqa"></A><h2>Ventana Configuraci&oacute;n de dep&oacute;sitos</h2>
+<p>Esta ventana es la ubicaci&oacute;n de almacenamiento de los datos de configuraci&oacute;n que necesita para configurar las aplicaciones, as&iacute; como la ubicaci&oacute;n de almacenamiento de los datos de la jerarqu&iacute;a organizativa, junto con los perfiles y las asignaciones de cada elemento. En la ventana Configuraci&oacute;n de dep&oacute;sitos se pueden crear, utilizar y sincronizar dep&oacute;sitos.</p>
+<p>La ventana consta de un encabezado y la lista Dep&oacute;sitos de configuraci&oacute;n.</p>
+<p>El encabezado proporciona varios v&iacute;nculos generales. En la parte superior est&aacute; la barra de utilidades, con los cuatro v&iacute;nculos siguientes (de izquierda a derecha):</p>
+<ul><li><p>El bot&oacute;n Console abre la p&aacute;gina de inicio de Java Web Console.</p>
+</li>
+<li><p>El bot&oacute;n Versi&oacute;n abre una ventana con la informaci&oacute;n sobre la versi&oacute;n de Desktop Manager.</p>
+</li>
+<li><p>Cerrar sesi&oacute;n sale de Java Web Console y de Configuration Manager, y devuelve al usuario a la p&aacute;gina de inicio de sesi&oacute;n.</p>
+</li>
+<li><p>El bot&oacute;n Ayuda abre las p&aacute;ginas de la Ayuda en l&iacute;nea. </p>
+</li>
+</ul>
+<p>En la parte inferior del encabezado figuran los nombres del producto, del servidor y del administrador que ha iniciado la sesi&oacute;n.</p>
+<p>Consulte <A HREF="gbgpt.html#gbgpt">Tabla Configuraci&oacute;n de dep&oacute;sitos</A>, <A HREF="gbgcn.html#gbgcn">Creaci&oacute;n de un dep&oacute;sito de configuraci&oacute;n</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgqe.html b/webconsole/html/es/help/gbgqe.html
new file mode 100644
index 0000000..7e5eee1
--- /dev/null
+++ b/webconsole/html/es/help/gbgqe.html
@@ -0,0 +1,13 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Asignaci&oacute;n de un orden de combinaci&oacute;n a un perfil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqe"></A><h4>Asignaci&oacute;n de un orden de combinaci&oacute;n a un perfil</h4>
+<h5>Pasos</h5><ol><li><p><b>En la lista de perfiles, seleccione un perfil.</b></p></li>
+<li><p><b>Despl&aacute;cese arriba o abajo por la lista mediante los botones que hay a la derecha de la lista.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgqf.html b/webconsole/html/es/help/gbgqf.html
new file mode 100644
index 0000000..5e3b005
--- /dev/null
+++ b/webconsole/html/es/help/gbgqf.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Copia y cambio de ubicaci&oacute;n de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqf"></A><h4>Copia y cambio de ubicaci&oacute;n de perfiles</h4>
+<h5>Pasos</h5><ol><li><p><b>Seleccione la casilla de verificaci&oacute;n del perfil que desea copiar o mover.</b></p></li>
+<li><p><b>En la lista de acciones, elija Copiar y mover.</b></p><p>Se abre el Asistente para copiar y mover.</p>
+</li>
+<li><p><b>Siga las instrucciones que proporciona el Asistente para copiar y mover.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgqh.html b/webconsole/html/es/help/gbgqh.html
new file mode 100644
index 0000000..0bf21aa
--- /dev/null
+++ b/webconsole/html/es/help/gbgqh.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Exportaci&oacute;n de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqh"></A><h4>Exportaci&oacute;n de perfiles</h4>
+<h5>Pasos</h5><ol><li><p><b>Seleccione la casilla de verificaci&oacute;n del perfil que desea exportar.</b></p></li>
+<li><p><b>En la lista de acciones, seleccione Exportar.</b></p><p>Se abre un cuadro de di&aacute;logo para especificar en &eacute;l la ubicaci&oacute;n a la que desea exportar el archivo.</p>
+</li>
+<li><p><b>Seleccione Guardar en disco y haga clic en Aceptar.</b></p></li>
+<li><p><b>Elija la ubicaci&oacute;n para guardar el archivo exportado y haga clic en Aceptar.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgqj.html b/webconsole/html/es/help/gbgqj.html
new file mode 100644
index 0000000..b7c5aa1
--- /dev/null
+++ b/webconsole/html/es/help/gbgqj.html
@@ -0,0 +1,14 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Anulaci&oacute;n de la asignaci&oacute;n de perfiles </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqj"></A><h4>Anulaci&oacute;n de la asignaci&oacute;n de perfiles</h4>
+<h5>Pasos</h5><ol><li><p><b>Seleccione la casilla de verificaci&oacute;n del perfil cuya asignaci&oacute;n desea anular.</b></p></li>
+<li><p><b>Haga clic en el bot&oacute;n Anular asignaci&oacute;n de perfil.</b></p><p>Se anula la asignaci&oacute;n del perfil, que desaparece de la tabla Perfiles asignados.</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>Precauci&oacute;n&#8211; </b>No aparece en pantalla ning&uacute;n aviso; por lo tanto, si involuntariamente se hace clic en el bot&oacute;n Anular asignaci&oacute;n de perfil, dicha acci&oacute;n puede deshacerse mediante la funci&oacute;n Asignar perfil.</p><hr size="1" noshade></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgqm.html b/webconsole/html/es/help/gbgqm.html
new file mode 100644
index 0000000..2c56636
--- /dev/null
+++ b/webconsole/html/es/help/gbgqm.html
@@ -0,0 +1,29 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Sincronizaci&oacute;n de dep&oacute;sitos de configuraci&oacute;n </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqm"></A><h4>Sincronizaci&oacute;n de dep&oacute;sitos de configuraci&oacute;n</h4>
+<p>Con Desktop Manager se pueden administrar en paralelo varios extremos. De esta forma, se puede definir un extremo para verificar y otro para la producci&oacute;n final. Los cambios de configuraci&oacute;n se pueden comprobar primero en el extremo de verificaci&oacute;n. A partir de entonces, se puede <i>sincronizar</i> partes o todo el extremo de verificaci&oacute;n con el de producci&oacute;n, a fin de aplicar los cambios pertinentes con rapidez y seguridad en el sistema de producci&oacute;n. Este m&eacute;todo tambi&eacute;n es v&aacute;lido para un mecanismo sencillo de copia de seguridad y restauraci&oacute;n del extremo de producci&oacute;n. En la ventana de sincronizaci&oacute;n se pueden efectuar las acciones siguientes.</p>
+<p></p>
+<h5>Pasos</h5><ol><li><p><b>En la ventana Dep&oacute;sitos de configuraci&oacute;n, seleccione el dep&oacute;sito que desea sincronizar.</b></p><p>Se abre la ventana de sincronizaci&oacute;n.</p>
+</li>
+<li><p><b>En la lista Dep&oacute;sito de configuraci&oacute;n de origen, seleccione el dep&oacute;sito de origen pertinente.</b></p><p>El dep&oacute;sito de origen que act&uacute;a como origen de los cambios se puede cambiar. Este dep&oacute;sito <i>no</i> se cambia. </p>
+</li>
+<li><p>(Opcional) <b>Se puede restringir el dep&oacute;sito de origen si hace clic en el bot&oacute;n Cambiar que hay junto a Punto de inicio de origen.</b></p><p>Esta acci&oacute;n establece como punto de origen de la sincronizaci&oacute;n otro elemento que no es el root.</p>
+<p>Se abre un cuadro de di&aacute;logo para buscar el elemento de la organizaci&oacute;n o el dominio. Tras seleccionar un elemento como Punto de inicio de origen aparece la nueva ruta.</p>
+</li>
+<li><p><b>En la lista Dep&oacute;sito de configuraci&oacute;n de destino, elija un dep&oacute;sito de destino.</b></p><p>El dep&oacute;sito de destino que act&uacute;a como destino de los cambios se puede cambiar. Este dep&oacute;sito <i>se</i> cambia. </p>
+</li>
+<li><p>(Opcional) <b>Se puede restringir el dep&oacute;sito de destino si hace clic en el bot&oacute;n Cambiar que hay junto a Punto de inicio de destino.</b> </p><p>Esta acci&oacute;n establece como destino de la sincronizaci&oacute;n otro elemento que no es el root.</p>
+<p>Se abre un cuadro de di&aacute;logo para buscar el elemento de la organizaci&oacute;n o el dominio. Tras seleccionar un elemento como Punto de inicio de destino aparece la nueva ruta.</p>
+</li>
+<li><p><b>Haga clic en el bot&oacute;n Comparar.</b></p><p>Los dos &aacute;rboles se comparan; las diferencias se reflejan en una tabla. </p>
+</li>
+<li><p><b>Habilite las casillas de verificaci&oacute;n junto a las filas de la tabla con los perfiles que desea sincronizar y haga clic en el bot&oacute;n Sincronizar.</b> </p><p>Despu&eacute;s de la sincronizaci&oacute;n, el dep&oacute;sito de destino coincide con el de origen respecto a los perfiles seleccionados.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgqt.html b/webconsole/html/es/help/gbgqt.html
new file mode 100644
index 0000000..1487a6f
--- /dev/null
+++ b/webconsole/html/es/help/gbgqt.html
@@ -0,0 +1,20 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Uso de la funci&oacute;n Buscar </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqt"></A><h4>Uso de la funci&oacute;n Buscar</h4>
+<p>Esta funci&oacute;n permite realizar una b&uacute;squeda precisa de los elementos que son descendientes <i>directos</i> del elemento expandido. Contrasta con la funci&oacute;n de b&uacute;squeda, que proporciona una b&uacute;squeda recursiva de elementos.</p>
+<h5>Pasos</h5><ol><li><p><b>En el &aacute;rbol de navegaci&oacute;n, haga clic en el nodo Algunos elementos no se muestran en pantalla.</b></p><p>Se abre la ventana Buscar.</p>
+</li>
+<li><p><b>En el campo Buscar, escriba total o parcialmente la cadena de caracteres que desea encontrar.</b> </p><p>La b&uacute;squeda no distingue may&uacute;sculas de min&uacute;sculas y no es estricta; por ejemplo, la cadena de b&uacute;squeda "bc" encontrar&aacute; "ABC" y "bcd". Un asterisco (*) denota una secuencia arbitraria de caracteres dentro de una cadena de caracteres de b&uacute;squeda. En la cadena de caracteres de b&uacute;squeda se puede incluir m&aacute;s de un asterisco. Un campo vac&iacute;o equivale a un campo con la cadena de caracteres de b&uacute;squeda &#8220;*&#8221;.</p>
+</li>
+<li><p><b>Haga clic en el bot&oacute;n Buscar.</b></p><p>Se muestra en pantalla una lista de resultados. Pueden aparecer un m&aacute;ximo de 100 resultados.</p>
+</li>
+<li><p><b>Para agregar un elemento encontrado al &aacute;rbol de navegaci&oacute;n, haga clic en el elemento en la lista de resultados.</b></p><p>Se cierra la ventana Buscar y el elemento se incorpora a la lista de subnodos del &aacute;rbol de navegaci&oacute;n.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbgqu.html b/webconsole/html/es/help/gbgqu.html
new file mode 100644
index 0000000..d28d1c8
--- /dev/null
+++ b/webconsole/html/es/help/gbgqu.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Cambio de ubicaci&oacute;n de la aplicaci&oacute;n </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqu"></A><h4>Cambio de ubicaci&oacute;n de la aplicaci&oacute;n</h4>
+<h5>Pasos</h5><ol><li><p><b>Haga clic en el bot&oacute;n Cambiar.</b></p><p>Aparece en pantalla una ventana con un &aacute;rbol de navegaci&oacute;n.</p>
+</li>
+<li><p><b>Busque en el &aacute;rbol y seleccione un elemento.</b></p><p><hr size="1" noshade><p><b>Sugerencia&#8211; </b>Si no puede encontrar el elemento en el &aacute;rbol, b&uacute;squelo haciendo clic en el bot&oacute;n Buscar para abrir la ventana de b&uacute;squeda.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Haga clic en el bot&oacute;n Aceptar.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbzbc.html b/webconsole/html/es/help/gbzbc.html
new file mode 100644
index 0000000..a11822a
--- /dev/null
+++ b/webconsole/html/es/help/gbzbc.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Eliminación de un depósito de configuración
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbzbc"></A><h4>Eliminación de un depósito de configuración</h4>
+<A NAME="indexterm-15"></A><h5>Pasos</h5><ol><li><p><b>Seleccione la casilla de verificación correspondiente al depósito de configuración que desea eliminar.</b></p></li>
+<li><p><b>Haga clic en el botón Eliminar.</b></p><p>Aparecerá un cuadro de diálogo de confirmación.</p>
+</li>
+<li><p><b>Si está convencido de que desea eliminar el depósito de configuración, haga clic en Aceptar en el cuadro de diálogo de confirmación.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/es/help/gbzci.html b/webconsole/html/es/help/gbzci.html
new file mode 100644
index 0000000..0d957cb
--- /dev/null
+++ b/webconsole/html/es/help/gbzci.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Modificación del nombre de un depósito de configuración
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbzci"></A><h4>Modificación del nombre de un depósito de configuración</h4>
+<A NAME="indexterm-16"></A><h5>Pasos</h5><ol><li><p><b>Seleccione la casilla de verificación correspondiente al depósito de configuración cuyo nombre desea cambiar.</b></p></li>
+<li><p><b>Haga clic en el botón Cambiar nombre.</b></p><p>Aparece el cuadro de diálogo Cambiar nombre.</p>
+</li>
+<li><p><b>Escriba el nuevo nombre del depósito de configuración en el campo de texto del cuadro de diálogo y haga clic en Aceptar.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/es/help/index.xml b/webconsole/html/es/help/index.xml
new file mode 100644
index 0000000..5f15e1a
--- /dev/null
+++ b/webconsole/html/es/help/index.xml
@@ -0,0 +1,50 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+
+<!DOCTYPE index PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN" "index_1_0.dtd">
+<index version="1.0">
+<indexitem target="gbgpn" text="asignación de perfiles"></indexitem>
+<indexitem target="gbgce" text="depósitos de configuración">
+<indexitem target="gbgcn" text="crear nuevo"></indexitem>
+<indexitem target="gbzbc" text="eliminar"></indexitem>
+<indexitem target="gbzci" text="cambiar nombre"></indexitem>
+<indexitem target="gbgqm" text="sincronizar"></indexitem>
+<indexitem text="tipos"><indexitem target="gbgpt" text="archivo"></indexitem>
+<indexitem target="gbgpt" text="híbrido"></indexitem>
+<indexitem target="gbgpt" text="LDAP (Lightweight Directory Access Protocol, Protocolo ligero de acceso a directorios)"></indexitem>
+</indexitem>
+<indexitem target="gbgpt" text="visualización de detalles"></indexitem>
+</indexitem>
+<indexitem target="gbgni" text="creación de perfiles"></indexitem>
+<indexitem target="gbgcn" text="creación de depósitos"></indexitem>
+<indexitem target="gbgpr" text="supresión de perfiles"></indexitem>
+<indexitem target="gbgce" text="dominios"></indexitem>
+<indexitem target="gbgoz" text="configuración efectiva, visualización"></indexitem>
+<indexitem target="gbgcm" text="árboles de elementos"></indexitem>
+<indexitem target="gbgce" text="elementos">
+<indexitem target="gbgqt" text="buscar función"></indexitem>
+<indexitem target="gbgoy" text="información"></indexitem>
+<indexitem target="gbgpa" text="buscar"></indexitem>
+</indexitem>
+<indexitem target="gbgqh" text="exportación de perfiles"></indexitem>
+<indexitem target="gbgps" text="importación de perfiles"></indexitem>
+<indexitem target="gbgpt" text="LDAP (Lightweight Directory Access Protocol, Protocolo ligero de acceso a directorios)"></indexitem>
+<indexitem target="gbgqa" text="finalizar la sesión"></indexitem>
+<indexitem target="gbgcm" text="desplazamientos"></indexitem>
+<indexitem target="gbgce" text="organizaciones"></indexitem>
+<indexitem target="gbgcm" text="árboles de perfiles"></indexitem>
+<indexitem target="gbgce" text="perfiles">
+<indexitem target="gbgpn" text="asignar"></indexitem>
+<indexitem target="gbgni" text="crear nuevo"></indexitem>
+<indexitem target="gbgpr" text="borrar"></indexitem>
+<indexitem target="gbgqh" text="exportar"></indexitem>
+<indexitem target="gbgps" text="importar"></indexitem>
+<indexitem target="gbgcm" text="navegar"></indexitem>
+<indexitem target="gbgqj" text="Anular asignación"></indexitem>
+</indexitem>
+<indexitem target="gbgqa" text="depósitos"></indexitem>
+<indexitem target="gbgpa" text="búsqueda de"></indexitem>
+<indexitem target="gbgqm" text="sincronización."></indexitem>
+<indexitem target="gbgcd" text="visualización de todos los perfiles"></indexitem>
+<indexitem target="gbgdc" text="visualización de perfiles asignados"></indexitem>
+</index>
diff --git a/webconsole/html/es/help/map.jhm b/webconsole/html/es/help/map.jhm
new file mode 100644
index 0000000..a14c734
--- /dev/null
+++ b/webconsole/html/es/help/map.jhm
@@ -0,0 +1,46 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN" "map_1_0.dtd">
+<map version="1.0">
+ <mapID target="gbgca" url="gbgca.html"/>
+ <mapID target="gbgce" url="gbgce.html"/>
+ <mapID target="gbgqa" url="gbgqa.html"/>
+ <mapID target="gbgpt" url="gbgpt.html"/>
+ <mapID target="gbgcn" url="gbgcn.html"/>
+ <mapID target="gbzbc" url="gbzbc.html"/>
+ <mapID target="gbzci" url="gbzci.html"/>
+ <mapID target="gbgqm" url="gbgqm.html"/>
+ <mapID target="gbgdc" url="gbgdc.html"/>
+ <mapID target="gbgcm" url="gbgcm.html"/>
+ <mapID target="gbgpa" url="gbgpa.html"/>
+ <mapID target="gbgqt" url="gbgqt.html"/>
+ <mapID target="gbgoy" url="gbgoy.html"/>
+ <mapID target="gbgni" url="gbgni.html"/>
+ <mapID target="gbgpr" url="gbgpr.html"/>
+ <mapID target="gbgpn" url="gbgpn.html"/>
+ <mapID target="gbgqj" url="gbgqj.html"/>
+ <mapID target="gbgpw" url="gbgpw.html"/>
+ <mapID target="gbgqf" url="gbgqf.html"/>
+ <mapID target="gbgps" url="gbgps.html"/>
+ <mapID target="gbgqh" url="gbgqh.html"/>
+ <mapID target="gbgoz" url="gbgoz.html"/>
+ <mapID target="gbgcd" url="gbgcd.html"/>
+ <mapID target="gbgcr" url="gbgcr.html"/>
+ <mapID target="gbgpe" url="gbgpe.html"/>
+ <mapID target="gbgpu" url="gbgpu.html"/>
+ <mapID target="gbgow" url="gbgow.html"/>
+ <mapID target="gbgpj" url="gbgpj.html"/>
+ <mapID target="gbgou" url="gbgou.html"/>
+ <mapID target="gbgec" url="gbgec.html"/>
+ <mapID target="gbgcg" url="gbgcg.html"/>
+ <mapID target="gbgpb" url="gbgpb.html"/>
+ <mapID target="gbgeb" url="gbgeb.html"/>
+ <mapID target="gbgot" url="gbgot.html"/>
+ <mapID target="gbgkr" url="gbgkr.html"/>
+ <mapID target="gbgpm" url="gbgpm.html"/>
+ <mapID target="gbgpp" url="gbgpp.html"/>
+ <mapID target="gbgda" url="gbgda.html"/>
+ <mapID target="gbgdh" url="gbgdh.html"/>
+ <mapID target="gbgqu" url="gbgqu.html"/>
+ <mapID target="gbgqe" url="gbgqe.html"/>
+</map>
diff --git a/webconsole/html/es/help/p1.html b/webconsole/html/es/help/p1.html
new file mode 100644
index 0000000..2ffa551
--- /dev/null
+++ b/webconsole/html/es/help/p1.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<h1>Java Desktop System Configuration Manager Release 2.0 Online Help</h1>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/es/help/toc.xml b/webconsole/html/es/help/toc.xml
new file mode 100644
index 0000000..04d6c0c
--- /dev/null
+++ b/webconsole/html/es/help/toc.xml
@@ -0,0 +1,59 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+
+<!DOCTYPE toc PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN" "toc_1_0.dtd">
+<toc version="1.0">
+<tocitem target="gbgca" text="Ayuda de Sun Desktop Manager 1.0.1">
+<tocitem target="gbgce" text="Introducción"></tocitem>
+<tocitem target="gbgqa" text="Ventana Configuración de depósitos">
+<tocitem target="gbgpt" text="Tabla de depósitos de configuración">
+<tocitem target="gbgcn" text="Creación de un depósito de configuración"></tocitem>
+<tocitem target="gbzbc" text="Eliminación de un depósito de configuración"></tocitem>
+<tocitem target="gbzci" text="Modificación del nombre de un depósito de configuración"></tocitem>
+<tocitem target="gbgqm" text="Sincronización de depósitos de configuración"></tocitem>
+</tocitem>
+</tocitem>
+<tocitem target="gbgdc" text="Perfiles &#8212; Vista de árbol">
+<tocitem target="gbgcm" text="Ãrea de navegación">
+<tocitem target="gbgpa" text="Búsqueda de un elemento"></tocitem>
+<tocitem target="gbgqt" text="Uso de la función Buscar"></tocitem>
+</tocitem>
+<tocitem target="gbgoy" text="Ãrea de contenidos">
+<tocitem target="gbgni" text="Creación de un perfil"></tocitem>
+<tocitem target="gbgpr" text="Supresión de perfiles"></tocitem>
+<tocitem target="gbgpn" text="Asignación de perfiles"></tocitem>
+<tocitem target="gbgqj" text="Anulación de la asignación de perfiles"></tocitem>
+<tocitem target="gbgpw" text="Cambio de nombre de perfiles"></tocitem>
+<tocitem target="gbgqf" text="Copia y cambio de ubicación de perfiles"></tocitem>
+<tocitem target="gbgps" text="Importando perfiles"></tocitem>
+<tocitem target="gbgqh" text="Exportación de perfiles"></tocitem>
+</tocitem>
+<tocitem target="gbgoz" text="Visualización de Configuración vigente"></tocitem>
+</tocitem>
+<tocitem target="gbgcd" text="Perfiles &#8212; Todos">
+<tocitem target="gbgcr" text="Creación de un perfil"></tocitem>
+<tocitem target="gbgpe" text="Supresión de perfiles"></tocitem>
+<tocitem target="gbgpu" text="Cambio de nombre de perfiles"></tocitem>
+<tocitem target="gbgow" text="Copia y cambio de ubicación de perfiles"></tocitem>
+<tocitem target="gbgpj" text="Importando perfiles"></tocitem>
+<tocitem target="gbgou" text="Exportación de perfiles"></tocitem>
+</tocitem>
+<tocitem target="gbgec" text="Editor de perfiles">
+<tocitem target="gbgcg" text="Propiedades generales">
+<tocitem target="gbgpb" text="Especificación de propiedades generales de un perfil"></tocitem>
+</tocitem>
+<tocitem target="gbgeb" text="Valores de configuración">
+<tocitem target="gbgot" text="Visualización y edición de la configuración de un perfil"></tocitem>
+</tocitem>
+<tocitem target="gbgkr" text="Elementos asignados">
+<tocitem target="gbgpm" text="Asignación de un elemento a un perfil"></tocitem>
+<tocitem target="gbgpp" text="Anulación de la asignación de elementos de perfiles"></tocitem>
+</tocitem>
+<tocitem target="gbgda" text="Resumen de configuración"></tocitem>
+<tocitem target="gbgdh" text="Opciones avanzadas">
+<tocitem target="gbgqu" text="Cambio de la ubicación de una aplicación"></tocitem>
+<tocitem target="gbgqe" text="Asignación de un orden de combinación a un perfil"></tocitem>
+</tocitem>
+</tocitem>
+</tocitem>
+</toc>
diff --git a/webconsole/html/es/helpContent.html b/webconsole/html/es/helpContent.html
new file mode 100644
index 0000000..604fae5
--- /dev/null
+++ b/webconsole/html/es/helpContent.html
@@ -0,0 +1,336 @@
+<html>
+<head>
+<title>Sun Java[TM] Desktop System Configuration Manager - Contenido de la ayuda </title>
+<meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><!-- Empty script so IE5.0 Windows will draw table and button borders --><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"></script> </head>
+
+<body class="help-body"><a name="top"></a> <p><a name="intro"> </a><div class="help-header-1">Ayuda del Configuration Manager</div></p>
+<p>Bienvenido a las p&aacute;ginas de ayuda del Sun Java[TM] Desktop System Configuration Manager. Si desea obtener ayuda sobre una parte espec&iacute;fica del Java Desktop System Configuration Manager, haga clic en uno de los v&iacute;nculos que se encuentran a la izquierda.</p>
+<p>La ayuda comienza con la descripci&oacute;n de los conceptos y una introducci&oacute;n general del Configuration Manager: <a class="help-link" href="#concepts">Introducci&oacute;n y conceptos</a>. Algunos aspectos del comportamiento y del dise&ntilde;o general del Configuration Manager se pueden encontrar en <a class="help-link" href="#ui">Dise&ntilde;o y comportamiento</a>. </p>
+<p>Tras las p&aacute;ginas generales se incluye ayuda m&aacute;s concreta para la <a class="help-link" href="#masthead"><b>cabecera</b></a>, el <a class="help-link" href="#navigation"><b>panel de navegaci&oacute;n</b></a> y el <a class="help-link" href="#content"><b>panel de contenidos</b></a>. Tambi&eacute;n hay p&aacute;ginas que tratan de las caracter&iacute;sticas <a class="help-link" href="#login">Iniciar sesi&oacute;n</a> e <a href="#reporting">Informe</a>. <p><a name="concepts"> </a> <div class="help-header-1">Introducci&oacute;n y conceptos</div></p>
+<p>El Configuration Manager permite la gesti&oacute;n centralizada de la configuraci&oacute;n. Es posible visualizar, definir y confirmar los valores de la configuraci&oacute;n en los diversos niveles de la jerarqu&iacute;a de una organizaci&oacute;n. Los valores de configuraci&oacute;n sem&aacute;nticamente coherentes reciben el nombre de "normas de configuraci&oacute;n" en el resto de este documento.</p>
+<P>El Configuration Manager trata tres estructuras jer&aacute;rquicas diferentes, tambi&eacute;n conocidas como &aacute;rboles. Con el fin de comprender la interfaz del usuario del Configuration Manager, es importante distinguir entre los dos &aacute;rboles:</P>
+<p><div class="help-header-2"><a name="dataStructures">Estructuras de datos</a></div></p>
+<P>Un &aacute;rbol est&aacute; formado por las normas de configuraci&oacute;n y por este motivo recibe el nombre de &aacute;rbol de normas de configuraci&oacute;n (zonas azules de la figura 1, "&Aacute;rboles"). Los usuarios ya est&aacute;n familiarizados con una organizaci&oacute;n jer&aacute;rquica de los valores de configuraci&oacute;n gracias a los muchos programas que muestran una configuraci&oacute;n m&aacute;s sofisticada, como Mozilla. Una norma de configuraci&oacute;n habitual puede recibir el nombre de "/Mozilla/Navigator"; un valor de configuraci&oacute;n puede ser "/Mozilla/Navigator/HomeUrl".</P>
+<P>Los &aacute;rboles de normas de configuraci&oacute;n se incorporan al segundo tipo de &aacute;rboles, el &aacute;rbol de la organizaci&oacute;n (zonas grises de la figura 1, "&Aacute;rboles"), que representa las relaciones entre las unidades organizativas. El resultado es un "&aacute;rbol de la organizaci&oacute;n que contiene los &aacute;rboles de normas de configuraci&oacute;n". El &aacute;rbol de la organizaci&oacute;n se representa mediante un servidor LDAP.</P>
+<p>El tercer tipo de &aacute;rbol es el &aacute;rbol del dominio, que representa las relaciones entre las unidades de hardware. A &eacute;l se incorporan, adem&aacute;s, los &aacute;rboles de normas de configuraci&oacute;n. El &aacute;rbol del dominio se representa mediante un servidor LDAP.</p>
+<p>Los conceptos para el trabajo con el &aacute;rbol de la organizaci&oacute;n y el &aacute;rbol del dominio son los mismos. La &uacute;nica diferencia es que el &aacute;rbol de la organizaci&oacute;n mantiene los usuarios y el &aacute;rbol del dominio mantiene los sistemas. Al tener a los usuarios y sistemas en dos &aacute;rboles separados, el Configuration Manager puede proporcionar una configuraci&oacute;n basada en el usuario y en el sistema. Debido a las similitudes entre ambos &aacute;rboles, esta secci&oacute;n se centra en el &aacute;rbol de la organizaci&oacute;n y s&oacute;lo menciona al &aacute;rbol del dominio cuando haya diferencias.</p>
+<P>Los servidores LDAP se utilizan habitualmente en grandes empresas para ubicar los datos de la organizaci&oacute;n de un modo jer&aacute;rquico. Cada ubicaci&oacute;n de un &aacute;rbol de la organizaci&oacute;n en LDAP recibe el nombre de entidad.</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_ldap_v4.png" NAME="Trees" ALT="&Aacute;rboles" ALIGN=LEFT WIDTH=550 HEIGHT=369 BORDER=1> </FONT><P><FONT COLOR="#000000"><A NAME="fig_trees"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">Figura 1: &aacute;rboles</FONT></FONT></I></FONT></P>
+<p><div class="help-header-2"><a name="SecDataManagement">Seguridad y gesti&oacute;n de los datos</a></div></p>
+<p>Este "&aacute;rbol de &aacute;rboles" facilita la seguridad jer&aacute;rquica y la gesti&oacute;n de los datos. Esto se consigue introduciendo al inicio todo el &aacute;rbol de normas de configuraci&oacute;n, cuando se encuentre en la ra&iacute;z del &aacute;rbol de la organizaci&oacute;n. Los cambios concretos de las entidades en los valores de configuraci&oacute;n de ese &aacute;rbol de normas de configuraci&oacute;n inicial se almacenan en la entidad correspondiente. Para una mejor comprensi&oacute;n, la figura 1 s&oacute;lo ilustra los &aacute;rboles de normas de configuraci&oacute;n asociados con las entidades de organizaci&oacute;n llamadas "marketing" y "jclarke".</P>
+<p><div class="help-header-2"><a name="GenConfigSettings">Generaci&oacute;n de los valores de configuraci&oacute;n</a></div></p>
+<P>Los valores de configuraci&oacute;n de una entidad se obtienen mediante la uni&oacute;n. Todos los valores de la configuraci&oacute;n, asociados con una entidad en el &aacute;rbol del dominio o de la organizaci&oacute;n, reciben el nombre de capas. La uni&oacute;n comienza con la capa ra&iacute;z y contin&uacute;a por el &aacute;rbol hasta que se alcanza la entidad deseada. Las capas asociadas con las entidades inferiores en la jerarqu&iacute;a del &aacute;rbol heredan un cambio en el valor de una configuraci&oacute;n, en una capa asociada con una entidad (vea la <A class="help-link" HREF="#fig_merging">figura 2: "Uni&oacute;n de capas"</a>). Los valores heredados se pueden sobrescribir cuando una capa concreta define sus propios valores.</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_merge.gif" NAME="LayerMerging" ALT="Uni&oacute;n de capas" ALIGN=LEFT WIDTH=550 HEIGHT=520 BORDER=1> </FONT><P><FONT COLOR="#000000"><A NAME="fig_merging"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">Figura 2: uni&oacute;n de capas</FONT></FONT></I></FONT></P>
+<p><FONT COLOR="#000000">Esta herencia se mantiene en los valores de la configuraci&oacute;n y tambi&eacute;n en las caracter&iacute;sticas de la seguridad:</FONT> <FONT COLOR="#000000">si se especifica el atributo de seguridad "protegido" como valor de una configuraci&oacute;n en la capa adjunta a "o=marketing", dicho valor ser&aacute; de s&oacute;lo lectura en todas las capas inferiores del &aacute;rbol (vea la <A class="help-link" HREF="#fig_protection">figura 3: "Protecci&oacute;n"</a>).</FONT></P>
+<P><FONT COLOR="#000000"><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_protected_v3.png" NAME="Protection" ALT="Protecci&oacute;n" ALIGN=LEFT WIDTH=550 HEIGHT=524 BORDER=1> </FONT></FONT><P><FONT COLOR="#000000"><FONT COLOR="#000000"><A NAME="fig_protection"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">Figura 3: protecci&oacute;n</FONT></FONT></I></FONT></FONT></P>
+<p><div class="help-header-2"><a name="BCAssociating">Asociaci&oacute;n de un &aacute;rbol de normas de configuraci&oacute;n con un &aacute;rbol del dominio o de la organizaci&oacute;n</a></div></p>
+<p>Los &aacute;rboles de normas de configuraci&oacute;n est&aacute;n vinculados con las entidades de un &aacute;rbol de la organizaci&oacute;n de dos maneras diferentes:</P>
+<UL>
+ <li>Se almacenan en una entidad como &aacute;rboles de normas de configuraci&oacute;n independiente</li>
+ <li>Se vinculan con una entidad de un grupo de normas</li>
+</UL>
+<p><p><div class="help-header-2"><a name="BCPolicyGroups">Grupos de normas</a></div></p>
+<P>Los grupos de normas son contenedores de normas de configuraci&oacute;n, cada uno de los cuales tiene un nombre (exclusivo) asociado con ellos. Tambi&eacute;n son contenedores de un &aacute;rbol de normas de configuraci&oacute;n, puesto que &eacute;stas almacenan sus valores en un &aacute;rbol de normas de configuraci&oacute;n (vea la <A class="help-link" HREF="#fig_trees">figura 1: "&Aacute;rboles"</A>). Los grupos de normas se almacenan en un dep&oacute;sito de normas y pueden usarlos todas las clases de entidades mediante la creaci&oacute;n de v&iacute;nculos con grupos de normas. As&iacute; se consigue m&aacute;s flexibilidad e independencia respecto al componente trasero utilizado. Otra ventaja de los grupos de normas es que se pueden importar y exportar, lo cual facilita el mantenimiento.</P>
+<P>El administrador puede crear colecciones de normas de configuraci&oacute;n para rangos sem&aacute;nticos separados, por ejemplo, un grupo de normas "Expertos" y otro "Novato", que almacena en el dep&oacute;sito de normas. Las normas de configuraci&oacute;n se pueden utilizar despu&eacute;s en todo el &aacute;rbol de la organizaci&oacute;n.</P>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> Volver al principio</a> </div><a name="ui"> </a> <div class="help-header-1">Dise&ntilde;o y comportamiento</div>
+<p>El dise&ntilde;o del Configuration Manager consta de tres &aacute;reas: una cabecera, un panel de navegaci&oacute;n y un panel de contenidos. La cabecera ocupa la parte superior de la p&aacute;gina. El &aacute;rea del lado inferior izquierdo contiene el panel de navegaci&oacute;n. El &aacute;rea del lado inferior derecho es el panel de contenidos. Este tipo de dise&ntilde;o tambi&eacute;n recibe el nombre de conjunto de paneles izquierdo-derecho. Las ventanas separadas de navegaci&oacute;n se abren para mostrar cuadros de di&aacute;logo adicionales y el contenido de la ayuda.</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> Volver al principio</a> </div><a name="login"> </a> <div class="help-header-1">Iniciar sesi&oacute;n</div>
+<p>Para usar el Configuration Manager, debe iniciar una sesi&oacute;n en la Sun Web Console, que es donde se encuentran las aplicaciones de gesti&oacute;n; todas ellas cuentan con una interfaz de usuario coherente. Una de las ventajas principales de la consola es que el administrador puede iniciar la sesi&oacute;n una vez y utilizar cualquier aplicaci&oacute;n dentro de la consola. Para este fin la Sun Web Console proporciona una p&aacute;gina de inicio de sesi&oacute;n est&aacute;ndar.</p>
+<p>En la p&aacute;gina est&aacute;ndar de inicio de sesi&oacute;n el servidor en el que se va a iniciar &eacute;sta aparece m&aacute;s arriba de los campos de texto del nombre del usuario y de la contrase&ntilde;a.</p>
+<p>Una vez iniciada la sesi&oacute;n, se accede a la p&aacute;gina de inicio de la aplicaci&oacute;n Web Console, en la que se puede seleccionar la aplicaci&oacute;n "Configuration Manager", para iniciar el Configuration Manager.</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> Volver al principio</a> </div><a name="masthead"> </a> <div class="help-header-1">Cabecera</div>
+<p>La cabecera muestra el nombre completo del producto (Sun Java[TM] Desktop System Configuration Manager); tambi&eacute;n proporciona varios v&iacute;nculos generales:</p>
+<ul><li>El v&iacute;nculo <b>Consola</b> devuelve al usuario a la p&aacute;gina de inicio de la aplicaci&oacute;n Sun Web Console.</li>
+ <li>El v&iacute;nculo <b>Versi&oacute;n</b> abre una ventana de la versi&oacute;n.</li>
+ <li>El v&iacute;nculo <b>Cerrar sesi&oacute;n</b> sale de la Sun Web Console y del Configuration Manager y devuelve al usuario a la p&aacute;gina de inicio de sesi&oacute;n.</li>
+ <li>El v&iacute;nculo <b>Ayuda</b> abre estas p&aacute;ginas de ayuda.</li>
+</ul>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> Volver al principio</a> </div><a name="navigation"> </a> <div class="help-header-1">Panel de navegaci&oacute;n</div>
+<p>El panel de navegaci&oacute;n permite explorar tanto el &aacute;rbol de la organizaci&oacute;n, que contiene organizaciones, usuarios y roles, como el &aacute;rbol del dominio, que contiene dominios y sistemas. Tambi&eacute;n permite gestionar grupos de normas en los dep&oacute;sitos correspondientes de las normas de usuarios y sistemas.</p>
+<p>Hay dos fichas en el nivel superior del panel de navegaci&oacute;n: <b>Usuarios</B> y <b>Sistemas</B>. </p><a name="entities"> </a> <div class="help-header-2">Ficha Usuarios</div>
+<p>Incluye dos subfichas, <b>&Aacute;rbol de la organizaci&oacute;n</B> y <b>Dep&oacute;sito de normas</B>. La ficha <b>&Aacute;rbol de la organizaci&oacute;n</B> permite explorar el &aacute;rbol de la organizaci&oacute;n. </p><a name="parpath"></a><div class="help-header-3">Ruta de relaci&oacute;n</div>
+<p>En la parte superior de la ficha <b>&Aacute;rbol de la organizaci&oacute;n</B> se encuentra la ruta de relaci&oacute;n, un control que visualiza la ruta a la entidad actual. Cada parte de la ruta es un v&iacute;nculo que representa una entidad, excepto el &uacute;ltimo, que aparece como texto normal y representa a la entidad actual. Si desea navegar mediante una ruta de relaci&oacute;n, haga clic en un v&iacute;nculo. De este modo: <ul><li>Se actualiza el panel de navegaci&oacute;n de manera que la ruta de relaci&oacute;n apunte a la entidad en la que se ha hecho clic, con el fin de que la tabla de navegaci&oacute;n contenga las subentidades de esa entidad.</li>
+ <li>Se actualiza el panel de contenidos con los datos de las normas de configuraci&oacute;n asociadas con esa entidad. </li>
+</ul>Los paneles de navegaci&oacute;n y de contenido se sincronizan en toda la aplicaci&oacute;n para proporcionar un aspecto homog&eacute;neo de los datos. </p><a name="navtable"></a><div class="help-header-3">Tabla de navegaci&oacute;n</div>
+<p>La tabla de navegaci&oacute;n se encuentra bajo la ruta de relaci&oacute;n y enumera las subentidades de la entidad actual. La columna "Nombre" contiene los nombres de todas las subentidades de la entidad actual. La columna "Tipo" muestra el tipo de entidad. La columna "Acci&oacute;n" contiene un v&iacute;nculo <b>Ver</B> para cada fila.</p>
+<p>Si desea desplazarse a una entidad haga clic en un nombre de la lista; de este modo: <ul><li>Convertir&aacute; la subentidad seleccionada en la entidad actual.</li>
+ <li>El panel de navegaci&oacute;n se actualiza y la ruta de relaci&oacute;n apunta a la nueva entidad actual en la que se ha hecho clic, a fin de que la tabla de navegaci&oacute;n contenga las subentidades de esa entidad.</li>
+ <li>El panel de contenidos se actualiza con la norma de configuraci&oacute;n asociada con esa entidad. </li>
+</ul></p>Una entidad puede ser del tipo "Organizaci&oacute;n", "Usuario" o "Rol".</p>
+<p>Si desea ver los detalles de una entidad de la lista haga clic en el v&iacute;nculo <b>Ver</B>. De este modo: <ul><li>El color del fondo de la fila seleccionada se convierte en azul. </li>
+ <li>El panel de contenidos se actualiza con los datos asociados con la entidad seleccionada. </li>
+</ul>Una fila con el fondo azul marca la entidad cuyos datos son visibles en el panel de contenidos.</p>
+<p>La barra de acciones de la tabla de navegaci&oacute;n contiene el men&uacute; desplegable <b>Filtro</B> y el icono <b>Filtro avanzado</b>. Cuando la tabla contiene m&aacute;s de diez entradas aparece el icono <b>Desplazarse por los datos</b>, que permite cambiar la presentaci&oacute;n de las entradas de la tabla.</p>
+<p>El men&uacute; desplegable <b>Filtro</b> permite elegir el tipo de entidad mostrado en la tabla de navegaci&oacute;n. Contiene los elementos siguientes: <ul><li>"Todos los elementos" muestra en la tabla de navegaci&oacute;n todos los tipos de entidades.</li>
+ <li>"Organizaciones": muestra s&oacute;lo las entidades del tipo "Organizaci&oacute;n" en la tabla de navegaci&oacute;n.</li>
+ <li>"Usuarios": muestra s&oacute;lo las entidades del tipo "Usuario" en la tabla de navegaci&oacute;n.</li>
+ <li>"Roles": muestra s&oacute;lo las entidades del tipo "Rol" en la tabla de navegaci&oacute;n. </li>
+</ul></p><a name="adfilter"></a><div class="help-header-3">Filtro avanzado</div>
+<p>Haga clic en el icono <b>Filtro avanzado</B> en la tabla de navegaci&oacute;n para abrir el cuadro de di&aacute;logo Filtro avanzado.</P>
+<p>En la secci&oacute;n <b>Tipo</b>, marque el tipo de entidad que desee filtrar. Si desea un filtro m&aacute;s concreto, escriba el nombre donde desee ejecutar el filtro en el campo de texto <b>Nombre</b>. Despu&eacute;s haga clic en el bot&oacute;n <b>Filtro</B> en la parte inferior del cuadro de di&aacute;logo para ejecutar el filtro. </p><a name="search"></a><div class="help-header-3">Buscar</div>
+<p>Haga clic en el bot&oacute;n <b>Buscar</b> que se encuentra encima de la tabla de navegaci&oacute;n si desea abrir una ventana de b&uacute;squeda. La ventana Buscar muestra una cabecera, un &aacute;rea de par&aacute;metros en la parte izquierda y un &aacute;rea de resultados en la derecha; permite buscar continuamente en el &aacute;rbol de la organizaci&oacute;n ciertos tipos y nombres de entidades. Si se hace clic en el bot&oacute;n <b>Buscar</b> del panel de navegaci&oacute;n de la ventana principal mientras la ventana Buscar est&aacute; abierta en segundo plano, &eacute;sta queda por encima de las dem&aacute;s. La entidad actual de la ventana Buscar, mostrada por la ruta de relaci&oacute;n en el &aacute;rea de par&aacute;metros de la ventana Buscar, se actualiza. El resto de los par&aacute;metros y el contenido del &aacute;rea de resultados no experimentan cambios.</p>
+<p>El &aacute;rea de par&aacute;metros muestra en la parte superior la ruta de relaci&oacute;n hasta la entidad actual. El uso del &aacute;rea de par&aacute;metros se describe en la secci&oacute;n <a class="help-link" href="#parpath">Ruta de relaci&oacute;n</a>.</p>
+<p>Si desea buscar un tipo concreto de entidad, selecci&oacute;nelo en la lista desplegable que se encuentra bajo la ruta de relaci&oacute;n. Las seis selecciones son "Buscar todo", "Buscar organizaciones", "Buscar usuarios", "Buscar roles", "Buscar dominios" y "Buscar sistemas".</p>
+<p>Para precisar m&aacute;s la b&uacute;squeda, puede utilizar el cuadro de texto situado junto a la lista desplegable. De esta manera puede buscar nombres de entidades que concuerden con la cadena de b&uacute;squeda que escribi&oacute; en este campo. El punto de inicio para buscar desde el &aacute;rbol se puede especificar seleccionando uno de los botones de opciones de <b>Punto de inicio</b>. Las opciones son buscar desde la ubicaci&oacute;n actual o desde la parte superior del &aacute;rbol. El valor predeterminado es buscar desde la ubicaci&oacute;n actual. Las ubicaciones est&aacute;n representadas por los nombres. Si hace clic en cualquier elemento de la ruta de relaci&oacute;n, se cambiar&aacute; la ubicaci&oacute;n actual en la b&uacute;squeda de la entidad seleccionada, pero no cambiar&aacute; el &aacute;mbito de la vista del navegador.</p>
+<p>Seleccione el n&uacute;mero de resultados que desee mostrar en la lista desplegable "Resultados mostrados por p&aacute;gina".</p>
+<p>Todos los campos del panel de b&uacute;squeda aceptan el asterisco "*" con la funci&oacute;n de comod&iacute;n en cualquier posici&oacute;n en la cadena de b&uacute;squeda. El asterisco representa un n&uacute;mero cualquiera de caracteres arbitrarios. Si se especifican varios criterios de b&uacute;squeda, todos se deben rellenar con el fin de a&ntilde;adir una entidad a la tabla de resultados. La b&uacute;squeda no distingue may&uacute;sculas de min&uacute;sculas.</p>
+<p>Para efectuar la b&uacute;squeda, haga clic en el bot&oacute;n <b>Buscar</b>; se actualiza el &aacute;rea de resultados con una tabla que contiene los resultados de la b&uacute;squeda.</p>
+<p>Si desea restablecer los valores de la p&aacute;gina haga clic en el bot&oacute;n <b>Restablecer</b>; se actualiza el &aacute;rea de par&aacute;metros con los valores predeterminados. Todos los cuadros de texto est&aacute;n vac&iacute;os y el primer valor est&aacute; seleccionado en todos los grupos de listas desplegables y botones de opciones.</p>
+<p>El &aacute;rea de resultados contiene una p&aacute;gina en blanco cuando se abre la ventana Buscar. Despu&eacute;s de efectuar una b&uacute;squeda aparece una tabla de resultados que contiene tres columnas: "Nombre", "Tipo" y "Ruta".</p>
+<p>Si desea ver un resultado, haga clic en el nombre correspondiente en la columna "Nombre". De este modo: <ul><li>Se colocar&aacute; la ventana principal como la primera de todas.</li>
+ <li>Se actualizar&aacute; el panel de navegaci&oacute;n de la ventana principal: la entidad representada por el v&iacute;nculo "Nombre" ser&aacute; una entrada en la tabla de navegaci&oacute;n con un fondo azul. </li>
+ <li>Se actualizar&aacute; el &aacute;rea de contenidos de la ventana principal con la norma de configuraci&oacute;n asociada a esa entidad.</li>
+ </UL>
+</p>
+<p>La columna "Tipo" muestra el tipo de entidad. Una entidad puede ser del tipo "Organizaci&oacute;n", "Usuario" o "Rol".</p>
+<p>La columna "Ruta" contiene la ruta hasta la entidad; es relativa al punto de inicio de la b&uacute;squeda.</p>
+<p>Si el tipo que se ha buscado es "Usuario", el &aacute;rea de par&aacute;metros muestra varios cuadros de texto para especificar las caracter&iacute;sticas de un usuario: "ID de usuario", "Nombre" y "Apellidos". En el &aacute;rea de resultados aparece una columna adicional para el "ID de usuario" en la parte derecha de la columna "Nombre", que contiene los ID del usuario. Si el cuadro de texto "ID de usuario" del &aacute;rea de par&aacute;metros contiene al menos un car&aacute;cter, la columna de ordenaci&oacute;n principal es la de "ID de usuario". Si no es as&iacute;, la columna de ordenaci&oacute;n principal es la columna "Nombre". </p><a name="hoststab"> </a> <div class="help-header-2">Ficha Sistemas</div>
+<p>La ficha <b>Sistemas</B> contiene dos subfichas: <b>&Aacute;rbol del dominio</B> y <b>Dep&oacute;sito de normas</B>. </p><a name="domtree"></a><div class="help-header-3">Ficha &Aacute;rbol del dominio</div>
+<p>El &Aacute;rbol del dominio muestra la configuraci&oacute;n del hardware sobre el que trabaja el usuario.</P>
+<p>La navegaci&oacute;n por el &aacute;rbol del dominio es similar a la navegaci&oacute;n por el &Aacute;rbol de la organizaci&oacute;n; consulte la secci&oacute;n <a href="#entities">Ficha Usuarios</A> para obtener m&aacute;s detalles. <a name="actionbar"></a><div class="help-header-3">Barra de acciones</div>
+<p>El men&uacute; desplegable <b>Filtro</B>, en la tabla de navegaci&oacute;n, contiene cuatro elementos: <ul><li>"Todos los elementos": muestra todos los tipos de entidades</li>
+ <li>"Dominios": muestra entidades del tipo Dominio</li>
+ <li>"Sistemas": muestra entidades del tipo Sistema </li>
+</ul>
+</p><a name="adfilterhosts"></a><div class="help-header-3">Filtro avanzado</div>
+<p>El Filtro avanzado del &aacute;rbol del dominio trabaja como el Filtro avanzado del &Aacute;rbol de la organizaci&oacute;n (consulte la secci&oacute;n anterior <a href="#adfilter">Filtro avanzado</a>). El Filtro avanzado del &aacute;rbol del dominio proporciona los tipos de entidad "Dominio" y "Sistema" desde los que filtrar. </p><a name="searchhosts"></a><div class="help-header-3">Buscar</div>
+<p>Si hace clic en el bot&oacute;n <b>Buscar</b> de la ficha <b>&Aacute;rbol del dominio</b>, se abre una ventana de b&uacute;squeda de dominios que funciona igual que la b&uacute;squeda en el &Aacute;rbol de la organizaci&oacute;n (consulte las <a href="#">p&aacute;ginas anteriores</a>), pero el campo del punto de inicio est&aacute; establecido en "Hardware".</p>
+
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> Volver al principio</a> </div><a name="psptab"> </a> <div class="help-header-2">Dep&oacute;sitos de normas</div>
+<p>La ficha <b>Dep&oacute;sito de normas</b> se encuentra tanto en <b>Usuarios</B> como en <b>Sistemas</B>.</P>
+<p>Un dep&oacute;sito de normas es un contenedor para los grupos de normas del usuario y de los sistemas. Los grupos de normas se organizan en una lista ordenada cuya secuencia se define mediante prioridades. </p><a name="psptable"></a><div class="help-header-3">Tabla del grupo de normas</div>
+<P>La tabla del grupo de normas se encuentra en la parte superior de la p&aacute;gina y enumera los grupos de normas. La tabla contiene tres columnas: un columna de selecci&oacute;n, "Nombre" y "Prioridad". </P>
+<P>La columna de selecci&oacute;n se utiliza para marcar las filas a las que se aplican las acciones enumeradas en el men&uacute; desplegable <b>Acciones del grupo de normas</b>.</P>
+<P>Para examinar un grupo de normas, haga clic en su nombre. De este modo:</P>
+<UL>
+ <li>El color del fondo de la fila seleccionada se convierte en azul.</li>
+ <li>El panel de contenidos se actualiza con los datos asociados con la entidad seleccionada.</li>
+</ul>
+<p>La columna "Prioridad" contiene la prioridad del grupo de normas que se utiliza para definir el orden de uni&oacute;n de los grupos de normas si un administrador ha asociado m&aacute;s de un grupo de normas a una entidad.</p>
+<P>Una fila con el fondo azul marca los grupos de normas cuyos datos son visibles en el panel de contenidos, el grupo de normas visualizadas. </P><a name="pspactions"></a><div class="help-header-3">Barra de acciones del grupo de normas</div>
+<P>El men&uacute; desplegable <b>Acciones del grupo de normas</B> contiene las acciones siguientes, mostradas de arriba abajo: </P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <THEAD>
+ <TR VALIGN=TOP>
+ <TH WIDTH="11%">
+ <P>Nombre</P>
+ </TH>
+ <TH WIDTH="89%">
+ <P>Acci&oacute;n</P>
+ </TH>
+ </TR>
+ </THEAD>
+ <TBODY>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+ <P>Nuevo</P>
+ </TD>
+ <TD WIDTH="89%">
+ <P>Se abre un cuadro de di&aacute;logo, donde el usuario introduce el nombre (exclusivo) del grupo de normas. Despu&eacute;s de hacer clic, se a&ntilde;ade el grupo de normas. El panel de navegaci&oacute;n se actualiza para reflejar los cambios.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="11%">
+ <P>Borrar</P>
+ </td>
+ <TD WIDTH="89%">
+ <P>Se abre una ventana emergente, con un mensaje de advertencia para confirmar la supresi&oacute;n de los grupos de normas. Si el usuario hace clic en Aceptar, se borran los grupos de normas. El panel de navegaci&oacute;n se actualiza para reflejar los cambios.</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>Cambiar nombre</p>
+ </td>
+ <td width="89%">
+ <p>Se abre un cuadro de di&aacute;logo, el usuario escribe el nuevo nombre (exclusivo) del grupo de normas, &eacute;ste recibe el nuevo nombre y el panel de navegaci&oacute;n se actualiza para reflejar los cambios.</p>
+ </td>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>Editar prioridades</p>
+ </td>
+ <td width="89%">
+ <p>Se abre un cuadro de di&aacute;logo, que contiene un cuadro de lista para cambiar las prioridades.</p>
+ </td>
+ </tr>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+ <P>Exportar</P>
+ </TD>
+ <TD WIDTH="89%">
+ <P>Se abre un cuadro de di&aacute;logo. El usuario escribe la ruta de destino donde se exportan los grupos de normas seleccionados.</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>Importar</p>
+ </td>
+ <td width="89%">
+ <p>Se abre un cuadro de di&aacute;logo. El usuario selecciona los grupos de normas que desee importar. Despu&eacute;s de hacer clic en Aceptar, el grupo de normas se a&ntilde;ade y el panel de navegaci&oacute;n se actualiza para reflejar los cambios.</p>
+ </td>
+ </tr>
+ </TBODY>
+</TABLE>
+
+<p><a name="psppriorities"></a><div class="help-header-3">Prioridades del grupo de normas</div></p>
+<p>El concepto de prioridades de los grupos de normas permite al administrador definir el orden en el que se unen las capas. Las prioridades se utilizan durante la uni&oacute;n si una entidad tiene m&aacute;s de un grupo de normas asignado. En este caso, la jerarqu&iacute;a de entidades no es suficiente para determinar la secuencia en que se unen los grupos de normas. Esta cuesti&oacute;n se soluciona asignando prioridades a los grupos de normas.</p>
+<p>Si desea abrir el cuadro de di&aacute;logo de prioridades de los grupos de normas seleccione <b>Editar prioridades</b> en el men&uacute; desplegable <b>Acciones del grupo de normas</b>. Si desea aumentar o reducir la prioridad de un grupo de normas:</p>
+<ol>
+ <li>Seleccione el grupo de normas de la lista.</li>
+ <li>Haga clic en los botones <b>Desplazar hacia arriba</b> o <b>Desplazar hacia abajo</b> para aumentar o reducir la prioridad. </li>
+</ol>
+
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> Volver al principio</a> </div><a name="content"> </a> <div class="help-header-1">Panel de contenidos</div>
+<p>El panel de contenidos muestra los datos asociados con una entidad seleccionada o un grupo de normas del panel de navegaci&oacute;n. Los datos se agrupan en fichas. Las selecciones efectuadas en el panel de navegaci&oacute;n determinan el n&uacute;mero y tipo de fichas mostradas en el panel de contenidos. La ficha <b>Normas</b> es la ficha activa de manera predeterminada. La ficha activa actual permanece activa aunque las selecciones se cambien en el panel de navegaci&oacute;n, siempre que la selecci&oacute;n efectuada proporcione esa ficha. Si no es as&iacute;, la ficha <b>Normas</b> se convierte en la ficha activa. Cuando la ficha vuelve a estar de nuevo activa se llama al estado interno de dicha ficha (ruta de relaci&oacute;n, tipo de orden). </p><a name="policies"> </a> <div class="help-header-2">Ficha Normas</div>
+<p>La ficha <b>Normas</B> permite explorar el &aacute;rbol de normas de configuraci&oacute;n que muestra los subgrupos, la configuraci&oacute;n o ambos.</p>
+<p>Cada p&aacute;gina de normas cuenta con dos botones: <ul><li><b>Crear Informe</b>: consulte la secci&oacute;n <a href="#reporting">Informe</a> para conocer los detalles.</li>
+ <li><b>Borrar valores de configuraci&oacute;n</b>: este bot&oacute;n borra regularmente todos los datos de la configuraci&oacute;n de la entidad visualizada bajo el subgrupo que se muestre. </li>
+</ul>
+</P>
+<p>Cada entrada de la ra&iacute;z del &aacute;rbol de normas de configuraci&oacute;n representa una aplicaci&oacute;n, por ejemplo "StarOffice 7". El &aacute;rbol dependiente de la aplicaci&oacute;n organiza las normas de configuraci&oacute;n que pertenecen a esa aplicaci&oacute;n y que se pueden encontrar en cualquier lugar del &aacute;rbol de normas de configuraci&oacute;n. Si alguna norma no es una hoja del &aacute;rbol de normas de configuraci&oacute;n, ser&aacute; necesario mostrar tanto la tabla de normas como la norma de configuraci&oacute;n en una ubicaci&oacute;n actual del &aacute;rbol de normas de configuraci&oacute;n. </p><a name="caparpath"> </a> <div class="help-header-3">Ruta de relaci&oacute;n</div>
+<p>La ruta de relaci&oacute;n se muestra en la parte superior de la p&aacute;gina bajo en nombre de las fichas. Muestra la situaci&oacute;n en el &aacute;rbol de normas de configuraci&oacute;n. Funciona del mismo modo que la ruta de relaci&oacute;n del panel de navegaci&oacute;n (consulte la secci&oacute;n anterior <a class="help-link" href="#parpath">Ruta de relaci&oacute;n</a>). </p><a name="subgroupstable"> </a> <div class="help-header-3">Tabla de subgrupos</div>
+<P>La tabla de subgrupos se encuentra bajo la ruta de relaci&oacute;n; muestra los subgrupos de la ubicaci&oacute;n en el &aacute;rbol de normas de configuraci&oacute;n. Contiene dos columnas: "Nombre" y "Comentario".</P>
+<P>La columna "Nombre" contiene los nombres de todos los subgrupos de la ubicaci&oacute;n en el &aacute;rbol de normas de configuraci&oacute;n. El nombre se muestra como un v&iacute;nculo. Si desea navegar por el &aacute;rbol de normas de configuraci&oacute;n haga clic en el v&iacute;nculo de un nombre. De este modo:</P>
+<UL>
+ <li>Se actualiza el panel de contenidos y la ruta de relaci&oacute;n apunta a la nueva ubicaci&oacute;n en el &aacute;rbol de normas de configuraci&oacute;n.</li>
+ <li>Se actualiza el panel de contenidos y se muestra una tabla de normas o una norma.</LI>
+</UL>
+<P>Este tipo de navegaci&oacute;n se conoce como del tipo "profundizaci&oacute;n".</P>
+<P>La columna Comentario contiene una breve descripci&oacute;n del subgrupo. </P><A NAME="capolicies"></A> <div class="help-header-3">Norma</div>
+<P>Si hay datos de normas de configuraci&oacute;n disponibles para la combinaci&oacute;n de la entidad y la norma de configuraci&oacute;n actuales, la ficha "Normas" del panel de contenidos los muestra.</p>
+<p>Los datos se presentan en tablas que se dividen en cuatro columnas: iconos de selecci&oacute;n, "Estado", "Nombre" y "Valor". La barra de acciones de la tabla tiene un men&uacute; desplegable. </p>
+<p>Si desea seleccionar un elemento, marque la casilla de verificaci&oacute;n que hay delante de &eacute;l. Se puede realizar ahora una acci&oacute;n del men&uacute; desplegable de acciones de la barra de acciones del elemento seleccionado. La tabla siguiente describe todas las acciones</p>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P><B>Acci&oacute;n</B></P>
+ </TD>
+ <TD WIDTH="83%">
+ <P><B>Funcionamiento</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Proteger</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Protege el elemento seleccionado.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Desproteger</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Suprime la protecci&oacute;n del elemento seleccionado.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Aplicar valores predeterminados</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Utiliza los datos predeterminados no modificables de la plantilla de normas.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Vaciar</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Borra los datos almacenados en el elemento.</P>
+ </TD>
+ </TR>
+
+</TABLE>
+<p>Dos iconos, situados a la izquierda del nombre del elemento, muestran el estado de &eacute;ste. La tabla siguiente explica los iconos y sus funciones:</P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><B>Icono</B></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P><B>Significado</B></P>
+ </TD>
+ <TD WIDTH="32%">
+ <P><B>Funcionamiento</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_set_here.png" NAME="DefinedHere" ALT="Defined Here" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Este icono ilustra que el valor del elemento se defini&oacute; en este nivel del &aacute;rbol de organizaci&oacute;n.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_set_above.png" NAME="DefinedLayered" ALT="Defined Layered" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Este icono, que tambi&eacute;n es un v&iacute;nculo, ilustra que el valor del elemento se defini&oacute; en un nivel superior del &aacute;rbol de organizaci&oacute;n (o dominio). El valor que el usuario ve es el resultado de la uni&oacute;n de capas o niveles de entidades, dentro de la organizaci&oacute;n.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>Si hace clic en este icono le lleva donde se ha definido el valor.</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_protected_here.png" NAME="ProtectedHere" ALT="Protected Here" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Este icono ilustra que la protecci&oacute;n del elemento se defini&oacute; en este nivel del &aacute;rbol de organizaci&oacute;n (o de dominio). La protecci&oacute;n se hereda a trav&eacute;s de los &aacute;rboles de normas de configuraci&oacute;n y de organizaci&oacute;n.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_protected_above.png" NAME="ProtectedLayered" ALT="Protected Layered" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Este icono, que tambi&eacute;n es un v&iacute;nculo, ilustra que la protecci&oacute;n del elemento se defini&oacute; en un nivel superior del &aacute;rbol de organizaci&oacute;n (o dominio). La protecci&oacute;n de este elemento es resultado de la uni&oacute;n de capas o niveles de entidades, dentro de la organizaci&oacute;n.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>Si el usuario hace clic en este icono llegar&aacute; al lugar donde se defini&oacute; la protecci&oacute;n.</P>
+ </TD>
+ </TR>
+</TABLE>
+<p>Los valores de los datos se pueden cambiar modificando los valores de la columna "Valor". Los cambios en los valores y en el estado se deben guardar. Para ello debe hacer clic en el bot&oacute;n <b>Guardar</b>. </p><a name="casets"> </a> <div class="help-header-3">Conjuntos</div>
+<p>Los conjuntos son colecciones din&aacute;micas de propiedades. Puede a&ntilde;adir o borrar elementos del conjunto.</p>
+<p>Si desea a&ntilde;adir un elemento a un conjunto: <ol><li>Haga clic en el bot&oacute;n <b>Nuevo</b>. </li>
+ <li>Un cuadro de di&aacute;logo permite escribir el nombre del nuevo elemento. El elemento se a&ntilde;ade y la ventana principal se actualiza.</li>
+ <li>El nuevo elemento se puede editar en la ventana principal.</li>
+</ol>
+<p>Si desea borrar un elemento de un conjunto, selecci&oacute;nelo y haga clic en el bot&oacute;n <b>Borrar</B>.</p>
+<p>Tenga en cuenta que los conjuntos pueden contener otros conjuntos representados como v&iacute;nculos. Si el usuario hace clic en el v&iacute;nculo llegar&aacute; al conjunto, desde el cual podr&aacute; editar &eacute;ste. </p><a name="policysets"> </a> <div class="help-header-2">Tabla de los grupos de normas</div>
+<p>La p&aacute;gina Grupos de normas permite a&ntilde;adir y suprimir grupos de normas en la entidad seleccionada.</p>
+<p>Si desea a&ntilde;adir un grupo de normas que aparezca en la lista <b>Disponible</b> en el lado izquierdo:</p>
+<ol>
+ <li>Seleccione el grupo de normas de la lista.</li>
+ <li>Haga clic en el bot&oacute;n <b>Agregar</b> para a&ntilde;adir el grupo de normas seleccionadas a la lista <b>Seleccionados</B>.</li>
+ <li>Haga clic en <b>Guardar</b> para almacenar la nueva asignaci&oacute;n. </LI>
+</ol><a name="caentities"> </a> <div class="help-header-2">Ficha Asignados</div>
+<p>Si se selecciona un grupo de normas en el Dep&oacute;sito de normas del panel de navegaci&oacute;n, el panel de contenidos contendr&aacute; la p&aacute;gina <b>Asignados</b>. en la cual se enumeran todas las entidades a las que se asigna el grupo de normas seleccionadas.</p>
+<p>Las acciones que se pueden efectuar en la p&aacute;gina Asignados son: <ul><li><b>Borrar</B> interrumpe la asociaci&oacute;n que existe entre las entidades seleccionadas y el grupo de normas seleccionadas en el panel de navegaci&oacute;n. </li>
+ <li>Si se hace clic en una entidad en la columna "Nombre" se actualiza el panel de navegaci&oacute;n, de manera que la entidad sobre la que se ha hecho clic es la entidad del panel de navegaci&oacute;n con el fondo azul. </li>
+</ul>
+</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> Volver al principio</a> </div><a name="roles"> </a> <div class="help-header-2">Ficha Roles</div>
+<p>Si se selecciona una entidad del tipo "Usuario" en el panel de navegaci&oacute;n y ese usuario es miembro de al menos un rol, el panel de contenidos incluir&aacute; la p&aacute;gina <b>Roles</B> en la cual se enumeran todos los roles de los que es miembro el usuario seleccionado.<b></B></p>
+<p>Esta p&aacute;gina tiene dos columnas, "Nombre" y "Ruta". "Nombre" contiene los nombres de los roles y "Ruta", la ruta absoluta al rol. </p><a name="users"> </a> <div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> Volver al principio</a> </div><a name="reporting"> </a> <div class="help-header-1">Informe</div>
+<p>Un informe es una visualizaci&oacute;n de s&oacute;lo lectura de todos los valores de configuraci&oacute;n que contienen datos. Un informe se genera al hacer clic en el bot&oacute;n <b>Crear informe</B>. Este bot&oacute;n abre el cuadro de di&aacute;logo Configurar un informe.</p>
+<p>En este cuadro se permite personalizar: <ul><li>Qu&eacute; &aacute;rbol (de organizaci&oacute;n o de dominio) se debe tener en cuenta (<b>Usar para informe</B>) </li>
+ <li>Qu&eacute; columnas se deben mostrar en el informe generado (se pueden desactivar la <b>Ruta de estado</b> y la <b>Descripci&oacute;n</B>) </li>
+</ul>
+<p>Despu&eacute;s de la personalizaci&oacute;n, si se hace clic en el informe se abrir&aacute; una visualizaci&oacute;n de s&oacute;lo lectura de los datos seleccionados.</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> Volver al principio</a></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/webconsole/html/es/helpNav.html b/webconsole/html/es/helpNav.html
new file mode 100644
index 0000000..903123b
--- /dev/null
+++ b/webconsole/html/es/helpNav.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+ <title>Administrador de APOC - Contenido de la ayuda </title>
+ <meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><!-- Empty script so IE5.0 Windows will draw table and button borders --><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"></script> </HEAD>
+ <BODY>
+ <table border="0">
+ <tr>
+ <td><div class="help-header-3"><span class="help-header-3">Contenido</span></div>
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#concepts" target="contentFrame">Introducci&oacute;n y conceptos</a> </li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#dataStructures" target="contentFrame">Estructuras de datos</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#SecDataManagement" target="contentFrame">Seguridad y administraci&oacute;n de datos</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#GenConfigSettings" target="contentFrame">Creaci&oacute;n de los valores de configuraci&oacute;n</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#BCAssociation" target="contentFrame">Asociaci&oacute;n</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#BCPolicyGroups" target="contentFrame">Grupos de normas</A></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#ui" target="contentFrame">Dise&ntilde;o y comportamiento</a> </li>
+ <li><a class="help-toc-link" href="helpContent.html#login" target="contentFrame">Iniciar sesi&oacute;n</a> </li>
+ <li><a class="help-toc-link" href="helpContent.html#masthead" target="contentFrame">Panel de cabecera</a> </li>
+ <li><a class="help-toc-link" href="helpContent.html#navigation" target="contentFrame">Panel de navegaci&oacute;n</a></li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#entities" target="contentFrame">Ficha Usuarios</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#parpath" target="contentFrame">Ruta de relaci&oacute;n</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#navtable" target="contentFrame">Tabla de navegaci&oacute;n</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#adfilter" target="contentFrame">Filtro avanzado</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#search" target="contentFrame">Buscar</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#hoststab" target="contentFrame">Ficha Sistemas</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#domtree" target="contentFrame">&Aacute;rbol del dominio</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#actionbar" target="contentFrame">Barra de acciones</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#adfilterhosts" target="contentFrame">Filtro avanzado</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#searchhosts" target="contentFrame">Buscar</a></li>
+ </UL>
+ <li><a class="help-toc-link" href="helpContent.html#psptab" target="contentFrame">Dep&oacute;sitos de normas</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#psptable" target="contentFrame">Tabla del grupo de normas</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#pspactions" target="contentFrame">Barra de acciones del grupo de normas</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#psppriorities" target="contentFrame">Prioridades del grupo de normas</a></li>
+ </ul>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#content" target="contentFrame">Panel de contenidos</a> </li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#policies" target="contentFrame">Ficha Normas</a></li>
+ <ul type="circle"><li><a class="help-toc-link" href="helpContent.html#caparpath" target="contentFrame">Ruta de relaci&oacute;n</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#subgroupstable" target="contentFrame">Tabla de subgrupos</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#capolicies" target="contentFrame">Normas</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#casets" target="contentFrame">Restablecer</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#policysets" target="contentFrame">Tabla de los grupos de normas</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#caentities" target="contentFrame">Ficha Asignados</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#roles" target="contentFrame">Ficha Roles</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#reporting" target="contentFrame">Informe</a> </li>
+ </ul>
+ </td>
+ </tr>
+ </table>
+ </BODY>
+</HTML> \ No newline at end of file
diff --git a/webconsole/html/es/helpToolbar.html b/webconsole/html/es/helpToolbar.html
new file mode 100644
index 0000000..4622c1f
--- /dev/null
+++ b/webconsole/html/es/helpToolbar.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+ <title>APOC Manager: Barra de herramientas de la ayuda</title>
+ <meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+
+ </HEAD>
+ <BODY>
+ <table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><img src="/apoc/images/dot.gif" width="1" height="15" alt=""/></td>
+ <td align="right" nowrap="nowrap" valign="bottom"><div
+class="TtlBtnDiv">
+ <input name="Masthead.CloseButton" type="submit" class="Btn1" value="Cerrar"
+title="Click to Close the Help Window" onclick="javascript: parent.parent.close();
+return false;" onmouseover="javascript: if (this.disabled==0)
+this.className='Btn1Hov'" onmouseout="javascript: if (this.disabled==0) this.className='Btn1'"
+on blur="javascript: if (this.disabled==0) this.className='Btn1'"
+onfocus="javascript: if (this.disabled==0) this.className='Btn1Hov'" />
+ </div></td>
+ </tr>
+ </TABLE>
+</body>
diff --git a/webconsole/html/fr/Makefile.am b/webconsole/html/fr/Makefile.am
new file mode 100644
index 0000000..38754cb
--- /dev/null
+++ b/webconsole/html/fr/Makefile.am
@@ -0,0 +1,12 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = help
+
+frdir = ${htmldir}/fr
+fr_DATA =help.html \
+ helpNav.html \
+ helpToolbar.html \
+ version.txt \
+ helpContent.html \
+ versionInfo.shtml \ No newline at end of file
diff --git a/webconsole/html/fr/help.html b/webconsole/html/fr/help.html
new file mode 100644
index 0000000..3e5c6c4
--- /dev/null
+++ b/webconsole/html/fr/help.html
@@ -0,0 +1,74 @@
+<html>
+ <head>
+ <title>Help - StarOffice Configuration Manager</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ </head>
+<script language="JavaScript">
+<!--
+
+var sPkgName = " "
+var sAnchorName = " "
+var sAnchorCon = " "
+var sAnchorNav = " "
+var sHelpLocale = " "
+if (window.anchor != null) {
+ sAnchorName = anchor;
+}
+if (window.top.opener.top.content.document.ContentAreaForm!=null) {
+ sAnchorName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.Anchor'].value;
+ sPkgName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.PkgName'].value;
+ sHelpLocale =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.HelpLocale'].value;
+ if (sHelpLocale=="nolocalizedhelp")
+ sHelpLocale="_en_US";
+}
+if (sAnchorName=="hoststab" || sAnchorName=="psptab" || sAnchorName=="entities" ||
+sAnchorName=="policies" || sAnchorName=="policysets" || sAnchorName=="caentities" ||
+sAnchorName=="roles" || sAnchorName=="")
+{
+ document.write('<frameset cols="30%, 70%" border="1" framespacing="0"> ');
+
+ document.write(' <frame name="navFrame"');
+ document.write(' title="Help Navigation Area"');
+ document.write(' id="nav"');
+ document.write(' src="helpNav.html">');
+
+ document.write(' <frameset rows="10%, 90%" border="1" framespacing="0">');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="contentFrame"');
+ document.write(' title="Help Content Area"');
+ document.write(' id="content"');
+ document.write(' src="helpContent.html#'+sAnchorName+'">');
+ document.write(' <\/frameset>');
+ document.write('<\/frameset>');
+
+} else {
+ // The correct package name is not available yet
+ document.write('<frameset rows="10%, 90%" border="0" framespacing="0"> ');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="templateContent"');
+ document.write(' title="Help Template"');
+ document.write(' id="temphelp"');
+ document.write(' src="../../packages/'+sPkgName+'/web/'+sAnchorName+sHelpLocale+'.html">');
+ document.write('<\/frameset>');
+}
+
+
+//-->
+
+</script>
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ </body>
+ </noframes>
+</html>
diff --git a/webconsole/html/fr/help/JavaHelpSearch/DOCS b/webconsole/html/fr/help/JavaHelpSearch/DOCS
new file mode 100644
index 0000000..65dc23f
--- /dev/null
+++ b/webconsole/html/fr/help/JavaHelpSearch/DOCS
Binary files differ
diff --git a/webconsole/html/fr/help/JavaHelpSearch/DOCS.TAB b/webconsole/html/fr/help/JavaHelpSearch/DOCS.TAB
new file mode 100644
index 0000000..4f5b69b
--- /dev/null
+++ b/webconsole/html/fr/help/JavaHelpSearch/DOCS.TAB
@@ -0,0 +1,7 @@
+eÿÿÿÿÿÿÿý×ÿÿÿÿÿÿÿÿÿ÷_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý×ÿÿÿÝÿÿÿÿÿÿÿÿÿÿÿÝÿÿÿÿÿÿÿÿÿÿÝ}×ÿÿÿÿÿÿuÿÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝ}×ÿÝ÷V_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuÿÿýÕ×ÿÿÿÿ÷_ÿÿÿÿÿÿÿÿý×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝÿýõÿÝÝwW_ÿÝÿÿÿÿ8ŸÿÿÿÿÿÝM'÷_ÿÿÿÿÿÿÿÿÿÝÿÿ@k7* OÇ”Wa±!Á!¡Q´B£F†DŒ9
+(át¹ÆÌÆ7ü¡‘#(£òû¨úA‘*0¡“J0`Jã
+8£”¨Ö.î¨ÒŒ(×ËŒÊ9 £2ŒŠê0ªªºêê»8¼`HÂÎÕ†E
+,è³'H£"¬Á#¢£
+4¨È£–§.1†Í,ËŠ4»8£p‘\`RšÊ9J0³2.ë0ª£rÍ/4³(±¡L¯0³bÌ/Ì.0¿*6,È»Ì*ªª2.¨Ò³
+8ª8¨È¯Ì‹2.ª£J«ûºº4¸Âú£rŒ/ŽH£ ªª£(ªº£J8ª¨Âè£
+ªªª®ªªª(ü³¯,Âó‹ÿ0¿ÿÿ7/0¿ÿÿÿüÂÌ/Ì/ÿó ÿÿÿÿÿÿÿÿÿÌ/ÿÿÿÿÿÿÿÿÿó 2/ó 0¿ÿ0¿ÿÿÿ2‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÂÿÿÿÿÿÿÿÿØ \ No newline at end of file
diff --git a/webconsole/html/fr/help/JavaHelpSearch/Makefile.am b/webconsole/html/fr/help/JavaHelpSearch/Makefile.am
new file mode 100644
index 0000000..daf6f3c
--- /dev/null
+++ b/webconsole/html/fr/help/JavaHelpSearch/Makefile.am
@@ -0,0 +1,11 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+
+JavaHelpSearchdir = ${htmldir}/fr/help/JavaHelpSearch
+JavaHelpSearch_DATA =OFFSETS \
+ DOCS.TAB \
+ SCHEMA \
+ TMAP \
+ POSITIONS \
+ DOCS \ No newline at end of file
diff --git a/webconsole/html/fr/help/JavaHelpSearch/OFFSETS b/webconsole/html/fr/help/JavaHelpSearch/OFFSETS
new file mode 100644
index 0000000..609c09e
--- /dev/null
+++ b/webconsole/html/fr/help/JavaHelpSearch/OFFSETS
@@ -0,0 +1 @@
+…Ž³´’tÁÚLªc2ˆù7iù::h–J¡Þ({’gkO@€UoOa.3;*mÝaLD †àh²6ÔÝq±pDÂ’Þ/ÙË~øc1XÚúQ«[sq*+ÆÎ7lÑ€ñîÔºjwùapÁ÷±yq Ü}0£ËXúvïÞ0¹â"¼1†*Œ \ No newline at end of file
diff --git a/webconsole/html/fr/help/JavaHelpSearch/POSITIONS b/webconsole/html/fr/help/JavaHelpSearch/POSITIONS
new file mode 100644
index 0000000..cf7f41d
--- /dev/null
+++ b/webconsole/html/fr/help/JavaHelpSearch/POSITIONS
Binary files differ
diff --git a/webconsole/html/fr/help/JavaHelpSearch/SCHEMA b/webconsole/html/fr/help/JavaHelpSearch/SCHEMA
new file mode 100644
index 0000000..1c4c24b
--- /dev/null
+++ b/webconsole/html/fr/help/JavaHelpSearch/SCHEMA
@@ -0,0 +1,2 @@
+JavaSearch 1.0
+TMAP bs=2048 rt=1 fl=-1 id1=853 id2=1
diff --git a/webconsole/html/fr/help/JavaHelpSearch/TMAP b/webconsole/html/fr/help/JavaHelpSearch/TMAP
new file mode 100644
index 0000000..27612d1
--- /dev/null
+++ b/webconsole/html/fr/help/JavaHelpSearch/TMAP
Binary files differ
diff --git a/webconsole/html/fr/help/Makefile.am b/webconsole/html/fr/help/Makefile.am
new file mode 100644
index 0000000..3b82011
--- /dev/null
+++ b/webconsole/html/fr/help/Makefile.am
@@ -0,0 +1,55 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = JavaHelpSearch
+
+helpdir = ${htmldir}/fr/help
+help_DATA =gbgcg.html \
+ gbgoz.html \
+ gbgpt.html \
+ index.xml \
+ gbgqa.html \
+ gbgpm.html \
+ gbgqe.html \
+ gbgpp.html \
+ gbgcr.html \
+ p1.html \
+ gbgqt.html \
+ gbgpa.html \
+ gbgqm.html \
+ gbgpe.html \
+ gbgda.html \
+ background.html \
+ gbgqh.html \
+ gbgqu.html \
+ map.jhm \
+ gbgcn.html \
+ toc.xml \
+ gbgow.html \
+ gbzci.html \
+ gbgpu.html \
+ gbgdh.html \
+ gbgqj.html \
+ gbgpb.html \
+ app.hs \
+ gbzbc.html \
+ gbgou.html \
+ gbgpj.html \
+ gbgcd.html \
+ gbgoy.html \
+ gbgkr.html \
+ gbgpw.html \
+ gbgpn.html \
+ gbgqf.html \
+ gbgeb.html \
+ gbgps.html \
+ gbgce.html \
+ empty.html \
+ gbgca.html \
+ gbgni.html \
+ gbgec.html \
+ gbgpr.html \
+ gbgcm.html \
+ gbgot.html \
+ copyright.html \
+ gbgdc.html \ No newline at end of file
diff --git a/webconsole/html/fr/help/app.hs b/webconsole/html/fr/help/app.hs
new file mode 100644
index 0000000..fd3865a
--- /dev/null
+++ b/webconsole/html/fr/help/app.hs
@@ -0,0 +1,29 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE helpset PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN" "helpset_1_0.dtd">
+
+<helpset version="1.0" xml:lang="fr">
+<title>about_vman</title>
+<maps>
+ <homeID></homeID>
+ <mapref location="map.jhm"/>
+</maps>
+<view>
+ <name>TOC</name>
+ <label>Contenu</label>
+ <type>javax.help.TOCView</type>
+ <data>toc.xml</data>
+</view>
+<view>
+ <name>Index</name>
+ <label>Indice</label>
+ <type>javax.help.IndexView</type>
+ <data>index.xml</data>
+</view>
+<view>
+ <name>Search</name>
+ <label>Recherche</label>
+ <type>javax.help.SearchView</type>
+ <data engine="com.sun.java.help.search.DefaultSearchEngine">JavaHelpSearch</data>
+</view>
+</helpset>
diff --git a/webconsole/html/fr/help/background.html b/webconsole/html/fr/help/background.html
new file mode 100644
index 0000000..05b522d
--- /dev/null
+++ b/webconsole/html/fr/help/background.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+
+
+<title>About the Configuration Manager</title>
+<script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="BACKGROUND"></A><h2>Configuration Manager Help</h2>
+
+<p>Welcome to the Sun Java&#8482; Desktop System Configuration Manager Help pages.</p>
+
+<p>Using the Configuration Manager, administrators can assign
+profiles to individual users or organisational units stored in a central
+configuration storage such as an existing corporate LDAP server. The
+configuration settings defined in these profiles are then applied on behalf of
+the users to the applications running on the Sun Java Desktop System such as the
+Gnome desktop, Mozilla, StarOffice and Gnome applications like Evolution.</p>
+
+<p>To get help for a specific part of the Configuration Manager,
+click on one of the links on the left.</p>
+
+</body>
+</html>
diff --git a/webconsole/html/fr/help/copyright.html b/webconsole/html/fr/help/copyright.html
new file mode 100644
index 0000000..2a2d36d
--- /dev/null
+++ b/webconsole/html/fr/help/copyright.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<p>Part No: 819-3617</p><p></p>Sun Microsystems, Inc. <p><br>4150 Network Circle<br>Santa Clara, CA 95054 <br>U.S.A.</p><p>Copyright 2006, Sun Microsystems, Inc.</p><p>Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual
+property rights may include one or more U.S. patents or pending patent applications in the U.S. and in other countries.</p>
+<p>U.S. Government Rights &#8211; Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements.</p>
+<p>This distribution may include materials developed by third parties.</p>
+<p>Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively
+licensed through X/Open Company, Ltd.</p>
+<p>Sun, Sun Microsystems, the Sun logo,
+the Solaris logo, the Java Coffee Cup logo, docs.sun.com,
+Java, and
+Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S.
+and other countries. All SPARC trademarks are used under license and are trademarks
+or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+Products bearing SPARC trademarks are based upon an architecture developed by Sun
+Microsystems, Inc. </p>
+<p>The OPEN LOOK and Sun&#153; Graphical User Interface was developed by Sun Microsystems, Inc. for
+its users and licensees. Sun acknowledges the pioneering efforts of Xerox in researching
+and developing the concept of visual or graphical user interfaces for the computer
+industry. Sun holds a non-exclusive license from Xerox to the Xerox Graphical User
+Interface, which license also covers Sun's licensees who implement OPEN LOOK GUIs
+and otherwise comply with Sun's written license agreements.</p>
+<p>Products covered by and information contained in this publication are controlled by U.S. Export Control
+laws and may be subject to the export or import laws in other countries. Nuclear,
+missile, chemical or biological weapons or nuclear maritime end uses or end users,
+whether direct or indirect, are strictly prohibited. Export or reexport to countries
+subject to U.S. embargo or to entities identified on U.S. export exclusion lists,
+including, but not limited to, the denied persons and specially designated nationals
+lists is strictly prohibited.</p>
+<p>DOCUMENTATION IS PROVIDED &#8220;AS IS&#8221; AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
+IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT,
+ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.</p>
+<p></p>
+<p>Sun Microsystems, Inc. d&#233;tient les droits de propri&#233;t&#233;
+intellectuelle relatifs &#224; la technologie incorpor&#233;e dans
+le produit qui est
+d&#233;crit dans ce document. En particulier, et ce sans limitation,
+ces droits de
+propri&#233;t&#233; intellectuelle peuvent inclure un ou plusieurs
+brevets am&#233;ricains ou des
+applications de brevet en attente aux Etats-Unis et dans d'autres
+pays.</p>
+<p>Cette distribution peut comprendre des composants
+d&#233;velopp&#233;s par des tierces personnes.</p>
+<p>Certaines composants de ce produit peuvent &#234;tre
+d&#233;riv&#233;es du logiciel Berkeley BSD, licenci&#233;s par
+l'Universit&#233; de
+Californie. UNIX est une marque d&#233;pos&#233;e aux Etats-Unis et
+dans d'autres pays; elle est
+licenci&#233;e exclusivement par X/Open Company, Ltd. </p>
+<p>Sun, Sun Microsystems, le logo Sun, le logo Solaris, le logo Java
+Coffee Cup, docs.sun.com,
+ Java et Solaris sont des
+marques de fabrique ou des marques d&#233;pos&#233;es
+de Sun Microsystems, Inc. aux Etats-Unis et dans d'autres pays. Toutes
+les marques
+SPARC sont utilis&#233;es sous licence et sont des marques de fabrique
+ou des
+marques d&#233;pos&#233;es de SPARC International, Inc. aux
+Etats-Unis et dans
+d'autres pays. Les produits portant les marques SPARC sont bas&#233;s
+sur une
+architecture d&#233;velopp&#233;e par Sun Microsystems, Inc.</p>
+<p>L'interface d'utilisation graphique OPEN LOOK et
+Sun&#153; a &#233;t&#233;
+d&#233;velopp&#233;e par Sun Microsystems, Inc. pour ses
+utilisateurs et
+licenci&#233;s. Sun reconna&#238;t les efforts de pionniers de Xerox
+pour la
+recherche et le d&#233;veloppement du concept des interfaces
+d'utilisation
+visuelle ou graphique pour l'industrie de l'informatique. Sun
+d&#233;tient une licence non exclusive de Xerox sur
+l'interface d'utilisation graphique Xerox, cette licence couvrant
+&#233;galement les
+licenci&#233;s de Sun qui mettent en place l'interface d'utilisation
+graphique OPEN LOOK et
+qui, en outre, se conforment aux licences &#233;crites de Sun.</p>
+<p>Les produits qui font l'objet de cette publication et les
+informations qu'il contient sont r&#233;gis par la legislation
+am&#233;ricaine en mati&#232;re de contr&#244;le des exportations et peuvent &#234;tre soumis au droit
+d'autres pays dans le domaine des exportations et importations. Les utilisations finales, ou
+utilisateurs finaux, pour des armes nucl&#233;aires, des missiles, des armes
+chimiques ou biologiques ou pour le nucl&#233;aire maritime, directement ou
+indirectement, sont strictement interdites. Les exportations ou r&#233;exportations vers
+des pays sous embargo des Etats-Unis, ou vers des entit&#233;s figurant sur les
+listes d'exclusion d'exportation am&#233;ricaines, y compris, mais de mani&#232;re non
+exclusive, la liste de personnes qui font objet d'un ordre de ne pas participer, d'une fa&#231;on
+directe ou
+indirecte, aux exportations des produits ou des services qui sont
+r&#233;gis par la
+legislation am&#233;ricaine en mati&#232;re de contr&#244;le des
+exportations et la
+liste de ressortissants sp&#233;cifiquement design&#233;s, sont
+rigoureusement interdites.</p>
+<p>LA DOCUMENTATION EST FOURNIE "EN L'ETAT" ET TOUTES AUTRES CONDITIONS,
+DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENT EXCLUES,
+DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT
+TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A L'APTITUDE A UNE
+UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFACON. </p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/fr/help/empty.html b/webconsole/html/fr/help/empty.html
new file mode 100644
index 0000000..62359b4
--- /dev/null
+++ b/webconsole/html/fr/help/empty.html
@@ -0,0 +1,51 @@
+
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+<title>En construction
+</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+
+<meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="BACKGROUND"></A><h2>Rubrique non disponible &agrave; l'heure actuelle</h2>
+<p>La rubrique d'aide s&eacute;lectionn&eacute;e n'est pas encore disponible. Veuillez nous en excuser.</p>
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgca.html b/webconsole/html/fr/help/gbgca.html
new file mode 100644
index 0000000..4d5ebd8
--- /dev/null
+++ b/webconsole/html/fr/help/gbgca.html
@@ -0,0 +1,11 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>1.  Aide de Sun Desktop Manager 1.0.1 </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgca"></A><b>Chapitre 1</b><h1> Aide de Sun Desktop Manager 1.0.1</h1>
+<p>Bienvenue dans l'aide de Sun Desktop Manager. Pour obtenir de l'aide sur une partie sp&eacute;cifique de Sun Desktop Manager, cliquez sur l'un des liens situ&eacute;s &agrave; gauche. Cette aide en ligne contient des informations sur les fonctionnalit&eacute;s et l'utilisation de Sun Desktop Manager.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgcd.html b/webconsole/html/fr/help/gbgcd.html
new file mode 100644
index 0000000..33b096e
--- /dev/null
+++ b/webconsole/html/fr/help/gbgcd.html
@@ -0,0 +1,25 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Profils &#8212; Tous </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcd"></A><h2>Profils &#8212; Tous</h2>
+<p>La page Profils &#8212; Tous affiche tous les profils disponibles, y compris ceux qui ne sont attribu&eacute;s &agrave; aucun &eacute;l&eacute;ment. Les profils sont r&eacute;pertori&eacute;s dans deux tableaux, l'un repr&eacute;sentant les profils du domaine, l'autre les profils de l'organisation.</p>
+<p>Vous pouvez r&eacute;aliser les op&eacute;rations suivantes dans ces tableaux :</p>
+<ul><li><p><A HREF="gbgcr.html#gbgcr">Cr&eacute;ation d'un profil</A></p>
+</li>
+<li><p><A HREF="gbgpe.html#gbgpe">Suppression d'un profil</A></p>
+</li>
+<li><p><A HREF="gbgpu.html#gbgpu">Attribution d'un nouveau nom &agrave; un profil</A></p>
+</li>
+<li><p><A HREF="gbgow.html#gbgow">Copie et d&eacute;placement d'un profil</A></p>
+</li>
+<li><p><A HREF="gbgpj.html#gbgpj">Importation de profils</A></p>
+</li>
+<li><p><A HREF="gbgou.html#gbgou">Exportation de profils</A></p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgce.html b/webconsole/html/fr/help/gbgce.html
new file mode 100644
index 0000000..6c7d074
--- /dev/null
+++ b/webconsole/html/fr/help/gbgce.html
@@ -0,0 +1,25 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title> Introduction </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgce"></A><h2> Introduction</h2>
+<p>Desktop Manager est un outil permettant de g&eacute;rer de fa&ccedil;on centralis&eacute;e les param&egrave;tres de configuration des applications de bureau &agrave; l'aide de <i>profils</i>. Desktop Manager dispose de fonctions d'affichage et d'assignation de profils pour les divers &eacute;l&eacute;ments de la hi&eacute;rarchie d'une organisation ou d'un domaine. D&egrave;s l'ouverture d'une session ou d'une application g&eacute;r&eacute;e par Desktop Manager, le syst&egrave;me applique des profils &agrave; l'utilisateur. Tous les profils correspondant &agrave; l'utilisateur ou &agrave; l'h&ocirc;te qui ex&eacute;cute l'application sont extraits et leurs param&egrave;tres sont int&eacute;gr&eacute;s aux param&egrave;tres locaux par d&eacute;faut de l'application, ainsi qu'aux param&egrave;tres personnalis&eacute;s de l'utilisateur. Les profils peuvent &ecirc;tre utilis&eacute;s pour fournir &agrave; l'application un ensemble de param&egrave;tres par d&eacute;faut g&eacute;r&eacute;s de mani&egrave;re centralis&eacute;e ou pour appliquer des param&egrave;tres obligatoires.</p>
+<p>Termes &agrave; conna&icirc;tre :</p>
+<ul><li><p><i>R&eacute;f&eacute;rentiel de configuration</i> : conteneur des arborescences de l'organisation et du domaine dans lesquelles sont stock&eacute;s les profils.</p>
+</li>
+<li><p><i>Domaine</i> : &eacute;l&eacute;ment de l'arborescence du domaine. Il s'agit d'un domaine de r&eacute;seau. Cet &eacute;l&eacute;ment peut contenir plusieurs domaines et h&ocirc;tes.</p>
+</li>
+<li><p><i>&Eacute;l&eacute;ment</i> : objet logique auquel les donn&eacute;es de configuration peuvent &ecirc;tre assign&eacute;es. Les utilisateurs, les r&ocirc;les/groupes et les organisations sont des exemples d'entit&eacute;s reconnues par Desktop Manager.</p>
+</li>
+<li><p><i>LDAP</i> : Lightweight Directory Access Protocol. LDAP est un protocole de service d'annuaire ex&eacute;cut&eacute; via TCP/IP. Les d&eacute;tails de LDAP sont d&eacute;finis dans la RFC 1777 'The Lightweight Directory Access Protocol'.</p>
+</li>
+<li><p><i>Organisation</i> : &eacute;l&eacute;ment de l'arborescence de l'organisation. Il s'agit d'une organisation ou d'une sous-organisation telle qu'un centre d'appels. Cet &eacute;l&eacute;ment peut contenir des organisations, des utilisateurs ou des r&ocirc;les.</p>
+</li>
+<li><p><i>Profil</i> : conteneur nomm&eacute; regroupant des param&egrave;tres de configuration. Il est stock&eacute; dans un r&eacute;f&eacute;rentiel de configuration et peut &ecirc;tre assign&eacute; &agrave; des &eacute;l&eacute;ments.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgcg.html b/webconsole/html/fr/help/gbgcg.html
new file mode 100644
index 0000000..337138e
--- /dev/null
+++ b/webconsole/html/fr/help/gbgcg.html
@@ -0,0 +1,13 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Propri&eacute;t&eacute;s g&eacute;n&eacute;rales </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcg"></A><h3>Propri&eacute;t&eacute;s g&eacute;n&eacute;rales</h3>
+<p>La page Propri&eacute;t&eacute;s g&eacute;n&eacute;rales permet de saisir des informations sp&eacute;cifiques &agrave; un profil. Cette page constitue la vue par d&eacute;faut de la fen&ecirc;tre de l'&eacute;diteur de profil. </p>
+<p><hr size="1" noshade><p><b>Remarque &#8211; </b>L'&eacute;diteur de profil s'affiche lorsque l'utilisateur cr&eacute;e un profil &agrave; l'aide du bouton Nouveau.</p>
+<hr size="1" noshade></p><p>Voir <A HREF="gbgpb.html#gbgpb">Sp&eacute;cification des propri&eacute;t&eacute;s g&eacute;n&eacute;rales d'un profil</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgcm.html b/webconsole/html/fr/help/gbgcm.html
new file mode 100644
index 0000000..a572e9e
--- /dev/null
+++ b/webconsole/html/fr/help/gbgcm.html
@@ -0,0 +1,14 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Zone de navigation </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcm"></A><h3>Zone de navigation</h3>
+<p>L'arborescence de navigation permet de s&eacute;lectionner des &eacute;l&eacute;ments des arborescences de l'organisation et du domaine. Cette arborescence correspond &agrave; la hi&eacute;rarchie des &eacute;l&eacute;ments. Si un n&oelig;ud poss&egrave;de des sous-n&oelig;uds, un triangle bleu s'affiche &agrave; gauche de son nom. Pour afficher les sous-n&oelig;uds, cliquez sur ce triangle.</p>
+<p><hr size="1" noshade><p><b>Remarque &#8211; </b>Par d&eacute;faut, les n&oelig;uds d&eacute;velopp&eacute;s ne peuvent pas afficher plus de 10 sous-n&oelig;uds. Sur la 11e ligne du n&oelig;ud d&eacute;velopp&eacute;, les sous-n&oelig;uds ne pouvant &ecirc;tre affich&eacute;s sont signal&eacute;s de la mani&egrave;re suivante : "... certains &eacute;l&eacute;ments non affich&eacute;s". Pour lancer la fonction Rechercher, cliquez sur le n&oelig;ud.</p>
+<hr size="1" noshade></p><p>Pour s&eacute;lectionner un &eacute;l&eacute;ment, parcourez l'arborescence et cliquez sur l'&eacute;l&eacute;ment de votre choix. Une fois s&eacute;lectionn&eacute;, l'&eacute;l&eacute;ment est mis en surbrillance et son contenu s'affiche avec les profils assign&eacute;s et h&eacute;rit&eacute;s.</p>
+<p>La zone de navigation permet &eacute;galement de rechercher des &eacute;l&eacute;ments dans les hi&eacute;rarchies d'arborescence de fa&ccedil;on r&eacute;cursive (voir <A HREF="gbgpa.html#gbgpa">Recherche d'un &eacute;l&eacute;ment</A>) ou non (voir <A HREF="gbgqt.html#gbgqt">Utilisation de la fonction Rechercher</A>). Pour ouvrir la fen&ecirc;tre de recherche, cliquez sur Recherche.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgcn.html b/webconsole/html/fr/help/gbgcn.html
new file mode 100644
index 0000000..ee690ec
--- /dev/null
+++ b/webconsole/html/fr/help/gbgcn.html
@@ -0,0 +1,28 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Cr&eacute;ation d'un r&eacute;f&eacute;rentiel de configuration </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcn"></A><h4>Cr&eacute;ation d'un r&eacute;f&eacute;rentiel de configuration</h4>
+<p>Un r&eacute;f&eacute;rentiel de configuration est un emplacement dans lequel sont stock&eacute;es les informations de hi&eacute;rarchie organisationnelle ainsi que celles des profils et des assignations de chaque &eacute;l&eacute;ment.</p>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Dans le tableau R&eacute;f&eacute;rentiels de configuration, cliquez sur Nouveau.</b></p><p>L'assistant Nouveau r&eacute;f&eacute;rentiel de configuration s'ouvre. Cet assistant sert &agrave; cr&eacute;er un r&eacute;f&eacute;rentiel de configuration pour Desktop Manager.</p>
+</li>
+<li><p><b>Dans le champ Nom du r&eacute;f&eacute;rentiel, saisissez un nom pour le nouveau r&eacute;f&eacute;rentiel de configuration, puis cliquez sur Suivant.</b></p></li>
+<li><p><b>Dans la liste des types de r&eacute;f&eacute;rentiel, s&eacute;lectionnez un type.</b> </p><p>L'assistant peut configurer trois types de r&eacute;f&eacute;rentiel :</p>
+<ul><li><p>LDAP : le LDAP fournit les informations sur la hi&eacute;rarchie et les donn&eacute;es sont stock&eacute;es sur ce serveur.</p>
+</li>
+<li><p>Fichier : un fichier fournit les informations sur la hi&eacute;rarchie et les donn&eacute;es sont stock&eacute;es dans des r&eacute;pertoires et des fichiers.</p>
+</li>
+<li><p>Hybride : le LDAP fournit les informations sur la hi&eacute;rarchie, mais les donn&eacute;es sont stock&eacute;es dans des r&eacute;pertoires et des fichiers.</p>
+</li>
+</ul>
+</li>
+<li><p><b>Cliquez sur le bouton Suivant.</b></p></li>
+<li><p><b>Saisissez les d&eacute;tails du serveur LDAP &agrave; configurer pour ce r&eacute;f&eacute;rentiel.</b> </p><p>Le nom d'h&ocirc;te et le port sur lequel le serveur s'ex&eacute;cute sont requis. Vous pouvez &eacute;galement choisir de connecter ce serveur via SSL. </p>
+</li>
+<li><p><b>Les &eacute;tapes suivantes d&eacute;pendent des choix effectu&eacute;s pr&eacute;c&eacute;demment.</b> <b>Suivez les instructions fournies par l'assistant.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgcr.html b/webconsole/html/fr/help/gbgcr.html
new file mode 100644
index 0000000..ad3f7d4
--- /dev/null
+++ b/webconsole/html/fr/help/gbgcr.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Cr&eacute;ation d'un profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcr"></A><h3>Cr&eacute;ation d'un profil</h3>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Dans le tableau des profils du domaine ou de l'organisation, cliquez sur Nouveau.</b></p><p>L'assistant &Eacute;diteur de profil s'affiche. </p>
+</li>
+<li><p><b>Suivez les instructions fournies par cet assistant.</b></p><p>Pour plus d'informations sur la cr&eacute;ation d'un profil &agrave; l'aide de l'&eacute;diteur de profil, reportez-vous &agrave; la section <A HREF="gbgec.html#gbgec">&Eacute;diteur de profil</A> de l'aide en ligne.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgda.html b/webconsole/html/fr/help/gbgda.html
new file mode 100644
index 0000000..59816bf
--- /dev/null
+++ b/webconsole/html/fr/help/gbgda.html
@@ -0,0 +1,20 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>R&eacute;sum&eacute; des param&egrave;tres </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgda"></A><h3>R&eacute;sum&eacute; des param&egrave;tres</h3>
+<p>La vue R&eacute;sum&eacute; des param&egrave;tres, en lecture seule, affiche les param&egrave;tres de configuration contenant des donn&eacute;es relatives au profil s&eacute;lectionn&eacute;.</p>
+<p>La page R&eacute;sum&eacute; des param&egrave;tres contient le tableau du m&ecirc;me nom. Le tableau R&eacute;sum&eacute; des param&egrave;tres contient les donn&eacute;es relatives au profil actuel, group&eacute;es par cat&eacute;gories. Il est compos&eacute; des champs suivants :</p>
+<p></p>
+<ul><li><p>Nom : nom du param&egrave;tre ;</p>
+</li>
+<li><p>Valeur : valeur du param&egrave;tre ;</p>
+</li>
+<li><p>Statut : la colonne Statut contient des entr&eacute;es de type D&eacute;fini dans &lt;nomProfil>, o&ugrave; &lt;nomProfil> est un lien permettant de basculer l'&Eacute;diteur de profil vers la page Param&egrave;tres de configuration et d'acc&eacute;der &agrave; un param&egrave;tre particulier au sein de ce profil.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgdc.html b/webconsole/html/fr/help/gbgdc.html
new file mode 100644
index 0000000..87ba19d
--- /dev/null
+++ b/webconsole/html/fr/help/gbgdc.html
@@ -0,0 +1,12 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Profils &#8212; Vue de l'arborescence </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgdc"></A><h2>Profils &#8212; Vue de l'arborescence</h2>
+<p>La page Profils &#8212; Vue de l'arborescence affiche tous les profils disponibles actuellement assign&eacute;s &agrave; un &eacute;l&eacute;ment. &Agrave; gauche de la page se trouve la zone de navigation qui permet de rechercher des profils parmi les hi&eacute;rarchies d'arborescence. &Agrave; droite de la page se trouve la zone de contenu qui affiche les informations sur les profils s&eacute;lectionn&eacute;s dans la zone de navigation.</p>
+<p>Voir aussi : <A HREF="gbgcm.html#gbgcm">Zone de navigation</A> et <A HREF="gbgoy.html#gbgoy">Zone de contenu</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgdh.html b/webconsole/html/fr/help/gbgdh.html
new file mode 100644
index 0000000..31dfda3
--- /dev/null
+++ b/webconsole/html/fr/help/gbgdh.html
@@ -0,0 +1,19 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Options avanc&eacute;es </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgdh"></A><h3>Options avanc&eacute;es</h3>
+<p>La page Options avanc&eacute;es permet de sp&eacute;cifier les options avanc&eacute;es du profil actuel. Deux options principales sont disponibles sur cette page :</p>
+<ul><li><p>Applicable de : permet le d&eacute;placement du profil vers un autre emplacement de stockage dans l'arborescence de l'organisation ou du domaine. Ce changement d'emplacement modifie &eacute;galement le jeu d'&eacute;l&eacute;ments auquel le profil peut &ecirc;tre assign&eacute; ou appliqu&eacute;. En effet, un profil ne peut &ecirc;tre assign&eacute; qu'&agrave; l'&eacute;l&eacute;ment dans lequel il est stock&eacute; ou aux sous-&eacute;l&eacute;ments de celui-ci dans l'arborescence.</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>Attention &#8211; </b>Le param&egrave;tre Applicable de doit &ecirc;tre modifi&eacute; de fa&ccedil;on &agrave; respecter la r&egrave;gle mentionn&eacute;e ci-dessus. Par exemple, supposons que vous d&eacute;placez un profil vers le bas de l'arborescence et qu'une assignation relie le profil &agrave; un &eacute;l&eacute;ment situ&eacute; sous l'emplacement de stockage du profil. Apr&egrave;s le d&eacute;placement du profil, celui-ci doit &ecirc;tre reli&eacute; au m&ecirc;me &eacute;l&eacute;ment. Or, l'&eacute;l&eacute;ment est &agrave; pr&eacute;sent situ&eacute; au-dessus du profil. Cette action est donc annul&eacute;e et g&eacute;n&egrave;re un message d'avertissement.</p><hr size="1" noshade></li>
+<li><p>Ordre de fusion : sp&eacute;cifie l'ordre dans lequel les profils stock&eacute;s dans le m&ecirc;me &eacute;l&eacute;ment sont fusionn&eacute;s. </p>
+<p>La d&eacute;finition de l'ordre de fusion des profils est requise dans la mesure o&ugrave; plusieurs profils peuvent d'une part &ecirc;tre assign&eacute;s &agrave; un seul &eacute;l&eacute;ment et, d'autre part, d&eacute;finir le m&ecirc;me param&egrave;tre. Cela &eacute;vite les conflits tels que la d&eacute;finition d'un param&egrave;tre par plusieurs profils assign&eacute;s au m&ecirc;me &eacute;l&eacute;ment.</p>
+<p>L'ordre de fusion se base en priorit&eacute; sur l'emplacement de stockage. Le premier profil fusionn&eacute; est celui qui est stock&eacute; dans l'&eacute;l&eacute;ment situ&eacute; le plus pr&egrave;s de la racine de l'arborescence. Tout profil stock&eacute; &agrave; un emplacement plus &eacute;loign&eacute; de la racine est fusionn&eacute; apr&egrave;s. Lorsqu'un profil est fusionn&eacute;, ses param&egrave;tres &eacute;crasent ceux des profils pr&eacute;c&eacute;dents.</p>
+</li>
+</ul>
+<p>Voir <A HREF="gbgqu.html#gbgqu">Modification de l'emplacement du param&egrave;tre Applicable de</A>, <A HREF="gbgqe.html#gbgqe">Assignation &agrave; un profil</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgeb.html b/webconsole/html/fr/help/gbgeb.html
new file mode 100644
index 0000000..266b4fb
--- /dev/null
+++ b/webconsole/html/fr/help/gbgeb.html
@@ -0,0 +1,12 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Param&egrave;tres de configuration </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgeb"></A><h3>Param&egrave;tres de configuration</h3>
+<p>La page Param&egrave;tres de configuration permet d'afficher et d'&eacute;diter les param&egrave;tres de configuration stock&eacute;s dans le profil s&eacute;lectionn&eacute;.</p>
+<p>Voir <A HREF="gbgot.html#gbgot">Affichage et &eacute;dition des param&egrave;tres de configuration d'un profil</A>.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgec.html b/webconsole/html/fr/help/gbgec.html
new file mode 100644
index 0000000..c8ee4fe
--- /dev/null
+++ b/webconsole/html/fr/help/gbgec.html
@@ -0,0 +1,25 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>&Eacute;diteur de profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgec"></A><h2>&Eacute;diteur de profil</h2>
+<p>L'&eacute;diteur de profil sert &agrave; cr&eacute;er des profils et &agrave; &eacute;diter des profils existants. Il permet &eacute;galement d'afficher les options et param&egrave;tres actuels du profil s&eacute;lectionn&eacute;.</p>
+<p>Pour l'ouvrir, cliquez sur le nom d'un profil r&eacute;pertori&eacute; dans l'un des tableaux de la zone de contenu, sur la page Profils &#8212; Vue d'arborescence ou Profils &#8212; Tous.</p>
+<p><hr size="1" noshade><p><b>Astuce &#8211; </b>Pour cr&eacute;er un profil, reportez-vous &agrave; la section <A HREF="gbgni.html#gbgni">Cr&eacute;ation d'un profil</A>.</p>
+<hr size="1" noshade></p><p>L'&eacute;diteur de profil se compose des onglets suivants :</p>
+<ul><li><p><A HREF="gbgcg.html#gbgcg">Propri&eacute;t&eacute;s g&eacute;n&eacute;rales</A></p>
+</li>
+<li><p><A HREF="gbgeb.html#gbgeb">Param&egrave;tres de configuration</A></p>
+</li>
+<li><p><A HREF="gbgkr.html#gbgkr">&Eacute;l&eacute;ments assign&eacute;s</A></p>
+</li>
+<li><p><A HREF="gbgda.html#gbgda">R&eacute;sum&eacute; des param&egrave;tres</A></p>
+</li>
+<li><p><A HREF="gbgdh.html#gbgdh">Options avanc&eacute;es</A></p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgkr.html b/webconsole/html/fr/help/gbgkr.html
new file mode 100644
index 0000000..126f608
--- /dev/null
+++ b/webconsole/html/fr/help/gbgkr.html
@@ -0,0 +1,18 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>&Eacute;l&eacute;ments assign&eacute;s </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgkr"></A><h3>&Eacute;l&eacute;ments assign&eacute;s</h3>
+<p>La page &Eacute;l&eacute;ments assign&eacute;s r&eacute;pertorie les &eacute;l&eacute;ments assign&eacute;s au profil actuel et permet d'assigner d'autres &eacute;l&eacute;ments ou d'annuler des assignations. </p>
+<p>Les &eacute;l&eacute;ments du profil actuel sont affich&eacute;s dans le tableau &Eacute;l&eacute;ments assign&eacute;s avec les informations suivantes :</p>
+<ul><li><p>Nom : nom de l'&eacute;l&eacute;ment assign&eacute; au profil ;</p>
+</li>
+<li><p>Chemin : emplacement de l'&eacute;l&eacute;ment assign&eacute; au profil.</p>
+</li>
+</ul>
+<p>Voir <A HREF="gbgpm.html#gbgpm">Assignation d'un &eacute;l&eacute;ment &agrave; un profil</A>, <A HREF="gbgpp.html#gbgpp">Annulation de l'assignation d'un &eacute;l&eacute;ment &agrave; un profil</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgni.html b/webconsole/html/fr/help/gbgni.html
new file mode 100644
index 0000000..8cf14c5
--- /dev/null
+++ b/webconsole/html/fr/help/gbgni.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Cr&eacute;ation d'un profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgni"></A><h4>Cr&eacute;ation d'un profil</h4>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Cliquez sur le bouton Nouveau.</b></p><p>L'&eacute;diteur de profil s'ouvre. </p>
+</li>
+<li><p><b>Suivez les instructions de l'&eacute;diteur de profil.</b></p><p>Pour plus d'informations sur la cr&eacute;ation d'un profil avec l'&eacute;diteur de profil, reportez-vous &agrave; la section <A HREF="gbgec.html#gbgec">&Eacute;diteur de profil</A> de l'aide en ligne.</p>
+<p><hr size="1" noshade><p><b>Remarque &#8211; </b>Une fois le profil cr&eacute;&eacute;, il est automatiquement assign&eacute; &agrave; l'&eacute;l&eacute;ment s&eacute;lectionn&eacute;.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgot.html b/webconsole/html/fr/help/gbgot.html
new file mode 100644
index 0000000..cbce398
--- /dev/null
+++ b/webconsole/html/fr/help/gbgot.html
@@ -0,0 +1,20 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Affichage et &eacute;dition des param&egrave;tres de configuration d'un profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgot"></A><h4>Affichage et &eacute;dition des param&egrave;tres de configuration d'un profil</h4>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Pour afficher un param&egrave;tre de configuration d'un profil, parcourez la liste des cat&eacute;gories situ&eacute;e &agrave; droite de la page.</b></p><p>Les param&egrave;tres de configuration sont hi&eacute;rarchis&eacute;s en cat&eacute;gories. Chacune d'elles correspond directement aux options de configuration d'applications de bureau telles que StarOffice&#153;, Mozilla&#153;, Evolution ou Gnome. </p>
+</li>
+<li><p><b>Cliquez sur le param&egrave;tre de configuration de votre choix.</b></p><p>Les param&egrave;tres disponibles du profil s&eacute;lectionn&eacute; s'affichent. Le cas &eacute;ch&eacute;ant, des informations contextuelles suppl&eacute;mentaires, par exemple les effets de chaque param&egrave;tre ou la plage de valeurs autoris&eacute;es, s'affichent. </p>
+<p><hr size="1" noshade><p><b>Remarque &#8211; </b>Si vous s&eacute;lectionnez une cat&eacute;gorie au lieu d'un param&egrave;tre de configuration, un tableau contenant la liste des param&egrave;tres de cat&eacute;gorie ou des sous-cat&eacute;gories s'affiche.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Sp&eacute;cifiez les valeurs des param&egrave;tres de configuration de votre choix.</b></p><p>Si aucune valeur n'est d&eacute;finie pour un param&egrave;tre de profil, l'application utilise la valeur par d&eacute;faut sp&eacute;cifi&eacute;e par le fabricant. La valeur par d&eacute;faut d'une application ou d'un param&egrave;tre propos&eacute; dans l'&eacute;diteur de profil est g&eacute;n&eacute;ralement d&eacute;finie sur la base d'un texte d'aide suppl&eacute;mentaire ou, lorsque c'est possible, via un marqueur ins&eacute;r&eacute; directement dans la liste des options du param&egrave;tre.</p>
+<p><hr size="1" noshade><p><b>Remarque &#8211; </b>Un utilisateur peut &ecirc;tre concern&eacute; par plusieurs profils. Par exemple, si vous cr&eacute;ez un profil en d&eacute;finissant des param&egrave;tres sp&eacute;cifiques &agrave; une organisation, ces param&egrave;tres sont automatiquement mis &agrave; la disposition de tous les utilisateurs. De m&ecirc;me, il est possible de d&eacute;finir des profils suppl&eacute;mentaires pour les diff&eacute;rentes sous-organisations, en leur affectant des param&egrave;tres de configuration qui remplacent ceux de l'organisation parente. Ainsi, vous pouvez sp&eacute;cifier des param&egrave;tres de Proxy sp&eacute;cifiques &agrave; chaque sous-organisation, tandis que d'autres param&egrave;tres restent inchang&eacute;s. L'ensemble des param&egrave;tres effectifs d'un utilisateur correspond donc &agrave; la fusion des profils assign&eacute;s &agrave; l'organisation, aux sous-organisations et, &eacute;ventuellement, &agrave; l'utilisateur lui-m&ecirc;me. </p>
+<hr size="1" noshade></p><p><hr size="1" noshade><p><b>Astuce &#8211; </b>Pour contr&ocirc;ler le processus de fusion et d&eacute;finir un param&egrave;tre de configuration exclusif, c'est-&agrave;-dire, qu'aucun autre profil ne peut &eacute;craser ou &eacute;diter, ouvrez l'&eacute;diteur de profil et d&eacute;finissez le comportement du param&egrave;tre lors de la fusion. Par d&eacute;faut, les param&egrave;tres peuvent &ecirc;tre &eacute;cras&eacute;s par d'autres profils. D&eacute;s&eacute;lectionnez l'option par d&eacute;faut pour rendre le param&egrave;tre exclusif.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgou.html b/webconsole/html/fr/help/gbgou.html
new file mode 100644
index 0000000..d1416b8
--- /dev/null
+++ b/webconsole/html/fr/help/gbgou.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Exportation de profils </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgou"></A><h3>Exportation de profils</h3>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Cochez la case correspondant au profil &agrave; exporter.</b></p></li>
+<li><p><b>Dans la liste des actions, choisissez Exporter.</b></p><p>Dans la bo&icirc;te de dialogue qui s'affiche, sp&eacute;cifiez l'emplacement du fichier d'export.</p>
+</li>
+<li><p><b>Ensuite, s&eacute;lectionnez l'option d'enregistrement sur le disque, puis cliquez sur OK.</b></p></li>
+<li><p><b>Choisissez l'emplacement d'enregistrement du fichier export&eacute; et cliquez sur OK.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgow.html b/webconsole/html/fr/help/gbgow.html
new file mode 100644
index 0000000..4193110
--- /dev/null
+++ b/webconsole/html/fr/help/gbgow.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Copie et d&eacute;placement d'un profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgow"></A><h3>Copie et d&eacute;placement d'un profil</h3>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Cochez la case correspondant au profil &agrave; copier ou &agrave; d&eacute;placer.</b></p></li>
+<li><p><b>Dans la liste des actions, choisissez Copier et d&eacute;placer.</b></p><p>L'assistant Copier et d&eacute;placer s'ouvre.</p>
+</li>
+<li><p><b>Suivez les instructions de l'assistant pour copier et d&eacute;placer le profil.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgoy.html b/webconsole/html/fr/help/gbgoy.html
new file mode 100644
index 0000000..b97f785
--- /dev/null
+++ b/webconsole/html/fr/help/gbgoy.html
@@ -0,0 +1,36 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Zone de contenu </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgoy"></A><h3>Zone de contenu</h3>
+<p>Les informations de chaque &eacute;l&eacute;ment s&eacute;lectionn&eacute; s'affichent dans la zone de contenu de la page Profils &#8212; Vue d'arborescence. Trois tableaux peuvent s'afficher dans cette zone :</p>
+<ul><li><p>Profils assign&eacute;s : tableau toujours affich&eacute;, indiquant les profils assign&eacute;s &agrave; l'&eacute;l&eacute;ment s&eacute;lectionn&eacute;. Il se compose de trois colonnes : Nom, Auteur et Derni&egrave;re modification. La valeur de la colonne Derni&egrave;re modification ne change que si un param&egrave;tre du profil est &eacute;dit&eacute;. Si le profil est renomm&eacute;, d&eacute;plac&eacute; ou que sa priorit&eacute; est modifi&eacute;e, cette valeur ne change pas. </p>
+<p>Vous pouvez r&eacute;aliser les op&eacute;rations suivantes dans ce tableau :</p>
+<ul><li><p><A HREF="gbgni.html#gbgni">Cr&eacute;ation d'un profil</A></p>
+</li>
+<li><p><A HREF="gbgpr.html#gbgpr">Suppression d'un profil</A></p>
+</li>
+<li><p><A HREF="gbgpn.html#gbgpn">Assignation d'un profil</A></p>
+</li>
+<li><p><A HREF="gbgqj.html#gbgqj">Annulation d'une assignation de profil</A></p>
+</li>
+<li><p><A HREF="gbgpw.html#gbgpw">Attribution d'un nouveau nom &agrave; un profil</A></p>
+</li>
+<li><p><A HREF="gbgqf.html#gbgqf">Copie et d&eacute;placement d'un profil</A></p>
+</li>
+<li><p><A HREF="gbgps.html#gbgps">Importation de profils</A></p>
+</li>
+<li><p><A HREF="gbgqh.html#gbgqh">Exportation de profils</A></p>
+</li>
+</ul>
+</li>
+<li><p>Profils h&eacute;rit&eacute;s : tableau affich&eacute; si des profils sont assign&eacute;s &agrave; des &eacute;l&eacute;ments situ&eacute;s, dans la hi&eacute;rarchie, au-dessus de l'&eacute;l&eacute;ment s&eacute;lectionn&eacute;. Le tableau r&eacute;pertorie alors ces profils. Ce tableau se compose de deux colonnes : Nom et Assign&eacute; &agrave;. La colonne Assign&eacute; &agrave; indique le chemin d'acc&egrave;s et le nom de l'&eacute;l&eacute;ment auquel le profil est assign&eacute;.</p>
+</li>
+<li><p>Utilisateurs et r&ocirc;les : tableau affich&eacute; lorsque l'&eacute;l&eacute;ment s&eacute;lectionn&eacute; est un utilisateur ou un r&ocirc;le. S'il s'agit d'un utilisateur, les r&ocirc;les dont il est membre s'affichent, le cas &eacute;ch&eacute;ant, dans le tableau des r&ocirc;les. S'il s'agit d'un r&ocirc;le, les utilisateurs qui en sont membres s'affichent, le cas &eacute;ch&eacute;ant, dans le tableau des utilisateurs.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgoz.html b/webconsole/html/fr/help/gbgoz.html
new file mode 100644
index 0000000..86a6631
--- /dev/null
+++ b/webconsole/html/fr/help/gbgoz.html
@@ -0,0 +1,34 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Affichage des param&egrave;tres effectifs </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgoz"></A><h3>Affichage des param&egrave;tres effectifs</h3>
+<p>La vue Param&egrave;tres effectifs, en lecture seule, affiche les param&egrave;tres de configuration effectifs d'un &eacute;l&eacute;ment donn&eacute;, par exemple une organisation, un domaine ou un h&ocirc;te.</p>
+<p>Les param&egrave;tres effectifs d'un utilisateur sont issus d'une fusion incluant les param&egrave;tres de configuration stock&eacute;s dans les niveaux et r&ocirc;les de l'organisation, ainsi que ceux de l'utilisateur. Vous pouvez afficher les param&egrave;tres de fusion d'un &eacute;l&eacute;ment s&eacute;lectionn&eacute; dans une fen&ecirc;tre Param&egrave;tres effectifs distincte. Cette fonction s'av&egrave;re utile &agrave; la v&eacute;rification et au d&eacute;bogage. Vous pouvez &eacute;galement imprimer un rapport Param&egrave;tres effectifs et l'archiver, le cas &eacute;ch&eacute;ant.</p>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Cliquez sur Param&egrave;tres effectifs dans le tableau Profils assign&eacute;s.</b></p><p>&Agrave; la premi&egrave;re ouverture, les param&egrave;tres effectifs de l'&eacute;l&eacute;ment s&eacute;lectionn&eacute; dans l'arborescence de navigation s'affichent. </p>
+<p>La fen&ecirc;tre Param&egrave;tres effectifs se compose de deux sections :</p>
+<ul><li><p>La section Modifier les valeurs de param&egrave;tres effectifs, comprenant une zone de cr&eacute;ation de param&egrave;tres effectifs &agrave; partir d'une arborescence et l'option S&eacute;lectionner un &eacute;l&eacute;ment dans l'arborescence du domaine, qui permet de choisir l'entit&eacute; pour laquelle le rapport Param&egrave;tres effectifs doit &ecirc;tre g&eacute;n&eacute;r&eacute;. Cliquez sur Parcourir pour s&eacute;lectionner un &eacute;l&eacute;ment dans l'arborescence du domaine ou de l'organisation.</p>
+</li>
+<li><p>La section Param&egrave;tres effectifs est constitu&eacute;e des champs suivants :</p>
+<ul><li><p>emplacement de l'&eacute;l&eacute;ment s&eacute;lectionn&eacute; dans la hi&eacute;rarchie et le nom d'h&ocirc;te ;</p>
+</li>
+<li><p>date et heure &agrave; laquelle le rapport Param&egrave;tres effectifs a &eacute;t&eacute; g&eacute;n&eacute;r&eacute; ;</p>
+</li>
+<li><p>section Profils impliqu&eacute;s indiquant la liste des profils impliqu&eacute;s dans la g&eacute;n&eacute;ration du rapport Param&egrave;tres effectifs pour l'&eacute;l&eacute;ment actuel. Ces param&egrave;tres sont r&eacute;pertori&eacute;s selon l'ordre de fusion, du plus important au moins important. Chaque profil repr&eacute;sente un lien vers la fen&ecirc;tre &Eacute;diteur de profil correspondant &agrave; ce profil.</p>
+</li>
+<li><p>La zone R&eacute;sum&eacute; des param&egrave;tres affiche par cat&eacute;gories les param&egrave;tres de configuration utilis&eacute;s dans le rapport Param&egrave;tres effectifs actuel. Ce r&eacute;sum&eacute; est compos&eacute; de trois champs : nom, valeur et statut.</p>
+<p>La colonne Statut contient des entr&eacute;es de type &#8220;D&eacute;fini dans &lt;nomProfil>, o&ugrave; &lt;nomProfil> est un lien permettant d'ouvrir l'&Eacute;diteur de profil dans l'onglet Param&egrave;tres de configuration et d'acc&eacute;der &agrave; un param&egrave;tre particulier au sein de ce profil.</p>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><p><b>Pour modifier un rapport Param&egrave;tres effectifs g&eacute;n&eacute;r&eacute;, &eacute;ditez un param&egrave;tre effectif important et cliquez sur G&eacute;n&eacute;rer les param&egrave;tres effectifs, en haut de la fen&ecirc;tre Param&egrave;tres effectifs.</b> </p><p>Un nouveau rapport s'affiche dans la fen&ecirc;tre Param&egrave;tres effectifs.</p>
+</li>
+<li><p><b>Pour afficher un rapport Param&egrave;tres effectifs, cliquez sur Imprimer, en haut ou en bas de la fen&ecirc;tre Param&egrave;tres effectifs.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgpa.html b/webconsole/html/fr/help/gbgpa.html
new file mode 100644
index 0000000..680abae
--- /dev/null
+++ b/webconsole/html/fr/help/gbgpa.html
@@ -0,0 +1,29 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Recherche d'un &eacute;l&eacute;ment </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpa"></A><h4>Recherche d'un &eacute;l&eacute;ment</h4>
+<p>La fonction Recherche lance une recherche r&eacute;cursive d'un &eacute;l&eacute;ment dans la hi&eacute;rarchie de domaine ou d'organisation. Cette recherche porte aussi bien sur l'enfant direct d'un &eacute;l&eacute;ment que sur ses descendants. Pour que la recherche porte uniquement sur les enfants directs d'un &eacute;l&eacute;ment, utilisez la fonction Rechercher.</p>
+<p>La fonction Recherche ouvre une fen&ecirc;tre Recherche dans laquelle vous pouvez d&eacute;finir des crit&egrave;res avanc&eacute;s.</p>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Dans le champ de recherche, saisissez le nom complet ou partiel de l'&eacute;l&eacute;ment &agrave; rechercher.</b></p><p><hr size="1" noshade><p><b>Remarque &#8211; </b>La recherche n'est ni sensible &agrave; la casse ni limitative. Par exemple, si vous saisissez la cha&icirc;ne "bc", les r&eacute;sultats de la recherche incluront "ABC" et "bcd". Un ast&eacute;risque (*) indique une s&eacute;quence de caract&egrave;res arbitraire dans une cha&icirc;ne recherch&eacute;e. Le nombre et l'emplacement des ast&eacute;risques dans la cha&icirc;ne de recherche ne font l'objet d'aucune restriction. Un champ vide &eacute;quivaut &agrave; un champ avec la cha&icirc;ne de recherche "*".</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Cliquez sur le bouton Recherche.</b></p><p>La fen&ecirc;tre Recherche s'ouvre. Toute cha&icirc;ne saisie dans le champ de recherche de la zone de navigation s'affiche dans cette fen&ecirc;tre et la recherche d&eacute;marre automatiquement. Les r&eacute;sultats de la recherche s'affichent dans un tableau, avec le nom, le type et le chemin d'acc&egrave;s aux &eacute;l&eacute;ments correspondants.</p>
+<p><hr size="1" noshade><p><b>Remarque &#8211; </b>Le nombre de r&eacute;sultats est limit&eacute; &agrave; 100.</p>
+<hr size="1" noshade></p><p>Si aucun &eacute;l&eacute;ment ne correspond &agrave; la recherche ou si le champ de recherche de la zone de navigation est vide, saisissez le nom d'un &eacute;l&eacute;ment dans le champ de recherche de la fen&ecirc;tre Recherche. </p>
+<p><hr size="1" noshade><p><b>Astuce &#8211; </b>Recherchez un type d'&eacute;l&eacute;ment sp&eacute;cifique, tel que les domaines de recherche, &agrave; l'aide de la liste des modificateurs de type, situ&eacute;e en regard du champ de recherche.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Si n&eacute;cessaire, ajoutez des crit&egrave;res avanc&eacute;s de recherche &agrave; l'aide du bouton Afficher les options avanc&eacute;es.</b></p><p>Les options avanc&eacute;es sont les suivantes :</p>
+<ul><li><p>Limiter &agrave; : permet de d&eacute;finir l'&eacute;l&eacute;ment de l'arborescence &agrave; partir duquel l'algorithme de recherche doit d&eacute;marrer.</p>
+</li>
+<li><p>R&eacute;sultats affich&eacute;s par page : permet de d&eacute;finir le nombre de r&eacute;sultats par page du tableau de r&eacute;sultats.</p>
+</li>
+</ul>
+</li>
+<li><p><b>Cliquez de nouveau sur Recherche pour afficher les r&eacute;sultats de la nouvelle recherche.</b></p><p><hr size="1" noshade><p><b>Remarque &#8211; </b>Le bouton R&eacute;tablir efface les donn&eacute;es du champ de recherche et r&eacute;tablit les options de recherche par d&eacute;faut.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgpb.html b/webconsole/html/fr/help/gbgpb.html
new file mode 100644
index 0000000..5c67192
--- /dev/null
+++ b/webconsole/html/fr/help/gbgpb.html
@@ -0,0 +1,17 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Sp&eacute;cification des propri&eacute;t&eacute;s g&eacute;n&eacute;rales d'un profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpb"></A><h4>Sp&eacute;cification des propri&eacute;t&eacute;s g&eacute;n&eacute;rales d'un profil</h4>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Dans le champ Nom, saisissez le nom du profil.</b></p></li>
+<li><p><b>Ajoutez les commentaires de votre choix dans le champ Commentaires.</b></p><p>Ce champ ne doit pas n&eacute;cessairement &ecirc;tre renseign&eacute;.</p>
+<p><hr size="1" noshade><p><b>Remarque &#8211; </b>Les champs Auteur et Derni&egrave;re modification sont en lecture seule : ils ne peuvent pas &ecirc;tre modifi&eacute;s. Le champ Auteur sp&eacute;cifie l'auteur du profil et le champ Derni&egrave;re modification indique la date et l'heure de la derni&egrave;re modification.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Cliquez sur le bouton Enregistrer.</b></p><p>Si vous fermez cette fen&ecirc;tre sans enregistrer les modifications, un message d'avertissement vous invite &agrave; enregistrer les param&egrave;tres.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgpe.html b/webconsole/html/fr/help/gbgpe.html
new file mode 100644
index 0000000..1ba808b
--- /dev/null
+++ b/webconsole/html/fr/help/gbgpe.html
@@ -0,0 +1,13 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Suppression d'un profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpe"></A><h3>Suppression d'un profil</h3>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Cochez la case correspondant au profil &agrave; supprimer.</b></p></li>
+<li><p><b>Cliquez sur le bouton Supprimer</b>.</p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgpj.html b/webconsole/html/fr/help/gbgpj.html
new file mode 100644
index 0000000..29734b8
--- /dev/null
+++ b/webconsole/html/fr/help/gbgpj.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Importation de profils </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpj"></A><h3>Importation de profils</h3>
+<h5>&Eacute;tapes</h5><ol><li><p><b>V&eacute;rifiez que les toutes les cases sont coch&eacute;es.</b></p></li>
+<li><p><b>Dans la liste des actions, choisissez Importer.</b></p><p>La bo&icirc;te de dialogue Importer un profil s'ouvre.</p>
+</li>
+<li><p><b>Sp&eacute;cifiez le chemin d'acc&egrave;s au fichier &agrave; importer ou cliquez sur Parcourir pour le choisir dans le s&eacute;lecteur de fichiers de votre syst&egrave;me d'exploitation.</b></p></li>
+<li><p><b>Cliquez sur le bouton Importer.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgpm.html b/webconsole/html/fr/help/gbgpm.html
new file mode 100644
index 0000000..ff8fc73
--- /dev/null
+++ b/webconsole/html/fr/help/gbgpm.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Assignation d'un &eacute;l&eacute;ment &agrave; un profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpm"></A><h4>Assignation d'un &eacute;l&eacute;ment &agrave; un profil</h4>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Cliquez sur le bouton Assigner un &eacute;l&eacute;ment.</b></p><p>La fen&ecirc;tre qui s'ouvre affiche une arborescence de navigation.</p>
+</li>
+<li><p><b>Parcourez l'arborescence jusqu'&agrave; l'&eacute;l&eacute;ment souhait&eacute;, puis s&eacute;lectionnez-le.</b></p><p><hr size="1" noshade><p><b>Astuce &#8211; </b>Si vous n'arrivez pas &agrave; localiser l'&eacute;l&eacute;ment, cliquez sur Recherche.</p>
+<hr size="1" noshade></p><p>L'&eacute;l&eacute;ment s'affiche ensuite dans le tableau &Eacute;l&eacute;ments assign&eacute;s : il est &agrave; pr&eacute;sent assign&eacute; au profil actuel. </p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgpn.html b/webconsole/html/fr/help/gbgpn.html
new file mode 100644
index 0000000..317ae5b
--- /dev/null
+++ b/webconsole/html/fr/help/gbgpn.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Assignation d'un profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpn"></A><h4>Assignation d'un profil</h4>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Cliquez sur le bouton Assigner un profil.</b></p><p>La bo&icirc;te de dialogue qui s'affiche r&eacute;pertorie les profils qu'il est possible d'assigner &agrave; l'&eacute;l&eacute;ment s&eacute;lectionn&eacute;. </p>
+<p><hr size="1" noshade><p><b>Remarque &#8211; </b>Les profils d&eacute;j&agrave; assign&eacute;s &agrave; l'&eacute;l&eacute;ment s&eacute;lectionn&eacute;, ainsi que les profils non stock&eacute;s dans l'&eacute;l&eacute;ment ou situ&eacute;s au-dessus de l'&eacute;l&eacute;ment sont absents de cette liste.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>S&eacute;lectionnez au moins un profil dans la liste, puis cliquez sur OK.</b></p><p>Le nouveau profil assign&eacute; s'affiche &agrave; pr&eacute;sent dans le tableau Profils assign&eacute;s.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgpp.html b/webconsole/html/fr/help/gbgpp.html
new file mode 100644
index 0000000..6710939
--- /dev/null
+++ b/webconsole/html/fr/help/gbgpp.html
@@ -0,0 +1,14 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Annulation de l'assignation d'un &eacute;l&eacute;ment &agrave; un profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpp"></A><h4>Annulation de l'assignation d'un &eacute;l&eacute;ment &agrave; un profil</h4>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Cochez la case correspondant &agrave; l'&eacute;l&eacute;ment dont vous souhaitez annuler l'assignation.</b></p></li>
+<li><p><b>Cliquez sur le bouton Annuler l'assignation d'un &eacute;l&eacute;ment.</b></p><p>L'&eacute;l&eacute;ment n'est plus affich&eacute; dans le tableau &Eacute;l&eacute;ments assign&eacute;s : il n'est plus assign&eacute; au profil actuel.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgpr.html b/webconsole/html/fr/help/gbgpr.html
new file mode 100644
index 0000000..e914f3e
--- /dev/null
+++ b/webconsole/html/fr/help/gbgpr.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Suppression d'un profil
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbgpr"></A><h4>Suppression d'un profil</h4>
+<h5>&Eacute;tapes</h5><ol><li><p><b>S&eacute;lectionnez la case &agrave; cocher correspondant au profil &agrave; supprimer.</b></p><p>Une bo&icirc;te de dialogue de confirmation s'affiche.</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>Attention &ndash; </b>L'option Supprimer supprime toutes les assignations avant de supprimer le fichier. Cette suppression est d&eacute;finitive. La suppression d'un profil entra&icirc;ne la suppression des assignations &agrave; l'&eacute;l&eacute;ment s&eacute;lectionn&eacute; mais &eacute;galement des assignations aux autres &eacute;l&eacute;ments. Pour supprimer une assignation de profil &agrave; un &eacute;l&eacute;ment, utilisez l'option Annuler l'assignation.</p><hr size="1" noshade></li>
+<li><p><b>Cliquez sur le bouton Supprimer.</b></p></li>
+<li><p><b>Si vous souhaitez vraiment supprimer le profil, cliquez sur le bouton OK de la bo&icirc;te de dialogue de confirmation.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgps.html b/webconsole/html/fr/help/gbgps.html
new file mode 100644
index 0000000..f119714
--- /dev/null
+++ b/webconsole/html/fr/help/gbgps.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Importation de profils </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgps"></A><h4>Importation de profils</h4>
+<h5>&Eacute;tapes</h5><ol><li><p><b>V&eacute;rifiez que les toutes les cases sont coch&eacute;es.</b></p></li>
+<li><p><b>Choisissez Importer dans la liste des actions.</b></p><p>La bo&icirc;te de dialogue Importer un profil s'ouvre.</p>
+</li>
+<li><p><b>Sp&eacute;cifiez le chemin d'acc&egrave;s au fichier &agrave; importer ou cliquez sur Parcourir pour le choisir dans le s&eacute;lecteur de fichiers par d&eacute;faut de votre syst&egrave;me d'exploitation.</b></p></li>
+<li><p><b>Cliquez sur le bouton Importer.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgpt.html b/webconsole/html/fr/help/gbgpt.html
new file mode 100644
index 0000000..8f4edbe
--- /dev/null
+++ b/webconsole/html/fr/help/gbgpt.html
@@ -0,0 +1,43 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Tableau R&eacute;f&eacute;rentiels de configuration </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpt"></A><h3>Tableau R&eacute;f&eacute;rentiels de configuration</h3>
+<p>Le tableau R&eacute;f&eacute;rentiels de configuration se compose de cinq colonnes :</p>
+<ul><li><p>S&eacute;lection : contient des cases &agrave; cocher li&eacute;es &agrave; la s&eacute;lection des r&eacute;f&eacute;rentiels.</p>
+<p>La s&eacute;lection d'au moins un r&eacute;f&eacute;rentiel active les fonctions Supprimer, Renommer et Synchroniser.</p>
+<p><hr size="1" noshade><p><b>Remarque &#8211; </b>Cette op&eacute;ration d&eacute;sactive le bouton Nouveau.</p>
+<hr size="1" noshade></p></li>
+<li><p>Nom : nom des r&eacute;f&eacute;rentiels.</p>
+<p>La colonne Nom contient des liens. Cliquez sur l'un d'eux pour remplacer la vue R&eacute;f&eacute;rentiels de configuration du r&eacute;f&eacute;rentiel s&eacute;lectionn&eacute; par la page &Eacute;diteur de profil.</p>
+</li>
+<li><p>Type : ils sont au nombre de trois : LDAP, fichier ou hybride.</p>
+<ul><li><p>LDAP : un r&eacute;f&eacute;rentiel LDAP lit la structure organisationnelle (utilisateurs, organisation, h&ocirc;tes, domaines, etc.) de la soci&eacute;t&eacute; &agrave; partir d'un serveur LDAP et lit, ou &eacute;crit, les param&egrave;tres de configuration &agrave; l'aide du m&ecirc;me serveur. </p>
+</li>
+<li><p>Fichier : un r&eacute;f&eacute;rentiel fichier lit la structure organisationnelle de la soci&eacute;t&eacute; &agrave; partir d'un syst&egrave;me de fichiers et lit, ou &eacute;crit, les param&egrave;tres de configuration &agrave; l'aide du m&ecirc;me syst&egrave;me de fichiers. </p>
+</li>
+<li><p>Hybride : un r&eacute;f&eacute;rentiel hybride lit la structure organisationnelle de la soci&eacute;t&eacute; &agrave; partir d'un serveur LDAP et lit, ou &eacute;crit, les param&egrave;tres de configuration &agrave; l'aide d'un syst&egrave;me de fichiers.</p>
+</li>
+</ul>
+</li>
+<li><p>Emplacement des donn&eacute;es d'organisation : dans un fichier, un r&eacute;f&eacute;rentiel de fichiers ou &agrave; l'URL du LDAP, dans le cas de r&eacute;f&eacute;rentiel LDAP ou hybride. Ce champ d&eacute;signe l'emplacement de stockage des donn&eacute;es d'organisation.</p>
+</li>
+<li><p>Emplacement des donn&eacute;es de profil : dans un fichier, un r&eacute;f&eacute;rentiel de fichiers ou &agrave; l'URL du LDAP, dans le cas de r&eacute;f&eacute;rentiel LDAP ou hybride. Ce champ d&eacute;signe l'emplacement de stockage des param&egrave;tres de configuration. Un profil est un ensemble nomm&eacute; de param&egrave;tres de configuration assign&eacute; aux utilisateurs, organisations, h&ocirc;tes et domaines.</p>
+</li>
+</ul>
+<p>Vous pouvez r&eacute;aliser les op&eacute;rations suivantes dans ce tableau :</p>
+<ul><li><p><A HREF="gbgcn.html#gbgcn">Nouveau</A> : cr&eacute;ation d'un r&eacute;f&eacute;rentiel de configuration ; </p>
+</li>
+<li><p>Supprimer : suppression d'un r&eacute;f&eacute;rentiel de configuration existant ;</p>
+</li>
+<li><p>Renommer : attribution d'un nouveau nom au r&eacute;f&eacute;rentiel de configuration ;</p>
+</li>
+<li><p><A HREF="gbgqm.html#gbgqm">Synchroniser</A> : synchronisation des r&eacute;f&eacute;rentiels de configuration.</p>
+<p>Cette fonction n'est disponible que lorsque deux r&eacute;f&eacute;rentiels sont s&eacute;lectionn&eacute;s.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgpu.html b/webconsole/html/fr/help/gbgpu.html
new file mode 100644
index 0000000..62af0f9
--- /dev/null
+++ b/webconsole/html/fr/help/gbgpu.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Attribution d'un nouveau nom &agrave; un profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpu"></A><h3>Attribution d'un nouveau nom &agrave; un profil</h3>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Cochez la case correspondant au profil &agrave; renommer.</b></p></li>
+<li><p><b>Choisissez Renommer dans la liste des actions.</b></p><p>Une bo&icirc;te de dialogue s'affiche.</p>
+</li>
+<li><p><b>Dans la zone de texte de cette bo&icirc;te de dialogue, saisissez le nom du profil, puis cliquez sur OK.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgpw.html b/webconsole/html/fr/help/gbgpw.html
new file mode 100644
index 0000000..a6e4016
--- /dev/null
+++ b/webconsole/html/fr/help/gbgpw.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Attribution d'un nouveau nom &agrave; un profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpw"></A><h4>Attribution d'un nouveau nom &agrave; un profil</h4>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Cochez la case correspondant au profil &agrave; renommer.</b></p></li>
+<li><p><b>Choisissez Renommer dans la liste des actions.</b></p><p>La bo&icirc;te de dialogue Renommer s'ouvre.</p>
+</li>
+<li><p><b>Dans la zone de texte de cette bo&icirc;te de dialogue, saisissez le nom du profil, puis cliquez sur OK.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgqa.html b/webconsole/html/fr/help/gbgqa.html
new file mode 100644
index 0000000..58273af
--- /dev/null
+++ b/webconsole/html/fr/help/gbgqa.html
@@ -0,0 +1,24 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Fen&ecirc;tre R&eacute;f&eacute;rentiels de configuration </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqa"></A><h2>Fen&ecirc;tre R&eacute;f&eacute;rentiels de configuration</h2>
+<p>La fen&ecirc;tre R&eacute;f&eacute;rentiel de configuration constitue l'emplacement de stockage des donn&eacute;es de configuration n&eacute;cessaires aux applications. Elle contient les informations relatives &agrave; la hi&eacute;rarchie de l'organisation ainsi que les donn&eacute;es sp&eacute;cifiques aux profils et aux assignations pour chaque &eacute;l&eacute;ment. Cette fen&ecirc;tre permet de g&eacute;rer, cr&eacute;er et synchroniser les r&eacute;f&eacute;rentiels.</p>
+<p>La fen&ecirc;tre R&eacute;f&eacute;rentiel de configuration se compose d'un cadre masthead et de la liste R&eacute;f&eacute;rentiels de configuration.</p>
+<p>Le cadre masthead fournit plusieurs liens g&eacute;n&eacute;raux. La partie sup&eacute;rieure du cadre masthead contient la barre d'utilitaires qui propose quatre liens (de gauche &agrave; droite) :</p>
+<ul><li><p>Le bouton Console affiche la page de d&eacute;marrage de Java Web Console.</p>
+</li>
+<li><p>Le bouton Version ouvre une fen&ecirc;tre contenant les informations de version relatives &agrave; Desktop Manager.</p>
+</li>
+<li><p>Le bouton D&eacute;connecter vous d&eacute;connecte de la console Web de Sun, et par cons&eacute;quent de Configuration Manager, et renvoie &agrave; la page de connexion.</p>
+</li>
+<li><p>Le bouton Aide ouvre les pages d'aide en ligne. </p>
+</li>
+</ul>
+<p>la section inf&eacute;rieure du cadre masthead contient le nom du produit ainsi que celui du serveur et de l'administrateur connect&eacute;.</p>
+<p>Voir <A HREF="gbgpt.html#gbgpt">Tableau R&eacute;f&eacute;rentiels de configuration</A>, <A HREF="gbgcn.html#gbgcn">Cr&eacute;ation d'un r&eacute;f&eacute;rentiel de configuration</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgqe.html b/webconsole/html/fr/help/gbgqe.html
new file mode 100644
index 0000000..2320f7f
--- /dev/null
+++ b/webconsole/html/fr/help/gbgqe.html
@@ -0,0 +1,13 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Assignation d'un ordre de fusion &agrave; un profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqe"></A><h4>Assignation d'un ordre de fusion &agrave; un profil</h4>
+<h5>&Eacute;tapes</h5><ol><li><p><b>S&eacute;lectionnez le profil souhait&eacute; dans la liste S&eacute;lection.</b></p></li>
+<li><p><b>D&eacute;placez le profil vers le haut ou vers le bas de la liste &agrave; l'aide des boutons situ&eacute;s &agrave; droite de celle-ci.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgqf.html b/webconsole/html/fr/help/gbgqf.html
new file mode 100644
index 0000000..aa1db20
--- /dev/null
+++ b/webconsole/html/fr/help/gbgqf.html
@@ -0,0 +1,15 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Copie et d&eacute;placement d'un profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqf"></A><h4>Copie et d&eacute;placement d'un profil</h4>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Cochez la case correspondant au profil &agrave; copier ou d&eacute;placer.</b></p></li>
+<li><p><b>Choisissez Copier et d&eacute;placer dans la liste des actions.</b></p><p>L'assistant Copier et d&eacute;placer s'ouvre.</p>
+</li>
+<li><p><b>Suivez les instructions de cet assistant pour copier et d&eacute;placer le profil.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgqh.html b/webconsole/html/fr/help/gbgqh.html
new file mode 100644
index 0000000..7ed1fb4
--- /dev/null
+++ b/webconsole/html/fr/help/gbgqh.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Exportation de profils </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqh"></A><h4>Exportation de profils</h4>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Cochez la case correspondant au profil &agrave; exporter.</b></p></li>
+<li><p><b>Choisissez Exporter dans la liste des actions.</b></p><p>Dans la bo&icirc;te de dialogue qui s'affiche, sp&eacute;cifiez l'emplacement du fichier d'export.</p>
+</li>
+<li><p><b>Ensuite, s&eacute;lectionnez l'option d'enregistrement sur le disque, puis cliquez sur OK.</b></p></li>
+<li><p><b>Choisissez l'emplacement d'enregistrement du fichier export&eacute; et cliquez sur OK.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgqj.html b/webconsole/html/fr/help/gbgqj.html
new file mode 100644
index 0000000..402ab50
--- /dev/null
+++ b/webconsole/html/fr/help/gbgqj.html
@@ -0,0 +1,14 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Annulation d'une assignation de profil </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqj"></A><h4>Annulation d'une assignation de profil</h4>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Cochez la case correspondant au profil dont vous souhaitez annuler l'assignation.</b></p></li>
+<li><p><b>Cliquez sur le bouton Annuler l'assignation d'un profil.</b></p><p>Ce profil n'est plus affich&eacute; dans le tableau Profils assign&eacute;s : son assignation est &agrave; pr&eacute;sent annul&eacute;e.</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>Attention &#8211; </b>Cette op&eacute;ration ne g&eacute;n&egrave;re aucun message d'avertissement. Si vous cliquez sur cette fonction par inadvertance, vous ne pourrez annuler l'action qu'en cliquant sur Assigner un profil.</p><hr size="1" noshade></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgqm.html b/webconsole/html/fr/help/gbgqm.html
new file mode 100644
index 0000000..0f15cf1
--- /dev/null
+++ b/webconsole/html/fr/help/gbgqm.html
@@ -0,0 +1,29 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Synchronisation des r&eacute;f&eacute;rentiels de configuration </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqm"></A><h4>Synchronisation des r&eacute;f&eacute;rentiels de configuration</h4>
+<p>Desktop Manager permet de g&eacute;rer simultan&eacute;ment plusieurs moteurs de traitement. Ainsi, il est possible de d&eacute;finir un moteur de traitement pour effectuer les tests et un second destin&eacute; &agrave; la production finale. Le premier sert &agrave; d&eacute;finir et &agrave; &eacute;valuer les changements de configuration. Ensuite, il peut &ecirc;tre enti&egrave;rement ou partiellement <i>synchronis&eacute;</i> avec le second afin de garantir une application rapide et fiable des changements requis au niveau du syst&egrave;me de production. Vous pouvez utiliser cette m&eacute;thode dans le cadre d'une sauvegarde et d'une restauration simple du moteur de traitement de production. R&eacute;alisez cette op&eacute;ration dans la fen&ecirc;tre Synchronisation.</p>
+<p></p>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Dans la fen&ecirc;tre R&eacute;f&eacute;rentiels de configuration, s&eacute;lectionnez le r&eacute;f&eacute;rentiel &agrave; synchroniser.</b></p><p>La fen&ecirc;tre Synchronisation s'ouvre.</p>
+</li>
+<li><p><b>S&eacute;lectionnez le r&eacute;f&eacute;rentiel source dans la liste R&eacute;f&eacute;rentiel de configuration source.</b></p><p>Vous pouvez changer le r&eacute;f&eacute;rentiel source servant de source aux modifications. Ce r&eacute;f&eacute;rentiel n'est <i>pas</i> modifi&eacute;. </p>
+</li>
+<li><p>(facultatif)<b> Pour limiter le r&eacute;f&eacute;rentiel source, cliquez sur Modifier, en regard du champ Point de d&eacute;part source.</b></p><p>Cette op&eacute;ration sp&eacute;cifie comme point de d&eacute;part de la synchronisation un &eacute;l&eacute;ment qui n'est pas l'&eacute;l&eacute;ment racine.</p>
+<p>Dans la bo&icirc;te de dialogue qui s'affiche, acc&eacute;dez &agrave; l'&eacute;l&eacute;ment du domaine ou de l'organisation. Une fois l'&eacute;l&eacute;ment s&eacute;lectionn&eacute;, le nouveau chemin s'affiche dans le champ Point de d&eacute;part source.</p>
+</li>
+<li><p><b>S&eacute;lectionnez le r&eacute;f&eacute;rentiel cible dans la liste R&eacute;f&eacute;rentiel de configuration cible.</b></p><p>Vous pouvez changer le r&eacute;f&eacute;rentiel source servant de cible aux modifications. Ce r&eacute;f&eacute;rentiel <i>est</i> modifi&eacute;. </p>
+</li>
+<li><p>(facultatif) <b>Pour limiter le r&eacute;f&eacute;rentiel cible, cliquez sur Modifier, en regard du champ Point de d&eacute;part cible.</b> </p><p>Cette op&eacute;ration sp&eacute;cifie comme cible de la synchronisation un &eacute;l&eacute;ment qui n'est pas l'&eacute;l&eacute;ment racine.</p>
+<p>Dans la bo&icirc;te de dialogue qui s'affiche, acc&eacute;dez &agrave; l'&eacute;l&eacute;ment du domaine ou de l'organisation. Une fois l'&eacute;l&eacute;ment s&eacute;lectionn&eacute;, le nouveau chemin s'affiche dans le champ Point de d&eacute;part cible.</p>
+</li>
+<li><p><b>Cliquez sur Comparer.</b></p><p>Les deux arborescences sont compar&eacute;es et leurs diff&eacute;rences r&eacute;pertori&eacute;es dans un tableau. </p>
+</li>
+<li><p><b>Cochez la case en regard de chaque profil &agrave; synchroniser, puis cliquez sur Synchroniser.</b> </p><p>Une fois la synchronisation termin&eacute;e, les profils s&eacute;lectionn&eacute;s du r&eacute;f&eacute;rentiel cible correspondent &agrave; ceux du r&eacute;f&eacute;rentiel source.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgqt.html b/webconsole/html/fr/help/gbgqt.html
new file mode 100644
index 0000000..76fab35
--- /dev/null
+++ b/webconsole/html/fr/help/gbgqt.html
@@ -0,0 +1,20 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Utilisation de la fonction Rechercher </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqt"></A><h4>Utilisation de la fonction Rechercher</h4>
+<p>La fonction Rechercher permet d'effectuer une recherche portant sur tous les enfants <i>directs</i> de l'&eacute;l&eacute;ment d&eacute;velopp&eacute;. Au contraire, la fonction Recherche proc&egrave;de de fa&ccedil;on r&eacute;cursive.</p>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Dans l'arborescence de navigation, cliquez sur le n&oelig;ud intitul&eacute; Certains &eacute;l&eacute;ments non affich&eacute;s.</b></p><p>La fen&ecirc;tre Rechercher s'ouvre.</p>
+</li>
+<li><p><b>Dans le champ de recherche, saisissez une cha&icirc;ne compl&egrave;te ou partielle.</b> </p><p>La recherche n'est ni sensible &agrave; la casse ni limitative. Par exemple, si vous saisissez la cha&icirc;ne "bc", les r&eacute;sultats de la recherche incluront "ABC" et "bcd". Un ast&eacute;risque (*) indique une s&eacute;quence de caract&egrave;res arbitraire dans la cha&icirc;ne recherch&eacute;e. Vous pouvez utiliser l'ast&eacute;risque &agrave; plusieurs endroits de la cha&icirc;ne recherch&eacute;e. Un champ vide &eacute;quivaut &agrave; un champ avec la cha&icirc;ne de recherche "*".</p>
+</li>
+<li><p><b>Cliquez sur le bouton Rechercher.</b></p><p>Une liste de r&eacute;sultats s'affiche. Le nombre de r&eacute;sultats est limit&eacute; &agrave; 100.</p>
+</li>
+<li><p><b>Pour ajouter un &eacute;l&eacute;ment de cette liste dans l'arborescence de navigation, cliquez dessus.</b></p><p>La fen&ecirc;tre Rechercher se ferme et l'&eacute;l&eacute;ment est ajout&eacute; &agrave; la liste des sous-n&oelig;uds dans l'arborescence de navigation.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbgqu.html b/webconsole/html/fr/help/gbgqu.html
new file mode 100644
index 0000000..5631d39
--- /dev/null
+++ b/webconsole/html/fr/help/gbgqu.html
@@ -0,0 +1,16 @@
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Modification de l'emplacement du param&egrave;tre Applicable de </title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqu"></A><h4>Modification de l'emplacement du param&egrave;tre Applicable de</h4>
+<h5>&Eacute;tapes</h5><ol><li><p><b>Cliquez sur le bouton Modifier.</b></p><p>L'arborescence de navigation s'affiche.</p>
+</li>
+<li><p><b>Parcourez cette arborescence jusqu'&agrave; l'&eacute;l&eacute;ment souhait&eacute;, puis s&eacute;lectionnez-le.</b></p><p><hr size="1" noshade><p><b>Astuce &#8211; </b>Si vous n'arrivez pas &agrave; localiser l'&eacute;l&eacute;ment, cliquez sur Recherche.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Cliquez sur OK.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbzbc.html b/webconsole/html/fr/help/gbzbc.html
new file mode 100644
index 0000000..3af44c5
--- /dev/null
+++ b/webconsole/html/fr/help/gbzbc.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Suppression d'un r&eacute;f&eacute;rentiel de configuration
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbzbc"></A><h4>Suppression d'un r&eacute;f&eacute;rentiel de configuration</h4>
+<A NAME="indexterm-15"></A><h5>&Eacute;tapes</h5><ol><li><p><b>S&eacute;lectionnez la case &agrave; cocher correspondant au r&eacute;f&eacute;rentiel de configuration &agrave; supprimer.</b></p></li>
+<li><p><b>Cliquez sur le bouton Supprimer.</b></p><p>Une bo&icirc;te de dialogue de confirmation s'affiche.</p>
+</li>
+<li><p><b>Si vous souhaitez vraiment supprimer le r&eacute;f&eacute;rentiel de configuration, cliquez sur le bouton OK de la bo&icirc;te de dialogue de confirmation.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/fr/help/gbzci.html b/webconsole/html/fr/help/gbzci.html
new file mode 100644
index 0000000..2fee12c
--- /dev/null
+++ b/webconsole/html/fr/help/gbzci.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Modification du nom d'un r&eacute;f&eacute;rentiel de configuration
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="gbzci"></A><h4>Modification du nom d'un r&eacute;f&eacute;rentiel de configuration</h4>
+<A NAME="indexterm-16"></A><h5>&Eacute;tapes</h5><ol><li><p><b>S&eacute;lectionnez la case &agrave; cocher correspondant au r&eacute;f&eacute;rentiel de configuration &agrave; renommer.</b></p></li>
+<li><p><b>Cliquez sur le bouton Renommer.</b></p><p>La bo&icirc;te de dialogue de modification du nom s'affiche.</p>
+</li>
+<li><p><b>Entrez le nouveau nom du r&eacute;f&eacute;rentiel de configuration dans le champ de saisie de la bo&icirc;te de dialogue, puis cliquez sur OK.</b></p></li>
+</ol>
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/fr/help/index.xml b/webconsole/html/fr/help/index.xml
new file mode 100644
index 0000000..1a122b1
--- /dev/null
+++ b/webconsole/html/fr/help/index.xml
@@ -0,0 +1,32 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE index PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN" "index_1_0.dtd">
+<index version="1.0">
+<indexitem target="gbgpn" text="Assignation des profils"></indexitem>
+<indexitem target="gbgce" text="Référentiels de configuration"><indexitem target="gbgcn" text="Création"></indexitem><indexitem target="gbzbc" text="Suppression"></indexitem><indexitem target="gbzci" text="Modification du nom"></indexitem><indexitem target="gbgqm" text="Synchronisation"></indexitem><indexitem text="Types"><indexitem target="gbgpt" text="Fichier"></indexitem><indexitem target="gbgpt" text="Hybride"></indexitem><indexitem target="gbgpt" text="LDAP (Lightweight Directory Access Protocol)"></indexitem>
+</indexitem>
+<indexitem target="gbgpt" text="Affichage des détails"></indexitem>
+</indexitem>
+<indexitem target="gbgni" text="Création de profils"></indexitem>
+<indexitem target="gbgcn" text="Création de référentiels"></indexitem>
+<indexitem target="gbgpr" text="Suppression de profils"></indexitem>
+<indexitem target="gbgce" text="Domaines"></indexitem>
+<indexitem target="gbgoz" text="Paramètres effectifs, affichage"></indexitem>
+<indexitem target="gbgcm" text="Arborescences d'éléments"></indexitem>
+<indexitem target="gbgce" text="Éléments"><indexitem target="gbgqt" text="Fonction de recherche"></indexitem><indexitem target="gbgoy" text="Informations"></indexitem><indexitem target="gbgpa" text="Recherche"></indexitem>
+</indexitem>
+<indexitem target="gbgqh" text="Exportation de profils"></indexitem>
+<indexitem target="gbgps" text="Importation de profils"></indexitem>
+<indexitem target="gbgpt" text="LDAP (Lightweight Directory Access Protocol)"></indexitem>
+<indexitem target="gbgqa" text="Déconnexion"></indexitem>
+<indexitem target="gbgcm" text="Navigation"></indexitem>
+<indexitem target="gbgce" text="Organisations"></indexitem>
+<indexitem target="gbgcm" text="Arborescences de profils"></indexitem>
+<indexitem target="gbgce" text="Profils"><indexitem target="gbgpn" text="Assignation"></indexitem><indexitem target="gbgni" text="Création"></indexitem><indexitem target="gbgpr" text="Suppression"></indexitem><indexitem target="gbgqh" text="Exportation"></indexitem><indexitem target="gbgps" text="Importation"></indexitem><indexitem target="gbgcm" text="Navigation"></indexitem><indexitem target="gbgqj" text="Annulation de l'assignation"></indexitem>
+</indexitem>
+<indexitem target="gbgqa" text="Référentiels"></indexitem>
+<indexitem target="gbgpa" text="Recherche"></indexitem>
+<indexitem target="gbgqm" text="Synchronisation"></indexitem>
+<indexitem target="gbgcd" text="Affichage de tous les profils"></indexitem>
+<indexitem target="gbgdc" text="Affichage des profils assignés"></indexitem>
+</index>
diff --git a/webconsole/html/fr/help/map.jhm b/webconsole/html/fr/help/map.jhm
new file mode 100644
index 0000000..a14c734
--- /dev/null
+++ b/webconsole/html/fr/help/map.jhm
@@ -0,0 +1,46 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN" "map_1_0.dtd">
+<map version="1.0">
+ <mapID target="gbgca" url="gbgca.html"/>
+ <mapID target="gbgce" url="gbgce.html"/>
+ <mapID target="gbgqa" url="gbgqa.html"/>
+ <mapID target="gbgpt" url="gbgpt.html"/>
+ <mapID target="gbgcn" url="gbgcn.html"/>
+ <mapID target="gbzbc" url="gbzbc.html"/>
+ <mapID target="gbzci" url="gbzci.html"/>
+ <mapID target="gbgqm" url="gbgqm.html"/>
+ <mapID target="gbgdc" url="gbgdc.html"/>
+ <mapID target="gbgcm" url="gbgcm.html"/>
+ <mapID target="gbgpa" url="gbgpa.html"/>
+ <mapID target="gbgqt" url="gbgqt.html"/>
+ <mapID target="gbgoy" url="gbgoy.html"/>
+ <mapID target="gbgni" url="gbgni.html"/>
+ <mapID target="gbgpr" url="gbgpr.html"/>
+ <mapID target="gbgpn" url="gbgpn.html"/>
+ <mapID target="gbgqj" url="gbgqj.html"/>
+ <mapID target="gbgpw" url="gbgpw.html"/>
+ <mapID target="gbgqf" url="gbgqf.html"/>
+ <mapID target="gbgps" url="gbgps.html"/>
+ <mapID target="gbgqh" url="gbgqh.html"/>
+ <mapID target="gbgoz" url="gbgoz.html"/>
+ <mapID target="gbgcd" url="gbgcd.html"/>
+ <mapID target="gbgcr" url="gbgcr.html"/>
+ <mapID target="gbgpe" url="gbgpe.html"/>
+ <mapID target="gbgpu" url="gbgpu.html"/>
+ <mapID target="gbgow" url="gbgow.html"/>
+ <mapID target="gbgpj" url="gbgpj.html"/>
+ <mapID target="gbgou" url="gbgou.html"/>
+ <mapID target="gbgec" url="gbgec.html"/>
+ <mapID target="gbgcg" url="gbgcg.html"/>
+ <mapID target="gbgpb" url="gbgpb.html"/>
+ <mapID target="gbgeb" url="gbgeb.html"/>
+ <mapID target="gbgot" url="gbgot.html"/>
+ <mapID target="gbgkr" url="gbgkr.html"/>
+ <mapID target="gbgpm" url="gbgpm.html"/>
+ <mapID target="gbgpp" url="gbgpp.html"/>
+ <mapID target="gbgda" url="gbgda.html"/>
+ <mapID target="gbgdh" url="gbgdh.html"/>
+ <mapID target="gbgqu" url="gbgqu.html"/>
+ <mapID target="gbgqe" url="gbgqe.html"/>
+</map>
diff --git a/webconsole/html/fr/help/p1.html b/webconsole/html/fr/help/p1.html
new file mode 100644
index 0000000..2ffa551
--- /dev/null
+++ b/webconsole/html/fr/help/p1.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<h1>Java Desktop System Configuration Manager Release 2.0 Online Help</h1>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/fr/help/toc.xml b/webconsole/html/fr/help/toc.xml
new file mode 100644
index 0000000..e823c89
--- /dev/null
+++ b/webconsole/html/fr/help/toc.xml
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE toc PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN" "toc_1_0.dtd">
+<toc version="1.0">
+<tocitem target="gbgca" text="Aide de Sun Desktop Manager 1.0.1"><tocitem target="gbgce" text="Introduction"></tocitem>
+<tocitem target="gbgqa" text="Fenêtre Référentiels de configuration"><tocitem target="gbgpt" text="Tableau Référentiels de configuration"><tocitem target="gbgcn" text="Création d'un référentiel de configuration"></tocitem>
+<tocitem target="gbzbc" text="Suppression d'un référentiel de configuration"></tocitem>
+<tocitem target="gbzci" text="Modification du nom d'un référentiel de configuration"></tocitem>
+<tocitem target="gbgqm" text="Synchronisation des référentiels de configuration"></tocitem>
+</tocitem>
+</tocitem>
+<tocitem target="gbgdc" text="Profils &#8212; Vue de l'arborescence"><tocitem target="gbgcm" text="Zone de navigation"><tocitem target="gbgpa" text="Recherche d'un élément"></tocitem>
+<tocitem target="gbgqt" text="Utilisation de la fonction Rechercher"></tocitem>
+</tocitem>
+<tocitem target="gbgoy" text="Zone de contenu"><tocitem target="gbgni" text="Création d'un profil"></tocitem>
+<tocitem target="gbgpr" text="Suppression d'un profil"></tocitem>
+<tocitem target="gbgpn" text="Assignation d'un profil"></tocitem>
+<tocitem target="gbgqj" text="Annulation d'une assignation de profil"></tocitem>
+<tocitem target="gbgpw" text="Attribution d'un nouveau nom à un profil"></tocitem>
+<tocitem target="gbgqf" text="Copie et déplacement d'un profil"></tocitem>
+<tocitem target="gbgps" text="Importation de profils"></tocitem>
+<tocitem target="gbgqh" text="Exportation de profils"></tocitem>
+</tocitem>
+<tocitem target="gbgoz" text="Affichage des paramètres effectifs"></tocitem>
+</tocitem>
+<tocitem target="gbgcd" text="Profils &#8212; Tous"><tocitem target="gbgcr" text="Création d'un profil"></tocitem>
+<tocitem target="gbgpe" text="Suppression d'un profil"></tocitem>
+<tocitem target="gbgpu" text="Attribution d'un nouveau nom à un profil"></tocitem>
+<tocitem target="gbgow" text="Copie et déplacement d'un profil"></tocitem>
+<tocitem target="gbgpj" text="Importation de profils"></tocitem>
+<tocitem target="gbgou" text="Exportation de profils"></tocitem>
+</tocitem>
+<tocitem target="gbgec" text="Éditeur de profil"><tocitem target="gbgcg" text="Propriétés générales"><tocitem target="gbgpb" text="Spécification des propriétés générales d'un profil"></tocitem>
+</tocitem>
+<tocitem target="gbgeb" text="Paramètres de configuration"><tocitem target="gbgot" text="Affichage et édition des paramètres de configuration d'un profil "></tocitem>
+</tocitem>
+<tocitem target="gbgkr" text="Éléments assignés"><tocitem target="gbgpm" text="Assignation d'un élément à un profil"></tocitem>
+<tocitem target="gbgpp" text="Annulation de l'assignation d'un élément à un profil"></tocitem>
+</tocitem>
+<tocitem target="gbgda" text="Résumé des paramètres"></tocitem>
+<tocitem target="gbgdh" text="Options avancées"><tocitem target="gbgqu" text="Modification de l'emplacement de l'application"></tocitem>
+<tocitem target="gbgqe" text="Assignation d'un ordre de fusion à un profil"></tocitem>
+</tocitem>
+</tocitem>
+</tocitem>
+
+</toc>
diff --git a/webconsole/html/fr/helpContent.html b/webconsole/html/fr/helpContent.html
new file mode 100644
index 0000000..2dc8874
--- /dev/null
+++ b/webconsole/html/fr/helpContent.html
@@ -0,0 +1,336 @@
+<html>
+<head>
+<title>Sun Java[TM] Desktop System Configuration Manager - Aide </title>
+<meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><!-- Empty script so IE5.0 Windows will draw table and button borders --><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"></script> </head>
+
+<body class="help-body"><a name="top"></a> <p><a name="intro"> </a><div class="help-header-1">Aide de Configuration Manager</div></p>
+<p>Bienvenue dans les pages d'aide de Sun Java[TM] Desktop System Configuration Manager. Pour obtenir de l'aide sur une partie sp&eacute;cifique de Java Desktop System Configuration Manager, cliquez sur l'un des liens situ&eacute;s &agrave; gauche.</p>
+<p>L'aide commence par une pr&eacute;sentation g&eacute;n&eacute;rale du produit Configuration Manager et de ses concepts de base - <a class="help-link" href="#concepts">Concepts</a>. Des informations g&eacute;n&eacute;rales ayant trait &agrave; la structure et au comportement de Configuration Manager sont propos&eacute;es dans <a class="help-link" href="#ui">Disposition et comportement</a>. </p>
+<p>Vous trouverez ensuite une aide sp&eacute;cifique au <a class="help-link" href="#masthead"><b>cadre masthead</b></a>, au <a class="help-link" href="#navigation"><b>volet de navigation</b></a> et au <a class="help-link" href="#content"><b>volet de contenu</b></a>. Des pages sont &eacute;galement consacr&eacute;es &agrave; la <a class="help-link" href="#login">connexion</a> et &agrave; la fonction de <a href="#reporting">cr&eacute;ation de rapports</a>. <p><a name="concepts"> </a> <div class="help-header-1">Concepts</div></p>
+<p>Le produit Configuration Manager offre une gestion centralis&eacute;e des param&egrave;tres de configuration. Il permet d'afficher, de d&eacute;finir et d'appliquer des param&egrave;tres de configuration &agrave; diff&eacute;rents niveaux de la hi&eacute;rarchie d'une organisation. Les param&egrave;tres de configuration s&eacute;mantiquement coh&eacute;rents sont appel&eacute;s "strat&eacute;gies de configuration" dans la suite de ce document.</p>
+<P>Configuration Manager g&egrave;re trois structures hi&eacute;rarchiques diff&eacute;rentes, &eacute;galement appel&eacute;es arborescences. Pour comprendre l'interface utilisateur de Configuration Manager, il est essentiel de faire la distinction entre ces arborescences&nbsp;:</P>
+<p><div class="help-header-2"><a name="dataStructures">Structures de donn&eacute;es</a></div></p>
+<P>L'une des arborescences est constitu&eacute;e des strat&eacute;gies de configuration. Elle est donc appel&eacute;e "arborescence des strat&eacute;gies de configuration" (voir les parties bleues de la figure&nbsp;1 - "Arborescences"). Les utilisateurs de nombreux programmes poss&eacute;dant une configuration &eacute;labor&eacute;e, tels que Mozilla, sont familiaris&eacute;s avec l'organisation hi&eacute;rarchique des param&egrave;tres de configuration. Si l'on garde l'exemple de Mozilla, "/Mozilla/Navigator" fait r&eacute;f&eacute;rence &agrave; une strat&eacute;gie de configuration, et "/Mozilla/Navigator/HomeUrl" &agrave; un param&egrave;tre de configuration.</P>
+<P>Les arborescences de strat&eacute;gies de configuration sont int&eacute;gr&eacute;es dans le deuxi&egrave;me type d'arborescence&nbsp;: l'arborescence de l'organisation (voir les parties grises de la figure&nbsp;1 - "Arborescences"). L'arborescence de l'organisation repr&eacute;sente les relations entre unit&eacute;s organisationnelles. Le r&eacute;sultat est une arborescence d'organisation qui contient les arborescences de strat&eacute;gies de configuration. L'arborescence de l'organisation est repr&eacute;sent&eacute;e &agrave; l'aide d'un serveur LDAP.</P>
+<p>Le troisi&egrave;me type d'arborescence est l'arborescence du domaine. Celle-ci repr&eacute;sente les relations entre unit&eacute;s mat&eacute;rielles. Les arborescences de strat&eacute;gies de configuration sont int&eacute;gr&eacute;es dans l'arborescence du domaine, ce qui aboutit &agrave; une arborescence de domaine contenant les arborescences de strat&eacute;gies de configuration. L'arborescence du domaine est repr&eacute;sent&eacute;e &agrave; l'aide d'un serveur LDAP.</p>
+<p>Les concepts de travail sont les m&ecirc;mes pour l'arborescence de l'organisation et l'arborescence du domaine. La principale diff&eacute;rence r&eacute;side dans le fait que l'arborescence de l'organisation g&egrave;re les utilisateurs tandis que l'arborescence du domaine g&egrave;re les h&ocirc;tes. La s&eacute;paration des utilisateurs et des h&ocirc;tes dans deux arborescences distinctes permet &agrave; Configuration Manager de fournir une configuration orient&eacute;e utilisateurs et orient&eacute;e h&ocirc;tes. En raison des similitudes de ces deux arborescences, cette section met l'accent sur l'arborescence de l'organisation et ne mentionne l'arborescence du domaine qu'en cas de diff&eacute;rence entre les deux.</p>
+<P>Les serveurs LDAP sont fr&eacute;quemment utilis&eacute;s dans les grandes entreprises pour hi&eacute;rarchiser les donn&eacute;es de l'organisation. Chaque emplacement de l'arborescence de l'organisation dans LDAP est appel&eacute; "entit&eacute;".</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_ldap_v4.png" NAME="Trees" ALT="Arborescences" ALIGN=LEFT WIDTH=550 HEIGHT=369 BORDER=1> </FONT><P><FONT COLOR="#000000"><A NAME="fig_trees"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">Figure&nbsp; 1 &ndash; Arborescences</FONT></FONT></I></FONT></P>
+<p><div class="help-header-2"><a name="SecDataManagement">Gestion de la s&eacute;curit&eacute; et des donn&eacute;es</a></div></p>
+<p>Cette "arborescence d'arborescences" facilite la gestion hi&eacute;rarchique de la s&eacute;curit&eacute; et des donn&eacute;es. Elle est initialement obtenue par l'insertion de l'arborescence des strat&eacute;gies de configuration tout enti&egrave;re &agrave; la racine de l'arborescence de l'organisation&nbsp;; cette op&eacute;ration est effectu&eacute;e une seule fois. Les modifications des param&egrave;tres de configuration d'une entit&eacute; dans cette arborescence de strat&eacute;gies de configuration initiale sont stock&eacute;es au niveau de l'entit&eacute; en question. Pour des raisons de simplicit&eacute;, la figure&nbsp;1 illustre uniquement les arborescences des strat&eacute;gies de configuration associ&eacute;es aux entit&eacute;s "marketing" et "mlegrand".</P>
+<p><div class="help-header-2"><a name="GenConfigSettings">G&eacute;n&eacute;ration des param&egrave;tres de configuration</a></div></p>
+<P>Les param&egrave;tres de configuration d'une entit&eacute; sont obtenus par fusion. Tous les param&egrave;tres de configuration, qui sont associ&eacute;s &agrave; une entit&eacute; de l'arborescence de l'organisation ou du domaine, sont appel&eacute;s "couches". La fusion commence au niveau de la couche racine et descend l'arborescence jusqu'&agrave; l'entit&eacute; voulue. Tout changement apport&eacute; &agrave; un param&egrave;tre de configuration, dans une couche associ&eacute;e &agrave; une entit&eacute;, est h&eacute;rit&eacute; par les couches associ&eacute;es aux entit&eacute;s des niveaux inf&eacute;rieurs dans la hi&eacute;rarchie de l'arborescence (voir la <A class="help-link" HREF="#fig_merging">figure&nbsp;2 - "Fusion des couches"</a>). Les valeurs h&eacute;rit&eacute;es peuvent &ecirc;tre &eacute;cras&eacute;es si une couche donn&eacute;e d&eacute;finit ses propres param&egrave;tres.</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_merge.gif" NAME="LayerMerging" ALT="Fusion des couches" ALIGN=LEFT WIDTH=550 HEIGHT=520 BORDER=1> </FONT><P><FONT COLOR="#000000"><A NAME="fig_merging"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">Figure 2 &ndash;Fusion des couches</FONT></FONT></I></FONT></P>
+<p><FONT COLOR="#000000">Cet h&eacute;ritage vaut pour les param&egrave;tres de configuration, mais aussi pour les caract&eacute;ristiques de s&eacute;curit&eacute;&nbsp;:</FONT> <FONT COLOR="#000000">la sp&eacute;cification de l'attribut de s&eacute;curit&eacute; "protected" (prot&eacute;g&eacute;) d'un param&egrave;tre de configuration de la couche li&eacute;e &agrave; "o=marketing" est r&eacute;percut&eacute;e dans toutes les couches sous-jacentes de l'arborescence en lecture seule (voir la <A class="help-link" HREF="#fig_protection">figure&nbsp;3 - "Protection"</a>).</FONT></P>
+<P><FONT COLOR="#000000"><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_protected_v3.png" NAME="Protection" ALT="Protection" ALIGN=LEFT WIDTH=550 HEIGHT=524 BORDER=1> </FONT></FONT><P><FONT COLOR="#000000"><FONT COLOR="#000000"><A NAME="fig_protection"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">Figure 3 &ndash; Protection</FONT></FONT></I></FONT></FONT></P>
+<p><div class="help-header-2"><a name="BCAssociating">Association d'une arborescence de strat&eacute;gies de configuration &agrave; une arborescence d'organisation ou de domaine</a></div></p>
+<p>Les arborescences de strat&eacute;gies de configuration sont li&eacute;es de deux mani&egrave;res diff&eacute;rentes aux entit&eacute;s d'une arborescence d'organisation&nbsp;:</P>
+<UL>
+ <li>Elles sont stock&eacute;es au niveau d'une entit&eacute; en tant qu'arborescences de strat&eacute;gies de configuration autonomes.</li>
+ <li>Elles sont li&eacute;es &agrave; une entit&eacute; &agrave; partir d'un groupe de strat&eacute;gies.</li>
+</UL>
+<p><p><div class="help-header-2"><a name="BCPolicyGroups">Groupes de strat&eacute;gies</a></div></p>
+<P>Les groupes de strat&eacute;gies sont des containers, ayant chacun un nom unique, pour les strat&eacute;gies de configuration. Ils constituent &eacute;galement des containers pour une arborescence de strat&eacute;gies de configuration, car ce type d'arborescence contient les param&egrave;tres de configuration des strat&eacute;gies de configuration (voir la <A class="help-link" HREF="#fig_trees">figure&nbsp;1 &ndash; "Arborescences"</A>). Les groupes de strat&eacute;gies sont stock&eacute;s dans un r&eacute;f&eacute;rentiel des strat&eacute;gies et peuvent &ecirc;tre utilis&eacute;s par tous les types d'entit&eacute;s en cr&eacute;ant un ou plusieurs liens vers un ou plusieurs groupes de strat&eacute;gies. Cela permet une plus grande souplesse, quel que soit le magasin de donn&eacute;es d'arri&egrave;re-plan utilis&eacute;. Les groupes de strat&eacute;gies pr&eacute;sentent aussi l'avantage de pouvoir &ecirc;tre import&eacute;s et export&eacute;s, ce qui facilite la maintenance.</P>
+<P>L'administrateur peut cr&eacute;er des ensembles de strat&eacute;gies de configuration pour des plages s&eacute;mantiques distinctes, par exemple, deux groupes de strat&eacute;gies "Experts" et "Novice" stock&eacute;s dans le r&eacute;f&eacute;rentiel des strat&eacute;gies. Les strat&eacute;gies de configuration peuvent alors &ecirc;tre utilis&eacute;es dans toute l'arborescence de l'organisation.</P>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Aller au d&eacute;but de la page" width="11" height="10" hspace="4" border="0"> Retour au d&eacute;but</a> </div><a name="ui"> </a> <div class="help-header-1">Disposition et comportement</div>
+<p>Configuration Manager est organis&eacute; en trois zones&nbsp;: un cadre masthead, un volet de navigation et un volet de contenu. Le cadre masthead se situe dans la section sup&eacute;rieure de la page. La zone situ&eacute;e en bas &agrave; gauche contient le volet de navigation. La zone situ&eacute;e en bas &agrave; droite est le volet de contenu. Ce type de disposition est aussi appel&eacute; "jeu de volets droit-gauche". Des fen&ecirc;tres de navigateur distinctes s'ouvrent pour afficher d'autres bo&icirc;tes de dialogue et le contenu de l'aide.</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Aller au d&eacute;but de la page" width="11" height="10" hspace="4" border="0"> Retour au d&eacute;but</a> </div><a name="login"> </a> <div class="help-header-1">Connexion</div>
+<p>Pour utiliser Configuration Manager, vous devez vous connecter &agrave; la console Web de Sun. Cette console est l'endroit d'o&ugrave; sont g&eacute;r&eacute;es les applications, toutes ayant une interface utilisateur coh&eacute;rente. L'un des avantages de la console est qu'un administrateur peut se connecter une fois et utiliser ensuite n'importe quelle application de la console. C'est pourquoi la console Web de Sun fournit une page de connexion standard.</p>
+<p>Dans la page de connexion standard, le serveur auquel vous allez vous connecter s'affiche au-dessus des champs de texte destin&eacute;s au nom d'utilisateur et au mot de passe.</p>
+<p>Une fois que vous &ecirc;tes connect&eacute; &agrave; la console Web, vous parvenez &agrave; la page de lancement des applications de la console. Vous pouvez alors lancer l'application "Configuration Manager" en la s&eacute;lectionnant.</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Aller au d&eacute;but de la page" width="11" height="10" hspace="4" border="0"> Retour au d&eacute;but</a> </div><a name="masthead"> </a> <div class="help-header-1">Cadre masthead</div>
+<p>Le cadre masthead comprend le nom complet du produit (Sun Java[TM] Desktop System Configuration Manager). Il propose &eacute;galement diff&eacute;rents liens d'ordre g&eacute;n&eacute;ral&nbsp;:</p>
+<ul><li>Le lien <b>Console </b> permet de revenir &agrave; la page de lancement des applications de la console Web de Sun.</li>
+ <li>Le lien <b>Version</b> ouvre une fen&ecirc;tre d'informations sur la version.</li>
+ <li>Le lien <b>D&eacute;connecter</b> vous d&eacute;connecte de la console Web de Sun, et par cons&eacute;quent de Configuration Manager, et renvoie &agrave; la page de connexion.</li>
+ <li>Le lien <b>Aide</b> ouvre les pr&eacute;sentes pages d'aide.</li>
+</ul>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Aller au d&eacute;but de la page" width="11" height="10" hspace="4" border="0"> Retour au d&eacute;but</a> </div><a name="navigation"> </a> <div class="help-header-1">Volet de navigation</div>
+<p>Le volet de navigation permet de parcourir l'arborescence de l'organisation d'une part, qui contient les organisations, les utilisateurs et les r&ocirc;les, et l'arborescence du domaine d'autre part, qui contient les domaines et les h&ocirc;tes. Il permet aussi de g&eacute;rer les groupes de strat&eacute;gies dans les r&eacute;f&eacute;rentiels de strat&eacute;gies utilisateur et h&ocirc;te correspondants.</p>
+<p>Le volet de navigation comporte deux onglets principaux&nbsp;: <b>Utilisateurs</B> et <b>H&ocirc;tes</B>. </p><a name="entities"> </a> <div class="help-header-2">Onglet Utilisateurs</div>
+<p>Deux sous-onglets sont propos&eacute;s&nbsp;: <b>Arborescence de l'organisation</B> et <b>R&eacute;f&eacute;rentiel des strat&eacute;gies</B>. Utilisez l'onglet <b>Arborescence de l'organisation</B> pour parcourir cette arborescence. </p><a name="parpath"></a><div class="help-header-3">Chemin de parent&eacute;</div>
+<p>Dans la partie sup&eacute;rieure de l'onglet <b>Arborescence de l'organisation</B> figure le chemin de parent&eacute;, qui affiche le chemin d'acc&egrave;s &agrave; l'entit&eacute; active. Chaque segment du chemin d'acc&egrave;s est un lien qui repr&eacute;sente une entit&eacute;, &agrave; l'exception du dernier lien, qui s'affiche en texte normal et fait r&eacute;f&eacute;rence &agrave; l'entit&eacute; active. Pour naviguer &agrave; l'aide du chemin de parent&eacute;, cliquez sur un lien. Cela a pour effet&nbsp;: <ul><li>d'actualiser le volet de navigation de sorte que le chemin de parent&eacute; renvoie vers l'entit&eacute; en question et que la table de navigation contient les sous-entit&eacute;s de cette entit&eacute;&nbsp;;</li>
+ <li>d'actualiser le volet de contenu avec les donn&eacute;es de strat&eacute;gie de configuration associ&eacute;es &agrave; cette entit&eacute;. </li>
+</ul>Les volets de navigation et de contenu sont synchronis&eacute;s dans toute l'application pour assurer un affichage homog&egrave;ne des donn&eacute;es. </p><a name="navtable"></a><div class="help-header-3">Table de navigation</div>
+<p>La table de navigation se trouve sous le chemin de parent&eacute; et affiche la liste des sous-entit&eacute;s de l'entit&eacute; active. La colonne "Nom" contient le nom de chaque sous-entit&eacute; de l'entit&eacute; active. La colonne "Type" affiche le type de l'entit&eacute;. La colonne "Actions" contient un lien <b>Affichage</B> pour chaque ligne.</p>
+<p>Pour naviguer vers une entit&eacute;, cliquez sur un nom de la liste, ce qui a pour effet&nbsp;: <ul><li>d'activer la sous-entit&eacute; s&eacute;lectionn&eacute;e&nbsp;;</li>
+ <li>d'actualiser le volet de navigation de sorte que le chemin de parent&eacute; renvoie vers la nouvelle entit&eacute; active et que la table de navigation contient les sous-entit&eacute;s de cette entit&eacute;&nbsp;;</li>
+ <li>d'actualiser le volet de contenu avec la strat&eacute;gie de configuration associ&eacute;e &agrave; cette entit&eacute;. </li>
+</ul></p>Une entit&eacute; peut &ecirc;tre du type "Organisation", "Utilisateur" ou "R&ocirc;le".</p>
+<p>Pour afficher les informations relatives &agrave; une entit&eacute; de la liste, cliquez sur le lien <b>Affichage</B> correspondant. Cela a pour effet&nbsp;: <ul><li>d'afficher en bleu l'arri&egrave;re-plan de la ligne s&eacute;lectionn&eacute;e&nbsp;; </li>
+ <li>d'actualiser le volet de contenu avec les donn&eacute;es associ&eacute;es &agrave; l'entit&eacute; s&eacute;lectionn&eacute;e. </li>
+</ul>Une ligne avec un arri&egrave;re-plan bleu met en &eacute;vidence l'entit&eacute; dont les donn&eacute;es sont actuellement visibles dans le volet de contenu.</p>
+<p>La barre d'actions de la table de navigation contient le menu d&eacute;roulant <b>Filtre</B> et l'ic&ocirc;ne <b>Filtre sp&eacute;cial</b>. Lorsque la table contient plus de dix entr&eacute;es, l'ic&ocirc;ne <b>Parcourir toutes les donn&eacute;es</b> s'affiche et vous permet de changer l'affichage des entr&eacute;es de la table.</p>
+<p>Le menu d&eacute;roulant <b>Filtre</b> vous permet de choisir le type d'entit&eacute; &agrave; afficher dans la table de navigation. Il contient les &eacute;l&eacute;ments suivants&nbsp;: <ul><li>"Tous les &eacute;l&eacute;ments" affiche tous les types d'entit&eacute;s dans la table de navigation.</li>
+ <li>"Organisations" affiche uniquement les entit&eacute;s de type "Organisation" dans la table de navigation.</li>
+ <li>"Utilisateurs" affiche uniquement les entit&eacute;s de type "Utilisateur" dans la table de navigation.</li>
+ <li>"R&ocirc;les" affiche uniquement les entit&eacute;s de type "R&ocirc;le" dans la table de navigation. </li>
+</ul></p><a name="adfilter"></a><div class="help-header-3">Filtre sp&eacute;cial</div>
+<p>Cliquez sur l'ic&ocirc;ne <b>Filtre sp&eacute;cial</B> de la table de navigation pour ouvrir la bo&icirc;te de dialogue Filtre sp&eacute;cial.</P>
+<p>Dans la section <b>Type</b>, indiquez le type d'entit&eacute; que vous voulez filtrer. Pour utiliser un filtre plus sp&eacute;cifique, saisissez le nom sur lequel vous voulez appliquer le filtre dans le champ de texte <b>Nom</b>. Cliquez ensuite sur le bouton <b>Filtre</B> situ&eacute; en bas de la bo&icirc;te de dialogue pour ex&eacute;cuter le filtre. </p><a name="search"></a><div class="help-header-3">Recherche</div>
+<p>Pour ouvrir la fen&ecirc;tre Rechercher, cliquez sur le bouton <b>Rechercher</b> situ&eacute; au-dessus de la table de navigation. La fen&ecirc;tre Rechercher contient un cadre masthead, une zone de param&egrave;tres &agrave; gauche et une zone de r&eacute;sultats &agrave; droite. La fen&ecirc;tre Rechercher peut &ecirc;tre utilis&eacute;e pour chercher de fa&ccedil;on r&eacute;cursive certains types et noms d'entit&eacute;s dans toute l'arborescence de l'organisation. Si le bouton <b>Rechercher</b> du volet de navigation de la fen&ecirc;tre principale est utilis&eacute; alors que la fen&ecirc;tre Rechercher est ouverte &agrave; l'arri&egrave;re-plan, cette fen&ecirc;tre passe au premier plan. L'entit&eacute; active de la fen&ecirc;tre Rechercher, qui figure dans le chemin de parent&eacute; de la zone de param&egrave;tres de cette fen&ecirc;tre, est actualis&eacute;e. Tous les autres param&egrave;tres et le contenu de la zone de r&eacute;sultats restent inchang&eacute;s.</p>
+<p>La zone de param&egrave;tres indique le chemin de parent&eacute; en haut et affiche le chemin d'acc&egrave;s &agrave; l'entit&eacute; active. L'utilisation de la zone de param&egrave;tres est d&eacute;crite dans la section <a class="help-link" href="#parpath">Chemin de parent&eacute;</a>.</p>
+<p>Pour rechercher un type particulier d'entit&eacute;, s&eacute;lectionnez ce type dans la liste d&eacute;roulante situ&eacute;e sous le chemin de parent&eacute;. Les six choix possibles sont "Rechercher partout", "Rechercher des organisations", "Rechercher des utilisateurs", "Rechercher des r&ocirc;les", "Rechercher des domaines" et "Rechercher des h&ocirc;tes".</p>
+<p>Pour affiner la recherche, vous pouvez utiliser la zone de texte situ&eacute;e &agrave; c&ocirc;t&eacute; de la liste d&eacute;roulante. Cela vous permet de rechercher les noms d'entit&eacute;s qui correspondent &agrave; la cha&icirc;ne de recherche saisie dans ce champ. Vous pouvez sp&eacute;cifier le point de d&eacute;part de la recherche dans l'arborescence en s&eacute;lectionnant l'un des boutons radio <b>Point de d&eacute;part</b>. Vous avez la possibilit&eacute; d'effectuer la recherche &agrave; partir du haut de l'arborescence ou &agrave; partir de l'emplacement actif (il s'agit de la valeur par d&eacute;faut). Les emplacements sont repr&eacute;sent&eacute;s par leur nom. Le fait de cliquer sur un segment du chemin de parent&eacute; change l'emplacement actif pour la recherche vers l'entit&eacute; s&eacute;lectionn&eacute;e, mais pas l'&eacute;tendue de l'affichage du navigateur.</p>
+<p>S&eacute;lectionnez le nombre de r&eacute;sultats &agrave; afficher dans la liste d&eacute;roulante "R&eacute;sultats affich&eacute;s par page".</p>
+<p>Tous les champs de recherche du volet de recherche acceptent l'ast&eacute;risque "*" comme caract&egrave;re g&eacute;n&eacute;rique &agrave; n'importe quelle position dans une cha&icirc;ne de recherche. L'ast&eacute;risque repr&eacute;sente un nombre arbitraire de caract&egrave;res arbitraires. Si plusieurs crit&egrave;res de recherche sont sp&eacute;cifi&eacute;s, tous ces crit&egrave;res doivent &ecirc;tre respect&eacute;s pour qu'une entit&eacute; soit ajout&eacute;e au tableau de r&eacute;sultats. La recherche ne respecte pas la casse.</p>
+<p>Pour effectuer la recherche, cliquez sur le bouton <b>Rechercher</b>. La zone de r&eacute;sultats est alors actualis&eacute;e de fa&ccedil;on &agrave; pr&eacute;senter un tableau contenant les r&eacute;sultats de la recherche.</p>
+<p>Pour r&eacute;initialiser les valeurs de la page, cliquez sur <b>R&eacute;initialiser</b>. La zone de param&egrave;tres est alors actualis&eacute;e de fa&ccedil;on &agrave; pr&eacute;senter les valeurs par d&eacute;faut. Toutes les zones de texte sont vides et la premi&egrave;re valeur est s&eacute;lectionn&eacute;e dans toutes les listes d&eacute;roulantes et tous les groupes de boutons radio.</p>
+<p>La zone de r&eacute;sultats contient une page blanche lorsque la fen&ecirc;tre Rechercher est cr&eacute;&eacute;e. Une fois la recherche effectu&eacute;e, un tableau de r&eacute;sultats s'affiche. Le tableau de r&eacute;sultats comporte trois colonnes&nbsp;: "Nom", "Type" et "Chemin d'acc&egrave;s".</p>
+<p>Pour afficher un r&eacute;sultat, cliquez sur le nom correspondant dans la colonne "Nom". Cela a pour effet&nbsp;: <ul><li>d'afficher la fen&ecirc;tre principale au premier plan&nbsp;;</li>
+ <li>d'actualiser le volet de navigation de la fen&ecirc;tre principale de sorte que l'entit&eacute; repr&eacute;sent&eacute;e par le lien "Nom" constitue une entr&eacute;e de la table de navigation, assortie d'un arri&egrave;re-plan bleu&nbsp;; </li>
+ <li>d'actualiser la zone de contenu de la fen&ecirc;tre principale avec la strat&eacute;gie de configuration associ&eacute;e &agrave; cette entit&eacute;.</li>
+ </UL>
+</p>
+<p>La colonne "Type" affiche le type de l'entit&eacute;. Une entit&eacute; peut &ecirc;tre du type "Organisation", "Utilisateur" ou "R&ocirc;le".</p>
+<p>La colonne "Chemin d'acc&egrave;s" affiche le chemin d'acc&egrave;s &agrave; l'entit&eacute;. Ce chemin est relatif au point de d&eacute;part de la recherche.</p>
+<p>Si le type recherch&eacute; est "Utilisateur", la zone de param&egrave;tres affiche diff&eacute;rentes zones de texte qui concernent les caract&eacute;ristiques d'un utilisateur&nbsp;: "ID d'utilisateur", "Pr&eacute;nom" et "Nom". Dans la zone de r&eacute;sultats, une colonne suppl&eacute;mentaire, "ID d'utilisateur", s'affiche &agrave; droite de la colonne "Nom". Si la zone de texte "ID d'utilisateur" de la zone de param&egrave;tres contient au moins un caract&egrave;re, la colonne "ID d'utilisateur" est la cl&eacute; de tri primaire. Sinon, la cl&eacute; de tri primaire est la colonne "Nom". </p><a name="hoststab"> </a> <div class="help-header-2">Onglet H&ocirc;tes</div>
+<p>L'onglet <b>H&ocirc;tes</B> contient deux sous-onglets, appel&eacute;s respectivement <b>Arborescence du domaine</B> et <b>R&eacute;f&eacute;rentiel des strat&eacute;gies</B>. </p><a name="domtree"></a><div class="help-header-3">Onglet Arborescence du domaine</div>
+<p>L'arborescence du domaine affiche les param&egrave;tres de configuration du mat&eacute;riel sur lequel travaille l'utilisateur.</P>
+<p>La navigation dans l'arborescence du domaine s'effectue de la m&ecirc;me fa&ccedil;on que dans l'arborescence de l'organisation. Pour plus d'informations, reportez-vous &agrave; la section <a href="#entities">Onglet Utilisateurs</A>. <a name="actionbar"></a><div class="help-header-3">Barre d'actions</div>
+<p>Le menu d&eacute;roulant <b>Filtre</B> de la table de navigation contient quatre &eacute;l&eacute;ments&nbsp;: <ul><li>"Tous les &eacute;l&eacute;ments" - affiche tous les types d'entit&eacute;s.</li>
+ <li>"Domaines" - affiche les entit&eacute;s de type Domaine.</li>
+ <li>"H&ocirc;tes" - affiche les entit&eacute;s de type H&ocirc;te. </li>
+</ul>
+</p><a name="adfilterhosts"></a><div class="help-header-3">Filtre sp&eacute;cial</div>
+<p>Le fonctionnement du filtre sp&eacute;cial est identique dans l'arborescence du domaine et dans l'arborescence de l'organisation (reportez-vous &agrave; la pr&eacute;c&eacute;dente section <a href="#adfilter">Filtre sp&eacute;cial</a>). Le filtre sp&eacute;cial de l'arborescence du domaine fournit des entit&eacute;s des types "Domaine" et "H&ocirc;te" sur lesquelles portera le filtre. </p><a name="searchhosts"></a><div class="help-header-3">Recherche</div>
+<p>Lorsque vous cliquez sur le bouton <b>Rechercher</b> dans <b>Arborescence du domaine</b>, la page de recherche relative au domaine s'affiche. La recherche du domaine fonctionne de la m&ecirc;me mani&egrave;re que dans l'arborescence de l'organisation (voir <a href="#">plus haut</a>), &agrave; cette exception que le champ Point de d&eacute;part indique "Mat&eacute;riel".</p>
+
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Aller au d&eacute;but de la page" width="11" height="10" hspace="4" border="0"> Retour au d&eacute;but</a> </div><a name="psptab"> </a> <div class="help-header-2">R&eacute;f&eacute;rentiels des strat&eacute;gies</div>
+<p>Un onglet <b>R&eacute;f&eacute;rentiel des strat&eacute;gies</b> est propos&eacute; sous les onglets <b>Utilisateurs</B> et <b>H&ocirc;tes</B>.</P>
+<p>Un r&eacute;f&eacute;rentiel des strat&eacute;gies est un container pour les groupes de strat&eacute;gies soit utilisateur, soit h&ocirc;te. Les groupes de strat&eacute;gies sont ordonn&eacute;s en liste. L'ordre de cette liste est fonction de priorit&eacute;s. </p><a name="psptable"></a><div class="help-header-3">Tableau des groupes de strat&eacute;gies</div>
+<P>Le tableau des groupes de strat&eacute;gies se trouve en haut de la page et affiche la liste des groupes de strat&eacute;gies. Ce tableau comporte trois colonnes&nbsp;: les colonnes "Nom" et "Priorit&eacute;" ainsi qu'une troisi&egrave;me qui permet d'op&eacute;rer des s&eacute;lections. </P>
+<P>La colonne de s&eacute;lection permet de s&eacute;lectionner les lignes auxquelles s'appliquent les actions figurant dans la liste d&eacute;roulante <b>Actions de groupe de strat&eacute;gies</b>.</P>
+<P>Pour naviguer vers un groupe de strat&eacute;gies, cliquez sur son nom. Cela a pour effet&nbsp;:</P>
+<UL>
+ <li>d'afficher en bleu l'arri&egrave;re-plan de la ligne s&eacute;lectionn&eacute;e&nbsp;;</li>
+ <li>d'actualiser le volet de contenu avec les donn&eacute;es associ&eacute;es &agrave; la strat&eacute;gie s&eacute;lectionn&eacute;e.</li>
+</ul>
+<p>La colonne "Priorit&eacute;" indique le niveau de priorit&eacute; du groupe de strat&eacute;gies. Les priorit&eacute;s permettent de d&eacute;finir l'ordre de fusion des groupes de strat&eacute;gies lorsqu'un administrateur a associ&eacute; plusieurs groupes &agrave; une entit&eacute;.</p>
+<P>Une ligne avec un arri&egrave;re-plan bleu signale le groupe de strat&eacute;gies dont les donn&eacute;es sont actuellement visibles dans le volet de contenu, le groupe de strat&eacute;gies affich&eacute;. </P><a name="pspactions"></a><div class="help-header-3">Barre d'actions de groupe de strat&eacute;gies</div>
+<P>Le menu d&eacute;roulant <b>Actions de groupe de strat&eacute;gies</B> contient les actions suivantes, de haut en bas&nbsp;: </P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <THEAD>
+ <TR VALIGN=TOP>
+ <TH WIDTH="11%">
+ <P>Nom</P>
+ </TH>
+ <TH WIDTH="89%">
+ <P>Action</P>
+ </TH>
+ </TR>
+ </THEAD>
+ <TBODY>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+ <P>Nouveau</P>
+ </TD>
+ <TD WIDTH="89%">
+ <P>Une bo&icirc;te de dialogue s'ouvre pour permettre &agrave; l'utilisateur de saisir le nom (unique) du groupe de strat&eacute;gies. Le groupe de strat&eacute;gies est ajout&eacute; apr&egrave;s que l'utilisateur a cliqu&eacute; sur OK. Le volet de navigation est actualis&eacute; de fa&ccedil;on &agrave; refl&eacute;ter les modifications.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="11%">
+ <P>Supprimer</P>
+ </td>
+ <TD WIDTH="89%">
+ <P>Une fen&ecirc;tre contextuelle s'ouvre avec un message d'avertissement demandant la confirmation de la suppression du ou des groupes de strat&eacute;gies. Si l'utilisateur clique sur OK, le ou les groupes de strat&eacute;gies sont supprim&eacute;s. Le volet de navigation est actualis&eacute; de fa&ccedil;on &agrave; refl&eacute;ter les modifications.</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>Renommer</p>
+ </td>
+ <td width="89%">
+ <p>Une bo&icirc;te de dialogue s'ouvre. L'utilisateur y saisit le nouveau nom (unique) du groupe de strat&eacute;gies. Le groupe de strat&eacute;gies est renomm&eacute; et le volet de navigation actualis&eacute; de fa&ccedil;on &agrave; refl&eacute;ter les modifications.</p>
+ </td>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>&Eacute;diter les priorit&eacute;s</p>
+ </td>
+ <td width="89%">
+ <p>Une bo&icirc;te de dialogue s'ouvre avec une zone de liste permettant de changer les priorit&eacute;s.</p>
+ </td>
+ </tr>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+ <P>Export</P>
+ </TD>
+ <TD WIDTH="89%">
+ <P>Une bo&icirc;te de dialogue s'ouvre. L'utilisateur y saisit le chemin de destination vers lequel le ou les groupes de strat&eacute;gies seront export&eacute;s.</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>Import</p>
+ </td>
+ <td width="89%">
+ <p>Une bo&icirc;te de dialogue s'ouvre. L'utilisateur y s&eacute;lectionne le ou les groupes de strat&eacute;gies &agrave; importer. Apr&egrave;s que l'utilisateur a cliqu&eacute; sur OK, chaque groupe de strat&eacute;gie s&eacute;lectionn&eacute; est ajout&eacute; et le volet de navigation actualis&eacute; de fa&ccedil;on &agrave; refl&eacute;ter les modifications.</p>
+ </td>
+ </tr>
+ </TBODY>
+</TABLE>
+
+<p><a name="psppriorities"></a><div class="help-header-3">Priorit&eacute;s des groupes de strat&eacute;gies</div></p>
+<p>Le concept de priorit&eacute;s des groupes de strat&eacute;gies permet &agrave; l'administrateur de d&eacute;finir l'ordre dans lequel les couches devront &ecirc;tre fusionn&eacute;es. Les priorit&eacute;s des groupes de strat&eacute;gies servent au cours de la fusion lorsque plusieurs groupes de strat&eacute;gies sont assign&eacute;s &agrave; une m&ecirc;me entit&eacute;. Dans ce cas, la hi&eacute;rarchie des entit&eacute;s ne suffit pas &agrave; d&eacute;terminer l'ordre dans lequel les groupes de strat&eacute;gies doivent &ecirc;tre fusionn&eacute;s. Le probl&egrave;me est r&eacute;solu en assignant des priorit&eacute;s aux groupes de strat&eacute;gies.</p>
+<p>Pour ouvrir la bo&icirc;te de dialogue d'assignation des priorit&eacute;s, s&eacute;lectionnez <b>&Eacute;diter les priorit&eacute;s</b> dans le menu d&eacute;roulant <b>Actions de groupe de strat&eacute;gies</b>. Pour augmenter ou baisser la priorit&eacute; d'un groupe de strat&eacute;gies, proc&eacute;dez comme suit&nbsp;:</p>
+<ol>
+ <li>S&eacute;lectionnez dans la liste le groupe de strat&eacute;gies qui vous int&eacute;resse.</li>
+ <li>Cliquez sur le bouton <b>Monter</b> ou <b>Descendre</b> pour augmenter ou baisser la priorit&eacute;. </li>
+</ol>
+
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Aller au d&eacute;but de la page" width="11" height="10" hspace="4" border="0"> Retour au d&eacute;but</a> </div><a name="content"> </a> <div class="help-header-1">Volet de contenu</div>
+<p>Le volet de contenu affiche les donn&eacute;es associ&eacute;es &agrave; l'entit&eacute; ou au groupe de strat&eacute;gies s&eacute;lectionn&eacute;s dans le volet de navigation. Les donn&eacute;es sont regroup&eacute;es dans des onglets. Les s&eacute;lections op&eacute;r&eacute;es dans le volet de navigation d&eacute;terminent le nombre et le type des onglets qui s'affichent dans le volet de contenu. L'onglet <b>Strat&eacute;gies</b> est l'onglet actif par d&eacute;faut. En cas de changement des s&eacute;lections dans le volet de navigation, l'onglet qui &eacute;tait actif le reste si la nouvelle s&eacute;lection propose le m&ecirc;me onglet. Sinon, l'onglet <b>Strat&eacute;gies</b> devient l'onglet actif. L'&eacute;tat interne d'un onglet (chemin de parent&eacute;, ordre de tri) est rappel&eacute; lorsque l'onglet redevient actif. </p><a name="policies"> </a> <div class="help-header-2">Onglet Strat&eacute;gies</div>
+<p>Utilisez l'onglet <b>Strat&eacute;gies</B> pour naviguer dans l'arborescence des strat&eacute;gies de configuration en affichant les sous-groupes, les param&egrave;tres de configuration ou les deux.</p>
+<p>Chaque onglet Strat&eacute;gies comporte deux boutons&nbsp;: <ul><li><b>Cr&eacute;er un rapport</b>&nbsp;: pour plus d'informations, reportez-vous &agrave; la section <a href="#reporting">Cr&eacute;ation de rapports</a>.</li>
+ <li><b>Effacer les param&egrave;tres</b>&nbsp;: ce bouton supprime de fa&ccedil;on r&eacute;cursive toutes les donn&eacute;es de configuration situ&eacute;es sous le sous-groupe affich&eacute; pour l'entit&eacute; visualis&eacute;e. </li>
+</ul>
+</P>
+<p>Chaque entr&eacute;e racine de l'arborescence des strat&eacute;gies de configuration fait r&eacute;f&eacute;rence &agrave; une application, par exemple, "StarOffice&nbsp;7". L'arborescence sous-jacente &agrave; l'application organise les strat&eacute;gies de configuration de l'application. Les strat&eacute;gies de configuration peuvent se trouver n'importe o&ugrave; dans l'arborescence des strat&eacute;gies de configuration. Si une strat&eacute;gie de configuration n'est pas un noeud terminal de l'arborescence des strat&eacute;gies de configuration, le tableau des strat&eacute;gies et la strat&eacute;gie de configuration doivent &ecirc;tre affich&eacute;s pour un emplacement actif de l'arborescence. </p><a name="caparpath"> </a> <div class="help-header-3">Chemin de parent&eacute;</div>
+<p>Le chemin de parent&eacute; s'affiche en haut de la page, sous les onglets. Il indique l'emplacement actif dans l'arborescence des strat&eacute;gies de configuration. Il fonctionne de la m&ecirc;me mani&egrave;re que le chemin de parent&eacute; du volet de navigation (reportez-vous &agrave; la pr&eacute;c&eacute;dente section <a class="help-link" href="#parpath">Chemin de parent&eacute;</a>). </p><a name="subgroupstable"> </a> <div class="help-header-3">Tableau des sous-groupes</div>
+<P>Le tableau des sous-groupes se trouve sous le chemin de parent&eacute;. Il affiche la liste des sous-groupes de l'emplacement actif dans l'arborescence des strat&eacute;gies de configuration. Il contient deux colonnes&nbsp;: "Nom" et "Commentaire".</P>
+<P>La colonne "Nom" contient le nom de chaque sous-groupe de l'emplacement actif dans l'arborescence des strat&eacute;gies de configuration. Le nom s'affiche sous forme de lien. Pour naviguer dans l'arborescence des strat&eacute;gies de configuration, cliquez sur un lien de nom. Cela a pour effet&nbsp;:</P>
+<UL>
+ <li>d'actualiser le volet de contenu de sorte que le chemin de parent&eacute; pointe vers le nouvel emplacement dans l'arborescence des strat&eacute;gies de configuration&nbsp;;</li>
+ <li>d'actualiser le volet de contenu de sorte qu'un tableau des strat&eacute;gies ou qu'une strat&eacute;gie s'affiche.</LI>
+</UL>
+<P>Ce type de navigation est qualifi&eacute; de "navigation descendante" de l'arborescence.</P>
+<P>La colonne "Commentaire" contient une br&egrave;ve description du sous-groupe. </P><A NAME="capolicies"></A> <div class="help-header-3">Strat&eacute;gie</div>
+<P>L'onglet "Strat&eacute;gies" du volet de contenu affiche les donn&eacute;es de strat&eacute;gie de configuration valides si elles sont disponibles pour la combinaison entit&eacute; active/strat&eacute;gie de configuration active.</p>
+<p>Ces donn&eacute;es sont pr&eacute;sent&eacute;es dans des tableaux. Chaque tableau comporte quatre colonnes&nbsp;: une colonne avec des ic&ocirc;nes de s&eacute;lection, et les colonnes "&Eacute;tat", "Nom" et "Valeur". La barre d'actions du tableau poss&egrave;de un menu d'actions d&eacute;roulant. </p>
+<p>Cochez la case en regard d'un &eacute;l&eacute;ment pour le s&eacute;lectionner. Une action du menu d&eacute;roulant de la barre d'actions peut alors &ecirc;tre ex&eacute;cut&eacute;e sur l'&eacute;l&eacute;ment s&eacute;lectionn&eacute;. Le tableau suivant d&eacute;crit toutes les actions&nbsp;:</p>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P><B>Action</B></P>
+ </TD>
+ <TD WIDTH="83%">
+ <P><B>Op&eacute;ration</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Prot&eacute;ger</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Prot&egrave;ge l'&eacute;l&eacute;ment s&eacute;lectionn&eacute; contre toute modification.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Annuler la protection</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Supprime la protection de l'&eacute;l&eacute;ment s&eacute;lectionn&eacute;.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Appliquer la valeur par d&eacute;faut</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Utilise les donn&eacute;es par d&eacute;faut &agrave; code permanent du mod&egrave;le de strat&eacute;gie.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Effacer</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Supprime les donn&eacute;es stock&eacute;es dans l'&eacute;l&eacute;ment.</P>
+ </TD>
+ </TR>
+
+</TABLE>
+<p>Deux ic&ocirc;nes situ&eacute;es &agrave; gauche du nom d'un &eacute;l&eacute;ment en indiquent l'&eacute;tat. Le tableau suivant pr&eacute;sente les ic&ocirc;nes et leur fonction&nbsp;:</P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><B>Ic&ocirc;ne</B></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P><B>Signification</B></P>
+ </TD>
+ <TD WIDTH="32%">
+ <P><B>Op&eacute;ration</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_set_here.png" NAME="DefinedHere" ALT="D&eacute;fini ici" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Cette ic&ocirc;ne indique que la valeur de l'&eacute;l&eacute;ment a &eacute;t&eacute; d&eacute;finie &agrave; ce niveau de l'arborescence de l'organisation.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_set_above.png" NAME="DefinedLayered" ALT="D&eacute;fini fusionn&eacute;" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Cette ic&ocirc;ne, qui constitue aussi un lien, indique que la valeur de l'&eacute;l&eacute;ment a &eacute;t&eacute; d&eacute;finie &agrave; un niveau sup&eacute;rieur de l'arborescence de l'organisation (ou du domaine). La valeur que voit l'utilisateur est le r&eacute;sultat de la fusion de couches, ou de niveaux d'entit&eacute;s, au sein de l'organisation.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>En cliquant sur cette ic&ocirc;ne, vous acc&eacute;dez &agrave; l'emplacement o&ugrave; la valeur a &eacute;t&eacute; d&eacute;finie.</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_protected_here.png" NAME="ProtectedHere" ALT="Prot&eacute;g&eacute; ici" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Cette ic&ocirc;ne indique que la protection de l'&eacute;l&eacute;ment a &eacute;t&eacute; d&eacute;finie &agrave; ce niveau de l'arborescence de l'organisation (ou du domaine). La protection est h&eacute;rit&eacute;e par l'interm&eacute;diaire des arborescences de l'organisation et des strat&eacute;gies de configuration.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_protected_above.png" NAME="ProtectedLayered" ALT="Prot&eacute;g&eacute; fusionn&eacute;" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Cette ic&ocirc;ne, qui constitue aussi un lien, indique que la protection de l'&eacute;l&eacute;ment a &eacute;t&eacute; d&eacute;finie &agrave; un niveau sup&eacute;rieur de l'arborescence de l'organisation (ou du domaine). La protection de cet &eacute;l&eacute;ment est le r&eacute;sultat de la fusion de couches, ou de niveaux d'entit&eacute;s, au sein de l'organisation.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>Le lien associ&eacute; &agrave; cette ic&ocirc;ne, lorsque vous cliquez dessus, m&egrave;ne &agrave; l'endroit o&ugrave; la protection a &eacute;t&eacute; d&eacute;finie.</P>
+ </TD>
+ </TR>
+</TABLE>
+<p>Les valeurs des donn&eacute;es peuvent &ecirc;tre modifi&eacute;es dans la colonne "Valeur". Les changements de valeur comme les changements d'&eacute;tat doivent &ecirc;tre enregistr&eacute;s. Il suffit pour ce faire de cliquer sur le bouton <b>Enregistrer</b>. </p><a name="casets"> </a> <div class="help-header-3">Ensembles</div>
+<p>Les ensembles sont des collections dynamiques de propri&eacute;t&eacute;s. Vous pouvez ajouter des &eacute;l&eacute;ments &agrave; l'ensemble ou en supprimer.</p>
+<p>Pour ajouter un &eacute;l&eacute;ment &agrave; un ensemble&nbsp;: <ol><li>Cliquez sur le bouton <b>Nouveau</b>. </li>
+ <li>Une bo&icirc;te de dialogue s'affiche pour vous permettre de saisir le nom du nouvel &eacute;l&eacute;ment. L'&eacute;l&eacute;ment est alors ajout&eacute; &agrave; la fen&ecirc;tre principale, laquelle est actualis&eacute;e.</li>
+ <li>Le nouvel &eacute;l&eacute;ment peut &ecirc;tre modifi&eacute; dans la fen&ecirc;tre principale.</li>
+</ol>
+<p>Pour supprimer un &eacute;l&eacute;ment d'un ensemble, s&eacute;lectionnez l'&eacute;l&eacute;ment en question, puis cliquez sur le bouton <b>Supprimer</B>.</p>
+<p>Notez que les ensembles peuvent eux-m&ecirc;mes contenir des ensembles et qu'ils sont repr&eacute;sent&eacute;s par des liens. En cliquant sur le lien, vous acc&eacute;dez &agrave; l'ensemble correspondant, que vous pouvez alors modifier. </p><a name="policysets"> </a> <div class="help-header-2">Onglet Groupes de strat&eacute;gies</div>
+<p>L'onglet Groupes de strat&eacute;gies permet d'ajouter des groupes de strat&eacute;gies &agrave; l'entit&eacute; s&eacute;lectionn&eacute;e ou d'en supprimer.</p>
+<p>Pour ajouter un groupe de strat&eacute;gies figurant dans la liste <b>Disponible(s)</b> situ&eacute;e &agrave; gauche, proc&eacute;dez comme suit&nbsp;:</p>
+<ol>
+ <li>S&eacute;lectionnez dans la liste le groupe de strat&eacute;gies qui vous int&eacute;resse.</li>
+ <li>Cliquez sur le bouton <b>Ajouter</b> pour ajouter le groupe de strat&eacute;gies s&eacute;lectionn&eacute; &agrave; la liste <b>S&eacute;lectionn&eacute;(s)</B> situ&eacute;e &agrave; droite.</li>
+ <li>Cliquez sur <b>Enregistrer</b> pour sauvegarder la nouvelle assignation. </LI>
+</ol><a name="caentities"> </a> <div class="help-header-2">Onglet Entit&eacute;s assign&eacute;es</div>
+<p>Si un groupe de strat&eacute;gies est s&eacute;lectionn&eacute; dans le r&eacute;f&eacute;rentiel des strat&eacute;gies du volet de navigation, le volet de contenu comprend l'onglet <b>Entit&eacute;s assign&eacute;es</b>. L'onglet Entit&eacute;s assign&eacute;es affiche la liste de toutes les entit&eacute;s auxquelles le groupe de strat&eacute;gies s&eacute;lectionn&eacute; est assign&eacute;.</p>
+<p>L'onglet Entit&eacute;s assign&eacute;es permet d'effectuer les actions suivantes&nbsp;: <ul><li><b>Supprimer</B> rompt l'association entre la ou les entit&eacute;s s&eacute;lectionn&eacute;es et le groupe de strat&eacute;gies s&eacute;lectionn&eacute; dans le volet de navigation. </li>
+ <li>Le fait de cliquer sur une entit&eacute; dans la colonne "Nom" actualise le volet de navigation et la met en &eacute;vidence avec un arri&egrave;re-plan bleu. </li>
+</ul>
+</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Aller au d&eacute;but de la page" width="11" height="10" hspace="4" border="0"> Retour au d&eacute;but</a> </div><a name="roles"> </a> <div class="help-header-2">Onglet R&ocirc;les</div>
+<p>Si une entit&eacute; de type "Utilisateur" est s&eacute;lectionn&eacute;e dans le volet de navigation et que cet utilisateur est membre d'au moins un r&ocirc;le, le volet de contenu comprend l'onglet <b>R&ocirc;les</B>. L'onglet <b>R&ocirc;les</B> affiche la liste des r&ocirc;les dont l'utilisateur s&eacute;lectionn&eacute; est membre.</p>
+<p>Cet onglet comprend deux colonnes&nbsp;: "Nom" et "Chemin d'acc&egrave;s". "Nom" contient le nom de chaque r&ocirc;le, et "Chemin d'acc&egrave;s" le chemin d'acc&egrave;s absolu au r&ocirc;le. </p><a name="users"> </a> <div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Aller au d&eacute;but de la page" width="11" height="10" hspace="4" border="0"> Retour au d&eacute;but</a> </div><a name="reporting"> </a> <div class="help-header-1">Cr&eacute;ation de rapports</div>
+<p>Un rapport est un affichage en lecture seule de tous les param&egrave;tres de configuration qui contiennent des donn&eacute;es. Pour cr&eacute;er un rapport, il suffit de cliquer sur un bouton <b>Cr&eacute;er un rapport</B>. La bo&icirc;te de dialogue Configurer un rapport s'affiche alors.</p>
+<p>Dans la bo&icirc;te de dialogue "Configurer un rapport", vous pouvez&nbsp;: <ul><li>choisir l'arborescence (de l'organisation et/ou du domaine) &agrave; prendre en compte (<b>Utiliser pour le rapport</B>)&nbsp;; </li>
+ <li>choisir les colonnes &agrave; afficher dans le rapport g&eacute;n&eacute;r&eacute; (les options <b>Chemin d'acc&egrave;s de l'&eacute;tat</b> et <b>Description</B> peuvent &ecirc;tre d&eacute;sactiv&eacute;es). </li>
+</ul>
+<p>Lorsque vous avez d&eacute;fini les diff&eacute;rentes options, vous pouvez cliquer sur le rapport pour ouvrir un affichage en lecture seule des donn&eacute;es s&eacute;lectionn&eacute;es.</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Aller au d&eacute;but de la page" width="11" height="10" hspace="4" border="0"> Retour au d&eacute;but</a></div>
+
+</body>
+</html> \ No newline at end of file
diff --git a/webconsole/html/fr/helpNav.html b/webconsole/html/fr/helpNav.html
new file mode 100644
index 0000000..91d6583
--- /dev/null
+++ b/webconsole/html/fr/helpNav.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+ <title>Sun Java[TM] Desktop System Configuration Manager - Aide </title>
+ <meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><!-- Empty script so IE5.0 Windows will draw table and button borders --><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"></script> </HEAD>
+ <BODY>
+ <table border="0">
+ <tr>
+ <td><div class="help-header-3"><span class="help-header-3">Sommaire</span></div>
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#concepts" target="contentFrame">Concepts</a> </li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#dataStructures" target="contentFrame">Structures de donn&eacute;es</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#SecDataManagement" target="contentFrame">Gestion de la s&eacute;curit&eacute; et des donn&eacute;es</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#GenConfigSettings" target="contentFrame">G&eacute;n&eacute;ration des param&egrave;tres de configuration</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#BCAssociation" target="contentFrame">Association</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#BCPolicyGroups" target="contentFrame">Groupes de strat&eacute;gies</A></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#ui" target="contentFrame"> Disposition et comportement</a> </li>
+ <li><a class="help-toc-link" href="helpContent.html#login" target="contentFrame"> Connexion</a> </li>
+ <li><a class="help-toc-link" href="helpContent.html#masthead" target="contentFrame"> Cadre masthead</a> </li>
+ <li><a class="help-toc-link" href="helpContent.html#navigation" target="contentFrame"> Volet de navigation</a></li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#entities" target="contentFrame"> Onglet Utilisateurs</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#parpath" target="contentFrame"> Chemin de parent&eacute;</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#navtable" target="contentFrame"> Table de navigation</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#adfilter" target="contentFrame"> Filtre sp&eacute;cial</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#search" target="contentFrame"> Recherche</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#hoststab" target="contentFrame"> Onglet H&ocirc;tes</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#domtree" target="contentFrame"> Arborescence du domaine</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#actionbar" target="contentFrame"> Barre d'actions</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#adfilterhosts" target="contentFrame"> Filtre sp&eacute;cial</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#searchhosts" target="contentFrame"> Recherche</a></li>
+ </UL>
+ <li><a class="help-toc-link" href="helpContent.html#psptab" target="contentFrame"> R&eacute;f&eacute;rentiels des strat&eacute;gies</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#psptable" target="contentFrame"> Tableau des groupes de strat&eacute;gies</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#pspactions" target="contentFrame"> Barre d'actions de groupe de strat&eacute;gies</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#psppriorities" target="contentFrame"> Priorit&eacute;s des groupes de strat&eacute;gies</a></li>
+ </ul>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#content" target="contentFrame"> Volet de contenu</a> </li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#policies" target="contentFrame"> Onglet Strat&eacute;gies</a></li>
+ <ul type="circle"><li><a class="help-toc-link" href="helpContent.html#caparpath" target="contentFrame"> Chemin de parent&eacute;</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#subgroupstable" target="contentFrame">Tableau des sous-groupes</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#capolicies" target="contentFrame"> Strat&eacute;gie</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#casets" target="contentFrame"> Ensembles</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#policysets" target="contentFrame"> Onglet Groupes de strat&eacute;gies</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#caentities" target="contentFrame"> Onglet Entit&eacute;s assign&eacute;es</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#roles" target="contentFrame"> Onglet R&ocirc;les</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#reporting" target="contentFrame"> Cr&eacute;ation de rapports</a> </li>
+ </ul>
+ </td>
+ </tr>
+ </table>
+ </BODY>
+</HTML> \ No newline at end of file
diff --git a/webconsole/html/fr/helpToolbar.html b/webconsole/html/fr/helpToolbar.html
new file mode 100644
index 0000000..5437fee
--- /dev/null
+++ b/webconsole/html/fr/helpToolbar.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+ <title>Sun Java[TM] Desktop System Configuration Manager - Barre d'outils de l'aide</title>
+ <meta name="Copyright" content="Copyright &copy; 2003 par Sun Microsystems, Inc. Tous droits r&eacute;serv&eacute;s.">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ </HEAD>
+ <BODY>
+ <table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><img src="/apoc/images/dot.gif" width="1" height="15" alt=""/></td>
+ <td align="right" nowrap="nowrap" valign="bottom"> <div class="TtlBtnDiv">
+
+<input name="Masthead.CloseButton" type="submit" class="Btn1" value="Fermer"
+title="Cliquer pour fermer la fen&ecirc;tre d'aide" onclick="javascript: parent.parent.close();
+return false;" onmouseover="javascript: if (this.disabled==0)
+this.className='Btn1Hov'" onmouseout="javascript: if (this.disabled==0) this.className='Btn1'"
+on blur="javascript: if (this.disabled==0) this.className='Btn1'"
+onfocus="javascript: if (this.disabled==0) this.className='Btn1Hov'" /> </div></td>
+ </tr>
+ </TABLE>
+</body>
diff --git a/webconsole/html/fr/version.txt b/webconsole/html/fr/version.txt
new file mode 100644
index 0000000..8602f85
--- /dev/null
+++ b/webconsole/html/fr/version.txt
@@ -0,0 +1 @@
+Sun Desktop Manager, Version 1.0.1
diff --git a/webconsole/html/fr/versionInfo.shtml b/webconsole/html/fr/versionInfo.shtml
new file mode 100644
index 0000000..e5f8287
--- /dev/null
+++ b/webconsole/html/fr/versionInfo.shtml
@@ -0,0 +1,38 @@
+<html>
+<head>
+<title><!--#include file="version.txt"--></title>
+<meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc.
+All Rights Reserved.">
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+</head>
+<body class="DefBdy">
+ <div class="VrsMgn">
+ <div class="VrsHdrTxt">
+ <!--#include file="version.txt"--> (July 31 2007 12:59 PM)
+ </div>
+ <p>
+ <div class="VrsTxt">
+ Copyright &copy; 2007 Sun Microsystems, Inc. Tous droits r&eacute;serv&eacute;s.
+ Sun Microsystems, Inc. d&eacute;tient les droits de propri&eacute;t&eacute; intellectuels
+ relatifs &agrave; la technologie incorpor&eacute;e dans le produit qui est d&eacute;crit
+ dans ce document. En particulier, et ce sans limitation, ces droits
+ de propri&eacute;t&eacute; intellectuelle peuvent inclure un ou plus des brevets
+ am&eacute;ricains list&eacute;s &agrave; l'adresse http://www.sun.com/patents et un ou
+ les brevets suppl&eacute;mentaires ou les applications de brevet en attente
+ aux Etats - Unis et dans les autres pays. Propri&eacute;t&eacute; de SUN/CONFIDENTIEL.
+ L'utilisation est soumise aux termes du contrat de licence.Sun,
+ Sun Microsystems, le logo Sun, Java, Solaris, StarOffice,
+ Sun Ray et Sun Desktop Manager sont des marques de fabrique ou des
+ marques d&eacute;pos&eacute;es de Sun Microsystems, Inc. aux Etats-Unis et dans
+ d'autres pays.Toutes les marques SPARC sont utilis&eacute;es sous licence
+ et sont des marques de fabrique ou des marques d&eacute;pos&eacute;e de SPARC
+ International, Inc. aux Etats-Unis et dans d'autres pays.UNIX est
+ une marque d&eacute;pos&eacute;e aux Etats-Unis et dans d'autres pays et licenci&eacute;e
+ exlusivement par X/Open Company, Ltd.
+ </div>
+ </div>
+</body>
+</html>
diff --git a/webconsole/html/images/Makefile.am b/webconsole/html/images/Makefile.am
new file mode 100644
index 0000000..679c143
--- /dev/null
+++ b/webconsole/html/images/Makefile.am
@@ -0,0 +1,8 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+
+imagesdir = ${htmldir}/images
+images_DATA =help_protected_v3.png \
+ help_ldap_v4.png \
+ help_merge.gif \ No newline at end of file
diff --git a/webconsole/html/images/help_ldap_v4.png b/webconsole/html/images/help_ldap_v4.png
new file mode 100644
index 0000000..83789ef
--- /dev/null
+++ b/webconsole/html/images/help_ldap_v4.png
Binary files differ
diff --git a/webconsole/html/images/help_merge.gif b/webconsole/html/images/help_merge.gif
new file mode 100644
index 0000000..88555e2
--- /dev/null
+++ b/webconsole/html/images/help_merge.gif
Binary files differ
diff --git a/webconsole/html/images/help_protected_v3.png b/webconsole/html/images/help_protected_v3.png
new file mode 100644
index 0000000..4a19fe8
--- /dev/null
+++ b/webconsole/html/images/help_protected_v3.png
Binary files differ
diff --git a/webconsole/html/ja/Makefile.am b/webconsole/html/ja/Makefile.am
new file mode 100644
index 0000000..1b59b40
--- /dev/null
+++ b/webconsole/html/ja/Makefile.am
@@ -0,0 +1,10 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = help
+
+jadir = ${htmldir}/ja
+ja_DATA =helpToolbar.html \
+ helpContent.html \
+ help.html \
+ helpNav.html \ No newline at end of file
diff --git a/webconsole/html/ja/help.html b/webconsole/html/ja/help.html
new file mode 100644
index 0000000..3e5c6c4
--- /dev/null
+++ b/webconsole/html/ja/help.html
@@ -0,0 +1,74 @@
+<html>
+ <head>
+ <title>Help - StarOffice Configuration Manager</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ </head>
+<script language="JavaScript">
+<!--
+
+var sPkgName = " "
+var sAnchorName = " "
+var sAnchorCon = " "
+var sAnchorNav = " "
+var sHelpLocale = " "
+if (window.anchor != null) {
+ sAnchorName = anchor;
+}
+if (window.top.opener.top.content.document.ContentAreaForm!=null) {
+ sAnchorName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.Anchor'].value;
+ sPkgName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.PkgName'].value;
+ sHelpLocale =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.HelpLocale'].value;
+ if (sHelpLocale=="nolocalizedhelp")
+ sHelpLocale="_en_US";
+}
+if (sAnchorName=="hoststab" || sAnchorName=="psptab" || sAnchorName=="entities" ||
+sAnchorName=="policies" || sAnchorName=="policysets" || sAnchorName=="caentities" ||
+sAnchorName=="roles" || sAnchorName=="")
+{
+ document.write('<frameset cols="30%, 70%" border="1" framespacing="0"> ');
+
+ document.write(' <frame name="navFrame"');
+ document.write(' title="Help Navigation Area"');
+ document.write(' id="nav"');
+ document.write(' src="helpNav.html">');
+
+ document.write(' <frameset rows="10%, 90%" border="1" framespacing="0">');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="contentFrame"');
+ document.write(' title="Help Content Area"');
+ document.write(' id="content"');
+ document.write(' src="helpContent.html#'+sAnchorName+'">');
+ document.write(' <\/frameset>');
+ document.write('<\/frameset>');
+
+} else {
+ // The correct package name is not available yet
+ document.write('<frameset rows="10%, 90%" border="0" framespacing="0"> ');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="templateContent"');
+ document.write(' title="Help Template"');
+ document.write(' id="temphelp"');
+ document.write(' src="../../packages/'+sPkgName+'/web/'+sAnchorName+sHelpLocale+'.html">');
+ document.write('<\/frameset>');
+}
+
+
+//-->
+
+</script>
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ </body>
+ </noframes>
+</html>
diff --git a/webconsole/html/ja/help/JavaHelpSearch/DOCS b/webconsole/html/ja/help/JavaHelpSearch/DOCS
new file mode 100644
index 0000000..b48cd7e
--- /dev/null
+++ b/webconsole/html/ja/help/JavaHelpSearch/DOCS
Binary files differ
diff --git a/webconsole/html/ja/help/JavaHelpSearch/DOCS.TAB b/webconsole/html/ja/help/JavaHelpSearch/DOCS.TAB
new file mode 100644
index 0000000..f83651f
--- /dev/null
+++ b/webconsole/html/ja/help/JavaHelpSearch/DOCS.TAB
@@ -0,0 +1,5 @@
+eÿÿÿÿÿÿÿý×ÿÿÿÿÿÿÿÿÿuÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý—ÿÿý×ÿÿÿÿÿÿÿÿÿÿÿÿuÿÿÿÿÿÿÿÿÿÝ}×ÿÿÿÿÿö_ý×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷—ÿe÷V_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷_ÿÝ]ÿÿÿý×ÿÿÿÿÿÿÝÿÿÿÿÿÿÿÿÿÿ÷_ÿ4Õ×ýÕ×ÿÿÝÿÿÿÿÿ÷0ŸÿÿÿÿÿsIý×ÿÿÿÿÿÿÿÿÝÿ@cÊÍÊèpP¡ÁQÈ_,ÑÁq1±Q‘<åĆ'¨HdKÅ¡–9
+<cÅËÅ×ÆEr¨â»7*1Ê5‡Dó8¼`Z*Œ(Òî=b¨å*¡e*Œ*¸Âª¯*5†¼`JŒ,òφXkHVò‡Ì,ȳ ¸Á±Bª«9
+³J0mE‹¼Û+0£2øñÁBabŒa¡B£Jã
+0º»<ª7*Ì/0³/Šú0«4³K4ª/øâ¨ÒR¡*¨Ë*«ª£n*£+(⮯’â(â,ä*ªªÌ*0³ ªŒ*0ªã
+Œ*«ŒŠªª¯þº¨Â†E‹;,Æ,ÂÿÌ/ÿ4¿ÿÿÿÿÿÿÿÿó ÿÿÿÿÿÿÿÿÿÿóKÿÿÌ/ÿüÂÿÿÿó ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ/ÿ` \ No newline at end of file
diff --git a/webconsole/html/ja/help/JavaHelpSearch/Makefile.am b/webconsole/html/ja/help/JavaHelpSearch/Makefile.am
new file mode 100644
index 0000000..cb4d246
--- /dev/null
+++ b/webconsole/html/ja/help/JavaHelpSearch/Makefile.am
@@ -0,0 +1,11 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+
+JavaHelpSearchdir = ${htmldir}/ja/help/JavaHelpSearch
+JavaHelpSearch_DATA =OFFSETS \
+ TMAP \
+ SCHEMA \
+ POSITIONS \
+ DOCS \
+ DOCS.TAB \ No newline at end of file
diff --git a/webconsole/html/ja/help/JavaHelpSearch/OFFSETS b/webconsole/html/ja/help/JavaHelpSearch/OFFSETS
new file mode 100644
index 0000000..8cf9333
--- /dev/null
+++ b/webconsole/html/ja/help/JavaHelpSearch/OFFSETS
@@ -0,0 +1,2 @@
+…Ž“Xu¥ªL2
+‰£2¹6ùÅ*)d¢Kaö8zŽgfK@€Rî-á12ú]ÒÜßr4Ïä-†K#=Õ™înIé‡ œ¯k¬/Å'TF§Ø1Æ)£ÆÌœlœã­cËðJ&¤q„XëâÍð0Ó.­{˜4l¯pËÚµ×À^lA°sòèÀ \ No newline at end of file
diff --git a/webconsole/html/ja/help/JavaHelpSearch/POSITIONS b/webconsole/html/ja/help/JavaHelpSearch/POSITIONS
new file mode 100644
index 0000000..bb57d09
--- /dev/null
+++ b/webconsole/html/ja/help/JavaHelpSearch/POSITIONS
Binary files differ
diff --git a/webconsole/html/ja/help/JavaHelpSearch/SCHEMA b/webconsole/html/ja/help/JavaHelpSearch/SCHEMA
new file mode 100644
index 0000000..1d2f853
--- /dev/null
+++ b/webconsole/html/ja/help/JavaHelpSearch/SCHEMA
@@ -0,0 +1,2 @@
+JavaSearch 1.0
+TMAP bs=2048 rt=1 fl=-1 id1=757 id2=1
diff --git a/webconsole/html/ja/help/JavaHelpSearch/TMAP b/webconsole/html/ja/help/JavaHelpSearch/TMAP
new file mode 100644
index 0000000..5e82ba8
--- /dev/null
+++ b/webconsole/html/ja/help/JavaHelpSearch/TMAP
Binary files differ
diff --git a/webconsole/html/ja/help/Makefile.am b/webconsole/html/ja/help/Makefile.am
new file mode 100644
index 0000000..16491b1
--- /dev/null
+++ b/webconsole/html/ja/help/Makefile.am
@@ -0,0 +1,55 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = JavaHelpSearch
+
+helpdir = ${htmldir}/ja/help
+help_DATA =gbgqu.html \
+ gbgcn.html \
+ app.hs \
+ gbgqh.html \
+ gbgow.html \
+ gbzci.html \
+ gbgpu.html \
+ p1.html \
+ gbgdh.html \
+ gbgpt.html \
+ gbgqa.html \
+ map.jhm \
+ gbgcg.html \
+ toc.xml \
+ gbgoz.html \
+ gbgqe.html \
+ gbgpp.html \
+ copyright.html \
+ gbgpm.html \
+ background.html \
+ gbgqt.html \
+ gbgpa.html \
+ gbgcr.html \
+ gbgpe.html \
+ gbgda.html \
+ gbgqm.html \
+ empty.html \
+ index.xml \
+ gbgce.html \
+ gbgec.html \
+ gbgpr.html \
+ gbgca.html \
+ gbgni.html \
+ gbgcm.html \
+ gbgot.html \
+ gbgdc.html \
+ gbgpb.html \
+ gbgqj.html \
+ gbgou.html \
+ gbzbc.html \
+ gbgpw.html \
+ gbgcd.html \
+ gbgpj.html \
+ gbgkr.html \
+ gbgoy.html \
+ gbgqf.html \
+ gbgeb.html \
+ gbgps.html \
+ gbgpn.html \ No newline at end of file
diff --git a/webconsole/html/ja/help/app.hs b/webconsole/html/ja/help/app.hs
new file mode 100644
index 0000000..6aa75fe
--- /dev/null
+++ b/webconsole/html/ja/help/app.hs
@@ -0,0 +1,12 @@
+<?xml version='1.0' encoding='SHIFT_JIS'?><!-- ident "%Z%%M% %I% %E% SMI" --><!DOCTYPE helpset PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN" "helpset_1_0.dtd">
+<helpset version="1.0" xml:lang="ja">
+<title>about_vman</title>
+<maps> <homeID></homeID> <mapref location="map.jhm"/>
+</maps>
+<view> <name>TOC</name> <label>��e</label> <type>javax.help.TOCView</type> <data>toc.xml</data>
+</view>
+<view> <name>Index</name> <label>���</label> <type>javax.help.IndexView</type> <data>index.xml</data>
+</view>
+<view> <name>Search</name> <label>����</label> <type>javax.help.SearchView</type> <data engine="com.sun.java.help.search.DefaultSearchEngine">JavaHelpSearch</data>
+</view>
+</helpset>
diff --git a/webconsole/html/ja/help/background.html b/webconsole/html/ja/help/background.html
new file mode 100644
index 0000000..05b522d
--- /dev/null
+++ b/webconsole/html/ja/help/background.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+
+
+<title>About the Configuration Manager</title>
+<script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="BACKGROUND"></A><h2>Configuration Manager Help</h2>
+
+<p>Welcome to the Sun Java&#8482; Desktop System Configuration Manager Help pages.</p>
+
+<p>Using the Configuration Manager, administrators can assign
+profiles to individual users or organisational units stored in a central
+configuration storage such as an existing corporate LDAP server. The
+configuration settings defined in these profiles are then applied on behalf of
+the users to the applications running on the Sun Java Desktop System such as the
+Gnome desktop, Mozilla, StarOffice and Gnome applications like Evolution.</p>
+
+<p>To get help for a specific part of the Configuration Manager,
+click on one of the links on the left.</p>
+
+</body>
+</html>
diff --git a/webconsole/html/ja/help/copyright.html b/webconsole/html/ja/help/copyright.html
new file mode 100644
index 0000000..2a2d36d
--- /dev/null
+++ b/webconsole/html/ja/help/copyright.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<p>Part No: 819-3617</p><p></p>Sun Microsystems, Inc. <p><br>4150 Network Circle<br>Santa Clara, CA 95054 <br>U.S.A.</p><p>Copyright 2006, Sun Microsystems, Inc.</p><p>Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual
+property rights may include one or more U.S. patents or pending patent applications in the U.S. and in other countries.</p>
+<p>U.S. Government Rights &#8211; Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements.</p>
+<p>This distribution may include materials developed by third parties.</p>
+<p>Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively
+licensed through X/Open Company, Ltd.</p>
+<p>Sun, Sun Microsystems, the Sun logo,
+the Solaris logo, the Java Coffee Cup logo, docs.sun.com,
+Java, and
+Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S.
+and other countries. All SPARC trademarks are used under license and are trademarks
+or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+Products bearing SPARC trademarks are based upon an architecture developed by Sun
+Microsystems, Inc. </p>
+<p>The OPEN LOOK and Sun&#153; Graphical User Interface was developed by Sun Microsystems, Inc. for
+its users and licensees. Sun acknowledges the pioneering efforts of Xerox in researching
+and developing the concept of visual or graphical user interfaces for the computer
+industry. Sun holds a non-exclusive license from Xerox to the Xerox Graphical User
+Interface, which license also covers Sun's licensees who implement OPEN LOOK GUIs
+and otherwise comply with Sun's written license agreements.</p>
+<p>Products covered by and information contained in this publication are controlled by U.S. Export Control
+laws and may be subject to the export or import laws in other countries. Nuclear,
+missile, chemical or biological weapons or nuclear maritime end uses or end users,
+whether direct or indirect, are strictly prohibited. Export or reexport to countries
+subject to U.S. embargo or to entities identified on U.S. export exclusion lists,
+including, but not limited to, the denied persons and specially designated nationals
+lists is strictly prohibited.</p>
+<p>DOCUMENTATION IS PROVIDED &#8220;AS IS&#8221; AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
+IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT,
+ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.</p>
+<p></p>
+<p>Sun Microsystems, Inc. d&#233;tient les droits de propri&#233;t&#233;
+intellectuelle relatifs &#224; la technologie incorpor&#233;e dans
+le produit qui est
+d&#233;crit dans ce document. En particulier, et ce sans limitation,
+ces droits de
+propri&#233;t&#233; intellectuelle peuvent inclure un ou plusieurs
+brevets am&#233;ricains ou des
+applications de brevet en attente aux Etats-Unis et dans d'autres
+pays.</p>
+<p>Cette distribution peut comprendre des composants
+d&#233;velopp&#233;s par des tierces personnes.</p>
+<p>Certaines composants de ce produit peuvent &#234;tre
+d&#233;riv&#233;es du logiciel Berkeley BSD, licenci&#233;s par
+l'Universit&#233; de
+Californie. UNIX est une marque d&#233;pos&#233;e aux Etats-Unis et
+dans d'autres pays; elle est
+licenci&#233;e exclusivement par X/Open Company, Ltd. </p>
+<p>Sun, Sun Microsystems, le logo Sun, le logo Solaris, le logo Java
+Coffee Cup, docs.sun.com,
+ Java et Solaris sont des
+marques de fabrique ou des marques d&#233;pos&#233;es
+de Sun Microsystems, Inc. aux Etats-Unis et dans d'autres pays. Toutes
+les marques
+SPARC sont utilis&#233;es sous licence et sont des marques de fabrique
+ou des
+marques d&#233;pos&#233;es de SPARC International, Inc. aux
+Etats-Unis et dans
+d'autres pays. Les produits portant les marques SPARC sont bas&#233;s
+sur une
+architecture d&#233;velopp&#233;e par Sun Microsystems, Inc.</p>
+<p>L'interface d'utilisation graphique OPEN LOOK et
+Sun&#153; a &#233;t&#233;
+d&#233;velopp&#233;e par Sun Microsystems, Inc. pour ses
+utilisateurs et
+licenci&#233;s. Sun reconna&#238;t les efforts de pionniers de Xerox
+pour la
+recherche et le d&#233;veloppement du concept des interfaces
+d'utilisation
+visuelle ou graphique pour l'industrie de l'informatique. Sun
+d&#233;tient une licence non exclusive de Xerox sur
+l'interface d'utilisation graphique Xerox, cette licence couvrant
+&#233;galement les
+licenci&#233;s de Sun qui mettent en place l'interface d'utilisation
+graphique OPEN LOOK et
+qui, en outre, se conforment aux licences &#233;crites de Sun.</p>
+<p>Les produits qui font l'objet de cette publication et les
+informations qu'il contient sont r&#233;gis par la legislation
+am&#233;ricaine en mati&#232;re de contr&#244;le des exportations et peuvent &#234;tre soumis au droit
+d'autres pays dans le domaine des exportations et importations. Les utilisations finales, ou
+utilisateurs finaux, pour des armes nucl&#233;aires, des missiles, des armes
+chimiques ou biologiques ou pour le nucl&#233;aire maritime, directement ou
+indirectement, sont strictement interdites. Les exportations ou r&#233;exportations vers
+des pays sous embargo des Etats-Unis, ou vers des entit&#233;s figurant sur les
+listes d'exclusion d'exportation am&#233;ricaines, y compris, mais de mani&#232;re non
+exclusive, la liste de personnes qui font objet d'un ordre de ne pas participer, d'une fa&#231;on
+directe ou
+indirecte, aux exportations des produits ou des services qui sont
+r&#233;gis par la
+legislation am&#233;ricaine en mati&#232;re de contr&#244;le des
+exportations et la
+liste de ressortissants sp&#233;cifiquement design&#233;s, sont
+rigoureusement interdites.</p>
+<p>LA DOCUMENTATION EST FOURNIE "EN L'ETAT" ET TOUTES AUTRES CONDITIONS,
+DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENT EXCLUES,
+DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT
+TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A L'APTITUDE A UNE
+UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFACON. </p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/ja/help/empty.html b/webconsole/html/ja/help/empty.html
new file mode 100644
index 0000000..82f4679
--- /dev/null
+++ b/webconsole/html/ja/help/empty.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+<title>\’z’†</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="BACKGROUND"></A><h2>‚Ü‚¾ƒgƒsƒbƒN‚ð—˜—p‚Å‚«‚Ü‚¹‚ñB</h2>
+<p>‘I‘ð‚µ‚½ƒgƒsƒbƒN‚̃wƒ‹ƒv‚Í‚Ü‚¾ì¬‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB‚²–À˜f‚ð‚¨‚©‚¯‚µ‚Ä\‚µ–󂲂´‚¢‚Ü‚¹‚ñB</p>
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgca.html b/webconsole/html/ja/help/gbgca.html
new file mode 100644
index 0000000..8ffc576
--- /dev/null
+++ b/webconsole/html/ja/help/gbgca.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>1.!)!)Sun Desktop Manager 1.0.1 ƒwƒ‹ƒv</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgca"></A><b>‘æ 1 Í</b><h1>Sun Desktop Manager 1.0.1 ƒwƒ‹ƒv</h1>
+<p>Sun Desktop Manager ƒwƒ‹ƒvƒy[ƒW‚ɂ悤‚±‚»BDesktop Manager ‚Ì“Á’è‚Ì•”•ª‚ÉŠÖ‚·‚éƒwƒ‹ƒv‚ðŽQÆ‚·‚é‚É‚ÍA¶‘¤‚̃Šƒ“ƒN‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B‚±‚̃Iƒ“ƒ‰ƒCƒ“ƒwƒ‹ƒv‚Í Desktop Manager ‚Ì‹@”\‚ÆŽg—p–@‚ɂ‚¢‚Äî•ñ‚ð’ñ‹Ÿ‚µ‚Ü‚·B</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgcd.html b/webconsole/html/ja/help/gbgcd.html
new file mode 100644
index 0000000..0724de0
--- /dev/null
+++ b/webconsole/html/ja/help/gbgcd.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹ &#8212; ‚·‚ׂÄ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcd"></A><h2>ƒvƒƒtƒ@ƒCƒ‹ &#8212; ‚·‚ׂÄ</h2>
+<p>uƒvƒƒtƒ@ƒCƒ‹ &#8212; ‚·‚ׂÄvƒy[ƒW‚É‚ÍA—v‘f‚ÉŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚È‚¢‚à‚Ì‚àŠÜ‚ßAŽg—p‰Â”\‚ȃvƒƒtƒ@ƒCƒ‹‚ª‚·‚ׂĕ\Ž¦‚³‚ê‚Ü‚·Bƒvƒƒtƒ@ƒCƒ‹‚Í 2 ‚‚̃e[ƒuƒ‹‚Å•\Ž¦‚³‚ê‚Ü‚·B1 ‚‚̓hƒƒCƒ“‚̃vƒƒtƒ@ƒCƒ‹—pA‚à‚¤ 1 ‚‚͑gD‚̃vƒƒtƒ@ƒCƒ‹—p‚Å‚·B</p>
+<p>ƒvƒƒtƒ@ƒCƒ‹‚ðŽg—p‚·‚é‚ÆAŽŸ‚̃AƒNƒVƒ‡ƒ“‚ðŽÀs‚Å‚«‚Ü‚·B</p>
+<ul><li><p><A HREF="gbgcr.html#gbgcr">ƒvƒƒtƒ@ƒCƒ‹‚ÌV‹Kì¬</A></p>
+</li>
+<li><p><A HREF="gbgpe.html#gbgpe"> ƒvƒƒtƒ@ƒCƒ‹‚Ìíœ</A></p>
+</li>
+<li><p><A HREF="gbgpu.html#gbgpu">ƒvƒƒtƒ@ƒCƒ‹‚Ì–¼‘O•ÏX</A></p>
+</li>
+<li><p><A HREF="gbgow.html#gbgow">ƒvƒƒtƒ@ƒCƒ‹‚̃Rƒs[‚ƈړ®</A></p>
+</li>
+<li><p><A HREF="gbgpj.html#gbgpj">ƒvƒƒtƒ@ƒCƒ‹‚̃Cƒ“ƒ|[ƒg</A></p>
+</li>
+<li><p><A HREF="gbgou.html#gbgou">ƒvƒƒtƒ@ƒCƒ‹‚̃GƒNƒXƒ|[ƒg</A></p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgce.html b/webconsole/html/ja/help/gbgce.html
new file mode 100644
index 0000000..5615a2d
--- /dev/null
+++ b/webconsole/html/ja/help/gbgce.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ŠT—v</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgce"></A><h2>ŠT—v</h2>
+<p>Desktop Manager ‚ÍA<i>ƒvƒƒtƒ@ƒCƒ‹</i>‚ƌĂ΂ê‚é\¬Ý’è‚̈ꌳŠÇ—‚ðƒfƒXƒNƒgƒbƒvƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚É’ñ‹Ÿ‚·‚éƒc[ƒ‹‚Å‚·BDesktop Manager ‚ðŽg—p‚·‚é‚ÆAƒvƒƒtƒ@ƒCƒ‹‚ð•\Ž¦‚µ‚½‚èA‘gD‚âƒhƒƒCƒ“‚ÌŠK‘w‚Ì‚³‚Ü‚´‚Ü‚È—v‘f‚Ƀvƒƒtƒ@ƒCƒ‹‚ðŠ„‚è“–‚Ă邱‚Æ‚ª‚Å‚«‚Ü‚·Bƒvƒƒtƒ@ƒCƒ‹‚ÍADesktop Manager ‚ÅŠÇ—‚³‚ê‚Ä‚¢‚éƒfƒXƒNƒgƒbƒvƒZƒbƒVƒ‡ƒ“‚âƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðƒ†[ƒU[‚ªŠJŽn‚µ‚½‚Æ‚«‚É“K—p‚³‚ê‚Ü‚·BƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðŽÀs‚µ‚Ä‚¢‚郆[ƒU[‚âƒzƒXƒg‚ÉŠÖ˜A‚·‚éƒvƒƒtƒ@ƒCƒ‹‚ª‚·‚ׂĎ擾‚³‚êA‚»‚Ìݒ肪ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚̃[ƒJƒ‹ƒfƒtƒHƒ‹ƒg‚ƃ†[ƒU[‚̃JƒXƒ^ƒ€Ý’è‚É“‡‚³‚ê‚Ü‚·Bƒvƒƒtƒ@ƒCƒ‹‚ðŽg—p‚·‚é‚ÆAˆêŒ³ŠÇ—‚³‚ê‚éƒfƒtƒHƒ‹ƒgƒZƒbƒg‚ðƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚É’ñ‹Ÿ‚µ‚½‚èA•K—v‚ÈÝ’è‚ð‹­§‚µ‚½‚è‚Å‚«‚Ü‚·B</p>
+<p>d—v‚È—pŒê</p>
+<ul><li><p><i>\¬ƒŠƒ|ƒWƒgƒŠ</i>:‘gD‚ƃhƒƒCƒ“ƒcƒŠ[‚̃Rƒ“ƒeƒiA‚¨‚æ‚Ñ‚»‚Ì’†‚ÉŠi”[‚³‚ê‚Ä‚¢‚éƒvƒƒtƒ@ƒCƒ‹B</p>
+</li>
+<li><p><i>ƒhƒƒCƒ“</i>:ƒhƒƒCƒ“ƒcƒŠ[“à‚Ì—v‘fBƒRƒ“ƒsƒ…[ƒ^ƒlƒbƒgƒ[ƒN“à‚̃Œƒ‹ƒ€‚ð•\‚µ‚Ü‚·BƒhƒƒCƒ“‚ƃzƒXƒg‚ðŠÜ‚ñ‚Å‚¢‚éꇂª‚ ‚è‚Ü‚·B</p>
+</li>
+<li><p><i>—v‘f</i>:\¬ƒf[ƒ^‚ðŠ„‚è“–‚Ă邱‚Æ‚ª‚Å‚«‚é˜_—ƒIƒuƒWƒFƒNƒgBƒ†[ƒU[A–ðŠ„/ƒOƒ‹[ƒvA‘gD‚È‚Ç‚Í Desktop Manager ‚ª”FŽ¯‚·‚éƒGƒ“ƒeƒBƒeƒB[‚Ì—á‚Å‚·B</p>
+</li>
+<li><p><i>LDAP</i>:Lightweight Directory Access ProtocolBLDAP ‚Í TCP/IP ã‚Å“®ì‚·‚éƒfƒBƒŒƒNƒgƒŠƒT[ƒrƒXƒvƒƒgƒRƒ‹‚Å‚·BLDAP ‚ÌÚׂÍARFC 1777 (The Lightweight Directory Access Protocol) ‚Å’è‹`‚³‚ê‚Ä‚¢‚Ü‚·B</p>
+</li>
+<li><p><i>‘gD</i>:‘gDƒcƒŠ[“à‚Ì—v‘fB‘gD‚âAuƒR[ƒ‹ƒZƒ“ƒ^[v‚Ȃǂ̃Tƒu‘gD‚ð•\‚µ‚Ü‚·B‘gDAƒ†[ƒU[A‚Ü‚½‚Í–ðŠ„‚ðŠÜ‚ñ‚Å‚¢‚éꇂª‚ ‚è‚Ü‚·B</p>
+</li>
+<li><p><i>ƒvƒƒtƒ@ƒCƒ‹</i>:\¬‚ÌÝ’è—p‚Ì–¼‘O•t‚«‚̃Rƒ“ƒeƒiBƒvƒƒtƒ@ƒCƒ‹‚Í\¬ƒŠƒ|ƒWƒgƒŠ‚ÉŠi”[‚³‚êA—v‘f‚ÉŠ„‚è“–‚Ă邱‚Æ‚ª‚Å‚«‚Ü‚·B</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgcg.html b/webconsole/html/ja/help/gbgcg.html
new file mode 100644
index 0000000..8c9dbc7
--- /dev/null
+++ b/webconsole/html/ja/help/gbgcg.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ˆê”ʃvƒƒpƒeƒB[</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcg"></A><h3>ˆê”ʃvƒƒpƒeƒB[</h3>
+<p>uˆê”ʃvƒƒpƒeƒB[vƒy[ƒW‚Å‚ÍAƒvƒƒtƒ@ƒCƒ‹‚ÉŠÖ‚·‚éˆê”Ê“I‚Èî•ñ‚ðŽw’è‚Å‚«‚Ü‚·B‚±‚̃y[ƒW‚Íuƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^vƒEƒBƒ“ƒhƒE‚̃fƒtƒHƒ‹ƒg•\Ž¦‚Å‚·B</p>
+<p><hr size="1" noshade><p><b>’ &#8211; </b>ƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^‚ÍAƒ†[ƒU[‚ªuV‹Kì¬vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚ÄV‚µ‚¢ƒvƒƒtƒ@ƒCƒ‹‚ð쬂µ‚½‚Æ‚«‚É•\Ž¦‚³‚ê‚Ü‚·B</p>
+<hr size="1" noshade></p><p><A HREF="gbgpb.html#gbgpb">uƒvƒƒtƒ@ƒCƒ‹‚̈ê”ʃvƒƒpƒeƒB[‚ÌŽw’èv</A>‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgcm.html b/webconsole/html/ja/help/gbgcm.html
new file mode 100644
index 0000000..cd853c0
--- /dev/null
+++ b/webconsole/html/ja/help/gbgcm.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒiƒrƒQ[ƒVƒ‡ƒ“—̈æ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcm"></A><h3>ƒiƒrƒQ[ƒVƒ‡ƒ“—̈æ</h3>
+<p>ƒiƒrƒQ[ƒVƒ‡ƒ“ƒcƒŠ[‚ÍA‘gD‚ƃhƒƒCƒ“‚̃cƒŠ[‚ðƒuƒ‰ƒEƒY‚µ‚Ä—v‘f‚ð‘I‘ð‚·‚é‚½‚ß‚ÉŽg—p‚µ‚Ü‚·BƒcƒŠ[‚Í—v‘f‚ÌŠK‘w‚𔽉f‚µ‚Ä‚¢‚Ü‚·Bƒm[ƒh‚ɃTƒuƒm[ƒh‚ª‚ ‚éꇂÍAƒm[ƒh–¼‚̶‚É‚¢ŽOŠp‚ª•\Ž¦‚³‚ê‚Ü‚·B‚¢ŽOŠp‚ðƒNƒŠƒbƒN‚·‚é‚ÆAƒm[ƒh‚ª“WŠJ‚³‚êAƒTƒuƒm[ƒh‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+<p><hr size="1" noshade><p><b>’ &#8211; </b>ƒfƒtƒHƒ‹ƒg‚Å‚ÍA“WŠJ‚µ‚½Šeƒm[ƒh‚ɂ‚«ƒTƒuƒm[ƒg‚ª 10 ‚¾‚¯•\Ž¦‚³‚ê‚Ü‚·B10 ‚ð’´‚¦‚éƒTƒuƒm[ƒh‚ª‚ ‚éꇂÍA11 ”Ԗڂ̃m[ƒh‚É‚Í—v‘f‚ªŽ¦‚³‚ꂸA•\Ž¦‚³‚ê‚Ä‚¢‚È‚¢ƒm[ƒh‚ª‚ ‚邱‚Æ‚ªŽŸ‚̃ƒbƒZ[ƒW‚ÅŽ¦‚³‚ê‚Ü‚·Bu... ˆê•”‚Ì—v‘f‚ª•\Ž¦‚³‚ê‚Ä‚¢‚Ü‚¹‚ñBv‚±‚Ìuƒm[ƒhv‚ðƒNƒŠƒbƒN‚·‚é‚ÆAŒŸõ‹@”\‚ªŠJ‚«‚Ü‚·B</p>
+<hr size="1" noshade></p><p>—v‘f‚ð‘I‘ð‚·‚é‚É‚ÍAƒcƒŠ[‚ðˆÚ“®‚µ‚Ä–Ú“I‚Ì—v‘f‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B—v‘f‚ð‘I‘ð‚·‚é‚ÆA‚»‚ꂪ‹­’²•\Ž¦‚³‚êA—v‘f‚ÉŠ„‚è“–‚Ä‚ç‚êŒp³‚³‚ꂽƒvƒƒtƒ@ƒCƒ‹‚ªƒRƒ“ƒeƒ“ƒc—̈æ‚É•\Ž¦‚³‚ê‚Ü‚·B</p>
+<p>ƒcƒŠ[ŠK‘w‚Å—v‘f‚ðŒ©‚Â‚¯‚邽‚ß‚ÉAƒiƒrƒQ[ƒVƒ‡ƒ“‚É‚ÍAÄ‹A“I‚ÈŒŸõ (u<A HREF="gbgpa.html#gbgpa">—v‘f‚ÌŒŸõ</A>v‚ðŽQÆ) ‚ÆÄ‹A“I‚Å‚È‚¢ŒŸõ (u<A HREF="gbgqt.html#gbgqt">ŒŸõ‹@”\‚ÌŽg—p–@</A>v‚ðŽQÆ) ‚Ì‹@\‚à’ñ‹Ÿ‚³‚ê‚Ä‚¢‚Ü‚·BuŒŸõvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚·‚é‚ÆAuŒŸõvƒEƒBƒ“ƒhƒE‚ªŠJ‚«‚Ü‚·B</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgcn.html b/webconsole/html/ja/help/gbgcn.html
new file mode 100644
index 0000000..2432e23
--- /dev/null
+++ b/webconsole/html/ja/help/gbgcn.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>\¬ƒŠƒ|ƒWƒgƒŠ‚ÌV‹Kì¬</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcn"></A><h4>\¬ƒŠƒ|ƒWƒgƒŠ‚ÌV‹Kì¬</h4>
+<p>\¬ƒŠƒ|ƒWƒgƒŠ‚ÍA‘gD‚ÌŠK‘wî•ñ‚ÆAŠe—v‘f‚̃vƒƒtƒ@ƒCƒ‹‚ÆŠ„‚è“–‚Ẵf[ƒ^‚ªŠi”[‚³‚ê‚éꊂł·B</p>
+<h5>Žè‡</h5><ol><li><p><b>\¬ƒŠƒ|ƒWƒgƒŠƒe[ƒuƒ‹‚ÅuV‹Kvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>\¬ƒŠƒ|ƒWƒgƒŠ‚ÌV‹K쬃EƒBƒU[ƒh‚ªŠJ‚«‚Ü‚·B‚±‚̃EƒBƒU[ƒh‚ÍADesktop Manager ‚ÅŽg—p‚·‚é\¬ƒŠƒ|ƒWƒgƒŠ‚ð쬂·‚邽‚ß‚ÉŽg—p‚µ‚Ü‚·B</p>
+</li>
+<li><p><b>uƒŠƒ|ƒWƒgƒŠ–¼vƒtƒB[ƒ‹ƒh‚ÉAV‚µ‚¢\¬ƒŠƒ|ƒWƒgƒŠ‚Ì–¼‘O‚ð“ü—Í‚µ‚ÄAuŽŸ‚Öv‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p></li>
+<li><p><b>uƒŠƒ|ƒWƒgƒŠ‚ÌŽí—ÞvƒŠƒXƒg‚©‚烊ƒ|ƒWƒgƒŠ‚ÌŽí—Þ‚ð‘I‘ð‚µ‚Ü‚·B</b></p><p>ƒEƒBƒU[ƒh‚ðŽg—p‚·‚é‚ÆA3 Ží—ނ̃Šƒ|ƒWƒgƒŠ‚ð\¬‚Å‚«‚Ü‚·B</p>
+<ul><li><p>LDAP: ŠK‘w‚Í LDAP ‚©‚çŽæ“¾‚³‚êAƒf[ƒ^‚Í‚·‚×‚Ä LDAP ‚ÉŠi”[‚³‚ê‚Ü‚·B</p>
+</li>
+<li><p>ƒtƒ@ƒCƒ‹ƒx[ƒX: ŠK‘w‚̓tƒ@ƒCƒ‹‚©‚çŽæ“¾‚³‚êAƒf[ƒ^‚Í‚·‚ׂăfƒBƒŒƒNƒgƒŠ‚ƃtƒ@ƒCƒ‹‚ÉŠi”[‚³‚ê‚Ü‚·B</p>
+</li>
+<li><p>ƒnƒCƒuƒŠƒbƒh: ŠK‘w‚Í LDAP ‚©‚çŽæ“¾‚³‚ê‚Ü‚·‚ªAƒf[ƒ^‚Í‚·‚ׂăfƒBƒŒƒNƒgƒŠ‚ƃtƒ@ƒCƒ‹‚ÉŠi”[‚³‚ê‚Ü‚·B</p>
+</li>
+</ul>
+</li>
+<li><p><b>uŽŸ‚Övƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p></li>
+<li><p><b>‚±‚̃Šƒ|ƒWƒgƒŠ‚É\¬‚·‚é LDAP ƒT[ƒo[‚ÌÚׂð“ü—Í‚µ‚Ü‚·B</b></p><p>ƒT[ƒo[‚ðŽÀs‚·‚éƒzƒXƒg–¼‚ƃ|[ƒg‚ª•K—v‚É‚È‚è‚Ü‚·B‚Ü‚½A‚±‚̃T[ƒo[‚É SSL ‚ðŽg—p‚µ‚ÄÚ‘±‚·‚é‚©‚Ç‚¤‚©‚à‘I‘ð‚Å‚«‚Ü‚·B</p>
+</li>
+<li><p><b>ˆÈ~‚̃Xƒeƒbƒv‚ÍA‘O‚̃Xƒeƒbƒv‚Å‘I‘ð‚µ‚½ƒIƒvƒVƒ‡ƒ“‚É‚æ‚Á‚ĈقȂè‚Ü‚·B</b><b>ƒEƒBƒU[ƒh‚Ìà–¾‚É]‚Á‚Ä‚­‚¾‚³‚¢B</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgcr.html b/webconsole/html/ja/help/gbgcr.html
new file mode 100644
index 0000000..8ac7c2d
--- /dev/null
+++ b/webconsole/html/ja/help/gbgcr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚ÌV‹Kì¬</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcr"></A><h3>ƒvƒƒtƒ@ƒCƒ‹‚ÌV‹Kì¬</h3>
+<h5>Žè‡</h5><ol><li><p><b>‘gD‚Ü‚½‚̓hƒƒCƒ“‚̃vƒƒtƒ@ƒCƒ‹ƒe[ƒuƒ‹‚ÅuV‹Kì¬vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>ƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^‚̃EƒBƒU[ƒh‚ªŠJ‚«‚Ü‚·B</p>
+</li>
+<li><p><b>ƒEƒBƒU[ƒh‚Ìà–¾‚É]‚¢‚Ü‚·B</b></p><p>ƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^‚ðŽg—p‚µ‚ÄV‚µ‚¢ƒvƒƒtƒ@ƒCƒ‹‚ð쬂·‚é•û–@‚ÌÚׂÍAƒIƒ“ƒ‰ƒCƒ“ƒwƒ‹ƒv‚Ìu<A HREF="gbgec.html#gbgec">ƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^</A>vƒZƒNƒVƒ‡ƒ“‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgda.html b/webconsole/html/ja/help/gbgda.html
new file mode 100644
index 0000000..bde7343
--- /dev/null
+++ b/webconsole/html/ja/help/gbgda.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Ý’èŠT—v</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgda"></A><h3>Ý’èŠT—v</h3>
+<p>uÝ’èŠT—vv‚ÍA‘I‘ð‚µ‚½ƒvƒƒtƒ@ƒCƒ‹‚̃f[ƒ^‚ªŠÜ‚܂ꂽ\¬Ý’è‚·‚×‚Ä‚ðŽ¦‚·“Ç‚ÝŽæ‚èê—p‚Ì•\Ž¦‚Å‚·B</p>
+<p>uÝ’èŠT—vƒy[ƒWv‚É‚ÍuÝ’èŠT—vvƒe[ƒuƒ‹‚ª‚ ‚è‚Ü‚·B‚±‚̃e[ƒuƒ‹‚ÍAì‹Æ’†‚̃vƒƒtƒ@ƒCƒ‹‚̃f[ƒ^‚ªŠÜ‚Ü‚ê‚Ä‚¢‚é\¬Ý’è‚ðƒJƒeƒSƒŠ‚É•ª—Þ‚µ‚Ä‚¢‚Ü‚·Bƒe[ƒuƒ‹‚É‚ÍŽŸ‚̃tƒB[ƒ‹ƒh‚ª‚ ‚è‚Ü‚·B</p>
+<p></p>
+<ul><li><p>–¼‘O: Ý’è–¼</p>
+</li>
+<li><p>’l: Ý’è’l</p>
+</li>
+<li><p>ƒXƒe[ƒ^ƒX: uó‘Ôv—ñ‚É‚Íu&lt;profileName> ‚Å’è‹`‚³‚ê‚Ä‚¢‚évƒ^ƒCƒv‚̃Gƒ“ƒgƒŠ‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B&lt;profileName> ‚ÍAƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^‚ðu\¬Ý’èvƒy[ƒW‚ÉØ‚è‘Ö‚¦‚ÄA‚±‚̃vƒƒtƒ@ƒCƒ‹“à‚Ì“Á’è‚ÌÝ’è‚Ɉړ®‚·‚郊ƒ“ƒN‚Å‚·B</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgdc.html b/webconsole/html/ja/help/gbgdc.html
new file mode 100644
index 0000000..8389d4e
--- /dev/null
+++ b/webconsole/html/ja/help/gbgdc.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹ &#8212; ƒcƒŠ[•\Ž¦</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgdc"></A><h2>ƒvƒƒtƒ@ƒCƒ‹ &#8212; ƒcƒŠ[•\Ž¦</h2>
+<p>uƒvƒƒtƒ@ƒCƒ‹ &#8212; ƒcƒŠ[•\Ž¦vƒy[ƒW‚É‚ÍAŒ»Ý—v‘f‚ÉŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚éƒvƒƒtƒ@ƒCƒ‹‚ª‚·‚ׂĕ\Ž¦‚³‚ê‚Ü‚·Bƒy[ƒW‚̶‘¤‚̓iƒrƒQ[ƒVƒ‡ƒ“—̈æ‚Å‚·B‚±‚±‚ŃcƒŠ[ŠK‘w‚ðŽQÆ‚µ‚ăvƒƒtƒ@ƒCƒ‹‚ð’T‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·Bƒy[ƒW‚̉E‘¤‚̓Rƒ“ƒeƒ“ƒc—̈æ‚Å‚·BƒiƒrƒQ[ƒVƒ‡ƒ“—̈æ‚Å‘I‘ð‚µ‚½ƒvƒƒtƒ@ƒCƒ‹‚ÉŠÖ‚·‚éî•ñ‚ª‚±‚±‚É•\Ž¦‚³‚ê‚Ü‚·B</p>
+<p>ŽŸ‚àŽQÆ‚µ‚Ä‚­‚¾‚³‚¢F<A HREF="gbgcm.html#gbgcm">ƒiƒrƒQ[ƒVƒ‡ƒ“—̈æ</A>‚Æ<A HREF="gbgoy.html#gbgoy">ƒRƒ“ƒeƒ“ƒc—̈æ</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgdh.html b/webconsole/html/ja/help/gbgdh.html
new file mode 100644
index 0000000..1efdf13
--- /dev/null
+++ b/webconsole/html/ja/help/gbgdh.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Ú׃IƒvƒVƒ‡ƒ“</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgdh"></A><h3>Ú׃IƒvƒVƒ‡ƒ“</h3>
+<p>uÚ׃IƒvƒVƒ‡ƒ“vƒy[ƒW‚Å‚ÍAŒ»Ý‚̃vƒƒtƒ@ƒCƒ‹‚ÉÚ׃IƒvƒVƒ‡ƒ“‚ðŽw’è‚Å‚«‚Ü‚·B‚±‚̃y[ƒW‚É‚ÍŽå‚ȃIƒvƒVƒ‡ƒ“‚ª 2 ‚‚ ‚è‚Ü‚·B</p>
+<ul><li><p>“K—pŒ³: ƒvƒƒtƒ@ƒCƒ‹‚ð‘gD‚Ü‚½‚̓hƒƒCƒ“ƒcƒŠ[‚Ì•Ê‚Ì‹L‰¯—̈æ‚Ɉړ®‚Å‚«‚Ü‚·B‹L‰¯—̈æ‚ðˆÚ“®‚·‚é‚ÆAƒvƒƒtƒ@ƒCƒ‹‚ÌŠ„‚è“–‚Äæ‚Ü‚½‚Í“K—pæ‚Ì—v‘fˆêŽ®‚à•ÏX‚·‚邱‚Æ‚É‚È‚è‚Ü‚·Bƒvƒƒtƒ@ƒCƒ‹‚ÍA‚»‚ꂪŠi”[‚³‚ê‚Ä‚¢‚é—v‘f‚©AŠi”[‚³‚ê‚Ä‚¢‚é—v‘f‚̉º‚̃TƒuƒcƒŠ[“à‚Ì—v‘f‚É‚µ‚©Š„‚è“–‚Ä‚ç‚ê‚È‚¢‚©‚ç‚Å‚·B</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>’ˆÓ &#8211; </b>u“K—pŒ³vƒpƒ‰ƒ[ƒ^‚ð•ÏX‚µ‚½Œ‹‰ÊAƒŒƒCƒAƒEƒg‚ªã‹L‚Ì‹K‘¥‚Ɉᔽ‚·‚邱‚Æ‚É‚È‚¢‚悤‚É’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢Bƒvƒƒtƒ@ƒCƒ‹‚ðƒcƒŠ[ŠK‘w‚Ì 1 ‚‰º‚Ɉړ®‚µ‚½‚Æ‚«‚ª‚»‚̈ê—á‚ÅAƒvƒƒtƒ@ƒCƒ‹‚̈ړ®Œã‚ÉAƒvƒƒtƒ@ƒCƒ‹‚ð‚»‚Ì•ÛŠÇꊂ̉º‚Ì—v‘f‚ɘAŒ‹‚µ‚Ä‚¢‚éŠù‘¶‚ÌŠ„‚è“–‚Ä‚ªƒvƒƒtƒ@ƒCƒ‹‚𓯂¶—v‘f‚ɘAŒ‹‚µ‚Ü‚·B‚µ‚©‚µŽÀÛ‚ÍA—v‘f‚̓vƒƒtƒ@ƒCƒ‹‚Ì‹L‰¯—̈æ‚Ìã‚Å‚·B‚±‚ê‚ðŽÀs‚µ‚悤‚Æ‚·‚é‚ÆAƒAƒNƒVƒ‡ƒ“‚ªŽæ‚èÁ‚³‚êAŒxƒƒbƒZ[ƒW‚ª•\Ž¦‚³‚ê‚Ü‚·B</p><hr size="1" noshade></li>
+<li><p>ƒ}[ƒW‡˜: “¯‚¶—v‘f‚ÉŠi”[‚³‚ê‚Ä‚¢‚éƒvƒƒtƒ@ƒCƒ‹‚·‚ׂĂªƒ}[ƒW‚³‚ê‚釘‚ðŽw’肵‚Ü‚·B</p>
+<p>1 ‚‚̗v‘f‚É•¡”‚̃vƒƒtƒ@ƒCƒ‹‚ðŠ„‚è“–‚Ă邱‚Æ‚ª‚Å‚«A•¡”‚̃vƒƒtƒ@ƒCƒ‹‚ª“¯‚¶Ý’è‚ð’è‹`‚Å‚«‚邽‚ßA1 ‚‚̗v‘f‚̃vƒƒtƒ@ƒCƒ‹‚ðƒ}[ƒW‚·‚釘‚ð’è‹`‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B ‚±‚ê‚É‚æ‚èA•¡”‚̃vƒƒtƒ@ƒCƒ‹‚É’è‹`‚³‚ê‚Ä‚¢‚é 1 ‚‚Ìݒ肪“¯‚¶—v‘f‚ÉŠ„‚è“–‚Ä‚ç‚ê‚é‚Æ‚¢‚¤‹£‡‚ð‰ðŒˆ‚µ‚Ü‚·B</p>
+<p>ƒ}[ƒW‡˜‚ðŒˆ’è‚·‚é‚É‚ÍA‚Ü‚¸‹L‰¯—̈æ‚ðŽg—p‚µ‚Ü‚·BƒcƒŠ[‚̃‹[ƒg‚É‹ß‚¢êŠ‚Ì—v‘f‚ÉŠi”[‚³‚ê‚Ä‚¢‚éƒvƒƒtƒ@ƒCƒ‹‚ªÅ‰‚Ƀ}[ƒW‚³‚ê‚Ü‚·B‚»‚ÌŒ‹‰ÊAƒcƒŠ[ŠK‘w‚Ì[‚¢ˆÊ’u‚ÉŠi”[‚³‚ê‚Ä‚¢‚éƒvƒƒtƒ@ƒCƒ‹‚ª 2 ”ԖڂɃ}[ƒW‚³‚ê‚Ü‚·B‚ ‚ƂŃ}[ƒW‚³‚ê‚éƒvƒƒtƒ@ƒCƒ‹‚Ìݒ肪Aæ‚Ƀ}[ƒW‚³‚ꂽƒvƒƒtƒ@ƒCƒ‹‚ÌÝ’è‚ðã‘‚«‚µ‚Ü‚·B</p>
+</li>
+</ul>
+<p>u<A HREF="gbgqu.html#gbgqu">ƒƒP[ƒVƒ‡ƒ“‚©‚ç‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“‚Ì•ÏX</A>vAu<A HREF="gbgqe.html#gbgqe">ƒvƒƒtƒ@ƒCƒ‹‚ւ̃}[ƒW‡˜‚ÌŠ„‚è“–‚Ä</A>v‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgeb.html b/webconsole/html/ja/help/gbgeb.html
new file mode 100644
index 0000000..8578113
--- /dev/null
+++ b/webconsole/html/ja/help/gbgeb.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>\¬Ý’è</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgeb"></A><h3>\¬Ý’è</h3>
+<p>u\¬Ý’èvƒy[ƒW‚Å‚ÍA‘I‘ð‚µ‚½ƒvƒƒtƒ@ƒCƒ‹‚ÉŠi”[‚³‚ê‚Ä‚¢‚é\¬Ý’è‚ð•\Ž¦‚µ‚Ä•ÒW‚Å‚«‚Ü‚·B</p>
+<p>u<A HREF="gbgot.html#gbgot">ƒvƒƒtƒ@ƒCƒ‹‚Ì\¬Ý’è‚Ì•\Ž¦‚Æ•ÒW</A>v‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgec.html b/webconsole/html/ja/help/gbgec.html
new file mode 100644
index 0000000..e1fee5d
--- /dev/null
+++ b/webconsole/html/ja/help/gbgec.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgec"></A><h2>ƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^</h2>
+<p>ƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^‚ÍAƒvƒƒtƒ@ƒCƒ‹‚ÌV‹K쬂Ɗù‘¶‚̃vƒƒtƒ@ƒCƒ‹‚Ì•ÒW‚ÉŽg—p‚µ‚Ü‚·B‚Ü‚½AŒ»Ý‘I‘ð‚³‚ê‚Ä‚¢‚éƒvƒƒtƒ@ƒCƒ‹‚ÌŒ»Ý‚ÌÝ’è‚ƃIƒvƒVƒ‡ƒ“‚à•\Ž¦‚Å‚«‚Ü‚·B</p>
+<p>ƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^‚ÍAƒvƒƒtƒ@ƒCƒ‹ &#8212; ƒcƒŠ[•\Ž¦‚̃Rƒ“ƒeƒ“ƒc—̈æ‚Ü‚½‚̓vƒƒtƒ@ƒCƒ‹ &#8212; ‚·‚ׂẴy[ƒW‚É‚ ‚éƒe[ƒuƒ‹‚Ì 1 ‚‚Ńvƒƒtƒ@ƒCƒ‹‚Ì–¼‘O‚ðƒNƒŠƒbƒN‚µ‚ÄŠJ‚«‚Ü‚·B</p>
+<p><hr size="1" noshade><p><b>ƒqƒ“ƒg &#8211; </b>ƒvƒƒtƒ@ƒCƒ‹‚ðV‹K쬂·‚é‚É‚ÍAu<A HREF="gbgni.html#gbgni">ƒvƒƒtƒ@ƒCƒ‹‚ÌV‹Kì¬</A>v‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B</p>
+<hr size="1" noshade></p><p>ƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^‚É‚ÍAŽŸ‚ÌŒ©o‚µƒy[ƒW‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B</p>
+<ul><li><p><A HREF="gbgcg.html#gbgcg">ˆê”ʃvƒƒpƒeƒB[</A></p>
+</li>
+<li><p><A HREF="gbgeb.html#gbgeb">\¬Ý’è</A></p>
+</li>
+<li><p><A HREF="gbgkr.html#gbgkr">Š„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚é—v‘f</A></p>
+</li>
+<li><p><A HREF="gbgda.html#gbgda">Ý’èŠT—v</A></p>
+</li>
+<li><p><A HREF="gbgdh.html#gbgdh">Ú׃IƒvƒVƒ‡ƒ“</A></p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgkr.html b/webconsole/html/ja/help/gbgkr.html
new file mode 100644
index 0000000..064e395
--- /dev/null
+++ b/webconsole/html/ja/help/gbgkr.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Š„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚é—v‘f</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgkr"></A><h3>Š„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚é—v‘f</h3>
+<p>uŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚é—v‘fvƒy[ƒW‚É‚ÍAŒ»Ý‚̃vƒƒtƒ@ƒCƒ‹‚ÉŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚é—v‘f‚ª•\Ž¦‚³‚ê‚Ü‚·B‚±‚±‚ÅA—v‘f‚ÌŠ„‚è“–‚ĂƉ𜂪‚Å‚«‚Ü‚·B</p>
+<p>Œ»Ý‚̃vƒƒtƒ@ƒCƒ‹‚Ì—v‘f‚ÍuŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚é—v‘fvƒe[ƒuƒ‹‚É•\Ž¦‚³‚êAŽŸ‚Ìî•ñ‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B</p>
+<ul><li><p>–¼‘O: Œ»Ý‚̃vƒƒtƒ@ƒCƒ‹‚ªŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚é—v‘f‚Ì–¼‘OB</p>
+</li>
+<li><p>ƒpƒX: Œ»Ý‚̃vƒƒtƒ@ƒCƒ‹‚ªŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚é—v‘f‚ÌêŠB</p>
+</li>
+</ul>
+<p>u<A HREF="gbgpm.html#gbgpm">ƒvƒƒtƒ@ƒCƒ‹‚Ö‚Ì—v‘f‚ÌŠ„‚è“–‚Ä</A>vAu<A HREF="gbgpp.html#gbgpp">ƒvƒƒtƒ@ƒCƒ‹‚Ì—v‘f‚ÌŠ„‚è“–‚ĉðœ</A>v‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgni.html b/webconsole/html/ja/help/gbgni.html
new file mode 100644
index 0000000..a7dbd2f
--- /dev/null
+++ b/webconsole/html/ja/help/gbgni.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚ÌV‹Kì¬</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgni"></A><h4>ƒvƒƒtƒ@ƒCƒ‹‚ÌV‹Kì¬</h4>
+<h5>Žè‡</h5><ol><li><p><b>uV‹Kì¬vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>ƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^‚ªŠJ‚«‚Ü‚·B</p>
+</li>
+<li><p><b>ƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^‚Ìà–¾‚É]‚¢‚Ü‚·B</b></p><p>ƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^‚ðŽg—p‚µ‚ăvƒƒtƒ@ƒCƒ‹‚ðV‹K쬂·‚é•û–@‚ÌÚׂÍAƒIƒ“ƒ‰ƒCƒ“ƒwƒ‹ƒv‚Ìu<A HREF="gbgec.html#gbgec">ƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^</A>vƒZƒNƒVƒ‡ƒ“‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B </p>
+<p><hr size="1" noshade><p><b>’ &#8211; </b>V‚µ‚¢ƒvƒƒtƒ@ƒCƒ‹‚ð쬂·‚é‚ÆAŒ»Ý‘I‘ð‚³‚ê‚Ä‚¢‚é—v‘f‚ÉŽ©“®“I‚ÉŠ„‚è“–‚Ä‚ç‚ê‚Ü‚·B</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgot.html b/webconsole/html/ja/help/gbgot.html
new file mode 100644
index 0000000..5b3fd6a
--- /dev/null
+++ b/webconsole/html/ja/help/gbgot.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚Ì\¬Ý’è‚Ì•\Ž¦‚Æ•ÒW</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgot"></A><h4>ƒvƒƒtƒ@ƒCƒ‹‚Ì\¬Ý’è‚Ì•\Ž¦‚Æ•ÒW</h4>
+<h5>Žè‡</h5><ol><li><p><b>ƒvƒƒtƒ@ƒCƒ‹‚Ì\¬Ý’è‚ð•\Ž¦‚·‚é‚É‚ÍAƒy[ƒW‚̉E‘¤‚É‚ ‚éƒJƒeƒSƒŠƒŠƒXƒg‚©‚çÝ’è‚Ɉړ®‚µ‚Ü‚·B</b></p><p>\¬Ý’è‚ÍAStarSuite&#153;AMozilla&#153;AEvolutionAGnome ‚Ȃǂ̃fƒXƒNƒgƒbƒvƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Ì\¬ƒIƒvƒVƒ‡ƒ“‚É’¼Ú‘Ήž‚·‚éƒJƒeƒSƒŠ‚ÉŠK‘w“I‚É•Ò¬‚³‚ê‚Ä‚¢‚Ü‚·B</p>
+</li>
+<li><p><b>–Ú“I‚Ì\¬Ý’è‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>‘I‘ð‚µ‚½ƒvƒƒtƒ@ƒCƒ‹‚Ìݒ肪•\Ž¦‚³‚êA‚»‚̃vƒƒtƒ@ƒCƒ‹‚ÅŽg—p‚Å‚«‚éݒ肪•\Ž¦‚³‚ê‚Ü‚·B•K—v‚ɉž‚¶‚ÄAŒÂX‚ÌÝ’è‚ÌŒø‰Ê‚â—LŒø‚È’l‚͈̔͂ȂÇA‚»‚Ì‘¼‚̃Rƒ“ƒeƒLƒXƒgî•ñ‚à’ñ‹Ÿ‚³‚ê‚Ü‚·B</p>
+<p><hr size="1" noshade><p><b>’ &#8211; </b>\¬Ý’è‚Å‚Í‚È‚­ƒJƒeƒSƒŠ‚ð‘I‘ð‚µ‚½ê‡‚ÍAƒJƒeƒSƒŠ‚Ü‚½‚̓TƒuƒJƒeƒSƒŠ‚Ìݒ肪ƒe[ƒuƒ‹‚É•\Ž¦‚³‚ê‚Ü‚·B</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Še\¬Ý’è‚É‹ï‘Ì“I‚È’l‚ðŽw’è‚·‚é‚©A–¢’è‹`‚É‚µ‚Ä‚¨‚­‚±‚Æ‚ª‚Å‚«‚Ü‚·B</b></p><p>Ý’è‚ð–¢’è‹`‚É‚µ‚½ê‡‚ÍA‚±‚̃vƒƒtƒ@ƒCƒ‹‚ÌÝ’è‚̓AƒvƒŠƒP[ƒVƒ‡ƒ“‚É”½‰f‚³‚ꂸAo‰×Žž‚É‘g‚Ýž‚Ü‚ê‚Ä‚¢‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“Ž©‘̂̃fƒtƒHƒ‹ƒgݒ肪Žg—p‚³‚ê‚Ü‚·Bˆê”Ê‚ÉAƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^‚Å‚ÍAƒwƒ‹ƒvƒeƒLƒXƒg‚ð’ljÁ‚µ‚½‚èA‰Â”\‚ÈꇂÍÝ’è‚̃IƒvƒVƒ‡ƒ“ƒŠƒXƒg‚É’¼Úƒ}[ƒJ[‚ð‘}“ü‚µ‚ÄAƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚̃fƒtƒHƒ‹ƒg’l‚ð•\Ž¦‚µ‚Ü‚·B</p>
+<p><hr size="1" noshade><p><b>’ &#8211; </b>“¯‚¶ƒ†[ƒU[‚É•¡”‚̃vƒƒtƒ@ƒCƒ‹‚ª‰e‹¿‚·‚é‰Â”\«‚ª‚ ‚邱‚Æ‚ð—‰ð‚µ‚Ä‚¨‚­‚±‚Æ‚ªd—v‚Å‚·B‚½‚Æ‚¦‚ÎA“Á’è‚Ì‘gD‚ÌÝ’è‚ðŽg—p‚µ‚ăvƒƒtƒ@ƒCƒ‹‚ð쬂ł«‚Ü‚·B‚±‚ê‚ç‚ÌÝ’è‚ÍA‚±‚Ì‘gD‚É‘®‚·‚é‘Sƒ†[ƒU[‚ÉŽ©“®“I‚ÉŽg—p‰Â”\‚Æ‚È‚è‚Ü‚·B“¯—l‚ÉAƒTƒu‘gD‚Ì\¬Ý’è‚ðŽg—p‚µ‚ăvƒƒtƒ@ƒCƒ‹‚Ì’è‹`‚ð’ljÁ‚Å‚«‚Ü‚·B‚±‚ê‚ç‚Åe‘gD‚ÌÝ’è‚ðã‘‚«‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B‚½‚Æ‚¦‚ÎAƒTƒu‘gD‚ɂ͕ʂ̃vƒƒLƒVÝ’è‚ð’è‹`‚µA‘¼‚ÌÝ’è‚Í•ÏX‚¹‚¸‚É‚¨‚«‚Ü‚·B‚µ‚½‚ª‚Á‚ÄA“Á’è‚̃†[ƒU[‚ÉŒø‰Ê“I‚ÈÝ’è‚ÍA‘gDAƒTƒu‘gDAꇂɂæ‚Á‚Ă̓†[ƒU[‚È‚Ç‚ÉŠ„‚è“–‚Ä‚ç‚ꂽƒvƒƒtƒ@ƒCƒ‹‚·‚ׂĂðŠÜ‚ß‚½ƒ}[ƒWƒvƒƒZƒX‚ÌŒ‹‰Ê‚Æ‚È‚è‚Ü‚·B</p>
+<hr size="1" noshade></p><p><hr size="1" noshade><p><b>ƒqƒ“ƒg &#8211; </b>ꇂɂæ‚Á‚Ä‚ÍA‚±‚̃}[ƒWƒvƒƒZƒX‚ð—}§‚µ‚Ä\¬Ý’è‚ð‹­§‚µ‚½‚¢‚±‚Æ‚ª‚ ‚è‚Ü‚·B‚‚܂èA‘¼‚̃vƒƒtƒ@ƒCƒ‹‚ÅÝ’è‚ðã‘‚«‚µ‚½‚èA•Ê‚Ì’l‚ð’è‹`‚µ‚½‚è‚Å‚«‚È‚¢‚悤‚É‚µ‚Ü‚·Bƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^‚ðŽg—p‚·‚é‚ÆAŠeÝ’è‚Ƀ}[ƒW“®ì‚ðŽw’è‚Å‚«‚Ü‚·BÝ’è‚𑼂Ìuƒvƒƒtƒ@ƒCƒ‹‚Åã‘‚«‚Å‚«‚év‚ªƒfƒtƒHƒ‹ƒg‚É‚È‚Á‚Ä‚¢‚Ü‚·B‚±‚̃IƒvƒVƒ‡ƒ“‚ð‘I‘ð‰ðœ‚·‚é‚ÆAݒ肪‹­§‚³‚êA‘¼‚̃vƒƒtƒ@ƒCƒ‹‚Å’l‚ðã‘‚«‚Å‚«‚È‚¢‚悤‚É‚È‚è‚Ü‚·B</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgou.html b/webconsole/html/ja/help/gbgou.html
new file mode 100644
index 0000000..9f57901
--- /dev/null
+++ b/webconsole/html/ja/help/gbgou.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚̃GƒNƒXƒ|[ƒg</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgou"></A><h3>ƒvƒƒtƒ@ƒCƒ‹‚̃GƒNƒXƒ|[ƒg</h3>
+<h5>Žè‡</h5><ol><li><p><b>ƒGƒNƒXƒ|[ƒg‚·‚éƒvƒƒtƒ@ƒCƒ‹‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚ð‘I‘ð‚µ‚Ü‚·B</b></p></li>
+<li><p><b>ƒAƒNƒVƒ‡ƒ“ƒŠƒXƒg‚©‚çuƒGƒNƒXƒ|[ƒgv‚ð‘I‘ð‚µ‚Ü‚·B</b></p><p>ƒ_ƒCƒAƒƒOƒ{ƒbƒNƒX‚ªŠJ‚«Aƒtƒ@ƒCƒ‹‚̃GƒNƒXƒ|[ƒgæ‚ðŽw’è‚Å‚«‚Ü‚·B</p>
+</li>
+<li><p><b>ƒ_ƒCƒAƒƒO‚ÅuƒfƒBƒXƒN‚É•Û‘¶vƒIƒvƒVƒ‡ƒ“‚ð‘I‘ð‚µ‚Äu—¹‰ðv‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p></li>
+<li><p><b>ƒGƒNƒXƒ|[ƒg‚µ‚½ƒtƒ@ƒCƒ‹‚Ì•Û‘¶êŠ‚ð‘I‘ð‚µ‚Äu—¹‰ðv‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgow.html b/webconsole/html/ja/help/gbgow.html
new file mode 100644
index 0000000..6f2d9c9
--- /dev/null
+++ b/webconsole/html/ja/help/gbgow.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚̃Rƒs[‚ƈړ®</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgow"></A><h3>ƒvƒƒtƒ@ƒCƒ‹‚̃Rƒs[‚ƈړ®</h3>
+<h5>Žè‡</h5><ol><li><p><b>ƒRƒs[‚Ü‚½‚͈ړ®‚·‚éƒvƒƒtƒ@ƒCƒ‹‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚ð‘I‘ð‚µ‚Ü‚·B</b></p></li>
+<li><p><b>ƒAƒNƒVƒ‡ƒ“ƒŠƒXƒg‚©‚çuƒRƒs[‚ƈړ®v‚ð‘I‘ð‚µ‚Ü‚·B</b></p><p>ƒRƒs[‚ƈړ®ƒEƒBƒU[ƒh‚ªŠJ‚«‚Ü‚·B</p>
+</li>
+<li><p><b>ƒRƒs[‚ƈړ®ƒEƒBƒU[ƒh‚Ìà–¾‚É]‚Á‚ă^ƒXƒN‚ðŽÀs‚µ‚Ü‚·B</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgoy.html b/webconsole/html/ja/help/gbgoy.html
new file mode 100644
index 0000000..18c602e
--- /dev/null
+++ b/webconsole/html/ja/help/gbgoy.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒRƒ“ƒeƒ“ƒc—̈æ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgoy"></A><h3>ƒRƒ“ƒeƒ“ƒc—̈æ</h3>
+<p>—v‘f‚ð‘I‘ð‚·‚é‚ÆA‚»‚Ì—v‘f‚ÉŠÖ‚·‚éî•ñ‚ªuƒvƒƒtƒ@ƒCƒ‹ &#8212; ƒcƒŠ[•\Ž¦vƒy[ƒW‚̃Rƒ“ƒeƒ“ƒc—̈æ‚É•\Ž¦‚³‚ê‚Ü‚·BƒRƒ“ƒeƒ“ƒc—̈æ‚̓e[ƒuƒ‹‚ðÅ‘å 3 ‚Š܂ނ±‚Æ‚ª‚Å‚«‚Ü‚·B</p>
+<ul><li><p>uŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚éƒvƒƒtƒ@ƒCƒ‹vƒe[ƒuƒ‹: ‚±‚̃e[ƒuƒ‹‚Íí‚É•\Ž¦‚³‚ê‚Ü‚·B‚±‚̃e[ƒuƒ‹‚É‚ÍAŒ»Ý‘I‘ð‚µ‚Ä‚¢‚é—v‘f‚ÉŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚éƒvƒƒtƒ@ƒCƒ‹‚ª•\Ž¦‚³‚ê‚Ü‚·B3 ‚‚̗ñ (u–¼‘OvAu쬎ÒvA‚¨‚æ‚ÑuÅI•ÏX“úv) ‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·BuÅI•ÏX“úv—ñ‚Ì’l‚ÍAƒvƒƒtƒ@ƒCƒ‹‚Ìݒ肪•ÏX‚³‚ꂽꇂɂ̂ݕςí‚èAƒvƒƒtƒ@ƒCƒ‹Ž©‘Ì‚Ì–¼‘O•ÏXAˆÚ“®A—D懈ʂ̕ÏX‚É‚æ‚Á‚Ä‚Í•Ï‚í‚è‚Ü‚¹‚ñB</p>
+<p>uƒvƒƒtƒ@ƒCƒ‹‚ÌŠ„‚è“–‚Ävƒe[ƒuƒ‹‚Å‚ÍAŽŸ‚Ì‘€ì‚ðŽÀs‚Å‚«‚Ü‚·B</p>
+<ul><li><p><A HREF="gbgni.html#gbgni">ƒvƒƒtƒ@ƒCƒ‹‚ÌV‹Kì¬</A></p>
+</li>
+<li><p><A HREF="gbgpr.html#gbgpr">ƒvƒƒtƒ@ƒCƒ‹‚Ìíœ</A></p>
+</li>
+<li><p><A HREF="gbgpn.html#gbgpn">ƒvƒƒtƒ@ƒCƒ‹‚ÌŠ„‚è“–‚Ä</A></p>
+</li>
+<li><p><A HREF="gbgqj.html#gbgqj">ƒvƒƒtƒ@ƒCƒ‹‚ÌŠ„‚è“–‚ĉðœ</A></p>
+</li>
+<li><p><A HREF="gbgpw.html#gbgpw">ƒvƒƒtƒ@ƒCƒ‹‚Ì–¼‘O•ÏX</A></p>
+</li>
+<li><p><A HREF="gbgqf.html#gbgqf">ƒvƒƒtƒ@ƒCƒ‹‚̃Rƒs[‚ƈړ®</A></p>
+</li>
+<li><p><A HREF="gbgps.html#gbgps">ƒvƒƒtƒ@ƒCƒ‹‚̃Cƒ“ƒ|[ƒg</A></p>
+</li>
+<li><p><A HREF="gbgqh.html#gbgqh">ƒvƒƒtƒ@ƒCƒ‹‚̃GƒNƒXƒ|[ƒg</A></p>
+</li>
+</ul>
+</li>
+<li><p>uŒp³‚³‚ꂽƒvƒƒtƒ@ƒCƒ‹vƒe[ƒuƒ‹: ‚±‚̃e[ƒuƒ‹‚ÍAŠK‘w‚Å‘I‘ð‚µ‚½—v‘f‚ÌãˆÊ‚Ì—v‘f‚Ì‚¢‚¸‚ê‚©‚Ƀvƒƒtƒ@ƒCƒ‹‚ªŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚éꇂɕ\Ž¦‚³‚ê‚Ü‚·B‚±‚̃vƒƒtƒ@ƒCƒ‹‚̓e[ƒuƒ‹‚É•\Ž¦‚³‚êAu–¼‘Ov‚¨‚æ‚ÑuŠ„‚è“–‚Äæv‚Ì 2 ‚‚̗ñ‚ªŠÜ‚Ü‚ê‚Ü‚·BuŠ„‚è“–‚Äæv‚É‚ÍAƒvƒƒtƒ@ƒCƒ‹‚ªŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚é—v‘f‚̃pƒX‚Æ–¼‘O‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+</li>
+<li><p>uƒ†[ƒU[‚Ü‚½‚Í–ðŠ„vƒe[ƒuƒ‹: ‚±‚̃e[ƒuƒ‹‚ÍAuƒ†[ƒU[v‚Ü‚½‚Íu–ðŠ„vƒ^ƒCƒv‚Ì—v‘f‚ð‘I‘ð‚µ‚½‚Æ‚«‚É•\Ž¦‚³‚ê‚Ü‚·B1 ‚ˆÈã‚Ì–ðŠ„‚Ìƒƒ“ƒo[‚Å‚ ‚郆[ƒU[‚ª—v‘f‚ÌꇂÍA‚»‚ê‚ç‚Ì–ðŠ„‚ªu–ðŠ„vƒe[ƒuƒ‹‚É•\Ž¦‚³‚ê‚Ü‚·Bƒƒ“ƒo[‚ðŽ‚Â–ðŠ„‚ª—v‘f‚ÌꇂÍA‚»‚ê‚ç‚̃ƒ“ƒo[‚ªuƒ†[ƒU[vƒe[ƒuƒ‹‚É•\Ž¦‚³‚ê‚Ü‚·B</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgoz.html b/webconsole/html/ja/help/gbgoz.html
new file mode 100644
index 0000000..f26363a
--- /dev/null
+++ b/webconsole/html/ja/help/gbgoz.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>—LŒø‚ÈÝ’è‚Ì•\Ž¦</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgoz"></A><h3>—LŒø‚ÈÝ’è‚Ì•\Ž¦</h3>
+<p>u—LŒø‚ÈÝ’èv‚ÍA‘gDAƒhƒƒCƒ“AƒzƒXƒg‚È‚ÇA“Á’è‚Ì—v‘f‚Ì—LŒø‚È\¬Ý’è‚ðŽ¦‚·“Ç‚ÝŽæ‚èê—p‚Ì•\Ž¦‚Å‚·B </p>
+<p>“Á’è‚̃†[ƒU[‚Ì—LŒø‚ÈÝ’è‚ÍAŠÖ˜A‚·‚é‘gDƒŒƒxƒ‹A–ðŠ„A‚¨‚æ‚у†[ƒU[‚ÉŠi”[‚³‚ê‚Ä‚¢‚é\¬Ý’è‚ðŠÜ‚ß‚½ƒ}[ƒWƒvƒƒZƒX‚ÌŒ‹‰Ê‚Å‚·B‘I‘ð‚µ‚½—v‘f‚̃}[ƒWÏ‚Ý\¬Ý’è‚ÍA•Ê‚Ìu—LŒø‚ÈÝ’èvƒEƒBƒ“ƒhƒE‚É•\Ž¦‚Å‚«‚Ü‚·B‚±‚ê‚É‚æ‚èAŒŸØ‚ƃGƒ‰[‚̃fƒoƒbƒO‚ª‚µ‚â‚·‚­‚È‚è‚Ü‚·Bu—LŒø‚ÈÝ’èvƒŒƒ|[ƒg‚ÍAƒA[ƒJƒCƒu‚Ì–Ú“I‚ňóü‚µ‚Ä•ÛŠÇ‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B</p>
+<h5>Žè‡</h5><ol><li><p><b>uŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚éƒvƒƒtƒ@ƒCƒ‹vƒe[ƒuƒ‹‚Ìu—LŒø‚ÈÝ’èvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>ʼn‚ÉŠJ‚¢‚½‚Æ‚«‚ÍAƒiƒrƒQ[ƒVƒ‡ƒ“ƒcƒŠ[‚Å‘I‘ð‚µ‚½—v‘f‚Ì—LŒø‚Èݒ肪•\Ž¦‚³‚ê‚Ü‚·B</p>
+<p>u—LŒø‚ÈÝ’èvƒEƒBƒ“ƒhƒE‚ÍAŽŸ‚Ì 2 ‚‚̃ZƒNƒVƒ‡ƒ“‚Å\¬‚³‚ê‚Ä‚¢‚Ü‚·B</p>
+<ul><li><p>u—LŒø‚ÈÝ’èƒpƒ‰ƒ[ƒ^‚Ì•ÏXvƒZƒNƒVƒ‡ƒ“‚Å‚ÍAŽg—p‚·‚éƒcƒŠ[‚ðu—LŒø‚ÈÝ’è‚̶¬•û–@v—̈æ‚Å‘I‘ð‚Å‚«‚Ü‚·BuƒhƒƒCƒ“ƒcƒŠ[‚©‚ç—v‘f‚ð‘I‘ðvƒIƒvƒVƒ‡ƒ“‚Å‚ÍA—LŒø‚Èݒ背ƒ|[ƒg‚𶬂·‚éƒGƒ“ƒeƒBƒeƒB[‚ð‘I‘ð‚Å‚«‚Ü‚·BuŽQÆvƒ{ƒ^ƒ“‚ðŽg—p‚µ‚ÄA‘gD‚Ü‚½‚̓hƒƒCƒ“ƒcƒŠ[‚Ì—v‘f‚ð‘I‘ð‚µ‚Ü‚·B</p>
+</li>
+<li><p>u—LŒø‚ÈÝ’èvƒZƒNƒVƒ‡ƒ“‚É‚ÍAŽŸ‚Ì€–Ú‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+<ul><li><p>ŠK‘w‚Å‘I‘ð‚µ‚½—v‘f‚ÌꊂƃzƒXƒg–¼B</p>
+</li>
+<li><p>Œ»Ý‚Ì—LŒø‚Èݒ背ƒ|[ƒg‚ª¶¬‚³‚ꂽ“úŽžB</p>
+</li>
+<li><p>uŠÖ˜A‚·‚éƒvƒƒtƒ@ƒCƒ‹vƒZƒNƒVƒ‡ƒ“‚ÉAŒ»Ý‚Ì—v‘f‚Ì—LŒø‚Èݒ背ƒ|[ƒg‚𶬂·‚é‚Æ‚«‚ÉŠÖ˜A‚·‚éƒvƒƒtƒ@ƒCƒ‹‚̃ŠƒXƒgB‚±‚ê‚ç‚ÍAÅ‚àŠÖ˜A«‚Ì‚‚¢‚à‚Ì‚©‚ç‚̃}[ƒW‡˜‚Å•\Ž¦‚³‚ê‚Ü‚·BŠeƒvƒƒtƒ@ƒCƒ‹‚ÍA‚»‚̃vƒƒtƒ@ƒCƒ‹‚Ìuƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^vƒEƒBƒ“ƒhƒE‚ðŠJ‚­ƒŠƒ“ƒN‚Å‚·B</p>
+</li>
+<li><p>uÝ’èŠT—vv—̈æ‚É‚ÍAŒ»Ý—LŒø‚Èݒ背ƒ|[ƒg‚Ì\¬Ý’肪ƒJƒeƒSƒŠ•Ê‚É•\Ž¦‚³‚ê‚Ü‚·BuÝ’èŠT—vv‚É‚Íu–¼‘OvAu’lvA‚¨‚æ‚Ñuó‘ÔvƒtƒB[ƒ‹ƒh‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B</p>
+<p>uó‘Ôv—ñ‚É‚Í u&lt;profileName> ‚Å’è‹`‚³‚ê‚Ä‚¢‚évƒ^ƒCƒv‚̃Gƒ“ƒgƒŠ‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B&lt;profileName> ‚ÍAu\¬Ý’èvƒ^ƒu‚Ì‚»‚̃vƒƒtƒ@ƒCƒ‹‚̃vƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^‚ðŠJ‚«A‚±‚̃vƒƒtƒ@ƒCƒ‹“à‚Ì“Á’è‚ÌÝ’è‚Ɉړ®‚·‚郊ƒ“ƒN‚Å‚·B</p>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><p><b>ŠÖ˜A‚·‚é—LŒø‚ÈÝ’è‚̃pƒ‰ƒ[ƒ^‚ð•ÏX‚µAu—LŒø‚ÈÝ’èvƒEƒBƒ“ƒhƒEã•”‚Ìu—LŒø‚È\¬Ý’è‚̶¬vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚·‚é‚ÆA¶¬‚³‚ꂽ—LŒø‚Èݒ背ƒ|[ƒg‚ð•ÏX‚Å‚«‚Ü‚·B</b></p><p>u—LŒø‚ÈÝ’èvƒEƒBƒ“ƒhƒE‚ÉV‚µ‚¢ƒŒƒ|[ƒg‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+</li>
+<li><p><b>—LŒø‚Èݒ背ƒ|[ƒg‚ðˆóü‚·‚é‚É‚ÍAu—LŒø‚ÈÝ’èvƒEƒBƒ“ƒhƒE‚Ì㉺‚É‚ ‚éuˆóüvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgpa.html b/webconsole/html/ja/help/gbgpa.html
new file mode 100644
index 0000000..4450975
--- /dev/null
+++ b/webconsole/html/ja/help/gbgpa.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>—v‘f‚ÌŒŸõ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpa"></A><h4>—v‘f‚ÌŒŸõ</h4>
+<p>ŒŸõ‹@”\‚ðŽg—p‚·‚é‚ÆAƒhƒƒCƒ“‚Ü‚½‚Í‘gDŠK‘w‚Ì—v‘f‚ðÄ‹A“I‚ÉŒŸõ‚Å‚«‚Ü‚·B‚±‚ê‚Í—v‘f‚Ì’¼Ú‚ÌŽq‚¾‚¯‚Å‚È‚­AŽq‘·‚Ì‚·‚ׂĂðŒŸõ‚µ‚Ü‚·B—v‘f‚Ì’¼Ú‚ÌŽq‚¾‚¯‚ÌŒŸõ‚ðŽÀs‚·‚é‚É‚ÍAŒŸõ‹@”\‚ðŽg—p‚µ‚Ü‚·B</p>
+<p>ŒŸõ‚Å‚ÍuŒŸõvƒEƒBƒ“ƒhƒE‚ªŠJ‚«‚Ü‚·B‚±‚±‚Å‚ÍA‚³‚ç‚É‚“x‚ÈŒŸõ‚àŽÀs‚Å‚«‚Ü‚·B</p>
+<h5>Žè‡</h5><ol><li><p><b>’T‚·—v‘f‚Ì–¼‘O‚Ü‚½‚Í–¼‘O‚̈ꕔ‚ðuŒŸõvƒtƒB[ƒ‹ƒh‚É“ü—Í‚µ‚Ü‚·B</b></p><p><hr size="1" noshade><p><b>’ &#8211; </b>ŒŸõ‚Å‚ÍA‘啶Žš‚Ƭ•¶Žš‚ª‹æ•Ê‚³‚ꂸAŠ®‘Sˆê’v‚Å‚ ‚é•K—v‚Í‚ ‚è‚Ü‚¹‚ñB‚½‚Æ‚¦‚ÎA ŒŸõ•¶Žš—ñubcv‚Ìê‡AuABCv‚àubcdv‚àˆê’v‚µ‚Ü‚·BƒAƒXƒ^ƒŠƒXƒN (*) ‚ÍŒŸõ•¶Žš—ñ“à‚Ì”CˆÓ‚̇˜‚Ì•¶Žš‚ðŽ¦‚µ‚Ü‚·B•¡”‚̃AƒXƒ^ƒŠƒXƒN‚𕶎š—ñ‚Ì‚Ç‚ÌꊂɂłàŽg—p‚Å‚«‚Ü‚·B‹ó‚̃tƒB[ƒ‹ƒh‚ÍAŒŸõ•¶Žš—ñ &#8220;*&#8221; ‚Ì“ü—Í‚³‚ꂽƒtƒB[ƒ‹ƒh‚É‘Š“–‚µ‚Ü‚·B</p>
+<hr size="1" noshade></p></li>
+<li><p><b>uŒŸõvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>uŒŸõvƒEƒBƒ“ƒhƒE‚ª•\Ž¦‚³‚ê‚Ü‚·BƒiƒrƒQ[ƒVƒ‡ƒ“—̈æ‚ÌŒŸõƒtƒB[ƒ‹ƒh‚É“ü—Í‚µ‚½•¶Žš—ñ‚ªuŒŸõvƒEƒBƒ“ƒhƒE‚ÌŒŸõƒtƒB[ƒ‹ƒh‚Ɉړ®‚µA‚»‚Ì•¶Žš—ñ‚ÌŒŸõ‚ªŽ©“®“I‚ÉŠJŽn‚µ‚Ü‚·BŒ‹‰Ê‚ÍŒ‹‰Êƒe[ƒuƒ‹‚É•\Ž¦‚³‚êAŒ©‚‚©‚Á‚½—v‘f‚Ì–¼‘O‚ÆŽí—ނƃpƒX‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+<p><hr size="1" noshade><p><b>’ &#8211; </b>Œ‹‰Ê‚ÌÅ‘å”‚Í 100 ‚ɧŒÀ‚³‚ê‚Ä‚¢‚Ü‚·B</p>
+<hr size="1" noshade></p><p>Œ‹‰Ê‚ªŒ©‚‚©‚ç‚È‚©‚Á‚½ê‡‚âAƒiƒrƒQ[ƒVƒ‡ƒ“—̈æ‚ÌŒŸõƒtƒB[ƒ‹ƒh‚ð‹ó”’‚É‚µ‚½ê‡‚ÍAuŒŸõvƒEƒBƒ“ƒhƒE‚ÌŒŸõƒtƒB[ƒ‹ƒh‚É—v‘f‚Ì–¼‘O‚ð“ü—Í‚Å‚«‚Ü‚·B</p>
+<p><hr size="1" noshade><p><b> ƒqƒ“ƒg &#8211; </b>uŒŸõƒhƒƒCƒ“v‚̂悤‚È“Á’è‚Ì—v‘fƒ^ƒCƒv‚ðŒŸõ‚·‚é‚É‚ÍAŒŸõƒtƒB[ƒ‹ƒh‚̉¡‚É‚ ‚éƒ^ƒCƒvCüŽqƒŠƒXƒg‚ðŽg—p‚µ‚Ü‚·B</p>
+<hr size="1" noshade></p></li>
+<li><p><b>•K—v‚ɉž‚¶‚ÄAuÚ׃IƒvƒVƒ‡ƒ“‚Ì•\Ž¦vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚ÄAŒŸõ‚ÉÚ׃IƒvƒVƒ‡ƒ“‚ð’ljÁ‚µ‚Ü‚·B</b></p><p>Ú׃IƒvƒVƒ‡ƒ“‚ÍŽŸ‚Ì€–Ú‚Å\¬‚³‚ê‚Ä‚¢‚Ü‚·B</p>
+<ul><li><p>”͈Í: ŒŸõƒAƒ‹ƒSƒŠƒYƒ€‚ªƒcƒŠ[‚̃gƒ‰ƒo[ƒX‚ðŠJŽn‚·‚é—v‘f‚ðŒˆ’è‚Å‚«‚Ü‚·B</p>
+</li>
+<li><p>1 ƒy[ƒW‚É•\Ž¦‚³‚ê‚錟õŒ‹‰Ê: Œ‹‰Êƒe[ƒuƒ‹‚ÌŠeƒy[ƒW‚É•\Ž¦‚³‚ê‚錋‰Ê‚Ì”‚ðŒˆ’è‚Å‚«‚Ü‚·B</p>
+</li>
+</ul>
+</li>
+<li><p><b>V‚µ‚¢ŒŸõ‚â•ÏX‚µ‚½ŒŸõ‚ÌŒ‹‰Ê‚ð•\Ž¦‚·‚é‚É‚ÍAuŒŸõvƒ{ƒ^ƒ“‚ð‚à‚¤ˆê“xƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p><hr size="1" noshade><p><b>’ &#8211; </b>uƒŠƒZƒbƒgvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚·‚é‚ÆA‚·‚ׂĂ̌Ÿõƒpƒ‰ƒ[ƒ^‚ªƒfƒtƒHƒ‹ƒg‚É–ß‚èAuŒŸõvƒtƒB[ƒ‹ƒh‚ªƒNƒŠƒA‚³‚ê‚Ü‚·B</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgpb.html b/webconsole/html/ja/help/gbgpb.html
new file mode 100644
index 0000000..87330bd
--- /dev/null
+++ b/webconsole/html/ja/help/gbgpb.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚̈ê”ʃvƒƒpƒeƒB[‚ÌŽw’è</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpb"></A><h4>ƒvƒƒtƒ@ƒCƒ‹‚̈ê”ʃvƒƒpƒeƒB[‚ÌŽw’è</h4>
+<h5>Žè‡</h5><ol><li><p><b>u–¼‘OvƒtƒB[ƒ‹ƒh‚ÉAƒvƒƒtƒ@ƒCƒ‹‚Ì–¼‘O‚ð“ü—Í‚µ‚Ü‚·B</b></p></li>
+<li><p><b>uƒRƒƒ“ƒgvƒtƒB[ƒ‹ƒh‚ɃRƒƒ“ƒg‚ð“ü—Í‚µ‚Ü‚·B</b></p><p>uƒRƒƒ“ƒgvƒtƒB[ƒ‹ƒh‚Í‹ó”’‚Ì‚Ü‚Ü‚É‚Å‚«‚Ü‚·B</p>
+<p><hr size="1" noshade><p><b>’ &#8211; </b>u쬎ÒvƒtƒB[ƒ‹ƒh‚ÆuÅI•ÏX“úvƒtƒB[ƒ‹ƒh‚Í“Ç‚ÝŽæ‚èê—p‚Ì‚½‚ßA•ÏX‚Å‚«‚Ü‚¹‚ñBu쬎ÒvƒtƒB[ƒ‹ƒh‚ɂ̓vƒƒtƒ@ƒCƒ‹‚Ì쬎ÒAuÅI•ÏX“úvƒtƒB[ƒ‹ƒh‚É‚ÍÅŒã‚É•ÏX‚³‚ꂽ“úŽž‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+<hr size="1" noshade></p></li>
+<li><p><b>u•Û‘¶vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>V‚µ‚¢î•ñ‚ð•Û‘¶‚·‚é‘O‚ɃEƒBƒ“ƒhƒE‚ð•Â‚¶‚悤‚Æ‚·‚é‚ÆAÝ’è‚Ì•Û‘¶‚ðŽwŽ¦‚·‚éŒx‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgpe.html b/webconsole/html/ja/help/gbgpe.html
new file mode 100644
index 0000000..95bbcdf
--- /dev/null
+++ b/webconsole/html/ja/help/gbgpe.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚Ìíœ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpe"></A><h3>ƒvƒƒtƒ@ƒCƒ‹‚Ìíœ</h3>
+<h5>Žè‡</h5><ol><li><p><b>휂·‚éƒvƒƒtƒ@ƒCƒ‹‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚ð‘I‘ð‚µ‚Ü‚·B</b></p></li>
+<li><p><b>uíœvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgpj.html b/webconsole/html/ja/help/gbgpj.html
new file mode 100644
index 0000000..63c21c5
--- /dev/null
+++ b/webconsole/html/ja/help/gbgpj.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚̃Cƒ“ƒ|[ƒg</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpj"></A><h3>ƒvƒƒtƒ@ƒCƒ‹‚̃Cƒ“ƒ|[ƒg</h3>
+<h5>Žè‡</h5><ol><li><p><b>‚·‚ׂẴ`ƒFƒbƒNƒ{ƒbƒNƒX‚ª‘I‘ð‰ðœ‚³‚ê‚Ä‚¢‚邱‚Æ‚ðŠm”F‚µ‚Ü‚·B</b></p></li>
+<li><p><b>ƒAƒNƒVƒ‡ƒ“ƒŠƒXƒg‚©‚çuƒCƒ“ƒ|[ƒgv‚ð‘I‘ð‚µ‚Ü‚·B</b></p><p>uƒvƒƒtƒ@ƒCƒ‹‚̃Cƒ“ƒ|[ƒgvƒ_ƒCƒAƒƒO‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+</li>
+<li><p><b>ƒCƒ“ƒ|[ƒg‚·‚éƒtƒ@ƒCƒ‹‚̃pƒX‚ð“ü—Í‚·‚é‚©AuŽQÆvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚ÄAƒIƒyƒŒ[ƒeƒBƒ“ƒOƒVƒXƒeƒ€‚̃fƒtƒHƒ‹ƒg‚̃tƒ@ƒCƒ‹‘I‘ðƒ_ƒCƒAƒƒO‚©‚çƒtƒ@ƒCƒ‹‚ð‘I‘ð‚µ‚Ü‚·B</b></p></li>
+<li><p><b>uƒCƒ“ƒ|[ƒgvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgpm.html b/webconsole/html/ja/help/gbgpm.html
new file mode 100644
index 0000000..4d3c51f
--- /dev/null
+++ b/webconsole/html/ja/help/gbgpm.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚Ö‚Ì—v‘f‚ÌŠ„‚è“–‚Ä</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpm"></A><h4>ƒvƒƒtƒ@ƒCƒ‹‚Ö‚Ì—v‘f‚ÌŠ„‚è“–‚Ä</h4>
+<h5>Žè‡</h5><ol><li><p><b>u—v‘f‚ÌŠ„‚è“–‚Ävƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>ƒiƒrƒQ[ƒVƒ‡ƒ“ƒcƒŠ[‚ªŠÜ‚܂ꂽƒEƒBƒ“ƒhƒE‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+</li>
+<li><p><b>ƒcƒŠ[‚ðˆÚ“®‚µ‚Ä–Ú“I‚Ì—v‘f‚ð‘I‘ð‚µ‚Ü‚·B</b></p><p><hr size="1" noshade><p><b>ƒqƒ“ƒg &#8211; </b>ƒcƒŠ[‚É–Ú“I‚Ì—v‘f‚ª‚È‚¢ê‡‚ÍAuŒŸõvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚ÄuŒŸõvƒEƒBƒ“ƒhƒE‚ðŠJ‚«A—v‘f‚ðŒ©‚Â‚¯‚Ü‚·B</p>
+<hr size="1" noshade></p><p>—v‘f‚ªŒ»Ý‚̃vƒƒtƒ@ƒCƒ‹‚ÉŠ„‚è“–‚Ä‚ç‚êAuŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚é—v‘fvƒe[ƒuƒ‹‚É•\Ž¦‚³‚ê‚Ü‚·B</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgpn.html b/webconsole/html/ja/help/gbgpn.html
new file mode 100644
index 0000000..93e85d4
--- /dev/null
+++ b/webconsole/html/ja/help/gbgpn.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚ÌŠ„‚è“–‚Ä</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpn"></A><h4>ƒvƒƒtƒ@ƒCƒ‹‚ÌŠ„‚è“–‚Ä</h4>
+<h5>Žè‡</h5><ol><li><p><b>uƒvƒƒtƒ@ƒCƒ‹‚ÌŠ„‚è“–‚Ävƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>ƒ_ƒCƒAƒƒO‚ªŠJ‚«A‘I‘ð‚µ‚½—v‘f‚ÉŠ„‚è“–‚Ă邱‚Æ‚Ì‚Å‚«‚éƒvƒƒtƒ@ƒCƒ‹‚ª‚·‚ׂĕ\Ž¦‚³‚ê‚Ü‚·B</p>
+<p><hr size="1" noshade><p><b>’ &#8211; </b>‘I‘ð‚µ‚½—v‘f‚É‚·‚Å‚ÉŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚éƒvƒƒtƒ@ƒCƒ‹‚ÆAŒ»Ý‘I‘ð‚µ‚Ä‚¢‚é—v‘f‚̃Œƒxƒ‹‚©‚»‚ÌãˆÊ‚ÉŠi”[‚³‚ê‚Ä‚¢‚éƒvƒƒtƒ@ƒCƒ‹‚̓ŠƒXƒg‚ÉŠÜ‚Ü‚ê‚Ü‚¹‚ñB</p>
+<hr size="1" noshade></p></li>
+<li><p><b>ƒvƒƒtƒ@ƒCƒ‹‚̃ŠƒXƒg‚©‚ç 1 ‚‚܂½‚Í•¡”‚ð‘I‘ð‚µAu—¹‰ðv‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>V‚µ‚­Š„‚è“–‚Ä‚ç‚ꂽƒvƒƒtƒ@ƒCƒ‹‚ªuŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚éƒvƒƒtƒ@ƒCƒ‹vƒe[ƒuƒ‹‚É•\Ž¦‚³‚ê‚Ü‚·B</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgpp.html b/webconsole/html/ja/help/gbgpp.html
new file mode 100644
index 0000000..8c9c570
--- /dev/null
+++ b/webconsole/html/ja/help/gbgpp.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚Ì—v‘f‚ÌŠ„‚è“–‚ĉðœ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpp"></A><h4>ƒvƒƒtƒ@ƒCƒ‹‚Ì—v‘f‚ÌŠ„‚è“–‚ĉðœ</h4>
+<h5>Žè‡</h5><ol><li><p><b>Š„‚è“–‚Ä‚ð‰ðœ‚·‚é—v‘f‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚ð‘I‘ð‚µ‚Ü‚·B</b></p></li>
+<li><p><b>u—v‘f‚ÌŠ„‚è“–‚ĉðœvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>‚»‚Ì—v‘f‚ÌŒ»Ý‚̃vƒƒtƒ@ƒCƒ‹‚Ö‚ÌŠ„‚è“–‚Ä‚ª‰ðœ‚³‚êAuŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚é—v‘fvƒe[ƒuƒ‹‚©‚çÁ‚¦‚Ü‚·B</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgpr.html b/webconsole/html/ja/help/gbgpr.html
new file mode 100644
index 0000000..14b89d4
--- /dev/null
+++ b/webconsole/html/ja/help/gbgpr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>プロファイルã®å‰Šé™¤</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpr"></A><h4>プロファイルã®å‰Šé™¤</h4>
+<h5>手順</h5><ol><li><p><b>削除ã™ã‚‹ãƒ—ロファイルã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚’é¸æŠžã—ã¾ã™ã€‚</b></p><p>確èªãƒ€ã‚¤ã‚¢ãƒ­ã‚°ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>æ³¨æ„ &ndash; </b>「削除ã€ã¯ã€ã™ã¹ã¦ã®å‰²ã‚Šå½“ã¦ã‚’削除ã—ã¦ã‹ã‚‰ãƒ—ロファイルを物ç†çš„ã«å‰Šé™¤ã™ã‚‹ã“ã¨ã‚’ç†è§£ã—ã¦ãŠãå¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚削除を元ã«æˆ»ã™ã“ã¨ã¯ã§ãã¾ã›ã‚“。プロファイルを削除ã™ã‚‹ã¨ã€å‰Šé™¤ã—ãŸç¾åœ¨ã®è¦ç´ ã®ã»ã‹ã«ä»–ã®è¦ç´ ã¸ã®å‰²ã‚Šå½“ã¦ã‚‚削除ã•ã‚Œã¾ã™ã€‚1 ã¤ã®è¦ç´ ã‹ã‚‰ãƒ—ロファイル割り当ã¦ã‚’消去ã™ã‚‹ã ã‘ã®å ´åˆã¯ã€ã€Œå‰²ã‚Šå½“ã¦è§£é™¤ã€ã‚’使用ã—ã¦ãã ã•ã„。</p><hr size="1" noshade></li>
+<li><p><b>「削除ã€ãƒœã‚¿ãƒ³ã‚’クリックã—ã¾ã™ã€‚</b></p></li>
+<li><p><b>プロファイルを削除ã—ã¦ã‚‚よã„å ´åˆã¯ã€ç¢ºèªãƒ€ã‚¤ã‚¢ãƒ­ã‚°ã§ã€Œäº†è§£ã€ãƒœã‚¿ãƒ³ã‚’クリックã—ã¾ã™ã€‚</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgps.html b/webconsole/html/ja/help/gbgps.html
new file mode 100644
index 0000000..e8489e1
--- /dev/null
+++ b/webconsole/html/ja/help/gbgps.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚̃Cƒ“ƒ|[ƒg</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgps"></A><h4>ƒvƒƒtƒ@ƒCƒ‹‚̃Cƒ“ƒ|[ƒg</h4>
+<h5>Žè‡</h5><ol><li><p><b>‚·‚ׂẴ`ƒFƒbƒNƒ{ƒbƒNƒX‚ª‘I‘ð‰ðœ‚³‚ê‚Ä‚¢‚邱‚Æ‚ðŠm”F‚µ‚Ü‚·B</b></p></li>
+<li><p><b>ƒAƒNƒVƒ‡ƒ“ƒŠƒXƒg‚©‚çuƒCƒ“ƒ|[ƒgv‚ð‘I‘ð‚µ‚Ü‚·B</b></p><p>uƒvƒƒtƒ@ƒCƒ‹‚̃Cƒ“ƒ|[ƒgvƒ_ƒCƒAƒƒO‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+</li>
+<li><p><b>ƒCƒ“ƒ|[ƒg‚·‚éƒtƒ@ƒCƒ‹‚̃pƒX‚ð“ü—Í‚·‚é‚©AuŽQÆvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚ÄAƒIƒyƒŒ[ƒeƒBƒ“ƒOƒVƒXƒeƒ€‚̃fƒtƒHƒ‹ƒg‚̃tƒ@ƒCƒ‹‘I‘ðƒ_ƒCƒAƒƒO‚©‚çƒtƒ@ƒCƒ‹‚ð‘I‘ð‚µ‚Ü‚·B</b></p></li>
+<li><p><b>uƒCƒ“ƒ|[ƒgvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgpt.html b/webconsole/html/ja/help/gbgpt.html
new file mode 100644
index 0000000..396b24c
--- /dev/null
+++ b/webconsole/html/ja/help/gbgpt.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>\¬ƒŠƒ|ƒWƒgƒŠƒe[ƒuƒ‹</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpt"></A><h3>\¬ƒŠƒ|ƒWƒgƒŠƒe[ƒuƒ‹</h3>
+<p>\¬ƒŠƒ|ƒWƒgƒŠƒe[ƒuƒ‹‚É‚ÍŽŸ‚Ì 5 ‚‚̗ñ‚ª‚ ‚è‚Ü‚·B</p>
+<ul><li><p>ƒŠƒ|ƒWƒgƒŠ‚ð‘I‘ð‚·‚éƒ`ƒFƒbƒNƒ{ƒbƒNƒX‚ª‚ ‚éu‘I‘ðv—ñ</p>
+<p>1 ‚‚܂½‚Í•¡”‚̃Šƒ|ƒWƒgƒŠ‚ð‘I‘ð‚·‚é‚ÆAuíœvAu–¼‘O•ÏXvAu“¯Šúv‚Ì‹@”\‚ª—LŒø‚É‚È‚è‚Ü‚·B</p>
+<p><hr size="1" noshade><p><b> ’&#8211; </b>ƒŠƒ|ƒWƒgƒŠ‚ð‘I‘ð‚·‚é‚ÆAuV‹Kì¬vƒ{ƒ^ƒ“‚ª–³Œø‚É‚È‚è‚Ü‚·B</p>
+<hr size="1" noshade></p></li>
+<li><p>–¼‘O: ƒŠƒ|ƒWƒgƒŠ‚Ì–¼‘O‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B</p>
+<p>u–¼‘Ov—ñ‚Ì“à—e‚̓Šƒ“ƒN‚Å‚·B‚±‚ê‚ç‚̃Šƒ“ƒN‚Ì 1 ‚‚ðƒNƒŠƒbƒN‚·‚é‚ÆA\¬ƒŠƒ|ƒWƒgƒŠ‚Ì•\Ž¦‚ªA‘I‘ð‚µ‚½ƒŠƒ|ƒWƒgƒŠ‚Ìuƒvƒƒtƒ@ƒCƒ‹ƒGƒfƒBƒ^vƒy[ƒW‚Å’u‚«Š·‚¦‚ç‚ê‚Ü‚·B</p>
+</li>
+<li><p>ƒ^ƒCƒv: LDAPAƒtƒ@ƒCƒ‹AƒnƒCƒuƒŠƒbƒh‚Ì 3 Ží—Þ‚Ì‚¢‚¸‚ê‚©‚É‚È‚è‚Ü‚·B</p>
+<ul><li><p>LDAP: LDAP ƒŠƒ|ƒWƒgƒŠ‚ÍALDAP ƒT[ƒo[‚©‚ç‰ïŽÐ‚Ì‘gD‚Ì\‘¢ (ƒ†[ƒU[A‘gDAƒzƒXƒgAƒhƒƒCƒ“‚È‚Ç) ‚ð“Ç‚ÝŽæ‚èA‚»‚Ì“¯‚¶ LDAP ƒT[ƒo[‚ðŽg—p‚µ‚Ä\¬Ý’è‚ð“Ç‚Ý‘‚«‚µ‚Ü‚·B</p>
+</li>
+<li><p>ƒtƒ@ƒCƒ‹(F): ƒtƒ@ƒCƒ‹ƒŠƒ|ƒWƒgƒŠ‚ÍAƒVƒXƒeƒ€‚©‚ç‰ïŽÐ‚Ì‘gD‚Ì\‘¢‚ð“Ç‚ÝŽæ‚èA‚»‚Ì“¯‚¶ƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚ðŽg—p‚µ‚Ä\¬Ý’è‚ð“Ç‚Ý‘‚«‚µ‚Ü‚·B</p>
+</li>
+<li><p>ƒnƒCƒuƒŠƒbƒh: ƒnƒCƒuƒŠƒbƒhƒŠƒ|ƒWƒgƒŠ‚ÍALDAP ƒT[ƒo[‚©‚ç‰ïŽÐ‚Ì‘gD\‘¢‚ð“Ç‚ÝŽæ‚Á‚Ä‚©‚çAƒtƒ@ƒCƒ‹ƒVƒXƒeƒ€‚É\¬Ý’è‚ð“Ç‚Ý‘‚«‚µ‚Ü‚·B</p>
+</li>
+</ul>
+</li>
+<li><p>‘gDƒf[ƒ^‚ÌêŠ: ƒtƒ@ƒCƒ‹ƒŠƒ|ƒWƒgƒŠ‚Ìꇂ̓tƒ@ƒCƒ‹ALDAP ƒŠƒ|ƒWƒgƒŠ‚Ü‚½‚̓nƒCƒuƒŠƒbƒhƒŠƒ|ƒWƒgƒŠ‚Ìê‡‚Í LDAP ‚Ì URLB‘gDƒf[ƒ^‚Ì‹L‰¯êŠ‚ðŽw’肵‚Ü‚·B</p>
+</li>
+<li><p>ƒvƒƒtƒ@ƒCƒ‹ƒf[ƒ^‚ÌêŠBƒtƒ@ƒCƒ‹ƒŠƒ|ƒWƒgƒŠ‚Ìꇂ̓tƒ@ƒCƒ‹ALDAP ƒŠƒ|ƒWƒgƒŠ‚Ü‚½‚̓nƒCƒuƒŠƒbƒhƒŠƒ|ƒWƒgƒŠ‚Ìê‡‚Í LDAP ‚Ì URLB\¬Ý’è‚Ì‹L‰¯êŠ‚ðŽw’肵‚Ü‚·Bƒvƒƒtƒ@ƒCƒ‹‚ÍAƒ†[ƒU[A‘gDAƒzƒXƒgAƒhƒƒCƒ“‚È‚Ç‚ÉŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚é\¬Ý’è‚ÌW‡‚É–¼‘O‚ð•t‚¯‚½‚à‚Ì‚Å‚·B</p>
+</li>
+</ul>
+<p>\¬ƒŠƒ|ƒWƒgƒŠƒe[ƒuƒ‹“à‚ňȉº‚Ì‘€ì‚ðŽÀs‚Å‚«‚Ü‚·B</p>
+<ul><li><p><A HREF="gbgcn.html#gbgcn">V‹Kì¬</A>: V‚µ‚¢\¬ƒŠƒ|ƒWƒgƒŠ‚ð쬂µ‚Ü‚·B</p>
+</li>
+<li><p>íœ: Šù‘¶‚Ì\¬ƒŠƒ|ƒWƒgƒŠ‚ð휂µ‚Ü‚·B</p>
+</li>
+<li><p>–¼‘O•ÏX: \¬ƒŠƒ|ƒWƒgƒŠ‚Ì–¼‘O‚ð•ÏX‚µ‚Ü‚·B</p>
+</li>
+<li><p><A HREF="gbgqm.html#gbgqm">“¯Šú</A>: \¬ƒŠƒ|ƒWƒgƒŠ‚𓯊ú‚³‚¹‚Ü‚·B</p>
+<p>‚±‚Ì‹@”\‚ÍA1 ‚‚܂½‚Í 2 ‚‚̃Šƒ|ƒWƒgƒŠ‚ª‘I‘ð‚³‚ê‚Ä‚¢‚éꇂɗLŒø‚É‚È‚è‚Ü‚·B</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgpu.html b/webconsole/html/ja/help/gbgpu.html
new file mode 100644
index 0000000..6d22cae
--- /dev/null
+++ b/webconsole/html/ja/help/gbgpu.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚Ì–¼‘O•ÏX</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpu"></A><h3>ƒvƒƒtƒ@ƒCƒ‹‚Ì–¼‘O•ÏX</h3>
+<h5>Žè‡</h5><ol><li><p><b>–¼‘O‚ð•ÏX‚·‚éƒvƒƒtƒ@ƒCƒ‹‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚ð‘I‘ð‚µ‚Ü‚·B</b></p></li>
+<li><p><b>ƒAƒNƒVƒ‡ƒ“ƒŠƒXƒg‚©‚çu–¼‘O•ÏXv‚ð‘I‘ð‚µ‚Ü‚·B</b></p><p>ƒ_ƒCƒAƒƒO‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+</li>
+<li><p><b>ƒ_ƒCƒAƒƒO‚̃eƒLƒXƒgƒtƒB[ƒ‹ƒh‚Ƀvƒƒtƒ@ƒCƒ‹‚ÌV‚µ‚¢–¼‘O‚ð“ü—Í‚µ‚ÄAu—¹‰ðv‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgpw.html b/webconsole/html/ja/help/gbgpw.html
new file mode 100644
index 0000000..fdc9191
--- /dev/null
+++ b/webconsole/html/ja/help/gbgpw.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚Ì–¼‘O•ÏX</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpw"></A><h4>ƒvƒƒtƒ@ƒCƒ‹‚Ì–¼‘O•ÏX</h4>
+<h5>Žè‡</h5><ol><li><p><b>–¼‘O‚ð•ÏX‚·‚éƒvƒƒtƒ@ƒCƒ‹‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚ð‘I‘ð‚µ‚Ü‚·B</b></p></li>
+<li><p><b>ƒAƒNƒVƒ‡ƒ“ƒŠƒXƒg‚©‚çu–¼‘O•ÏXv‚ð‘I‘ð‚µ‚Ü‚·B</b></p><p>u–¼‘O•ÏXvƒ_ƒCƒAƒƒO‚ªŠJ‚«‚Ü‚·B</p>
+</li>
+<li><p><b>ƒ_ƒCƒAƒƒO‚̃eƒLƒXƒgƒtƒB[ƒ‹ƒh‚Ƀvƒƒtƒ@ƒCƒ‹‚ÌV‚µ‚¢–¼‘O‚ð“ü—Í‚µ‚ÄAu—¹‰ðv‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgqa.html b/webconsole/html/ja/help/gbgqa.html
new file mode 100644
index 0000000..b7f8dd4
--- /dev/null
+++ b/webconsole/html/ja/help/gbgqa.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>u\¬ƒŠƒ|ƒWƒgƒŠvƒEƒBƒ“ƒhƒE</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqa"></A><h2>u\¬ƒŠƒ|ƒWƒgƒŠvƒEƒBƒ“ƒhƒE</h2>
+<p>\¬ƒŠƒ|ƒWƒgƒŠ‚ÍAƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ÌÝ’è‚É•K—v‚È\¬ƒf[ƒ^‚Æ‘gD‚ÌŠK‘wî•ñ‚ªŠe—v‘f‚̃vƒƒtƒ@ƒCƒ‹‚ÆŠ„‚è“–‚ăf[ƒ^‚ƈê‚ÉŠi”[‚³‚ê‚Ä‚¢‚éꊂł·B u\¬ƒŠƒ|ƒWƒgƒŠvƒEƒBƒ“ƒhƒE‚ÅAƒŠƒ|ƒWƒgƒŠ‚ÌV‹K쬂âAŠù‘¶‚̃Šƒ|ƒWƒgƒŠ‚Ì‘€ì‚⓯Šú‚ª‚Å‚«‚Ü‚·B</p>
+<p>u\¬ƒŠƒ|ƒWƒgƒŠvƒEƒBƒ“ƒhƒE‚ÍAƒ}ƒXƒgƒwƒbƒh‚Æ\¬ƒŠƒ|ƒWƒgƒŠƒŠƒXƒg‚Å\¬‚³‚ê‚Ä‚¢‚Ü‚·B</p>
+<p>ƒ}ƒXƒgƒwƒbƒh‚É‚ÍAˆê”Ê“I‚ȃŠƒ“ƒN‚ª‘½”‚ ‚è‚Ü‚·Bƒ}ƒXƒgƒwƒbƒh‚Ìã•”‚É‚ÍA 4 ‚‚̃Šƒ“ƒN‚ª•À‚Ôƒ†[ƒeƒBƒŠƒeƒB[ƒo[‚ª‚ ‚è‚Ü‚·BˆÈ‰º‚ÉA‚±‚ê‚ç‚̃Šƒ“ƒN‚ɂ‚¢‚Ķ‚©‚燂Éà–¾‚µ‚Ü‚·B</p>
+<ul><li><p>uƒRƒ“ƒ\[ƒ‹vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚·‚é‚ÆAJava Web Console ‚Ì‹N“®ƒy[ƒW‚ªŠJ‚«‚Ü‚·B</p>
+</li>
+<li><p>uƒo[ƒWƒ‡ƒ“vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚·‚é‚ÆADesktop Manager ‚̃o[ƒWƒ‡ƒ“î•ñ‚ðŽ¦‚·ƒEƒBƒ“ƒhƒE‚ªŠJ‚«‚Ü‚·B.</p>
+</li>
+<li><p>uƒƒOƒAƒEƒgvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚·‚é‚ÆASun Web ConsoleA‚‚܂è Configuration Manager ‚©‚烃OƒAƒEƒg‚µAuƒƒOƒCƒ“vƒy[ƒW‚É–ß‚è‚Ü‚·B</p>
+</li>
+<li><p>uƒwƒ‹ƒvvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚·‚é‚ÆAƒIƒ“ƒ‰ƒCƒ“ƒwƒ‹ƒvƒy[ƒW‚ªŠJ‚«‚Ü‚·B</p>
+</li>
+</ul>
+<p>ƒ}ƒXƒgƒwƒbƒh‚̉º•”‚É‚ÍA»•i–¼AƒT[ƒo[–¼A‚¨‚æ‚ÑŒ»ÝƒƒOƒCƒ“‚µ‚Ä‚¢‚éŠÇ—ŽÒ‚Ì–¼‘O‚ª•\Ž¦‚³‚ê‚Ü‚·B.</p>
+<p>u<A HREF="gbgpt.html#gbgpt">\¬ƒŠƒ|ƒWƒgƒŠƒe[ƒuƒ‹</A>vAu<A HREF="gbgcn.html#gbgcn">\¬ƒŠƒ|ƒWƒgƒŠ‚ÌV‹Kì¬</A>v‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgqe.html b/webconsole/html/ja/help/gbgqe.html
new file mode 100644
index 0000000..ca78b9f
--- /dev/null
+++ b/webconsole/html/ja/help/gbgqe.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚ւ̃}[ƒW‡˜‚ÌŠ„‚è“–‚Ä</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqe"></A><h4>ƒvƒƒtƒ@ƒCƒ‹‚ւ̃}[ƒW‡˜‚ÌŠ„‚è“–‚Ä</h4>
+<h5>Žè‡</h5><ol><li><p><b>‘I‘ðƒŠƒXƒg‚©‚ç–Ú“I‚̃vƒƒtƒ@ƒCƒ‹‚ð‘I‘ð‚µ‚Ü‚·B</b></p></li>
+<li><p><b>ƒŠƒXƒg“à‚Ńvƒƒtƒ@ƒCƒ‹‚ð㉺‚Ɉړ®‚·‚é‚É‚ÍAƒŠƒXƒg‚̉E‚̃{ƒ^ƒ“‚ðŽg—p‚µ‚Ü‚·B</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgqf.html b/webconsole/html/ja/help/gbgqf.html
new file mode 100644
index 0000000..f051532
--- /dev/null
+++ b/webconsole/html/ja/help/gbgqf.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚̃Rƒs[‚ƈړ®</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqf"></A><h4>ƒvƒƒtƒ@ƒCƒ‹‚̃Rƒs[‚ƈړ®</h4>
+<h5>Žè‡</h5><ol><li><p><b>ƒRƒs[‚Ü‚½‚͈ړ®‚·‚éƒvƒƒtƒ@ƒCƒ‹‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚ð‘I‘ð‚µ‚Ü‚·B</b></p></li>
+<li><p><b>ƒAƒNƒVƒ‡ƒ“ƒŠƒXƒg‚©‚çuƒRƒs[‚ƈړ®v‚ð‘I‘ð‚µ‚Ü‚·B</b></p><p>ƒRƒs[‚ƈړ®ƒEƒBƒU[ƒh‚ªŠJ‚«‚Ü‚·B</p>
+</li>
+<li><p><b>ƒRƒs[‚ƈړ®ƒEƒBƒU[ƒh‚Ìà–¾‚É]‚Á‚ÄAƒ^ƒXƒN‚ðŽÀs‚µ‚Ü‚·B</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgqh.html b/webconsole/html/ja/help/gbgqh.html
new file mode 100644
index 0000000..f4049d5
--- /dev/null
+++ b/webconsole/html/ja/help/gbgqh.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚̃GƒNƒXƒ|[ƒg</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqh"></A><h4>ƒvƒƒtƒ@ƒCƒ‹‚̃GƒNƒXƒ|[ƒg</h4>
+<h5>Žè‡</h5><ol><li><p><b>ƒGƒNƒXƒ|[ƒg‚·‚éƒvƒƒtƒ@ƒCƒ‹‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚ð‘I‘ð‚µ‚Ü‚·B</b></p></li>
+<li><p><b>ƒAƒNƒVƒ‡ƒ“ƒŠƒXƒg‚©‚çuƒGƒNƒXƒ|[ƒgv‚ð‘I‘ð‚µ‚Ü‚·B</b></p><p>ƒ_ƒCƒAƒƒOƒ{ƒbƒNƒX‚ªŠJ‚«Aƒtƒ@ƒCƒ‹‚̃GƒNƒXƒ|[ƒgæ‚ðŽw’è‚Å‚«‚Ü‚·B</p>
+</li>
+<li><p><b>ƒ_ƒCƒAƒƒO‚ÅuƒfƒBƒXƒN‚É•Û‘¶vƒIƒvƒVƒ‡ƒ“‚ð‘I‘ð‚µ‚Äu—¹‰ðv‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p></li>
+<li><p><b>ƒGƒNƒXƒ|[ƒg‚µ‚½ƒtƒ@ƒCƒ‹‚Ì•Û‘¶êŠ‚ð‘I‘ð‚µ‚ÄAu—¹‰ðv‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgqj.html b/webconsole/html/ja/help/gbgqj.html
new file mode 100644
index 0000000..214ef6d
--- /dev/null
+++ b/webconsole/html/ja/help/gbgqj.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒvƒƒtƒ@ƒCƒ‹‚ÌŠ„‚è“–‚ĉðœ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqj"></A><h4>ƒvƒƒtƒ@ƒCƒ‹‚ÌŠ„‚è“–‚ĉðœ</h4>
+<h5>Žè‡</h5><ol><li><p><b>Š„‚è“–‚Ä‚ð‰ðœ‚·‚éƒvƒƒtƒ@ƒCƒ‹‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚ð‘I‘ð‚µ‚Ü‚·B</b></p></li>
+<li><p><b>uƒvƒƒtƒ@ƒCƒ‹‚ÌŠ„‚è“–‚ĉðœvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>‚±‚ê‚Ńvƒƒtƒ@ƒCƒ‹‚ÌŠ„‚è“–‚Ä‚ª‰ðœ‚³‚êAuŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚éƒvƒƒtƒ@ƒCƒ‹vƒe[ƒuƒ‹‚©‚çÁ‚¦‚Ü‚·B</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>’ˆÓ &#8211; </b>Œxƒ_ƒCƒAƒƒO‚Í‚È‚¢‚Ì‚ÅAŒë‚Á‚Äuƒvƒƒtƒ@ƒCƒ‹‚ÌŠ„‚è“–‚ĉðœv‚ðƒNƒŠƒbƒN‚µ‚½ê‡‚ÍAuƒvƒƒtƒ@ƒCƒ‹‚ÌŠ„‚è“–‚Äv‹@”\‚ðŽg‚Á‚Ä‚±‚Ì‘€ì‚ðŒ³‚É–ß‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·B</p><hr size="1" noshade></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgqm.html b/webconsole/html/ja/help/gbgqm.html
new file mode 100644
index 0000000..459a870
--- /dev/null
+++ b/webconsole/html/ja/help/gbgqm.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>\¬ƒŠƒ|ƒWƒgƒŠ‚Ì“¯Šú</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqm"></A><h4>\¬ƒŠƒ|ƒWƒgƒŠ‚Ì“¯Šú</h4>
+<p>Desktop Manager ‚Å‚Í•¡”‚̃oƒbƒNƒGƒ“ƒh‚ð•Às‚µ‚ÄŠÇ—‚Å‚«‚Ü‚·B‚»‚Ì‚½‚ßA1 ‚‚̃oƒbƒNƒGƒ“ƒh‚ðƒeƒXƒg—p‚ÉA•Ê‚̃oƒbƒNƒGƒ“ƒh‚ðÅI“I‚È‹Æ–±—p‚É’è‹`‚Å‚«‚Ü‚·B\¬‚Ì•ÏX‚ð’è‹`‚µ‚½‚çA‚Ü‚¸ƒeƒXƒg—pƒoƒbƒNƒGƒ“ƒh‚Å•]‰¿‚Å‚«‚Ü‚·BˆÈ~AƒeƒXƒg—pƒoƒbƒNƒGƒ“ƒh‚̈ꕔ‚Ü‚½‚Í‘S•”‚ð‹Æ–±—pƒoƒbƒNƒGƒ“ƒh‚Æ<i>“¯Šú</i>‚³‚¹‚ÄA•K—v‚È•ÏX‚ð‘f‘‚­ˆÀ‘S‚É‹Æ–±—pƒVƒXƒeƒ€‚É“K—p‚Å‚«‚Ü‚·B‚±‚Ì•û–@‚ÍA‹Æ–±—pƒoƒbƒNƒGƒ“ƒh‚̃oƒbƒNƒAƒbƒv‚Æ•œŒ³‚Ì’Pƒ‚È‹@\‚É‚àŽg—p‚Å‚«‚Ü‚·Bu“¯ŠúvƒEƒBƒ“ƒhƒE‚Å‚±‚Ì“¯Šú‚ðŽÀs‚Å‚«‚Ü‚·B</p>
+<p></p>
+<h5>Žè‡</h5><ol><li><p><b>u\¬ƒŠƒ|ƒWƒgƒŠvƒEƒBƒ“ƒhƒE‚ÅA“¯Šú‚³‚¹‚郊ƒ|ƒWƒgƒŠ‚ð‘I‘ð‚µ‚Ü‚·B</b></p><p>u“¯ŠúvƒEƒBƒ“ƒhƒE‚ªŠJ‚«‚Ü‚·B</p>
+</li>
+<li><p><b>uƒ\[ƒX\¬ƒŠƒ|ƒWƒgƒŠvƒŠƒXƒg‚©‚çƒ\[ƒXƒŠƒ|ƒWƒgƒŠ‚ð‘I‘ð‚µ‚Ü‚·B</b></p><p>•ÏXŒ³‚Æ‚µ‚Ä‹@”\‚·‚éƒ\[ƒXƒŠƒ|ƒWƒgƒŠ‚ð•ÏX‚Å‚«‚Ü‚·B‚±‚̃Šƒ|ƒWƒgƒŠ‚Í•ÏX‚³‚ê‚Ü‚¹‚ñB<i></i> </p>
+</li>
+<li><p>(ƒIƒvƒVƒ‡ƒ“) <b>ƒ\[ƒXŠJŽn“_‚̉¡‚Ìu•ÏXvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚ÄAƒ\[ƒXƒŠƒ|ƒWƒgƒŠ‚ðŒÀ’è‚Å‚«‚Ü‚·B</b></p><p>‚±‚ê‚ÍA“¯Šú‚̃\[ƒXŠJŽn“_‚Æ‚µ‚ă‹[ƒgˆÈŠO‚Ì—v‘f‚ðŽw’肵‚Ü‚·B</p>
+<p>ƒ_ƒCƒAƒƒO‚ªŠJ‚«A–Ú“I‚Ì‘gD‚Ü‚½‚̓hƒƒCƒ“—v‘f‚܂ňړ®‚Å‚«‚Ü‚·B—v‘f‚ð‘I‘ð‚µ‚½‚çAV‚µ‚¢ƒpƒX‚ªƒ\[ƒXŠJŽn“_‚É”½‰f‚³‚ê‚Ü‚·B</p>
+</li>
+<li><p><b>uƒ^[ƒQƒbƒg\¬ƒŠƒ|ƒWƒgƒŠvƒŠƒXƒg‚©‚çƒ^[ƒQƒbƒgƒŠƒ|ƒWƒgƒŠ‚ð‘I‘ð‚µ‚Ü‚·B</b></p><p>•ÏXæ‚Æ‚µ‚Ä‹@”\‚·‚éƒ^[ƒQƒbƒgƒŠƒ|ƒWƒgƒŠ‚ð•ÏX‚Å‚«‚Ü‚·B‚±‚̃Šƒ|ƒWƒgƒŠ‚Í•ÏX‚³‚ê‚Ü‚·B<i></i> </p>
+</li>
+<li><p>(ƒIƒvƒVƒ‡ƒ“) <b>ƒ^[ƒQƒbƒgŠJŽn“_‚̉¡‚Ìu•ÏXvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚ÄAƒ^[ƒQƒbƒgƒŠƒ|ƒWƒgƒŠ‚ðŒÀ’è‚Å‚«‚Ü‚·B</b></p><p>‚±‚ê‚ÍA“¯Šú‚̃^[ƒQƒbƒg‚Æ‚µ‚ă‹[ƒgˆÈŠO‚Ì—v‘f‚ðŽw’肵‚Ü‚·B</p>
+<p>ƒ_ƒCƒAƒƒO‚ªŠJ‚«A–Ú“I‚Ì‘gD‚Ü‚½‚̓hƒƒCƒ“—v‘f‚܂ňړ®‚Å‚«‚Ü‚·B—v‘f‚ð‘I‘ð‚µ‚½‚çAV‚µ‚¢ƒpƒX‚ªƒ^[ƒQƒbƒgŠJŽn“_‚É”½‰f‚³‚ê‚Ü‚·B</p>
+</li>
+<li><p><b>u”äŠrvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>2 ‚‚̃cƒŠ[‚ª”äŠr‚³‚êA‘Šˆá“_‚ª‚·‚ׂăe[ƒuƒ‹‚É•\Ž¦‚³‚ê‚Ü‚·B</p>
+</li>
+<li><p><b>“¯Šú‚·‚éƒvƒƒtƒ@ƒCƒ‹‚ðŠÜ‚Þƒe[ƒuƒ‹—ñ‚̉¡‚̃`ƒFƒbƒNƒ{ƒbƒNƒX‚ð‘I‘ð‚µAu“¯Šúvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>“¯Šú‚ªŠ®—¹‚·‚é‚ÆA‘I‘ð‚µ‚½ƒvƒƒtƒ@ƒCƒ‹‚ÉŠÖ‚µ‚ă^[ƒQƒbƒgƒŠƒ|ƒWƒgƒŠ‚ªƒ\[ƒXƒ^[ƒQƒbƒg‚Æ“¯‚¶‚É‚È‚è‚Ü‚·B</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgqt.html b/webconsole/html/ja/help/gbgqt.html
new file mode 100644
index 0000000..c4737e5
--- /dev/null
+++ b/webconsole/html/ja/help/gbgqt.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ŒŸõ‹@”\‚ÌŽg—p</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqt"></A><h4>ŒŸõ‹@”\‚ÌŽg—p</h4>
+<p>ŒŸõ‹@”\‚ðŽg—p‚·‚é‚ÆA“WŠJ‚µ‚½—v‘f‚Ì’¼Ú‚ÌŽq‚Å‚ ‚é‚·‚ׂĂ̗v‘f‚É—LŒø‚ÈŒŸõ‚ðŽÀs‚Å‚«‚Ü‚·B<i></i>‚±‚ê‚ÍA—v‘f‚ÌÄ‹A“IŒŸõ‚ð’ñ‹Ÿ‚·‚éƒT[ƒ`‹@”\‚Æ‘ÎÆ“I‚Å‚·B</p>
+<h5>Žè‡</h5><ol><li><p><b>ƒiƒrƒQ[ƒVƒ‡ƒ“ƒcƒŠ[‚ÅAuˆê•”‚Ì—v‘f‚Í•\Ž¦‚³‚ê‚È‚¢v‚Æ‚¢‚¤ƒm[ƒh‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>uŒŸõvƒEƒBƒ“ƒhƒE‚ªŠJ‚«‚Ü‚·B</p>
+</li>
+<li><p><b>uŒŸõvƒtƒB[ƒ‹ƒh‚É•¶Žš—ñ‚Ü‚½‚Í•¶Žš—ñ‚̈ꕔ‚ð“ü—Í‚µ‚Ü‚·B</b></p><p>ŒŸõ‚͑啶Žš‚Ƭ•¶Žš‚Ì‹æ•Ê‚⊮‘Sˆê’v‚È‚µ‚ÅŽÀs‚³‚ê‚Ü‚·B‚½‚Æ‚¦‚ÎAŒŸõ•¶Žš—ñ‚Ìubcv‚É‚ÍuABCv‚Æubcdv‚ªˆê’v‚µ‚Ü‚·BƒAƒXƒ^ƒŠƒXƒN (*) ‚ÍŒŸõ•¶Žš—ñ“à‚Ì”CˆÓ‚̇˜‚Ì•¶Žš‚ðŽ¦‚µ‚Ü‚·B•¡”‚̃AƒXƒ^ƒŠƒXƒN‚ðŒŸõ•¶Žš—ñ‚Ì‚Ç‚ÌꊂɂłàŽg—p‚Å‚«‚Ü‚·B‚±‚̃tƒB[ƒ‹ƒh‚ð‹ó‚É‚µ‚½ê‡AŒŸõ•¶Žš—ñ &#8220;*&#8221; ‚ðŽw’肵‚½ê‡‚Æ“¯‚¶ˆÓ–¡‚É‚È‚è‚Ü‚·B</p>
+</li>
+<li><p><b>uŒŸõvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>Œ‹‰Ê‚̃ŠƒXƒg‚ª•\Ž¦‚³‚ê‚Ü‚·BŒ‹‰Ê‚Ì”‚Í 100 ‚ɧŒÀ‚³‚ê‚Ä‚¢‚Ü‚·B</p>
+</li>
+<li><p><b>Œ©‚‚©‚Á‚½—v‘f‚ðƒiƒrƒQ[ƒVƒ‡ƒ“ƒcƒŠ[‚ɒljÁ‚·‚é‚É‚ÍAŒ‹‰ÊƒŠƒXƒg‚Å‚»‚Ì—v‘f‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>uŒŸõvƒEƒBƒ“ƒhƒE‚ª•Â‚¶‚ÄA—v‘f‚ªƒiƒrƒQ[ƒVƒ‡ƒ“ƒcƒŠ[‚̃Tƒuƒm[ƒh‚̃ŠƒXƒg‚ɒljÁ‚³‚ê‚Ü‚·B</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbgqu.html b/webconsole/html/ja/help/gbgqu.html
new file mode 100644
index 0000000..18ecb5b
--- /dev/null
+++ b/webconsole/html/ja/help/gbgqu.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=SHIFT-JIS"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Ìꊂ©‚ç‚Ì•ÏX</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqu"></A><h4>ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Ìꊂ©‚ç‚Ì•ÏX</h4>
+<h5>Žè‡</h5><ol><li><p><b>u•ÏXvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</b></p><p>ƒiƒrƒQ[ƒVƒ‡ƒ“ƒcƒŠ[‚ªŠÜ‚܂ꂽƒEƒBƒ“ƒhƒE‚ªŠJ‚«‚Ü‚·B</p>
+</li>
+<li><p><b>ƒcƒŠ[‚ðˆÚ“®‚µ‚Ä–Ú“I‚Ì—v‘f‚ð‘I‘ð‚µ‚Ü‚·B</b></p><p><hr size="1" noshade><p><b>ƒqƒ“ƒg &#8211; </b>ƒcƒŠ[‚É–Ú“I‚Ì—v‘f‚ª‚È‚¢ê‡‚ÍAuƒT[ƒ`vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚ÄuƒT[ƒ`vƒEƒBƒ“ƒhƒE‚ðŠJ‚«A—v‘f‚ðŒ©‚Â‚¯‚Ü‚·B</p>
+<hr size="1" noshade></p></li>
+<li><p>u—¹‰ðvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B<b></b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbzbc.html b/webconsole/html/ja/help/gbzbc.html
new file mode 100644
index 0000000..e9bbd32
--- /dev/null
+++ b/webconsole/html/ja/help/gbzbc.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>構æˆãƒªãƒã‚¸ãƒˆãƒªã®å‰Šé™¤</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbzbc"></A><h4>構æˆãƒªãƒã‚¸ãƒˆãƒªã®å‰Šé™¤</h4><A NAME="indexterm-15"></A><h5>手順</h5><ol><li><p><b>削除ã™ã‚‹æ§‹æˆãƒªãƒã‚¸ãƒˆãƒªã«å¯¾å¿œã™ã‚‹ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚’é¸æŠžã—ã¾ã™ã€‚</b></p></li>
+<li><p><b>「削除ã€ãƒœã‚¿ãƒ³ã‚’クリックã—ã¾ã™ã€‚</b></p><p>確èªãƒ€ã‚¤ã‚¢ãƒ­ã‚°ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚</p>
+</li>
+<li><p><b>ãã®æ§‹æˆãƒªãƒã‚¸ãƒˆãƒªã‚’削除ã™ã‚‹å ´åˆã¯ã€ç¢ºèªãƒ€ã‚¤ã‚¢ãƒ­ã‚°ã®ã€Œäº†è§£ã€ãƒœã‚¿ãƒ³ã‚’クリックã—ã¾ã™ã€‚</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/gbzci.html b/webconsole/html/ja/help/gbzci.html
new file mode 100644
index 0000000..ea1d304
--- /dev/null
+++ b/webconsole/html/ja/help/gbzci.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"><!-- ident "%Z%%M% %I% %E% SMI" --><title>構æˆãƒªãƒã‚¸ãƒˆãƒªåã®å¤‰æ›´</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbzci"></A><h4>構æˆãƒªãƒã‚¸ãƒˆãƒªåã®å¤‰æ›´</h4><A NAME="indexterm-16"></A><h5>手順</h5><ol><li><p><b>åå‰ã‚’変更ã™ã‚‹æ§‹æˆãƒªãƒã‚¸ãƒˆãƒªã«å¯¾å¿œã™ã‚‹ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‚’é¸æŠžã—ã¾ã™ã€‚</b></p></li>
+<li><p><b>「åå‰ã®å¤‰æ›´ã€ãƒœã‚¿ãƒ³ã‚’クリックã—ã¾ã™ã€‚</b></p><p>「åå‰ã®å¤‰æ›´ã€ãƒ€ã‚¤ã‚¢ãƒ­ã‚°ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚</p>
+</li>
+<li><p><b>ダイアログã®ãƒ†ã‚­ã‚¹ãƒˆãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã«æ§‹æˆãƒªãƒã‚¸ãƒˆãƒªã®æ–°ã—ã„åå‰ã‚’入力ã—ã€ã€Œäº†è§£ã€ã‚’クリックã—ã¾ã™ã€‚</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ja/help/index.xml b/webconsole/html/ja/help/index.xml
new file mode 100644
index 0000000..e9d7bbe
--- /dev/null
+++ b/webconsole/html/ja/help/index.xml
@@ -0,0 +1,32 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE index PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN" "index_1_0.dtd">
+<index version="1.0">
+<indexitem target="gbgpn" text="プロファイルã®å‰²ã‚Šå½“ã¦"></indexitem>
+<indexitem target="gbgce" text="構æˆãƒªãƒã‚¸ãƒˆãƒª"><indexitem target="gbgcn" text="æ–°è¦ä½œæˆ"></indexitem><indexitem target="gbzbc" text="削除"></indexitem><indexitem target="gbzci" text="åå‰ã®å¤‰æ›´"></indexitem><indexitem target="gbgqm" text="åŒæœŸ"></indexitem><indexitem text="タイプ"><indexitem target="gbgpt" text="ファイル"></indexitem><indexitem target="gbgpt" text="ãƒã‚¤ãƒ–リッド"></indexitem><indexitem target="gbgpt" text="LDAP (Lightweight Directory Access Protocol)"></indexitem>
+</indexitem>
+<indexitem target="gbgpt" text="詳細情報ã®è¡¨ç¤º"></indexitem>
+</indexitem>
+<indexitem target="gbgni" text="プロファイルã®ä½œæˆ"></indexitem>
+<indexitem target="gbgcn" text="リãƒã‚¸ãƒˆãƒªã®ä½œæˆ"></indexitem>
+<indexitem target="gbgpr" text="プロファイルã®å‰Šé™¤"></indexitem>
+<indexitem target="gbgce" text="ドメイン"></indexitem>
+<indexitem target="gbgoz" text="有効ãªè¨­å®šã€è¡¨ç¤º"></indexitem>
+<indexitem target="gbgcm" text="è¦ç´ ãƒ„リー"></indexitem>
+<indexitem target="gbgce" text="è¦ç´ "><indexitem target="gbgqt" text="検索機能"></indexitem><indexitem target="gbgoy" text="情報"></indexitem><indexitem target="gbgpa" text="検索対象"></indexitem>
+</indexitem>
+<indexitem target="gbgqh" text="プロファイルã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ"></indexitem>
+<indexitem target="gbgps" text="プロファイルã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"></indexitem>
+<indexitem target="gbgpt" text="LDAP (Lightweight Directory Access Protocol)"></indexitem>
+<indexitem target="gbgqa" text="ログアウト"></indexitem>
+<indexitem target="gbgcm" text="移動"></indexitem>
+<indexitem target="gbgce" text="組織"></indexitem>
+<indexitem target="gbgcm" text="プロファイルツリー"></indexitem>
+<indexitem target="gbgce" text="プロファイル"><indexitem target="gbgpn" text="割り当ã¦"></indexitem><indexitem target="gbgni" text="æ–°è¦ä½œæˆ"></indexitem><indexitem target="gbgpr" text="削除"></indexitem><indexitem target="gbgqh" text="エクスãƒãƒ¼ãƒˆ"></indexitem><indexitem target="gbgps" text="インãƒãƒ¼ãƒˆ"></indexitem><indexitem target="gbgcm" text="移動"></indexitem><indexitem target="gbgqj" text="割り当ã¦è§£é™¤"></indexitem>
+</indexitem>
+<indexitem target="gbgqa" text="リãƒã‚¸ãƒˆãƒª"></indexitem>
+<indexitem target="gbgpa" text="検索"></indexitem>
+<indexitem target="gbgqm" text="åŒæœŸåŒ–"></indexitem>
+<indexitem target="gbgcd" text="ã™ã¹ã¦ã®ãƒ—ロファイルã®è¡¨ç¤º"></indexitem>
+<indexitem target="gbgdc" text="割り当ã¦ã‚‰ã‚Œã¦ã„るプロファイルã®è¡¨ç¤º"></indexitem>
+</index>
diff --git a/webconsole/html/ja/help/map.jhm b/webconsole/html/ja/help/map.jhm
new file mode 100644
index 0000000..a14c734
--- /dev/null
+++ b/webconsole/html/ja/help/map.jhm
@@ -0,0 +1,46 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN" "map_1_0.dtd">
+<map version="1.0">
+ <mapID target="gbgca" url="gbgca.html"/>
+ <mapID target="gbgce" url="gbgce.html"/>
+ <mapID target="gbgqa" url="gbgqa.html"/>
+ <mapID target="gbgpt" url="gbgpt.html"/>
+ <mapID target="gbgcn" url="gbgcn.html"/>
+ <mapID target="gbzbc" url="gbzbc.html"/>
+ <mapID target="gbzci" url="gbzci.html"/>
+ <mapID target="gbgqm" url="gbgqm.html"/>
+ <mapID target="gbgdc" url="gbgdc.html"/>
+ <mapID target="gbgcm" url="gbgcm.html"/>
+ <mapID target="gbgpa" url="gbgpa.html"/>
+ <mapID target="gbgqt" url="gbgqt.html"/>
+ <mapID target="gbgoy" url="gbgoy.html"/>
+ <mapID target="gbgni" url="gbgni.html"/>
+ <mapID target="gbgpr" url="gbgpr.html"/>
+ <mapID target="gbgpn" url="gbgpn.html"/>
+ <mapID target="gbgqj" url="gbgqj.html"/>
+ <mapID target="gbgpw" url="gbgpw.html"/>
+ <mapID target="gbgqf" url="gbgqf.html"/>
+ <mapID target="gbgps" url="gbgps.html"/>
+ <mapID target="gbgqh" url="gbgqh.html"/>
+ <mapID target="gbgoz" url="gbgoz.html"/>
+ <mapID target="gbgcd" url="gbgcd.html"/>
+ <mapID target="gbgcr" url="gbgcr.html"/>
+ <mapID target="gbgpe" url="gbgpe.html"/>
+ <mapID target="gbgpu" url="gbgpu.html"/>
+ <mapID target="gbgow" url="gbgow.html"/>
+ <mapID target="gbgpj" url="gbgpj.html"/>
+ <mapID target="gbgou" url="gbgou.html"/>
+ <mapID target="gbgec" url="gbgec.html"/>
+ <mapID target="gbgcg" url="gbgcg.html"/>
+ <mapID target="gbgpb" url="gbgpb.html"/>
+ <mapID target="gbgeb" url="gbgeb.html"/>
+ <mapID target="gbgot" url="gbgot.html"/>
+ <mapID target="gbgkr" url="gbgkr.html"/>
+ <mapID target="gbgpm" url="gbgpm.html"/>
+ <mapID target="gbgpp" url="gbgpp.html"/>
+ <mapID target="gbgda" url="gbgda.html"/>
+ <mapID target="gbgdh" url="gbgdh.html"/>
+ <mapID target="gbgqu" url="gbgqu.html"/>
+ <mapID target="gbgqe" url="gbgqe.html"/>
+</map>
diff --git a/webconsole/html/ja/help/p1.html b/webconsole/html/ja/help/p1.html
new file mode 100644
index 0000000..2ffa551
--- /dev/null
+++ b/webconsole/html/ja/help/p1.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<h1>Java Desktop System Configuration Manager Release 2.0 Online Help</h1>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/ja/help/toc.xml b/webconsole/html/ja/help/toc.xml
new file mode 100644
index 0000000..2f28569
--- /dev/null
+++ b/webconsole/html/ja/help/toc.xml
@@ -0,0 +1,46 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE toc PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN" "toc_1_0.dtd">
+<toc version="1.0">
+<tocitem target="gbgca" text="Sun Desktop Manager 1.0.1 ヘルプ"><tocitem target="gbgce" text="概è¦"></tocitem>
+<tocitem target="gbgqa" text="「構æˆãƒªãƒã‚¸ãƒˆãƒªã€ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦"><tocitem target="gbgpt" text="構æˆãƒªãƒã‚¸ãƒˆãƒªãƒ†ãƒ¼ãƒ–ル"><tocitem target="gbgcn" text="構æˆãƒªãƒã‚¸ãƒˆãƒªã®æ–°è¦ä½œæˆ"></tocitem>
+<tocitem target="gbzbc" text="構æˆãƒªãƒã‚¸ãƒˆãƒªã®å‰Šé™¤"></tocitem>
+<tocitem target="gbzci" text="構æˆãƒªãƒã‚¸ãƒˆãƒªåã®å¤‰æ›´"></tocitem>
+<tocitem target="gbgqm" text="構æˆãƒªãƒã‚¸ãƒˆãƒªã®åŒæœŸ"></tocitem>
+</tocitem>
+</tocitem>
+<tocitem target="gbgdc" text="プロファイル &#8212; ツリー表示"><tocitem target="gbgcm" text="ナビゲーション領域"><tocitem target="gbgpa" text="è¦ç´ ã®æ¤œç´¢"></tocitem>
+<tocitem target="gbgqt" text="検索機能ã®ä½¿ç”¨"></tocitem>
+</tocitem>
+<tocitem target="gbgoy" text="コンテンツ領域"><tocitem target="gbgni" text="プロファイルã®æ–°è¦ä½œæˆ"></tocitem>
+<tocitem target="gbgpr" text="プロファイルã®å‰Šé™¤"></tocitem>
+<tocitem target="gbgpn" text="プロファイルã®å‰²ã‚Šå½“ã¦"></tocitem>
+<tocitem target="gbgqj" text="プロファイルã®å‰²ã‚Šå½“ã¦è§£é™¤"></tocitem>
+<tocitem target="gbgpw" text="プロファイルã®åå‰å¤‰æ›´"></tocitem>
+<tocitem target="gbgqf" text="プロファイルã®ã‚³ãƒ”ーã¨ç§»å‹•"></tocitem>
+<tocitem target="gbgps" text="プロファイルã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"></tocitem>
+<tocitem target="gbgqh" text="プロファイルã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ"></tocitem>
+</tocitem>
+<tocitem target="gbgoz" text="有効ãªè¨­å®šã®è¡¨ç¤º"></tocitem>
+</tocitem>
+<tocitem target="gbgcd" text="プロファイル &#8212; ã™ã¹ã¦"><tocitem target="gbgcr" text="プロファイルã®æ–°è¦ä½œæˆ"></tocitem>
+<tocitem target="gbgpe" text="プロファイルã®å‰Šé™¤"></tocitem>
+<tocitem target="gbgpu" text="プロファイルã®åå‰å¤‰æ›´"></tocitem>
+<tocitem target="gbgow" text="プロファイルã®ã‚³ãƒ”ーã¨ç§»å‹•"></tocitem>
+<tocitem target="gbgpj" text="プロファイルã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ"></tocitem>
+<tocitem target="gbgou" text="プロファイルã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ"></tocitem>
+</tocitem>
+<tocitem target="gbgec" text="プロファイルエディタ"><tocitem target="gbgcg" text="一般プロパティー"><tocitem target="gbgpb" text="プロファイルã®ä¸€èˆ¬ãƒ—ロパティーã®æŒ‡å®š"></tocitem>
+</tocitem>
+<tocitem target="gbgeb" text="構æˆè¨­å®š"><tocitem target="gbgot" text="プロファイルã®æ§‹æˆè¨­å®šã®è¡¨ç¤ºã¨ç·¨é›†"></tocitem>
+</tocitem>
+<tocitem target="gbgkr" text="割り当ã¦ã‚‰ã‚Œã¦ã„ã‚‹è¦ç´ "><tocitem target="gbgpm" text="プロファイルã¸ã®è¦ç´ ã®å‰²ã‚Šå½“ã¦"></tocitem>
+<tocitem target="gbgpp" text="プロファイルã®è¦ç´ ã®å‰²ã‚Šå½“ã¦è§£é™¤"></tocitem>
+</tocitem>
+<tocitem target="gbgda" text="設定概è¦"></tocitem>
+<tocitem target="gbgdh" text="詳細オプション"><tocitem target="gbgqu" text="アプリケーションã®å ´æ‰€ã‹ã‚‰ã®å¤‰æ›´"></tocitem>
+<tocitem target="gbgqe" text="プロファイルã¸ã®ãƒžãƒ¼ã‚¸é †åºã®å‰²ã‚Šå½“ã¦"></tocitem>
+</tocitem>
+</tocitem>
+</tocitem>
+</toc>
diff --git a/webconsole/html/ja/helpContent.html b/webconsole/html/ja/helpContent.html
new file mode 100644
index 0000000..68c82a7
--- /dev/null
+++ b/webconsole/html/ja/helpContent.html
@@ -0,0 +1,429 @@
+<html>
+<head>
+<title>Sun Java[TM] Desktop System Configuration Manager - ƒwƒ‹ƒvƒRƒ“ƒeƒ“ƒc</title>
+<meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+<script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+</head>
+
+<body class="help-body">
+<a name="top"></a>
+
+<p><a name="intro"> </a><div class="help-header-1">Configuration Manager ƒwƒ‹ƒv</div></p>
+<p>Sun Java[TM] Desktop System Configuration Manager ‚̃wƒ‹ƒvƒy[ƒW‚ւ悤‚±‚»BJava Desktop System Configuration Manager‚Ì“Á’è‚Ì•”•ª‚ÉŠÖ‚·‚éƒwƒ‹ƒv‚ðŽQÆ‚·‚é‚É‚ÍA¶‘¤‚É‚ ‚é‚¢‚¸‚ê‚©‚̃Šƒ“ƒN‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B</p>
+<p>‚±‚̃wƒ‹ƒv‚Å‚ÍA‚Ü‚¸Å‰‚É<a class="help-link" href="#concepts">”wŒi‚ÆŠT”O</a>‚ÅAConfiguration Manager »•i‚̈ê”Ê“I‚È”wŒi‚ÆŠT”O‚ɂ‚¢‚Äà–¾‚µ‚Ü‚·BConfiguration Manager ‚̈ê”Ê“I‚ȃŒƒCƒAƒEƒg‚Æ“®ì‚ɂ‚¢‚Ä‚ÍA<a class="help-link" href="#ui">ƒŒƒCƒAƒEƒg‚Æ“®ì</a>‚Åà–¾‚µ‚Ü‚·B
+</p>
+<p>ˆê”Ê“I‚Èà–¾‚ÌŒã‚É‚ÍA<a class="help-link" href="#masthead"><b>ƒ}ƒXƒgƒwƒbƒh</b></a>A<a class="help-link" href="#navigation"><b>ƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ</b></a>‚¨‚æ‚Ñ<a class="help-link" href="#content"><b>ƒRƒ“ƒeƒ“ƒc‹æ‰æ</b></a>‚ÉŠÖ‚·‚éÚׂȃwƒ‹ƒv‚ª‚ ‚è‚Ü‚·B‚Ü‚½A<a class="help-link" href="#login">ƒƒOƒCƒ“</a>‚¨‚æ‚Ñ<a href="#reporting">ƒŒƒ|[ƒg</a>‹@”\‚ðˆµ‚¤ƒy[ƒW‚à‚ ‚è‚Ü‚·B
+
+<p><a name="concepts"> </a>
+<div class="help-header-1">”wŒi‚ÆŠT”O</div></p>
+<p>Configuration Manager ‚ðŽg—p‚·‚é‚ÆA\¬Ý’è‚ðW’†ŠÇ—‚Å‚«‚Ü‚·B‚ ‚é‘gDŠK‘w‚Ì‚³‚Ü‚´‚܂ȃŒƒxƒ‹‚Ì\¬Ý’è‚ð•\Ž¦A’è‹`A‚¨‚æ‚Ñ“K—p‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·BˆÓ–¡“I‚ÉŠÖ˜A«‚Ì‚‚¢•¡”‚Ì\¬Ý’è‚ðA‚±‚̃hƒLƒ…ƒƒ“ƒg‚Å‚ÍuÝ’èƒ|ƒŠƒV[v‚ƌĂт܂·B</p>
+<P>Configuration Manager ‚Å‚ÍAuƒcƒŠ[v‚Æ‚àŒÄ‚΂ê‚é 3 ‚‚̈قȂéŠK‘w\‘¢‚ðˆµ‚¢‚Ü‚·BConfiguration Manager ‚̃†[ƒU[ƒCƒ“ƒ^[ƒtƒF[ƒX‚ð—‰ð‚·‚é‚É‚ÍAŽŸ‚Ì 2 ‚‚̃cƒŠ[‚ð‹æ•Ê‚·‚邱‚Æ‚ªd—v‚É‚È‚è‚Ü‚·B</P>
+<p><div class="help-header-2"><a name="dataStructures">ƒf[ƒ^\‘¢</a></div></p>
+<P>1 ‚‚̃cƒŠ[‚ÍÝ’èƒ|ƒŠƒV[‚É‚æ‚èŒ`¬‚³‚ê‚邽‚ßAÝ’èƒ|ƒŠƒV[ƒcƒŠ[‚ƌĂ΂ê‚Ü‚· (} 1 ‚ÌuƒcƒŠ[v‚Ì‚¢•”•ª‚ðŽQÆ)BMozilla ‚È‚Ç‚Ìô—û‚³‚ꂽݒè‚ðŽ‚ƒvƒƒOƒ‰ƒ€‚ª‘½”‘¶Ý‚·‚邽‚ßAÝ’è“à—e‚ðŠK‘w\‘¢‚ÅŠÇ—‚·‚é‚Æ‚¢‚¤Žè–@‚ÍAƒ†[ƒU[‚É‚Æ‚Á‚Ä‚Í‚·‚Å‚É“éõ‚Ý[‚¢‚à‚Ì‚Å‚·Bˆê”Ê“I‚ÈÝ’èƒ|ƒŠƒV[‚Íu/Mozilla/Navigatorv‚ÅŽQÆ‚Å‚«A\¬Ý’è‚Íu/Mozilla/Navigator/HomeUrlv‚ÅŽQÆ‚Å‚«‚Ü‚·B</P>
+<P>Ý’èƒ|ƒŠƒV[ƒcƒŠ[‚ÍA‘æ 2 ‚̃^ƒCƒv‚̃cƒŠ[‚Å‚ ‚é‘gD’c‘̃cƒŠ[‚É‘g‚Ýž‚Ü‚ê‚Ä‚¢‚Ü‚· (} 1 ‚ÌuƒcƒŠ[v‚̃OƒŒ[‚Ì•”•ª‚ðŽQÆ)B‘gD’c‘̃cƒŠ[‚ÍA‘gD’PˆÊŠÔ‚ÌŠÖŒW‚ð•\‚µAŒ‹‰Ê“I‚ÉAuÝ’èƒ|ƒŠƒV[ƒcƒŠ[‚ðŠÜ‚Þ‘gD’c‘̃cƒŠ[v‚Æ‚È‚Á‚Ä‚¢‚Ü‚·B‘gD’c‘̃cƒŠ[‚Ì•\Ž¦‚É‚Í LDAP ƒT[ƒo[‚ðŽg—p‚µ‚Ü‚·B</P>
+<p>‘æ 3 ‚̃^ƒCƒv‚̃cƒŠ[‚ÍAƒhƒƒCƒ“ƒcƒŠ[‚Å‚·BƒhƒƒCƒ“ƒcƒŠ[‚ÍAƒn[ƒhƒEƒFƒA’PˆÊŠÔ‚ÌŠÖŒW‚ð•\‚µ‚Ü‚·BÝ’èƒ|ƒŠƒV[ƒcƒŠ[‚̓hƒƒCƒ“ƒcƒŠ[‚É‘g‚Ýž‚Ü‚ê‚Ä‚¢‚邽‚ßAŒ‹‰Ê“I‚ɃhƒƒCƒ“ƒcƒŠ[‚É‚ÍÝ’èƒ|ƒŠƒV[ƒcƒŠ[‚ªŠÜ‚Ü‚ê‚Ü‚·BƒhƒƒCƒ“ƒcƒŠ[‚Ì•\Ž¦‚É‚Í LDAP ƒT[ƒo[‚ðŽg—p‚µ‚Ü‚·B</p>
+<p>‘gD’c‘̃cƒŠ[‚ƃhƒƒCƒ“ƒcƒŠ[‚ðŽg—p‚µ‚½ì‹Æ‚Ìl‚¦•û‚Í“¯‚¶‚Å‚·B‚±‚Ì 2 ‚‚̑傫‚ȈႢ‚ÍA‘gD’c‘̃cƒŠ[‚̓†[ƒU[‚ðˆÛŽŠÇ—‚µAƒhƒƒCƒ“ƒcƒŠ[‚̓zƒXƒg‚ðˆÛŽŠÇ—‚·‚é“_‚Å‚·Bƒ†[ƒU[‚ƃzƒXƒg‚ð 2 ‚‚̕ʂ̃cƒŠ[‚ÅŠÇ—‚·‚邱‚Æ‚É‚æ‚èAConfiguration Manager ‚ц[ƒU[ƒx[ƒX‚ÌŠÇ—‚ƃzƒXƒgƒx[ƒX‚ÌŠÇ—‚ð’ñ‹Ÿ‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B2 ‚‚̃cƒŠ[‚ÍŽ—‚Ä‚¢‚邽‚ßA‚±‚Ìß‚Å‚Í‘gD’c‘̃cƒŠ[‚ð’†S‚Éà–¾‚µA‘gD’c‘̃cƒŠ[‚ƃhƒƒCƒ“ƒcƒŠ[‚Ƃ̊ԂɈႢ‚ª‘¶Ý‚·‚éꇂɂ̂݃hƒƒCƒ“ƒcƒŠ[‚ÉŒ¾‹y‚µ‚Ü‚·B</p>
+<P>ˆê”Ê“I‚É LDAP ƒT[ƒo[‚ÍA‹K–Í‚Ì‘å‚«‚¢Šé‹Æ‚ÅŠK‘w“I‚É‘gD‚̃f[ƒ^‚ðŠ„‚è“–‚Ă邽‚ß‚ÉŽg—p‚³‚ê‚Ü‚·BLDAP ‚É‚¨‚¯‚é‘gD’c‘̃cƒŠ[“à‚Ìꊂ̓Gƒ“ƒeƒBƒeƒB‚ƌĂ΂ê‚Ü‚·B</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_ldap_v4.png" NAME="Trees" ALT="ƒcƒŠ[" ALIGN=LEFT WIDTH=550 HEIGHT=369 BORDER=1>
+<P><A NAME="fig_trees"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">} 1 ƒcƒŠ[</FONT></FONT></I></P>
+<p><div class="help-header-2"><a name="SecDataManagement">ƒZƒLƒ…ƒŠƒeƒB‚¨‚æ‚уf[ƒ^ŠÇ—</a></div></p>
+<p>‚±‚̂悤‚ÈuƒcƒŠ[‚©‚笂éƒcƒŠ[v‚É‚æ‚èAŠK‘wŒ^‚̃ZƒLƒ…ƒŠƒeƒB‚ƃf[ƒ^‚ÌŠÇ—‚ªŠÈ’P‚És‚¦‚Ü‚·B‚±‚Ì‚½‚ß‚É‚ÍA‚Ü‚¸Ý’èƒ|ƒŠƒV[ƒcƒŠ[‘S‘Ì‚ðAˆê“x‘gD’c‘̃cƒŠ[‚̃‹[ƒg‚É‘}“ü‚µ‚Ü‚·B‚»‚̉ŠúÝ’èƒ|ƒŠƒV[ƒcƒŠ[‚Ì\¬Ý’è‚ɑ΂·‚éAƒGƒ“ƒeƒBƒeƒB‚ɌŗL‚Ì•ÏX‚ÍA‘Ήž‚·‚éƒGƒ“ƒeƒBƒeƒB‚É•Û‘¶‚³‚ê‚Ü‚·Bà–¾‚ðŠÈ’P‚É‚·‚邽‚ßA} 1 ‚Å‚ÍAumarketingv‚Æujclarkev‚Æ‚¢‚¤–¼‘O‚Ì‘gDƒGƒ“ƒeƒBƒeƒB‚ÉŠÖ˜A•t‚¯‚ç‚ꂽݒèƒ|ƒŠƒV[ƒcƒŠ[‚Ì‚Ý‚ªŽ¦‚µ‚Ä‚ ‚è‚Ü‚·B</P>
+<p><div class="help-header-2"><a name="GenConfigSettings">\¬Ý’è‚̶¬</a></div></p>
+<P>‚ ‚éƒGƒ“ƒeƒBƒeƒB‚Ì\¬Ý’è‚ÍAŒ‹‡‚É‚æ‚èŽæ“¾‚³‚ê‚Ü‚·B‘gD’c‘̃cƒŠ[‚Ü‚½‚̓hƒƒCƒ“ƒcƒŠ[“à‚̃Gƒ“ƒeƒBƒeƒB‚ÉŠÖ˜A•t‚¯‚ç‚ê‚Ä‚¢‚é‚·‚ׂĂÌ\¬Ý’è‚ÍAƒŒƒCƒ„[‚ƌĂ΂ê‚Ü‚·BŒ‹‡‚ÍAƒ‹[ƒg‚̃ŒƒCƒ„[‚©‚çŽn‚Ü‚èAƒcƒŠ[‚ð‚½‚Ç‚Á‚Ä–Ú“I‚̃Gƒ“ƒeƒBƒeƒB‚É“ž’B‚µ‚Ü‚·BƒGƒ“ƒeƒBƒeƒB‚ÉŠÖ˜A•t‚¯‚ç‚ꂽƒŒƒCƒ„[‚Å‚Ì\¬Ý’è‚Ì•ÏX‚ÍAƒcƒŠ[ŠK‘w‚Å‚»‚ê‚æ‚è‚à‰ºˆÊ‚É‚ ‚éƒGƒ“ƒeƒBƒeƒB‚ÉŠÖ˜A•t‚¯‚ç‚ꂽƒŒƒCƒ„[‚É‚æ‚èŒp³‚³‚ê‚Ü‚· (<A class="help-link" HREF="#fig_merging">} 2 ‚ÌuƒŒƒCƒ„[‚ÌŒ‹‡v</a> ‚ðŽQÆ)B“Á’è‚̃ŒƒCƒ„[‚ª“ÆŽ©‚ÌÝ’è‚ð’è‹`‚µ‚Ä‚¢‚éꇂÍAŒp³‚³‚ꂽ’l‚Íã‘‚«‚³‚ê‚邱‚Æ‚ª‚ ‚è‚Ü‚·B</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_merge.gif" NAME="LayerMerging" ALT="ƒŒƒCƒ„[‚ÌŒ‹‡" ALIGN=LEFT WIDTH=550 HEIGHT=520 BORDER=1>
+<P><A NAME="fig_merging"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">} 2 ƒŒƒCƒ„[‚ÌŒ‹‡</FONT></FONT></I></P>
+<p>‚±‚ÌŒp³‚ÍA\¬Ý’肾‚¯‚Å‚È‚­AƒZƒLƒ…ƒŠƒeƒB“Á«‚É‚àŠY“–‚µ‚Ü‚·B‚‚܂èAuo=marketingv‚ÉÚ‘±‚µ‚Ä‚¢‚郌ƒCƒ„[‚É‚ ‚é 1 ‚‚Ì\¬Ý’è‚ɃZƒLƒ…ƒŠƒeƒB‘®«uprotectedv‚ðŽw’è‚·‚é‚ÆAƒcƒŠ[‚Ì‚»‚êˆÈ~‚Ì‚·‚ׂẴŒƒCƒ„[‚É‚¨‚¯‚é\¬Ý’肪“Ç‚ÝŽæ‚èê—p‚É‚È‚è‚Ü‚· (<A class="help-link" HREF="#fig_protection">} 3 ‚Ìu•ÛŒìv</a>‚ðŽQÆ)B</P>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_protected_v3.png" NAME="Protection" ALT="•ÛŒì" ALIGN=LEFT WIDTH=550 HEIGHT=524 BORDER=1>
+<P><A NAME="fig_protection"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">} 3 •ÛŒì</FONT></FONT></I></P>
+<p><div class="help-header-2"><a name="BCAssociating">Ý’èƒ|ƒŠƒV[ƒcƒŠ[‚ÆA‘gD’c‘̃cƒŠ[‚Ü‚½‚̓hƒƒCƒ“ƒcƒŠ[‚Æ‚ÌŠÖ˜A•t‚¯</a></div></p>
+<p>Ý’èƒ|ƒŠƒV[ƒcƒŠ[‚ÍAŽŸ‚Ì 2 ‚‚̕û–@‚ÅA‘gD’c‘̃cƒŠ[‚̃Gƒ“ƒeƒBƒeƒB‚ɃoƒCƒ“ƒh‚³‚ê‚Ü‚·B</P>
+<UL>
+ <li>“Æ—§‚µ‚½Ý’èƒ|ƒŠƒV[ƒcƒŠ[‚Æ‚µ‚ăGƒ“ƒeƒBƒeƒB‚É•Û‘¶‚³‚ê‚é</li>
+ <li>ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚©‚çƒGƒ“ƒeƒBƒeƒB‚ɃŠƒ“ƒN‚³‚ê‚é</li>
+</UL>
+<p><p><div class="help-header-2"><a name="BCPolicyGroups">ƒ|ƒŠƒV[ƒOƒ‹[ƒv</a></div></p>
+<P>ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ÍÝ’èƒ|ƒŠƒV[‚̃Rƒ“ƒeƒi‚ÅAŠeƒ|ƒŠƒV[ƒOƒ‹[ƒv‚É‚ÍŠÖ˜A•t‚¯‚ç‚ꂽ (ŒÅ—L‚Ì) –¼‘O‚ª‚ ‚è‚Ü‚·BÝ’èƒ|ƒŠƒV[‚ÍÝ’èƒ|ƒŠƒV[ƒcƒŠ[‚É\¬Ý’è‚ð•Û‘¶‚·‚邽‚ßAƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ÍÝ’èƒ|ƒŠƒV[ƒcƒŠ[‚̃Rƒ“ƒeƒi‚É‚à‚È‚è‚Ü‚· (<A class="help-link" HREF="#fig_trees">} 1 ‚ÌuƒcƒŠ[v</A>‚ðŽQÆ)Bƒ|ƒŠƒV[ƒOƒ‹[ƒv‚̓|ƒŠƒV[ƒŠƒ|ƒWƒgƒŠ‚É•Û‘¶‚³‚ê‚Ü‚·B‚Ü‚½ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ւ̃Šƒ“ƒN‚ð쬂·‚邱‚Æ‚É‚æ‚èA‘SŽí—ނ̃Gƒ“ƒeƒBƒeƒB‚É‚æ‚èŽg—p‚Å‚«‚Ü‚·B‚±‚ê‚É‚æ‚è_“î«‚ª‚‚­‚È‚èAŽg—p‚³‚ê‚éƒoƒbƒNƒGƒ“ƒh‚Ɉˑ¶‚µ‚È‚­‚È‚è‚Ü‚·Bƒ|ƒŠƒV[ƒOƒ‹[ƒv‚Ì‚à‚¤ 1 ‚‚̗˜“_‚ÍAƒCƒ“ƒ|[ƒg‚ƃGƒNƒXƒ|[ƒg‚ª‰Â”\‚Å‚ ‚邽‚ߕێ炪ŠÈ’P‚ɂȂ邱‚Æ‚Å‚·B</P>
+<P>ŠÇ—ŽÒ‚ÍAƒ|ƒŠƒV[ƒŠƒ|ƒWƒgƒŠ‚É•Û‘¶‚³‚ê‚éuExpertsv‚¨‚æ‚ÑuNovicevƒ|ƒŠƒV[ƒOƒ‹[ƒv‚È‚ÇA•ÊX‚̈Ӗ¡”͈͗p‚ÌÝ’èƒ|ƒŠƒV[‚̃RƒŒƒNƒVƒ‡ƒ“‚ð쬂ł«‚Ü‚·B‚±‚ê‚ÅAÝ’èƒ|ƒŠƒV[‚Í‘gD’c‘̃cƒŠ[‚Ì‘S‘Ì‚ÅŽg—p‚Å‚«‚Ü‚·B</P>
+<div align="right"><a href="#top" class="help-return-link"><img src="/example/com_sun_web_ui/images/href/to_top.gif" alt="ƒy[ƒW‚̃gƒbƒv‚ÖƒWƒƒƒ“ƒv" width="11" height="10" hspace="4" border="0">ƒy[ƒW‚Ì擪‚Ö–ß‚é</a></div>
+
+<a name="ui"> </a>
+<div class="help-header-1">ŠOŠÏ‚Æ“®ì</div>
+<p>Configuration Manager ‚̃ŒƒCƒAƒEƒg‚ÍAƒ}ƒXƒgƒwƒbƒhAƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æAƒRƒ“ƒeƒ“ƒc‹æ‰æ‚Ì 3 ‚‚̗̈悩‚ç\¬‚³‚ê‚Ä‚¢‚Ü‚·Bƒ}ƒXƒgƒwƒbƒh‚ÍAƒy[ƒW‚̈ê”Ôã‚̗̈æ‚É‚ ‚è‚Ü‚·B¶‰º‘¤‚̗̈æ‚ɂ̓iƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚ª‚ ‚è‚Ü‚·B‰E‰º‘¤‚̗̈æ‚̓Rƒ“ƒeƒ“ƒc‹æ‰æ‚Å‚·B‚±‚̃^ƒCƒv‚̃ŒƒCƒAƒEƒg‚ÍA¶‰E‹æ‰æƒZƒbƒg‚Æ‚àŒÄ‚΂ê‚Ü‚·B’ljÁ‚̃_ƒCƒAƒƒO‚ƃwƒ‹ƒvƒRƒ“ƒeƒ“ƒc‚ð•\Ž¦‚·‚邽‚ß‚ÉA“Æ—§‚µ‚½ƒuƒ‰ƒEƒUƒEƒBƒ“ƒhƒE‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+<div align="right"><a href="#top" class="help-return-link"><img src="/example/com_sun_web_ui/images/href/to_top.gif" alt="ƒy[ƒW‚̃gƒbƒv‚ÖƒWƒƒƒ“ƒv" width="11" height="10" hspace="4" border="0">ƒy[ƒW‚Ì擪‚Ö–ß‚é</a></div>
+
+
+<a name="login"> </a>
+<div class="help-header-1">ƒƒOƒCƒ“</div>
+<p>Configuration Manager ‚ðŽg—p‚·‚é‚É‚ÍASun Web Console ‚ɃƒOƒCƒ“‚·‚é•K—v‚ª‚ ‚è‚Ü‚·BSun Web Console ‚Í•¡”‚ÌŠÇ—ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðˆêŠ‡‚µ‚ÄŠÇ—‚·‚邽‚ß‚Ì‚à‚Ì‚ÅA‘S‚Ä‚ÌŠÇ—ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ɈêŠÑ«‚Ì‚ ‚郆[ƒU[ƒCƒ“ƒ^[ƒtƒF[ƒX‚ð’ñ‹Ÿ‚µ‚Ä‚¢‚Ü‚·BConsole ‚Ì—˜“_‚ÍAŠÇ—ŽÒ‚͈ê“xƒƒOƒCƒ“‚·‚ê‚΃Rƒ“ƒ\[ƒ‹“à‚Å‚ ‚ç‚ä‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðŽg—p‚Å‚«‚邱‚Æ‚Å‚·B‚±‚Ì‚½‚ß‚ÉASun Web Console ‚É‚Í•W€ƒƒOƒCƒ“ƒy[ƒW‚ª—pˆÓ‚³‚ê‚Ä‚¢‚Ü‚·B</p>
+<p>•W€ƒƒOƒCƒ“ƒy[ƒW‚Å‚ÍAƒ†[ƒU[–¼‚ƃpƒXƒ[ƒh‚̃eƒLƒXƒgƒtƒB[ƒ‹ƒh‚Ìã‚ÉAƒƒOƒCƒ“æ‚̃T[ƒo[‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+<p>Web Console ‚ւ̃ƒOƒCƒ“‚ɬŒ÷‚·‚é‚ÆAWeb Console ‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“‹N“®ƒy[ƒW‚ª•\Ž¦‚³‚ê‚Ü‚·B‚±‚±‚©‚çuConfiguration ManagervƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ð‘I‘ð‚µ‚ÄAConfiguration Manager ‚ð‹N“®‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B</p>
+<div align="right"><a href="#top" class="help-return-link"><img src="/example/com_sun_web_ui/images/href/to_top.gif" alt="ƒy[ƒW‚̃gƒbƒv‚ÖƒWƒƒƒ“ƒv" width="11" height="10" hspace="4" border="0">ƒy[ƒW‚Ì擪‚Ö–ß‚é</a></div>
+
+<a name="masthead"> </a>
+<div class="help-header-1">ƒ}ƒXƒgƒwƒbƒh</div>
+<p>ƒ}ƒXƒgƒwƒbƒh‚É‚ÍA³Ž®‚È»•i–¼ (Sun Java[TM] Desktop System Configuration Manager) ‚ª•\Ž¦‚³‚ê‚Ü‚·B‚Ü‚½ƒ}ƒXƒgƒwƒbƒh‚É‚ÍA”‘½‚­‚̈ê”Ê“I‚ȃŠƒ“ƒN‚à‚ ‚è‚Ü‚·B</p>
+<ul><li>u<b>ƒRƒ“ƒ\[ƒ‹</b>vƒŠƒ“ƒN‚ðƒNƒŠƒbƒN‚·‚é‚ÆASun Web Console ‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“‹N“®ƒy[ƒW‚É–ß‚è‚Ü‚·B</li>
+<li>u<b>ƒo[ƒWƒ‡ƒ“</b>vƒŠƒ“ƒN‚ðƒNƒŠƒbƒN‚·‚é‚ÆAƒo[ƒWƒ‡ƒ“‚̃EƒBƒ“ƒhƒE‚ª•\Ž¦‚³‚ê‚Ü‚·B</li>
+
+<li>u<b>ƒƒOƒAƒEƒg</b>vƒŠƒ“ƒN‚ðƒNƒŠƒbƒN‚·‚é‚ÆASun Web ConsoleA‚‚܂è Configuration Manager ‚©‚烃OƒAƒEƒg‚µAuƒƒOƒCƒ“vƒy[ƒW‚É–ß‚è‚Ü‚·B</li>
+<li>u<b>ƒwƒ‹ƒv</b>vƒŠƒ“ƒN‚ðƒNƒŠƒbƒN‚·‚é‚ÆAƒwƒ‹ƒvƒy[ƒW‚ª•\Ž¦‚³‚ê‚Ü‚·B</li>
+</ul>
+<div align="right"><a href="#top" class="help-return-link"><img src="/example/com_sun_web_ui/images/href/to_top.gif" alt="ƒy[ƒW‚̃gƒbƒv‚ÖƒWƒƒƒ“ƒv" width="11" height="10" hspace="4" border="0">ƒy[ƒW‚Ì擪‚Ö–ß‚é</a></div>
+
+<a name="navigation"> </a>
+<div class="help-header-1">ƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ</div>
+<p>ƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚ðŽg—p‚·‚é‚ÆA‘gDAƒ†[ƒU[A‚¨‚æ‚Ñ–ðŠ„‚ªŠÜ‚Ü‚ê‚é‘gD’c‘̃cƒŠ[‚ÆAƒhƒƒCƒ“‚ƃzƒXƒg‚ªŠÜ‚Ü‚ê‚éƒhƒƒCƒ“ƒcƒŠ[‚ðŽQÆ‚Å‚«‚Ü‚·B‚Ü‚½A‘Ήž‚·‚郆[ƒU[‚ƃzƒXƒg‚̃|ƒŠƒV[ƒŠƒ|ƒWƒgƒŠ‚É‚ ‚éƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ðŠÇ—‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B</p>
+<p>ƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚É‚ÍAu<b>ƒ†[ƒU[</B>v‚Æu<b>ƒzƒXƒg</B>v‚ÌA2 ‚‚ÌÅãˆÊ‚ÌŒ©o‚µ‚ª‚ ‚è‚Ü‚·B</p>
+<a name="entities"> </a>
+<div class="help-header-2">uƒ†[ƒU[vŒ©o‚µ</div>
+<p>u<b>‘gD’c‘̃cƒŠ[</B>v‚Æu<b>ƒ|ƒŠƒV[ƒŠƒ|ƒWƒgƒŠ</B>v‚ÌA2 ‚‚̃TƒuŒ©o‚µ‚ª‚ ‚è‚Ü‚·B‘gD’c‘̃cƒŠ[‚ðŽQÆ‚·‚é‚É‚ÍAu<b>‘gD’c‘̃cƒŠ[</B>vŒ©o‚µ‚ðŽg—p‚µ‚Ü‚·B</p>
+<a name="parpath"></a><div class="help-header-3">Œn“ƒpƒX</div>
+<p>u<b>‘gD’c‘̃cƒŠ[</B>vŒ©o‚µ‚Ìã•”‚É‚ÍAŒ»Ý‚̃Gƒ“ƒeƒBƒeƒB‚ւ̃pƒX‚ðŽ‹Šo“I‚É•\Œ»‚µ‚½Œn“ƒpƒX‚ª‚ ‚è‚Ü‚·B‚±‚ÌŒn“ƒpƒX‚ÍAƒRƒ“ƒgƒ[ƒ‹‚Æ‚µ‚ÄŽg—p‚Å‚«‚Ü‚·BŒn“ƒoƒX“à‚̃oƒX—v‘f‚ÍA‘Ήž‚·‚éƒGƒ“ƒeƒBƒeƒB‚ւ̃Šƒ“ƒN‚É‚È‚Á‚Ä‚¢‚Ü‚·B‚½‚¾‚µAŒ»Ý‚̃Gƒ“ƒeƒBƒeƒB‚ðŽ¦‚·ÅŒã‚̃pƒX•”•ª‚¾‚¯‚Í—áŠO‚ÅA’Êí‚̃eƒLƒXƒg‚Æ‚µ‚Ä•\Ž¦‚³‚ê‚Ü‚·BŒn“ƒpƒX‚ðŽg—p‚µ‚Ĉړ®‚·‚é‚É‚ÍAƒŠƒ“ƒN‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B‚±‚ê‚É‚æ‚èAˆÈ‰º‚Ì‚±‚Æ‚ªŽÀs‚³‚ê‚Ü‚·B
+<ul><li>Œn“ƒpƒX‚̃|ƒCƒ“ƒg悪ƒNƒŠƒbƒN‚µ‚½ƒGƒ“ƒeƒBƒeƒB‚É‚È‚èAƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹‚É‚»‚̃Gƒ“ƒeƒBƒeƒB‚̃TƒuƒGƒ“ƒeƒBƒeƒB‚ªŠÜ‚Ü‚ê‚é‚悤‚ÉAƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚ªXV‚³‚ê‚é</li>
+<li>‚»‚̃Gƒ“ƒeƒBƒeƒB‚ÆŠÖ˜A•t‚¯‚ç‚ꂽݒèƒ|ƒŠƒV[ƒf[ƒ^‚É‚æ‚èAƒRƒ“ƒeƒ“ƒc‹æ‰æ‚ªXV‚³‚ê‚é </li>
+</ul>
+ƒf[ƒ^‚ª“¯‚¶‚悤‚É•\Ž¦‚³‚ê‚é‚悤‚ÉAƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚ƃRƒ“ƒeƒ“ƒc‹æ‰æ‚̓AƒvƒŠƒP[ƒVƒ‡ƒ“‘S‘Ì‚Å“¯Šú‚ªŽæ‚ç‚ê‚Ü‚·B</p>
+<a name="navtable"></a><div class="help-header-3">ƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹</div>
+<p>ƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹‚ÍŒn“ƒpƒX‚̉º‚Ɉʒu‚µAŒ»Ý‚̃Gƒ“ƒeƒBƒeƒB‚̃TƒuƒGƒ“ƒeƒBƒeƒB‚ªˆê——•\Ž¦‚³‚ê‚Ü‚·Bu–¼‘Ov—ñ‚É‚ÍAŒ»Ý‚̃Gƒ“ƒeƒBƒeƒB‚Ì‘SƒTƒuƒGƒ“ƒeƒBƒeƒB‚Ì–¼‘O‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·Buƒ^ƒCƒvv—ñ‚É‚ÍAƒGƒ“ƒeƒBƒeƒB‚̃^ƒCƒv‚ª•\Ž¦‚³‚ê‚Ü‚·BuƒAƒNƒVƒ‡ƒ“v—ñ‚É‚ÍAŠes‚Ìu<b>•\Ž¦</B>vƒŠƒ“ƒN‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B</p>
+<p>‚ ‚éƒGƒ“ƒeƒBƒeƒB‚Ɉړ®‚·‚é‚É‚ÍAˆê——‚É‚ ‚é–¼‘O‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B‚±‚ê‚É‚æ‚èAˆÈ‰º‚Ì‚±‚Æ‚ªŽÀs‚³‚ê‚Ü‚·B
+<ul><li>‘I‘ð‚µ‚½ƒTƒuƒGƒ“ƒeƒBƒeƒB‚ªAŒ»Ý‚̃Gƒ“ƒeƒBƒeƒB‚É‚È‚é</li>
+<li>Œn“ƒpƒX‚̃|ƒCƒ“ƒg悪V‚µ‚¢Œ»Ý‚̃Gƒ“ƒeƒBƒeƒB‚É‚È‚èAƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹‚É‚»‚̃Gƒ“ƒeƒBƒeƒB‚̃TƒuƒGƒ“ƒeƒBƒeƒB‚ªŠÜ‚Ü‚ê‚é‚悤‚ÉAƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚ªXV‚³‚ê‚é</li>
+<li>‚»‚̃Gƒ“ƒeƒBƒeƒB‚ÆŠÖ˜A•t‚¯‚ç‚ꂽݒèƒ|ƒŠƒV[‚É‚æ‚èAƒRƒ“ƒeƒ“ƒc‹æ‰æ‚ªXV‚³‚ê‚é</li>
+</ul></p>
+ƒGƒ“ƒeƒBƒeƒB‚̃^ƒCƒv‚ÍAu‘gD’c‘Ì–¼vAuƒ†[ƒU[v‚Ü‚½‚Íu–ðŠ„v‚Å‚·B</p>
+<p>ˆê——‚É‚ ‚éƒGƒ“ƒeƒBƒeƒB‚ÌÚׂð•\Ž¦‚·‚é‚É‚ÍAu<b>•\Ž¦</B>vƒŠƒ“ƒN‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B‚±‚ê‚É‚æ‚èAˆÈ‰º‚Ì‚±‚Æ‚ªŽÀs‚³‚ê‚Ü‚·B
+<ul><li>‘I‘ð‚µ‚½s‚Ì”wŒiF‚ªÂ‚É•Ï‚í‚é </li>
+<li>‘I‘ð‚µ‚½ƒGƒ“ƒeƒBƒeƒB‚ÆŠÖ˜A•t‚¯‚ç‚ꂽƒf[ƒ^‚É‚æ‚èAƒRƒ“ƒeƒ“ƒc‹æ‰æ‚ªXV‚³‚ê‚é</li>
+</ul>
+”wŒi‚ªÂ‚Ìs‚ÍAŒ»ÝƒRƒ“ƒeƒ“ƒc‹æ‰æ‚Ńf[ƒ^‚ª•\Ž¦‚³‚ê‚Ä‚¢‚éƒGƒ“ƒeƒBƒeƒB‚ð•\‚µ‚Ü‚·B</p>
+<p>ƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹‚̃AƒNƒVƒ‡ƒ“ƒo[‚É‚ÍAuƒtƒBƒ‹ƒ^vƒhƒƒbƒvƒ_ƒEƒ“ƒƒjƒ…[‚ÆuŠg’£ƒtƒBƒ‹ƒ^vƒAƒCƒRƒ“‚ª‚ ‚è‚Ü‚·Bƒe[ƒuƒ‹‚É 10 ‚ð’´‚¦‚éƒGƒ“ƒgƒŠ‚ª‚ ‚éê‡Au‘Sƒf[ƒ^‚ðƒy[ƒWƒ“ƒO/ƒXƒNƒ[ƒ‹vƒAƒCƒRƒ“‚ª•\Ž¦‚³‚êAƒe[ƒuƒ‹ƒGƒ“ƒgƒŠ‚Ì•\Ž¦‚ðƒXƒNƒ[ƒ‹‚Å‚«‚Ü‚·B</p>
+<p>uƒtƒBƒ‹ƒ^vƒhƒƒbƒvƒ_ƒEƒ“ƒƒjƒ…[‚ðŽg—p‚·‚é‚ÆAƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹‚É•\Ž¦‚·‚éƒGƒ“ƒeƒBƒeƒB‚̃^ƒCƒv‚ð‘I‘ð‚Å‚«‚Ü‚·BŽŸ‚Ì€–Ú‚ªŠÜ‚Ü‚ê‚Ü‚·B
+<ul><li>u‘S€–Úv‚ÍAƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹‚É‚ ‚é‘Sƒ^ƒCƒv‚̃Gƒ“ƒeƒBƒeƒB‚ð•\Ž¦‚µ‚Ü‚·B</li>
+<li>u‘gD’c‘Ì–¼v‚ÍAƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹‚É‚ ‚éƒ^ƒCƒvu‘gD’c‘Ì–¼v‚̃Gƒ“ƒeƒBƒeƒB‚Ì‚Ý‚ð•\Ž¦‚µ‚Ü‚·B</li>
+<li>uƒ†[ƒU[v‚ÍAƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹‚É‚ ‚éƒ^ƒCƒvuƒ†[ƒU[v‚̃Gƒ“ƒeƒBƒeƒB‚Ì‚Ý‚ð•\Ž¦‚µ‚Ü‚·B</li>
+<li>u–ðŠ„v‚ÍAƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹‚É‚ ‚éƒ^ƒCƒvu–ðŠ„v‚̃Gƒ“ƒeƒBƒeƒB‚Ì‚Ý‚ð•\Ž¦‚µ‚Ü‚·B</li>
+</ul></p>
+
+<a name="adfilter"></a><div class="help-header-3">Šg’£ƒtƒBƒ‹ƒ^</div>
+<p>ƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹‚Åu<b>Šg’£ƒtƒBƒ‹ƒ^</B>vƒAƒCƒRƒ“‚ðƒNƒŠƒbƒN‚·‚é‚ÆAuŠg’£ƒtƒBƒ‹ƒ^vƒ_ƒCƒAƒƒO‚ª•\Ž¦‚³‚ê‚Ü‚·B</P>
+<p>u<b>ƒ^ƒCƒv</b>vƒZƒNƒVƒ‡ƒ“‚ÅAƒtƒBƒ‹ƒ^‚Ì‘ÎÛ‚É‚·‚éƒGƒ“ƒeƒBƒeƒB‚̃^ƒCƒv‚ðƒ}[ƒN‚ð•t‚¯‚Ü‚·B“ÁŽê‚ȃtƒBƒ‹ƒ^‚ÉŠÖ‚µ‚Ä‚ÍAƒtƒBƒ‹ƒ^‚ÌŽÀs‘ÎÛ‚Ì–¼‘O‚ðu<b>–¼‘O</b>vƒeƒLƒXƒgƒtƒB[ƒ‹ƒh‚É“ü—Í‚µ‚Ü‚·B‘±‚¢‚ÄAƒ_ƒCƒAƒƒO‚̉º•”‚É‚ ‚éu<b>ƒtƒBƒ‹ƒ^</B>vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚ÄAƒtƒBƒ‹ƒ^‚ðŽÀs‚µ‚Ü‚·B</p>
+
+<a name="search"></a><div class="help-header-3">ŒŸõ</div>
+<p>uŒŸõvƒEƒBƒ“ƒhƒE‚ðŠJ‚­‚É‚ÍAƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹‚Ìã‚É‚ ‚éu<b>ŒŸõ</b>vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·BuŒŸõvƒEƒBƒ“ƒhƒE‚ɂ̓}ƒXƒgƒwƒbƒh‚ªŠÜ‚Ü‚êA¶‘¤‚ɂ̓pƒ‰ƒ[ƒ^—̈悪‚ ‚èA‰E‘¤‚É‚ÍŒ‹‰Ê—̈悪‚ ‚è‚Ü‚·BuŒŸõvƒEƒBƒ“ƒhƒE‚ðŽg—p‚·‚é‚ÆA‘gD’c‘̃cƒŠ[‚Ì‘S‘Ì‚ÅAƒGƒ“ƒeƒBƒeƒB‚̃^ƒCƒv‚Æ–¼‘O‚ðÄ‹A“I‚ÉŒŸõ‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·BƒoƒbƒNƒOƒ‰ƒEƒ“ƒh‚ÅuŒŸõvƒEƒBƒ“ƒhƒE‚ðŠJ‚¢‚½ó‘Ô‚ÅAƒƒCƒ“ƒEƒBƒ“ƒhƒE‚̃iƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚Ìu<b>ŒŸõ</b>vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚·‚é‚ÆAuŒŸõvƒEƒBƒ“ƒhƒE‚ªÅãˆÊ‚̃EƒBƒ“ƒhƒE‚É‚È‚è‚Ü‚·BuŒŸõvƒEƒBƒ“ƒhƒE‚̃pƒ‰ƒ[ƒ^—̈æ‚ÌŒn“ƒpƒX‚É‚æ‚è•\Ž¦‚³‚ê‚éAuŒŸõvƒEƒBƒ“ƒhƒE‚ÌŒ»Ý‚̃Gƒ“ƒeƒBƒeƒB‚ªXV‚³‚ê‚Ü‚·B‚»‚Ì‘¼‚·‚ׂẴpƒ‰ƒ[ƒ^‚ÆAŒ‹‰Ê—̈æ‚Ì“à—e‚Í•ÏX‚³‚ê‚Ü‚¹‚ñB</p>
+<p>ƒpƒ‰ƒ[ƒ^—̈æ‚Å‚ÍÅã•”‚ÉŒn“ƒpƒX‚ª•\Ž¦‚³‚êAŒ»Ý‚̃Gƒ“ƒeƒBƒeƒB‚ւ̃pƒX‚ªŽ‹Šo“I‚É•\Œ»‚³‚ê‚Ü‚·Bƒpƒ‰ƒ[ƒ^—̈æ‚ÌŽg—p–@‚ÍA<a class="help-link" href="#parpath">Œn“ƒpƒX</a>‚Ìß‚Åà–¾‚µ‚Ü‚·B</p>
+<p>“Á’è‚̃Gƒ“ƒeƒBƒeƒBƒ^ƒCƒv‚ðŒŸõ‚·‚é‚É‚ÍAŒn“ƒpƒX‚̉º‚É‚ ‚éƒhƒƒbƒvƒ_ƒEƒ“ƒŠƒXƒg‚©‚ç‚»‚̃^ƒCƒv‚ð‘I‘ð‚µ‚Ü‚·B‘I‘ðŽˆ‚É‚ÍAu‘S‘Ì‚ðŒŸõvAu‘gD’c‘Ì‚ðŒŸõvAuƒ†[ƒU[‚ðŒŸõvAu–ðŠ„‚ðŒŸõvAuƒhƒƒCƒ“‚ðŒŸõvA‚¨‚æ‚ÑuƒzƒXƒg‚ðŒŸõv‚Ì 6 ‚‚ª‚ ‚è‚Ü‚·B</p>
+<p>‚³‚ç‚ÉÚׂɌŸõ‚·‚é‚É‚ÍAƒhƒƒbƒvƒ_ƒEƒ“ƒŠƒXƒg‚ׂ̗ɂ ‚éƒeƒLƒXƒgƒ{ƒbƒNƒX‚ðŽg—p‚Å‚«‚Ü‚·B‚±‚ê‚É‚æ‚èA‚±‚̃tƒB[ƒ‹ƒh‚É“ü—Í‚µ‚½ŒŸõ•¶Žš—ñ‚ƈê’v‚·‚éƒGƒ“ƒeƒBƒeƒB–¼‚ðŒŸõ‚Å‚«‚Ü‚·BƒcƒŠ[“à‚Å‚ÌŒŸõŠJŽn’n“_‚ÍA‚Ç‚¿‚ç‚©‚Ìu<b>ŠJŽnêŠ</b>vƒ‰ƒWƒIƒ{ƒ^ƒ“‚ð‘I‘ð‚·‚é‚±‚Æ‚ÅŽw’è‚Å‚«‚Ü‚·B‘I‘ðŽˆ‚É‚ÍAŒ»Ý‚̈ʒu‚©‚ç‚ÌŒŸõ‚ÆAƒcƒŠ[‚ÌÅãˆÊ‚©‚ç‚ÌŒŸõ‚ª‚ ‚è‚Ü‚·BƒfƒtƒHƒ‹ƒg‚ÍAƒcƒŠ[‚ÌÅãˆÊ‚©‚ç‚ÌŒŸõ‚Å‚·BꊂÍA–¼‘O‚Å•\Ž¦‚³‚ê‚Ü‚·BŒn“ƒpƒX“à‚̃pƒX—v‘f‚ðƒNƒŠƒbƒN‚·‚é‚ÆAŒŸõ‚ÌŒ»ÝˆÊ’u‚ªA‘I‘ð‚µ‚½ƒGƒ“ƒeƒBƒeƒB‚É•ÏX‚³‚ê‚Ü‚·‚ªAƒiƒrƒQ[ƒ^‚Ì•\Ž¦”͈͕͂ÏX‚³‚ê‚Ü‚¹‚ñB</p>
+<p>u1 ƒy[ƒW‚É•\Ž¦‚³‚ê‚錟õŒ‹‰Ê:vƒhƒƒbƒvƒ_ƒEƒ“ƒŠƒXƒg‚©‚çA•\Ž¦‚·‚錋‰Ê‚Ì”‚ð‘I‘ð‚µ‚Ü‚·B</p>
+<p>ŒŸõ‹æ‰æ‚Ì‚·‚ׂĂ̌ŸõƒtƒB[ƒ‹ƒh‚Å‚ÍAŒŸõ•¶Žš—ñ“à‚̂ǂ̈ʒu‚É‚àƒAƒXƒ^ƒŠƒXƒNu*v‚ðƒƒCƒ‹ƒhƒJ[ƒh‚Æ‚µ‚ÄŽg—p‚Å‚«‚Ü‚·BƒAƒXƒ^ƒŠƒXƒN‚ÍA”CˆÓ‚Ì”‚Ì”CˆÓ‚Ì•¶Žš‚ð•\‚µ‚Ü‚·B•¡”‚ÌŒŸõðŒ‚ðŽw’肵‚½ê‡‚ÍA‚·‚ׂĂ̌ŸõðŒ‚ð–ž‚½‚·ƒGƒ“ƒeƒBƒeƒB‚¾‚¯‚ªŒŸõƒe[ƒuƒ‹‚ɒljÁ‚³‚ê‚Ü‚·BŒŸõ‚ł͑啶Žš¬•¶Žš‚ª‹æ•Ê‚³‚ê‚Ü‚¹‚ñB</p>
+<p>ŒŸõ‚ðŽÀs‚·‚é‚É‚Íu<b>ŒŸõ</b>vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B‚±‚ê‚É‚æ‚èAŒŸõŒ‹‰Ê‚ðŠÜ‚Þƒe[ƒuƒ‹‚ªAŒ‹‰Ê—̈æ‚É•\Ž¦‚³‚ê‚Ü‚·B</p>
+<p>ƒy[ƒW‚Ì’l‚ðƒŠƒZƒbƒg‚·‚é‚É‚ÍAu<b>ƒŠƒZƒbƒg</b>vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B‚±‚ê‚É‚æ‚èAƒpƒ‰ƒ[ƒ^—̈æ‚Ì“à—e‚ªƒfƒtƒHƒ‹ƒg‚Ì’l‚ÉXV‚³‚ê‚Ü‚·B‚·‚ׂẴeƒLƒXƒgƒ{ƒbƒNƒX‚ª‹ó‚É‚È‚èA‚·‚ׂẴhƒƒbƒvƒ_ƒEƒ“ƒŠƒXƒg‚ƃ‰ƒWƒIƒ{ƒ^ƒ“ƒOƒ‹[ƒv‚ÅAʼn‚Ì’l‚ª‘I‘ð‚³‚ê‚½ó‘Ô‚É‚È‚è‚Ü‚·B</p>
+<p>uŒŸõvƒEƒBƒ“ƒhƒE‚ªì¬‚³‚ꂽŽž“_‚Å‚ÍAŒ‹‰Ê—̈æ‚É‚Í‹ó‚̃y[ƒW‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·BŒŸõ‚ðŽÀs‚·‚é‚ÆAŒŸõƒe[ƒuƒ‹‚ª•\Ž¦‚³‚ê‚Ü‚·BŒŸõƒe[ƒuƒ‹‚É‚Íu–¼‘OvAuƒ^ƒCƒvv‚¨‚æ‚ÑuƒpƒXv‚Ì 3 ‚‚̗ñ‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B</p>
+<p>Œ‹‰Ê‚ð•\Ž¦‚·‚é‚É‚ÍAu–¼‘Ov—ñ‚̉º‚É‚ ‚é‘Ήž‚·‚é–¼‘O‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B‚±‚ê‚É‚æ‚èAˆÈ‰º‚Ì‚±‚Æ‚ªŽÀs‚³‚ê‚Ü‚·B
+<ul><li>ƒƒCƒ“ƒEƒBƒ“ƒhƒE‚ªÅãˆÊ‚̃EƒBƒ“ƒhƒE‚É‚È‚é</li>
+<li>u–¼‘OvƒŠƒ“ƒN‚É‚æ‚è•\Ž¦‚³‚ê‚éƒGƒ“ƒeƒBƒeƒB‚ªAƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹“à‚Ì”wŒi‚ªÂ‚̃Gƒ“ƒgƒŠ‚É‚È‚é‚悤‚ÉAƒƒCƒ“ƒEƒBƒ“ƒhƒE‚̃iƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚ªXV‚³‚ê‚é </li>
+<li>‚»‚̃Gƒ“ƒeƒBƒeƒB‚ÆŠÖ˜A•t‚¯‚ç‚ꂽݒèƒ|ƒŠƒV[‚ÅAƒƒCƒ“ƒEƒBƒ“ƒhƒE‚̃Rƒ“ƒeƒ“ƒc‹æ‰æ‚ªXV‚³‚ê‚é</li>
+ </UL>
+</p>
+<p>uƒ^ƒCƒvv—ñ‚É‚ÍAƒGƒ“ƒeƒBƒeƒB‚̃^ƒCƒv‚ª•\Ž¦‚³‚ê‚Ü‚·BƒGƒ“ƒeƒBƒeƒB‚̃^ƒCƒv‚ÍAu‘gD’c‘Ì–¼vAuƒ†[ƒU[vAu–ðŠ„v‚Ì‚¢‚¸‚ê‚©‚Å‚·B</p>
+<p>uƒpƒXv—ñ‚É‚ÍAƒGƒ“ƒeƒBƒeƒB‚ւ̃pƒX‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·BƒpƒX‚Ì‹N“_‚ÍAŒŸõ‚ÌŠJŽn’n“_‚Å‚·B</p>
+<p>ŒŸõ‚µ‚½ƒ^ƒCƒv‚ªuƒ†[ƒU[v‚Å‚ ‚éê‡Aƒ†[ƒU[‚Ì“Á«‚ɑΉž‚·‚邳‚Ü‚´‚܂ȃeƒLƒXƒgƒ{ƒbƒNƒX‚Æ‚µ‚ÄAuƒ†[ƒU[ IDvAu–¼vA‚¨‚æ‚Ñu«v‚ªƒpƒ‰ƒ[ƒ^—̈æ‚É•\Ž¦‚³‚ê‚Ü‚·BŒ‹‰Ê—̈æ‚É‚ÍAƒ†[ƒU[ ID ‚ªŠÜ‚Ü‚ê‚é’ljÁ‚Ìuƒ†[ƒU[ IDv—ñ‚ªAu–¼‘Ov—ñ‚̉E‘¤‚É•\Ž¦‚³‚ê‚Ü‚·Bƒpƒ‰ƒ[ƒ^—̈æ‚Ìuƒ†[ƒU[ IDvƒeƒLƒXƒgƒ{ƒbƒNƒX‚É­‚È‚­‚Æ‚à 1 •¶Žš‚ªŠÜ‚Ü‚ê‚Ä‚¢‚éê‡A•À‚בւ¦Žž‚ÉÅ—D悳‚ê‚é—ñ‚Íuƒ†[ƒU[ IDv—ñ‚É‚È‚è‚Ü‚·B•¶Žš‚ªŠÜ‚Ü‚ê‚Ä‚¢‚È‚¢ê‡‚ÍA•À‚בւ¦Žž‚ÉÅ—D悳‚ê‚é—ñ‚Íu–¼‘Ov—ñ‚Å‚·B</p>
+<a name="hoststab"> </a>
+<div class="help-header-2">uƒzƒXƒgvŒ©o‚µ</div>
+<p>u<b>ƒzƒXƒg</B>vŒ©o‚µ‚É‚ÍAu<b>ƒhƒƒCƒ“ƒcƒŠ[</B>vŒ©o‚µ‚Æu<b>ƒ|ƒŠƒV[ƒŠƒ|ƒWƒgƒŠ</B>vŒ©o‚µ‚Æ‚¢‚¤–¼‘O‚ÌA2 ‚‚̃TƒuŒ©o‚µ‚ªŠÜ‚Ü‚ê‚Ü‚·B</p>
+<a name="domtree"></a><div class="help-header-3">uƒhƒƒCƒ“ƒcƒŠ[vŒ©o‚µ</div>
+<p>ƒhƒƒCƒ“ƒcƒŠ[‚É‚ÍAƒ†[ƒU[‚ªì‹Æ‚ðs‚¤ƒn[ƒhƒEƒFƒA‚Ì\¬Ý’肪•\Ž¦‚³‚ê‚Ü‚·B</P>
+<p>ƒhƒƒCƒ“ƒcƒŠ[‚ł̃iƒrƒQ[ƒVƒ‡ƒ“‚ÍA‘gD’c‘̃cƒŠ[‚ł̃iƒrƒQ[ƒVƒ‡ƒ“‚Æ“¯‚¶‚Å‚·BÚׂɂ‚¢‚Ä‚ÍA<a href="#entities">uƒ†[ƒU[vŒ©o‚µ</A>‚Ìß‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B<a name="actionbar"></a><div class="help-header-3">ƒAƒNƒVƒ‡ƒ“ƒo[</div>
+<p>ƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹‚Ìu<b>ƒtƒBƒ‹ƒ^</B>vƒhƒƒbƒvƒ_ƒEƒ“ƒƒjƒ…[‚É‚ÍAŽŸ‚Ì 5 ‚‚̀–Ú‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B
+<ul><li>u‘S€–Úv - ‘Sƒ^ƒCƒv‚̃Gƒ“ƒeƒBƒeƒB‚ð•\Ž¦‚·‚é</li>
+<li>uƒhƒƒCƒ“v - ƒhƒƒCƒ“ƒ^ƒCƒv‚̃Gƒ“ƒeƒBƒeƒB‚ð•\Ž¦‚·‚é</li>
+<li>uƒzƒXƒgv - ƒzƒXƒgƒ^ƒCƒv‚̃Gƒ“ƒeƒBƒeƒB‚ð•\Ž¦‚·‚é</li>
+<li>uŠg’£v - uŠg’£ƒtƒBƒ‹ƒ^vƒ_ƒCƒAƒƒO‚ðŠJ‚­</li>
+</ul>
+</p>
+<a name="adfilterhosts"></a><div class="help-header-3">Šg’£ƒtƒBƒ‹ƒ^</div>
+<p>ƒhƒƒCƒ“ƒcƒŠ[‚ÌŠg’£ƒtƒBƒ‹ƒ^‚Ì“®ì‚ÍA‘gD’c‘̃cƒŠ[‚ÌŠg’£ƒtƒBƒ‹ƒ^‚Æ“¯‚¶‚Å‚· (<a href="#adfilter">Šg’£ƒtƒBƒ‹ƒ^</a>‚Ìß‚ðŽQÆ)BƒhƒƒCƒ“ƒcƒŠ[‚ÌŠg’£ƒtƒBƒ‹ƒ^‚Å‚ÍAuƒhƒƒCƒ“v‚ÆuƒzƒXƒgv‚Ì 2 ‚‚̃Gƒ“ƒeƒBƒeƒB‚ŃtƒBƒ‹ƒ^ˆ—‚ðŽÀs‚Å‚«‚Ü‚·B</p>
+<a name="searchhosts"></a><div class="help-header-3">ŒŸõ</div>
+<p>u<b>ƒhƒƒCƒ“ƒcƒŠ[</b>vŒ©o‚µ‚Ìu<b>ŒŸõ</b>vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚·‚é‚ÆAƒhƒƒCƒ“ŒŸõ‚ª•\Ž¦‚³‚ê‚Ü‚·BƒhƒƒCƒ“ŒŸõ‚Ì“®ì‚Í‘gD’c‘̃cƒŠ[‚Å‚ÌŒŸõ‚Æ“¯‚¶‚Å‚·‚ª (<a href="#">ã‹L</a> ‚ðŽQÆ)AuŠJŽnêŠvƒtƒB[ƒ‹ƒh‚Íuƒn[ƒhƒEƒFƒAv‚Éݒ肳‚ê‚Ä‚¢‚Ü‚·B</p>
+
+<div align="right"><a href="#top" class="help-return-link"><img src="/example/com_sun_web_ui/images/href/to_top.gif" alt="ƒy[ƒW‚̃gƒbƒv‚ÖƒWƒƒƒ“ƒv" width="11" height="10" hspace="4" border="0">ƒy[ƒW‚Ì擪‚Ö–ß‚é</a></div>
+
+<a name="psptab"> </a>
+<div class="help-header-2">ƒ|ƒŠƒV[ƒŠƒ|ƒWƒgƒŠ</div>
+<p>u<b>ƒ|ƒŠƒV[ƒŠƒ|ƒWƒgƒŠ</b>vŒ©o‚µ‚ÍAu<b>ƒ†[ƒU[</B>vŒ©o‚µ‚Æu<b>ƒzƒXƒg</B>vŒ©o‚µ‚Ì—¼•û‚̉º‚É‚ ‚è‚Ü‚·B</P>
+<p>ƒ|ƒŠƒV[ƒŠƒ|ƒWƒgƒŠ‚ÍAƒ†[ƒU[ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚Ü‚½‚̓zƒXƒgƒ|ƒŠƒV[ƒOƒ‹[ƒv‚̂̃Rƒ“ƒeƒi‚Å‚·Bƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ÍA‡˜•t‚¯‚³‚ꂽƒŠƒXƒg‚É•Ò¬‚³‚ê‚Ä‚¢‚Ü‚·B‡˜‚ÍA—Dæ“x‚É‚æ‚è’è‹`‚³‚ê‚Ü‚·B</p>
+
+<a name="psptable"></a><div class="help-header-3">ƒ|ƒŠƒV[ƒOƒ‹[ƒvƒe[ƒuƒ‹</div>
+<P>ƒ|ƒŠƒV[ƒOƒ‹[ƒvƒe[ƒuƒ‹‚̓y[ƒW‚ÌÅã•”‚É‘¶Ý‚µAƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ðˆê——•\Ž¦‚µ‚Ü‚·Bƒe[ƒuƒ‹‚É‚ÍA‘I‘ð—ñAu–¼‘OvA‚¨‚æ‚Ñu—Dæ“xv‚Ì 3 ‚‚̗ñ‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B </P>
+<P>‘I‘ð—ñ‚ÍAu<b>ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚̃AƒNƒVƒ‡ƒ“</b>vƒhƒƒbƒvƒ_ƒEƒ“ƒƒjƒ…[“à‚̃AƒNƒVƒ‡ƒ“‚ðŽ¦‚·s‚Ƀ}[ƒN‚ð‚‚¯‚邽‚ß‚ÉŽg—p‚µ‚Ü‚·B</P>
+<P>ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚Ɉړ®‚·‚é‚É‚ÍA‚»‚Ì–¼‘O‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B‚±‚ê‚É‚æ‚èAˆÈ‰º‚Ì‚±‚Æ‚ªŽÀs‚³‚ê‚Ü‚·B</P>
+<UL>
+ <li>ƒNƒŠƒbƒN‚µ‚½s‚Ì”wŒiF‚ªÂ‚É•Ï‚í‚é</li>
+ <li>‘I‘ð‚µ‚½ƒ|ƒŠƒV[‚ÆŠÖ˜A•t‚¯‚ç‚ꂽƒf[ƒ^‚ÅAƒRƒ“ƒeƒ“ƒc‹æ‰æ‚ªXV‚³‚ê‚é</li>
+</ul>
+<p>u—Dæ“xv—ñ‚É‚ÍAƒ|ƒŠƒV[ƒOƒ‹[ƒv‚Ì—Dæ“x‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B1 ‚‚̃Gƒ“ƒeƒBƒeƒB‚É•¡”‚̃|ƒŠƒV[ƒOƒ‹[ƒv‚ªŠÖ˜A•t‚¯‚ç‚ê‚Ä‚¢‚éê‡Aƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ÌŒ‹‡‡˜‚ÍA‚±‚Ì—Dæ“x‚É‚æ‚Á‚Ä’è‹`‚³‚ê‚Ü‚·B</p>
+<P>”wŒi‚ªÂ‚Ìs‚ÍAŒ»ÝƒRƒ“ƒeƒ“ƒc‹æ‰æ‚Ńf[ƒ^‚ª•\Ž¦‚³‚ê‚Ä‚¢‚éƒ|ƒŠƒV[ƒOƒ‹[ƒvA‚‚܂è•\Ž¦‚³‚ê‚Ä‚¢‚éƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ð•\‚µ‚Ü‚·B</P>
+
+<a name="pspactions"></a><div class="help-header-3">ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚̃AƒNƒVƒ‡ƒ“ƒo[</div>
+<P>u<b>ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚̃AƒNƒVƒ‡ƒ“</B>vƒhƒƒbƒvƒ_ƒEƒ“ƒƒjƒ…[‚É‚ÍAã‚©‚牺‚Ö‚Ì•\Ž¦‡‚ÅAŽŸ‚̃AƒNƒVƒ‡ƒ“‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B
+</P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <THEAD>
+ <TR VALIGN=TOP>
+ <TH WIDTH="11%">
+<P>–¼‘O</P>
+ </TH>
+ <TH WIDTH="89%">
+<P>ƒAƒNƒVƒ‡ƒ“</P>
+ </TH>
+ </TR>
+ </THEAD>
+ <TBODY>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+<P>V‹Kì¬</P>
+ </TD>
+ <TD WIDTH="89%">
+<P>ƒ†[ƒU[‚ªƒ|ƒŠƒV[ƒOƒ‹[ƒv‚Ì (ŒÅ—L‚Ì) –¼‘O‚ð“ü—Í‚·‚éAƒ_ƒCƒAƒƒOƒEƒBƒ“ƒhƒE‚ªŠJ‚­BuOKv‚ðƒNƒŠƒbƒN‚·‚é‚ÆAƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ª’ljÁ‚³‚ê‚éB•ÏX‚𔽉f‚·‚邽‚ßAƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚ªXV‚³‚ê‚é</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="11%">
+<P>íœ</P>
+ </td>
+ <TD WIDTH="89%">
+<P>ƒ|ƒŠƒV[ƒOƒ‹[ƒv (•¡”‰Â) ‚Ì휂ðŠm”F‚·‚éŒxƒƒbƒZ[ƒW•\Ž¦‚³‚ê‚éAƒ|ƒbƒvƒAƒbƒvƒEƒBƒ“ƒhƒE‚ªŠJ‚­Bƒ†[ƒU[‚ªuOKv‚ðƒNƒŠƒbƒN‚·‚é‚ÆAƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ªíœ‚³‚ê‚éB•ÏX‚𔽉f‚·‚邽‚ßAƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚ªXV‚³‚ê‚é</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+<p>–¼‘O‚Ì•ÏX</p>
+ </td>
+ <td width="89%">
+<p>ƒ_ƒCƒAƒƒOƒEƒBƒ“ƒhƒE‚ªŠJ‚«Aƒ†[ƒU[‚̓|ƒŠƒV[ƒOƒ‹[ƒv‚ÌV‚µ‚¢ (ŒÅ—L‚Ì) –¼‘O‚ð“ü—Í‚·‚éBƒ|ƒŠƒV[ƒOƒ‹[ƒv‚Ì–¼‘O‚ª•ÏX‚³‚êA•ÏX‚𔽉f‚·‚邽‚߂ɃiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚ªXV‚³‚ê‚é</p>
+ </td>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+<p>—Dæ“x‚Ì•ÒW</p>
+ </td>
+ <td width="89%">
+<p>—Dæ“x‚ð•ÏX‚·‚邽‚߂̃ŠƒXƒgƒ{ƒbƒNƒX‚ªŠÜ‚Ü‚ê‚éAƒ_ƒCƒAƒƒOƒEƒBƒ“ƒhƒE‚ª•\Ž¦‚³‚ê‚é</p>
+ </td>
+ </tr>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+<P>ƒGƒNƒXƒ|[ƒg</P>
+ </TD>
+ <TD WIDTH="89%">
+<P>ƒ_ƒCƒAƒƒOƒEƒBƒ“ƒhƒE‚ªŠJ‚­Bƒ†[ƒU[‚Í‘I‘ð‚µ‚½ƒ|ƒŠƒV[ƒOƒ‹[ƒv (•¡”‰Â) ‚̃GƒNƒXƒ|[ƒgæ‚Å‚ ‚鈶æƒpƒX‚ð“ü—Í‚·‚é</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+<p>ƒCƒ“ƒ|[ƒg</p>
+ </td>
+ <td width="89%">
+<p>ƒ_ƒCƒAƒƒOƒEƒBƒ“ƒhƒE‚ªŠJ‚­Bƒ†[ƒU[‚̓Cƒ“ƒ|[ƒg‚·‚éƒ|ƒŠƒV[ƒOƒ‹[ƒv (•¡”‰Â) ‚ð‘I‘ð‚·‚éBuOKv‚ðƒNƒŠƒbƒN‚·‚é‚ƃ|ƒŠƒV[ƒOƒ‹[ƒv‚ª’ljÁ‚³‚êA•ÏX‚𔽉f‚·‚邽‚߃iƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚ªXV‚³‚ê‚é</p>
+ </td>
+ </tr>
+ </TBODY>
+</TABLE>
+
+<p><a name="psppriorities"></a><div class="help-header-3">ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚Ì—Dæ“x</div></p>
+<p>ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚Ì—Dæ“x‚ÌŠT”O‚É‚æ‚èAŠÇ—ŽÒ‚ÍAƒŒƒCƒ„[‚ÌŒ‹‡‡˜‚ð’è‹`‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B‚ ‚éƒGƒ“ƒeƒBƒeƒB‚É•¡”‚̃|ƒŠƒV[ƒOƒ‹[ƒv‚ªŠ„‚è“–‚Ä‚ç‚ê‚Ä‚¢‚éê‡AŒ‹‡Žž‚Ƀ|ƒŠƒV[ƒOƒ‹[ƒv‚Ì—Dæ“x‚ªŽg—p‚³‚ê‚Ü‚·B‚±‚̂悤‚Èê‡AƒGƒ“ƒeƒBƒeƒB‚ÌŠK‘w‚ðŽw’è‚·‚邾‚¯‚ł̓|ƒŠƒV[ƒOƒ‹[ƒv‚ÌŒ‹‡‡˜‚ðŒˆ’è‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB‚±‚Ì–â‘è‚ÍAƒ|ƒŠƒV[ƒOƒ‹[ƒv‚É—Dæ“x‚ðŠ„‚è“–‚Ă邱‚Æ‚Å‰ðŒˆ‚Å‚«‚Ü‚·B</p>
+<p>ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚Ì—Dæ“x‚̃_ƒCƒAƒƒO‚ðŠJ‚­‚É‚ÍAu<b>ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚̃AƒNƒVƒ‡ƒ“</b>vƒhƒƒbƒvƒ_ƒEƒ“ƒƒjƒ…[‚©‚çu<b>—Dæ“x‚Ì•ÒW</b>v‚ð‘I‘ð‚µ‚Ü‚·Bƒ|ƒŠƒV[ƒOƒ‹[ƒv‚Ì—Dæ“x‚ð•ÏX‚·‚é‚É‚ÍAŽŸ‚̎臂ðŽÀs‚µ‚Ü‚·B</p>
+<ol>
+<li>ƒŠƒXƒg‚©‚çƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ð‘I‘ð‚µ‚Ü‚·B</li>
+<li>u<b>ã‚Ö</b>vƒ{ƒ^ƒ“‚Ü‚½‚Íu<b>‰º‚Ö</b>vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚ÄA—Dæ“x‚ð㉺‚É•ÏX‚µ‚Ü‚·B</li>
+</ol>
+
+<div align="right"><a href="#top" class="help-return-link"><img src="/example/com_sun_web_ui/images/href/to_top.gif" alt="ƒy[ƒW‚̃gƒbƒv‚ÖƒWƒƒƒ“ƒv" width="11" height="10" hspace="4" border="0">ƒy[ƒW‚Ì擪‚Ö–ß‚é</a></div>
+
+<a name="content"> </a>
+<div class="help-header-1">ƒRƒ“ƒeƒ“ƒc‹æ‰æ</div>
+<p>ƒRƒ“ƒeƒ“ƒc‹æ‰æ‚É‚ÍAƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚Å‘I‘ð‚µ‚½ƒGƒ“ƒeƒBƒeƒB‚Ü‚½‚̓|ƒŠƒV[ƒOƒ‹[ƒv‚ÉŠÖ˜A•t‚¯‚ç‚ꂽƒf[ƒ^‚ª•\Ž¦‚³‚ê‚Ü‚·Bƒf[ƒ^‚ÍAŒ©o‚µ“à‚ŃOƒ‹[ƒv‰»‚³‚ê‚Ä‚¢‚Ü‚·BƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚Ås‚¤‘I‘ð‚É‚æ‚èAƒRƒ“ƒeƒ“ƒc‹æ‰æ‚Å•\Ž¦‚³‚ê‚錩o‚µ‚Ì”‚ƃ^ƒCƒv‚ªŒˆ’肵‚Ü‚·Bu<b>ƒ|ƒŠƒV[</b>vŒ©o‚µ‚ªƒfƒtƒHƒ‹ƒg‚̃AƒNƒeƒBƒu‚ÈŒ©o‚µ‚Å‚·B‘I‘ð‚Ì’†‚ÉŒ»ÝƒAƒNƒeƒBƒu‚ÈŒ©o‚µ‚ªŠÜ‚Ü‚ê‚éŒÀ‚èAƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚Å‘I‘ð‚ð•ÏX‚µ‚Ä‚àAŒ»ÝƒAƒNƒeƒBƒu‚ÈŒ©o‚µ‚̓AƒNƒeƒBƒu‚È‚Ü‚Ü‚É‚È‚è‚Ü‚·B‚»‚êˆÈŠO‚ÌꇂÍAu<b>ƒ|ƒŠƒV[</b>vŒ©o‚µ‚ªƒAƒNƒeƒBƒu‚ÈŒ©o‚µ‚É‚È‚è‚Ü‚·BŒ©o‚µ‚ªÄ‚уAƒNƒeƒBƒu‚É‚È‚é‚ÆAŒ©o‚µ‚Ì“à•”ó‘Ô (Œn“ƒpƒXA•À‚בւ¦‡˜) ‚ÍŒ³‚É–ß‚è‚Ü‚·B</p>
+<a name="policies"> </a>
+<div class="help-header-2">uƒ|ƒŠƒV[vŒ©o‚µ</div>
+<p>ƒTƒuƒOƒ‹[ƒvA\¬Ý’è‚̈ê•û‚Ü‚½‚Í—¼•û‚ð•\Ž¦‚·‚éÝ’èƒ|ƒŠƒV[ƒcƒŠ[‚Ɉړ®‚·‚é‚É‚ÍAu<b>ƒ|ƒŠƒV[</B>vŒ©o‚µ‚ðŽg—p‚µ‚Ü‚·B</p>
+<p>Šeuƒ|ƒŠƒV[vƒy[ƒW‚É‚ÍAŽŸ‚Ì 2 ‚‚̃{ƒ^ƒ“‚ª‚ ‚è‚Ü‚·B
+<ul><li>u<b>ƒŒƒ|[ƒg‚Ìì¬</b>v: ÚׂÍ<a href="#reporting">ƒŒƒ|[ƒg</a>‚Ìß‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B</li>
+<li>u<b>Ý’è‚ð‹ó‚É‚·‚é</b>v: ‚±‚̃{ƒ^ƒ“‚ÍA•\Ž¦’†‚̃Gƒ“ƒeƒBƒeƒB‚ɑ΂µ‚ÄŒ»Ý•\Ž¦‚³‚ê‚Ä‚¢‚éƒTƒuƒOƒ‹[ƒv‚̉º‚É‚ ‚é‚·‚ׂĂÌÝ’èƒf[ƒ^‚ðAÄ‹A“I‚É휂µ‚Ü‚·B </li>
+</ul>
+</P>
+<p>Ý’èƒ|ƒŠƒV[ƒcƒŠ[‚ÌŠeƒ‹[ƒgƒGƒ“ƒgƒŠ‚ÍAuStarSuite 7v‚Ȃǂ̃AƒvƒŠƒP[ƒVƒ‡ƒ“‚ð•\‚µ‚Ü‚·BƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚̉º‚̃cƒŠ[‚Å‚ÍA‚»‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“‚É‘®‚·‚éÝ’èƒ|ƒŠƒV[‚ª•Ò¬‚³‚ê‚Ä‚¢‚Ü‚·BÝ’èƒ|ƒŠƒV[‚ÍAÝ’èƒ|ƒŠƒV[ƒcƒŠ[“à‚Ì”CˆÓ‚Ìꊂɔz’u‚Å‚«‚Ü‚·BÝ’èƒ|ƒŠƒV[‚ªÝ’èƒ|ƒŠƒV[ƒcƒŠ[‚̃Š[ƒt (Ž}‚Ìæ‚É‚ ‚éu—tv‚Ì•”•ª) ‚Å‚Í‚È‚¢ê‡AÝ’èƒ|ƒŠƒV[ƒcƒŠ[“à‚Ì 1 ‚‚Ìꊂɑ΂µ‚Ä‚ÍAÝ’èƒ|ƒŠƒV[‚¾‚¯‚Å‚È‚­ƒ|ƒŠƒV[ƒe[ƒuƒ‹‚à•\Ž¦‚³‚ê‚é•K—v‚ª‚ ‚è‚Ü‚·B </p>
+<a name="caparpath"> </a>
+<div class="help-header-3">Œn“ƒpƒX</div>
+<p>Œn“ƒpƒX‚ÍAŒ©o‚µ‚̉º‚É‚ ‚éƒy[ƒW‚ÌÅã•”‚É•\Ž¦‚³‚ê‚Ü‚·BŒn“ƒpƒX‚ÍAÝ’èƒ|ƒŠƒV[ƒcƒŠ[‚ÌŒ»Ý‚̈ʒu‚ðŽ‹Šo“I‚É•\Œ»‚µ‚Ü‚·B‚»‚Ì‹@”\‚ÍAƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ“à‚ÌŒn“ƒpƒX‚Æ“¯‚¶‚Å‚· (ã‹L‚Ì<a class="help-link" href="#parpath">Œn“ƒpƒX</a>‚Ìß‚ðŽQÆ)B</p>
+<a name="subgroupstable"> </a>
+<div class="help-header-3">uƒTƒuƒOƒ‹[ƒvvƒe[ƒuƒ‹</div>
+<P>uƒTƒuƒOƒ‹[ƒvvƒe[ƒuƒ‹‚ÍAŒn“ƒpƒX‚̉º‚É‚ ‚è‚Ü‚·B‚±‚̃e[ƒuƒ‹‚É‚ÍAÝ’èƒ|ƒŠƒV[ƒcƒŠ[‚ÌŒ»ÝˆÊ’u‚̃TƒuƒOƒ‹[ƒv‚ªˆê——•\Ž¦‚³‚êAu–¼‘Ov‚¨‚æ‚ÑuƒRƒƒ“ƒgv‚Ì 2 ‚‚̗ñ‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B</P>
+<P>u–¼‘Ov—ñ‚É‚ÍAÝ’èƒ|ƒŠƒV[ƒcƒŠ[‚ÌŒ»ÝˆÊ’u‚Ì‘SƒTƒuƒcƒŠ[‚Ì–¼‘O‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B–¼‘O‚̓Šƒ“ƒN‚Æ‚µ‚Ä•\Ž¦‚³‚ê‚Ü‚·BÝ’èƒ|ƒŠƒV[ƒcƒŠ[‚ðˆÚ“®‚·‚é‚É‚ÍA–¼‘O‚̃Šƒ“ƒN‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B‚±‚ê‚É‚æ‚èAˆÈ‰º‚Ì‚±‚Æ‚ªŽÀs‚³‚ê‚Ü‚·B</P>
+<UL>
+ <li>Œn“ƒpƒX‚̃|ƒCƒ“ƒg悪ݒèƒ|ƒŠƒV[ƒcƒŠ[“à‚ÌV‚µ‚¢êŠ‚É‚È‚é‚悤‚ÉAƒRƒ“ƒeƒ“ƒc‹æ‰æ‚ªXV‚³‚ê‚é</li>
+ <li>ƒ|ƒŠƒV[ƒe[ƒuƒ‹‚ƃ|ƒŠƒV[‚Ì‚¢‚¸‚ê‚©‚ª•\Ž¦‚³‚ê‚é‚悤‚ÉAƒRƒ“ƒeƒ“ƒc‹æ‰æ‚ªXV‚³‚ê‚é</LI>
+</UL>
+<P>‚±‚ÌŽí‚̃iƒrƒQ[ƒVƒ‡ƒ“‚ÍAuŒ@‚艺‚°‚Ä‚¢‚­vƒ^ƒCƒv‚̃iƒrƒQ[ƒVƒ‡ƒ“‚ƌĂ΂ê‚Ü‚·B</P>
+<P>uƒRƒƒ“ƒgv—ñ‚É‚ÍAƒTƒuƒOƒ‹[ƒv‚ÌŠÈ’P‚Èà–¾‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B</P>
+<A NAME="capolicies"></A>
+<div class="help-header-3">ƒ|ƒŠƒV[</div>
+<P>Œ»Ý‚̃Gƒ“ƒeƒBƒeƒB‚ÆŒ»Ý‚ÌÝ’èƒ|ƒŠƒV[‚Ì‘g‚݇‚킹‚ÉA—LŒø‚ÈÝ’èƒ|ƒŠƒV[ƒf[ƒ^‚ªŽg—p‚Å‚«‚éê‡AƒRƒ“ƒeƒ“ƒc‹æ‰æ‚Ìuƒ|ƒŠƒV[vŒ©o‚µ‚É‚»‚̃f[ƒ^‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+<p>ƒf[ƒ^‚ÍAƒe[ƒuƒ‹Œ`Ž®‚Å•\Ž¦‚³‚ê‚Ü‚·Bƒe[ƒuƒ‹‚É‚ÍA‘I‘ð—p‚̃AƒCƒRƒ“‚ªŠÜ‚Ü‚ê‚é‘I‘ð—ñAuƒXƒe[ƒ^ƒXv—ñAu–¼‘Ov—ñ‚¨‚æ‚Ñu’lv—ñ‚Ì 4 ‚‚̗ñ‚ª‚ ‚è‚Ü‚·Bƒe[ƒuƒ‹‚̃AƒNƒVƒ‡ƒ“ƒo[‚ɂ̓hƒƒbƒvƒ_ƒEƒ“ƒAƒNƒVƒ‡ƒ“ƒƒjƒ…[‚ª‚ ‚è‚Ü‚·B</p>
+<p>—v‘f‚ð‘I‘ð‚·‚é‚É‚ÍA‚»‚Ì‘O‚É‚ ‚éƒ`ƒFƒbƒNƒ{ƒbƒNƒX‚Ƀ`ƒFƒbƒNƒ}[ƒN‚ð•t‚¯‚Ü‚·B‚±‚ê‚ÅAƒAƒNƒVƒ‡ƒ“ƒo[‚É‚ ‚éƒhƒƒbƒvƒ_ƒEƒ“ƒAƒNƒVƒ‡ƒ“ƒƒjƒ…[‚̃AƒNƒVƒ‡ƒ“‚ªA‘I‘ð‚µ‚½—v‘f‚ɑ΂µ‚ÄŽÀs‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B‘SƒAƒNƒVƒ‡ƒ“‚Ìà–¾‚Ì•\‚ðAŽŸ‚ÉŽ¦‚µ‚Ü‚·B</p>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+<P><B>ƒAƒNƒVƒ‡ƒ“</B></P>
+ </TD>
+ <TD WIDTH="83%">
+<P><B>‘€ì</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+<P>•ÛŒì</P>
+ </TD>
+ <TD WIDTH="83%">
+<P>‘I‘ð‚µ‚½—v‘f‚ð•ÛŒì‘ÎÛ‚ÉÝ’è‚·‚é</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+<P>•ÛŒì‰ðœ</P>
+ </TD>
+ <TD WIDTH="83%">
+<P>‘I‘ð‚µ‚½—v‘f‚Ì•ÛŒì‚ð휂·‚é</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+<P>ƒfƒtƒHƒ‹ƒg‚Ì“K—p</P>
+ </TD>
+ <TD WIDTH="83%">
+<P>ƒ|ƒŠƒV[ƒeƒ“ƒvƒŒ[ƒg‚©‚çAƒn[ƒhƒR[ƒh‚³‚ꂽƒfƒtƒHƒ‹ƒg‚̃f[ƒ^‚ðŽg—p‚·‚é</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+<P>‹ó‚É‚·‚é</P>
+ </TD>
+ <TD WIDTH="83%">
+<P>—v‘f“à‚ÉŠi”[‚³‚ê‚Ä‚¢‚éƒf[ƒ^‚ð휂·‚é</P>
+ </TD>
+ </TR>
+
+</TABLE>
+<p>—v‘f–¼‚̶‘¤‚É‚Í 2 ‚‚̃AƒCƒRƒ“‚ª‚ ‚èA‚»‚Ì—v‘f‚Ìó‘Ô‚ð•\Ž¦‚µ‚Ü‚·BŽŸ‚Ì•\‚ÍAƒAƒCƒRƒ“‚Æ‚»‚Ì‹@”\‚ÌŠT—v‚ðà–¾‚µ‚½‚à‚Ì‚Å‚·B</P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+<P><B>ƒAƒCƒRƒ“</B></P>
+ </TD>
+ <TD WIDTH="64%">
+<P><B>ˆÓ–¡</B></P>
+ </TD>
+ <TD WIDTH="32%">
+<P><B>‘€ì</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+<P>’è‹`
+‚±‚±‚Å</P>
+ </TD>
+ <TD WIDTH="64%">
+<P>‚±‚̃AƒCƒRƒ“‚ÍA—v‘f‚Ì’l‚ª‘gD’c‘̃cƒŠ[‚Ì‚±‚̃Œƒxƒ‹‚Åݒ肳‚ꂽ‚±‚Æ‚ð•\‚·</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+<P><IMG SRC="/apoc/images/icon_set_above.png" NAME="DefinedLayered"
+ALT="Defined Layered" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+<P>‚±‚̃AƒCƒRƒ“‚̓Šƒ“ƒN‚Å‚à‚ ‚èA—v‘f‚Ì’l‚ª‘gD (‚Ü‚½‚̓hƒƒCƒ“) ƒcƒŠ[‚Ì‚æ‚èãˆÊ‚̃Œƒxƒ‹‚Åݒ肳‚ꂽ‚±‚Æ‚ð•\‚·Bƒ†[ƒU[‚É•\Ž¦‚³‚ê‚é’l‚ÍA‘gD“à‚ł̃ŒƒCƒ„[ (‚‚܂èƒGƒ“ƒeƒBƒeƒBƒŒƒxƒ‹) ‚ÌŒ‹‡‚ÌŒ‹‰Ê‚Å‚ ‚é</P>
+ </TD>
+ <TD WIDTH="32%">
+<P>ƒAƒCƒRƒ“‚ðƒNƒŠƒbƒN‚·‚é‚ÆA‚»‚Ì’l‚ªÝ’肳‚ꂽꊂɈړ®‚·‚é</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+<P><IMG SRC="/apoc/images/icon_protected_here.png" NAME="ProtectedHere"
+ALT="Protected Here" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+<P>‚±‚̃AƒCƒRƒ“‚ÍA—v‘f‚̕ی삪‘gD (‚Ü‚½‚̓hƒƒCƒ“) ƒcƒŠ[‚Ì‚±‚̃Œƒxƒ‹‚Åݒ肳‚ꂽ‚±‚Æ‚ð•\‚·B•ÛŒì‚ÍA‘gD’c‘̃cƒŠ[‚ÆÝ’èƒ|ƒŠƒV[ƒcƒŠ[‚Ì—¼•û‚É“n‚Á‚ÄŒp³‚³‚ê‚é</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+<P><IMG SRC="/apoc/images/icon_protected_above.png" NAME="ProtectedLayered"
+ALT="Protected Layered" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+<P>‚±‚̃AƒCƒRƒ“‚̓Šƒ“ƒN‚Å‚à‚ ‚èA—v‘f‚̕ی삪‘gD (‚Ü‚½‚̓hƒƒCƒ“) ƒcƒŠ[‚Ì‚æ‚èãˆÊ‚̃Œƒxƒ‹‚Åݒ肳‚ꂽ‚±‚Æ‚ð•\‚·B‚±‚Ì—v‘f‚Ü‚½‚Í€–Ú‚Ì•ÛŒì‚ÍA‘gD“à‚ł̃ŒƒCƒ„[ (‚‚܂èƒGƒ“ƒeƒBƒeƒBƒŒƒxƒ‹) ‚ÌŒ‹‡‚ÌŒ‹‰Ê‚Å‚ ‚é</P>
+ </TD>
+ <TD WIDTH="32%">
+<P>‚±‚̃AƒCƒRƒ“‚ðƒNƒŠƒbƒN‚·‚é‚ÆAƒ†[ƒU[‚͕ی삪ݒ肳‚ꂽꊂɈړ®‚·‚é</P>
+ </TD>
+ </TR>
+</TABLE>
+<p>ƒf[ƒ^’l‚ÍAu’lv—ñ‚Ì’l‚ð•ÏX‚·‚邱‚Æ‚Å•ÏX‚Å‚«‚Ü‚·B’l‚Ì•ÏX‚¾‚¯‚Å‚È‚­Aó‘Ô‚Ì•ÏX‚à•Û‘¶‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B•Û‘¶‚·‚é‚É‚ÍAu<b>•Û‘¶</b>vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</p>
+<a name="casets"> </a>
+<div class="help-header-3">ƒZƒbƒg</div>
+<p>ƒZƒbƒg‚ÍAƒvƒƒpƒeƒB‚Ì“®“I‚ȃRƒŒƒNƒVƒ‡ƒ“‚Å‚·BƒZƒbƒg‚Æ‚ÌŠÔ‚Å‚ÍA—v‘f‚ð’ljÁ‚¨‚æ‚Ñ휂·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B</p>
+<p>ƒZƒbƒg‚É—v‘f‚ð’ljÁ‚·‚é‚É‚ÍAŽŸ‚̎臂ðŽÀs‚µ‚Ü‚·B
+<ol><li>u<b>V‹Kì¬</b>vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B </li>
+<li>ƒ_ƒCƒAƒƒO‚©‚ç‚ÍAV‚µ‚¢—v‘f‚Ì–¼‘O‚ð“ü—Í‚Å‚«‚Ü‚·B‚»‚Ì—v‘f‚ª’ljÁ‚³‚êAƒƒCƒ“ƒEƒBƒ“ƒhƒE‚ªXV‚³‚ê‚Ü‚·B</li>
+<li>ƒƒCƒ“ƒEƒBƒ“ƒhƒE‚ÅA‚»‚ÌV‚µ‚¢—v‘f‚ð•ÒW‚Å‚«‚Ü‚·B</li>
+</ol>
+<p>ƒZƒbƒg‚©‚ç—v‘f‚ð휂·‚é‚É‚ÍA—v‘f‚ð‘I‘ð‚µ‚Äu<b>íœ</B>vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·B</p>
+<p>ƒZƒbƒg‚̓Zƒbƒg‚ðŠÜ‚Þ‚±‚Æ‚ª‚Å‚«A‚Ü‚½ƒZƒbƒg‚̓Šƒ“ƒN‚Æ‚µ‚Ä•\Ž¦‚³‚ê‚é“_‚É’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢BƒŠƒ“ƒN‚ðƒNƒŠƒbƒN‚·‚é‚ƃZƒbƒg‚ÌꊂɈړ®‚µA‚»‚Ìꊂ©‚çƒZƒbƒg‚ð•ÒW‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B</p>
+
+<a name="policysets"> </a>
+<div class="help-header-2">uƒ|ƒŠƒV[ƒOƒ‹[ƒvvŒ©o‚µ</div>
+<p>‚±‚Ìuƒ|ƒŠƒV[ƒOƒ‹[ƒvvƒy[ƒW‚Å‚ÍA‘I‘ð‚µ‚½ƒGƒ“ƒeƒBƒeƒB‚ɑ΂µ‚ÄAƒ|ƒŠƒV[ƒOƒ‹[ƒv‚̒ljÁ‚Æ휂ðs‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B</p>
+<p>¶‘¤‚Ìu<b>‘I‘ð‰Â”\</b>vƒŠƒXƒg‚É•\Ž¦‚³‚ê‚Ä‚¢‚éƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ð’ljÁ‚·‚é‚É‚ÍAŽŸ‚̎臂ðŽÀs‚µ‚Ü‚·B</p>
+<ol>
+<li>ƒŠƒXƒg‚©‚çƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ð‘I‘ð‚µ‚Ü‚·B</li>
+<li>u<b>’ljÁ</b>vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚ÄA‘I‘ð‚µ‚½ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ðA‰E‘¤‚Ìu<b>‘I‘ð</B>vƒŠƒXƒg‚ɒljÁ‚µ‚Ü‚·B</li>
+<li>u<b>•Û‘¶</b>v‚ðƒNƒŠƒbƒN‚µ‚ÄAV‚µ‚¢Š„‚è“–‚Ä‚ð•Û‘¶‚µ‚Ü‚·B </LI>
+</ol>
+
+<a name="caentities"> </a>
+<div class="help-header-2">uŠ„‚è“–‚ÄævŒ©o‚µ</div>
+<p>ƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚Ìuƒ|ƒŠƒV[ƒŠƒ|ƒWƒgƒŠv‚Ń|ƒŠƒV[ƒOƒ‹[ƒv‚ª‘I‘ð‚³‚ê‚Ä‚¢‚éê‡AƒRƒ“ƒeƒ“ƒc‹æ‰æ‚É‚Íu<b>’ljÁ</b>vŒ©o‚µƒy[ƒW‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·Bu’ljÁvƒy[ƒW‚É‚ÍA‘I‘ð‚µ‚½ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚ÌŠ„‚è“–‚Äæ‚Å‚ ‚é‚·‚ׂẴGƒ“ƒeƒBƒeƒB‚ª•\Ž¦‚³‚ê‚Ä‚¢‚Ü‚·B</p>
+<p>u’ljÁvŒ©o‚µƒy[ƒW‚ÅŽÀs‚Å‚«‚éƒAƒNƒVƒ‡ƒ“‚É‚ÍAŽŸ‚Ì‚à‚Ì‚ª‚ ‚è‚Ü‚·B
+<ul><li>u<b>íœ</B>v‚ÍA‘I‘ð‚µ‚½ƒGƒ“ƒeƒBƒeƒB (•¡”‰Â) ‚ÆAƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚Å‘I‘ð‚µ‚½ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚Æ‚ÌŠÔ‚ÌŠÖ˜A•t‚¯‚ð‰ðœ‚µ‚Ü‚·B </li>
+<li>u–¼‘Ov—ñ‚̃Gƒ“ƒeƒBƒeƒB‚ðƒNƒŠƒbƒN‚·‚é‚ƃiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚ªXV‚³‚êAƒNƒŠƒbƒN‚µ‚½ƒGƒ“ƒeƒBƒeƒB‚ªAƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚Å”wŒi‚ªÂ‚̃Gƒ“ƒeƒBƒeƒB‚É‚È‚è‚Ü‚·B </li>
+</ul>
+</p>
+<div align="right"><a href="#top" class="help-return-link"><img src="/example/com_sun_web_ui/images/href/to_top.gif" alt="ƒy[ƒW‚̃gƒbƒv‚ÖƒWƒƒƒ“ƒv" width="11" height="10" hspace="4" border="0">ƒy[ƒW‚Ì擪‚Ö–ß‚é</a></div>
+
+<a name="roles"> </a>
+<div class="help-header-2">u–ðŠ„vŒ©o‚µ</div>
+<p>ƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ‚Ń^ƒCƒvuƒ†[ƒU[v‚̃Gƒ“ƒeƒBƒeƒB‚ð‘I‘ð‚µA‚»‚̃†[ƒU[‚ª­‚È‚­‚Æ‚à 1 ‚Â‚Ì–ðŠ„‚Ìƒƒ“ƒo[‚Å‚ ‚éê‡AƒRƒ“ƒeƒ“ƒc‹æ‰æ‚É‚Íu<b>–ðŠ„</B>vŒ©o‚µƒy[ƒW‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·Bu<b>–ðŠ„</B>vƒy[ƒW‚É‚ÍA‘I‘ð‚µ‚½ƒ†[ƒU[‚ªƒƒ“ƒo[‚Å‚ ‚é‚·‚×‚Ä‚Ì–ðŠ„‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+<p>‚±‚̃y[ƒW‚É‚ÍAu–¼‘Ov‚¨‚æ‚ÑuƒpƒXv‚Ì 2 ‚‚̗ñ‚ª‚ ‚è‚Ü‚·Bu–¼‘Ov‚É‚Í–ðŠ„‚Ì–¼‘O‚ªŠÜ‚Ü‚êAuƒpƒXv‚É‚Í–ðŠ„‚Ö‚Ìâ‘΃pƒX‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B</p>
+<a name="users"> </a>
+<div align="right"><a href="#top" class="help-return-link"><img src="/example/com_sun_web_ui/images/href/to_top.gif" alt="ƒy[ƒW‚̃gƒbƒv‚ÖƒWƒƒƒ“ƒv" width="11" height="10" hspace="4" border="0">ƒy[ƒW‚Ì擪‚Ö–ß‚é</a></div>
+
+<a name="reporting"> </a>
+<div class="help-header-1">ƒŒƒ|[ƒg</div>
+<p>ƒŒƒ|[ƒg‚ÍAƒf[ƒ^‚ðŠÜ‚Þ‚·‚ׂĂÌ\¬Ý’è‚ÌA“Ç‚ÝŽæ‚èê—pƒrƒ…[‚Å‚·BƒŒƒ|[ƒg‚ðŒÄ‚Ño‚·‚É‚ÍAu<b>ƒŒƒ|[ƒg‚Ìì¬</B>vƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ü‚·BuƒŒƒ|[ƒg‚ÌÝ’èvƒ_ƒCƒAƒƒO‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+<p>uƒŒƒ|[ƒg‚ÌÝ’èvƒ_ƒCƒAƒƒO‚Å‚ÍAŽŸ‚̃JƒXƒ^ƒ}ƒCƒY‚ðs‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B
+<ul><li>‚ǂ̃cƒŠ[ (‘gD’c‘̃cƒŠ[‚ƃhƒƒCƒ“ƒcƒŠ[‚̈ê•û‚Ü‚½‚Í—¼•û) ‚ð‘ÎÛ‚Æ‚·‚é‚© (u<b>ƒŒƒ|[ƒg‚ÉŽg—p</B>v) </li>
+<li>쬂·‚郌ƒ|[ƒg‚Å‚Ç‚Ì—ñ‚ð•\Ž¦‚·‚é‚© (u<b>ƒXƒe[ƒ^ƒXƒpƒX</b>v‚Æu<b>à–¾</B>v‚𖳌ø‚É‚Å‚«‚Ü‚·)</li>
+</ul>
+<p>ƒJƒXƒ^ƒ}ƒCƒY‚ðŠ®—¹‚µ‚½‚çAƒŒƒ|[ƒg‚ðƒNƒŠƒbƒN‚·‚é‚ÆA‘I‘ð‚µ‚½ƒf[ƒ^‚Ì“Ç‚ÝŽæ‚èê—pƒrƒ…[‚ª•\Ž¦‚³‚ê‚Ü‚·B</p>
+<div align="right"><a href="#top" class="help-return-link"><img src="/example/com_sun_web_ui/images/href/to_top.gif" alt="ƒy[ƒW‚̃gƒbƒv‚ÖƒWƒƒƒ“ƒv" width="11" height="10" hspace="4" border="0">ƒy[ƒW‚Ì擪‚Ö–ß‚é</a></div>
+</body>
+</html>
diff --git a/webconsole/html/ja/helpNav.html b/webconsole/html/ja/helpNav.html
new file mode 100644
index 0000000..f50e471
--- /dev/null
+++ b/webconsole/html/ja/helpNav.html
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+<title>APOC Manager - ƒwƒ‹ƒvƒRƒ“ƒeƒ“ƒc</title>
+ <meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ </HEAD>
+ <BODY>
+ <table border="0">
+ <tr>
+ <td><div class="help-header-3">
+<span class="help-header-3">–ÚŽŸ</span></div>
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ <ul>
+<li><a class="help-toc-link"
+ href="helpContent.html#concepts"
+ target="contentFrame">”wŒi‚ÆŠT”O</a> </li>
+ <ul>
+<li><a class="help-toc-link"
+ href="helpContent.html#dataStructures"
+ target="contentFrame">ƒf[ƒ^\‘¢</A></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#SecDataManagement"
+ target="contentFrame">ƒZƒLƒ…ƒŠƒeƒB‚¨‚æ‚уf[ƒ^ŠÇ—</A></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#GenConfigSettings"
+ target="contentFrame">\¬Ý’è‚̶¬</A></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#BCAssociation"
+ target="contentFrame">ŠÖ˜A•t‚¯</A></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#BCPolicyGroups"
+ target="contentFrame">ƒ|ƒŠƒV[ƒOƒ‹[ƒv</A></li>
+ </ul>
+<li><a class="help-toc-link" href="helpContent.html#ui"
+ target="contentFrame">ŠOŠÏ‚Æ“®ì</a> </li>
+<li><a class="help-toc-link"
+ href="helpContent.html#login"
+ target="contentFrame">ƒƒOƒCƒ“</a> </li>
+<li><a class="help-toc-link"
+ href="helpContent.html#masthead"
+ target="contentFrame">ƒ}ƒXƒgƒwƒbƒh‹æ‰æ</a> </li>
+<li><a class="help-toc-link"
+ href="helpContent.html#navigation"
+ target="contentFrame">ƒiƒrƒQ[ƒVƒ‡ƒ“‹æ‰æ</a></li>
+ <ul>
+<li><a class="help-toc-link"
+ href="helpContent.html#entities"
+ target="contentFrame">uƒ†[ƒU[vŒ©o‚µ</a></li>
+ <ul type="circle">
+<li><a class="help-toc-link"
+ href="helpContent.html#parpath"
+ target="contentFrame">Œn“ƒpƒX</a></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#navtable"
+ target="contentFrame">ƒiƒrƒQ[ƒVƒ‡ƒ“ƒe[ƒuƒ‹</a></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#adfilter"
+ target="contentFrame">“ÁŽêƒtƒBƒ‹ƒ^</a></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#search"
+ target="contentFrame">ŒŸõ</a></li>
+ </ul>
+<li><a class="help-toc-link"
+ href="helpContent.html#hoststab"
+ target="contentFrame">uƒzƒXƒgvŒ©o‚µ</a></li>
+ <ul type="circle">
+<li><a class="help-toc-link"
+ href="helpContent.html#domtree"
+ target="contentFrame">ƒhƒƒCƒ“ƒcƒŠ[</a></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#actionbar"
+ target="contentFrame">ƒAƒNƒVƒ‡ƒ“ƒo[</a></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#adfilterhosts"
+ target="contentFrame">Šg’£ƒtƒBƒ‹ƒ^</a></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#searchhosts"
+ target="contentFrame">ŒŸõ</a></li>
+ </UL>
+<li><a class="help-toc-link"
+ href="helpContent.html#psptab"
+ target="contentFrame">ƒ|ƒŠƒV[ƒŠƒ|ƒWƒgƒŠ</a></li>
+ <ul type="circle">
+<li><a class="help-toc-link"
+ href="helpContent.html#psptable"
+ target="contentFrame">ƒ|ƒŠƒV[ƒOƒ‹[ƒvƒe[ƒuƒ‹</a></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#pspactions"
+ target="contentFrame">ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚̃AƒNƒVƒ‡ƒ“ƒo[</a></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#psppriorities"
+ target="contentFrame">ƒ|ƒŠƒV[ƒOƒ‹[ƒv‚Ì—Dæ“x</a></li>
+ </ul>
+ </ul>
+<li><a class="help-toc-link"
+ href="helpContent.html#content"
+ target="contentFrame">ƒRƒ“ƒeƒ“ƒc‹æ‰æ</a> </li>
+ <ul>
+<li><a class="help-toc-link"
+ href="helpContent.html#policies"
+ target="contentFrame">uƒ|ƒŠƒV[vŒ©o‚µ</a></li>
+<ul type="circle"><li><a class="help-toc-link"
+ href="helpContent.html#caparpath"
+ target="contentFrame">Œn“ƒpƒX</a></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#subgroupstable"
+ target="contentFrame">uƒTƒuƒOƒ‹[ƒvvƒe[ƒuƒ‹</a></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#capolicies"
+ target="contentFrame">ƒ|ƒŠƒV[</a></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#casets"
+ target="contentFrame">ƒZƒbƒg</a></li>
+ </ul>
+<li><a class="help-toc-link"
+ href="helpContent.html#policysets"
+ target="contentFrame">uƒ|ƒŠƒV[ƒOƒ‹[ƒvvŒ©o‚µ</a></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#caentities"
+ target="contentFrame">uŠ„‚è“–‚ÄævŒ©o‚µ</a></li>
+<li><a class="help-toc-link"
+ href="helpContent.html#roles"
+ target="contentFrame">u–ðŠ„vŒ©o‚µ</a></li>
+ </ul>
+<li><a class="help-toc-link"
+ href="helpContent.html#reporting"
+ target="contentFrame">ƒŒƒ|[ƒg</a> </li>
+ </ul>
+ </td>
+ </tr>
+ </table>
+ </BODY>
+</HTML>
diff --git a/webconsole/html/ja/helpToolbar.html b/webconsole/html/ja/helpToolbar.html
new file mode 100644
index 0000000..a53ed55
--- /dev/null
+++ b/webconsole/html/ja/helpToolbar.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+<title>APOC Manager - ƒwƒ‹ƒvƒc[ƒ‹ƒo[</title>
+ <meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+<meta http-equiv="Content-Type" content="text/html; charset=shift-jis">
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ </HEAD>
+ <BODY>
+ <table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><img src="/apoc/images/dot.gif" width="1" height="15" alt=""/></td>
+ <td align="right" nowrap="nowrap" valign="bottom"><div
+class="TtlBtnDiv">
+<input name="Masthead.CloseButton" type="submit" class="Btn1" value="•Â‚¶‚é"
+title="ƒNƒŠƒbƒN‚·‚é‚ƃwƒ‹ƒvƒEƒBƒ“ƒhƒE‚ª•Â‚¶‚Ü‚·" onclick="javascript: parent.parent.close();
+return false;" onmouseover="javascript: if (this.disabled==0)
+this.className='Btn1Hov'" onmouseout="javascript: if (this.disabled==0) this.className='Btn1'"
+on blur="javascript: if (this.disabled==0) this.className='Btn1'"
+onfocus="javascript: if (this.disabled==0) this.className='Btn1Hov'" />
+ </div></td>
+ </tr>
+ </TABLE>
+</body>
diff --git a/webconsole/html/ko/Makefile.am b/webconsole/html/ko/Makefile.am
new file mode 100644
index 0000000..9b4fd61
--- /dev/null
+++ b/webconsole/html/ko/Makefile.am
@@ -0,0 +1,10 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = help
+
+kodir = ${htmldir}/ko
+ko_DATA =help.html \
+ helpToolbar.html \
+ helpNav.html \
+ helpContent.html \ No newline at end of file
diff --git a/webconsole/html/ko/help.html b/webconsole/html/ko/help.html
new file mode 100644
index 0000000..3e5c6c4
--- /dev/null
+++ b/webconsole/html/ko/help.html
@@ -0,0 +1,74 @@
+<html>
+ <head>
+ <title>Help - StarOffice Configuration Manager</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ </head>
+<script language="JavaScript">
+<!--
+
+var sPkgName = " "
+var sAnchorName = " "
+var sAnchorCon = " "
+var sAnchorNav = " "
+var sHelpLocale = " "
+if (window.anchor != null) {
+ sAnchorName = anchor;
+}
+if (window.top.opener.top.content.document.ContentAreaForm!=null) {
+ sAnchorName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.Anchor'].value;
+ sPkgName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.PkgName'].value;
+ sHelpLocale =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.HelpLocale'].value;
+ if (sHelpLocale=="nolocalizedhelp")
+ sHelpLocale="_en_US";
+}
+if (sAnchorName=="hoststab" || sAnchorName=="psptab" || sAnchorName=="entities" ||
+sAnchorName=="policies" || sAnchorName=="policysets" || sAnchorName=="caentities" ||
+sAnchorName=="roles" || sAnchorName=="")
+{
+ document.write('<frameset cols="30%, 70%" border="1" framespacing="0"> ');
+
+ document.write(' <frame name="navFrame"');
+ document.write(' title="Help Navigation Area"');
+ document.write(' id="nav"');
+ document.write(' src="helpNav.html">');
+
+ document.write(' <frameset rows="10%, 90%" border="1" framespacing="0">');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="contentFrame"');
+ document.write(' title="Help Content Area"');
+ document.write(' id="content"');
+ document.write(' src="helpContent.html#'+sAnchorName+'">');
+ document.write(' <\/frameset>');
+ document.write('<\/frameset>');
+
+} else {
+ // The correct package name is not available yet
+ document.write('<frameset rows="10%, 90%" border="0" framespacing="0"> ');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="templateContent"');
+ document.write(' title="Help Template"');
+ document.write(' id="temphelp"');
+ document.write(' src="../../packages/'+sPkgName+'/web/'+sAnchorName+sHelpLocale+'.html">');
+ document.write('<\/frameset>');
+}
+
+
+//-->
+
+</script>
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ </body>
+ </noframes>
+</html>
diff --git a/webconsole/html/ko/help/JavaHelpSearch/DOCS b/webconsole/html/ko/help/JavaHelpSearch/DOCS
new file mode 100644
index 0000000..93382c6
--- /dev/null
+++ b/webconsole/html/ko/help/JavaHelpSearch/DOCS
Binary files differ
diff --git a/webconsole/html/ko/help/JavaHelpSearch/DOCS.TAB b/webconsole/html/ko/help/JavaHelpSearch/DOCS.TAB
new file mode 100644
index 0000000..70f82e4
--- /dev/null
+++ b/webconsole/html/ko/help/JavaHelpSearch/DOCS.TAB
@@ -0,0 +1,14 @@
+eÿÿÿÿÿÿuÿÿÿÿÿÿÿÿÿÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÙÿÿÿý×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿý×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿý×ÿÝÿÿÿÿÿÿÿÝÿý×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuuÿÿÿÝÿÝý—ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuÿÿÿuÝÿÿÿÿÿÿ÷_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý×ÿÿ÷W_ÿÝw_÷]×ÿÿÿÚ_ÿÿÿÿÿÿÿ÷_Ì'ÿÿÿÿÿÿÿÿÿÜÒuÿÿÿÿÿÿÿÿÿÿÿÿ÷_ÿÿÐhÒ£
+<£
+Ì.0£DŒ†Å!#†Eõh¨òÆìo…Ô`Wü«0³
+¨ø£J1‹Œ.Œ+ó
+®(Ȫªèâb¨Ü¯3*£JÆŽŒ*¨Âª«ªê³J«ªÿÆDŽJbÍ,âóY
+4³Òbê8¨Â£Š0£2ª0¨ÂŽX¡‘!ƒ¬`LÂãk*¨ÖX®Ç2/Î,〉¨Òªê4£
+ª£2ª4£KÍ(Ò³
+øô,Âÿó 0¯ÿ2ËÌ+ÌÆ
+¸Â¼ÚbªÍ®+¬ÂÌ*2*¨È³2ãb£
+0º2Š2*âêº+º¨Ò¾+£2«0¨Â³ ³
+ªŒ/º£J¡+0ºúŒ+ꫪª¯ªªª1‹þªªª®®³òÌ…K3,Ê/ÿó ÿÿó Ì/ÿÿüÂüÂÿóKÿÿÍËÌ/ÿÿÿÿÿ0¿ÿüÒó ÿÿüÒÿÿÿÿÌ/ÿüÂÿÿÿÿÿÿÿÿÿÿÿÿÿÿ0¿ÿ4¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌ/ÿÿÿÿó ÿÿÿÿÿÿÿÿÿÿÿý€ \ No newline at end of file
diff --git a/webconsole/html/ko/help/JavaHelpSearch/Makefile.am b/webconsole/html/ko/help/JavaHelpSearch/Makefile.am
new file mode 100644
index 0000000..9896527
--- /dev/null
+++ b/webconsole/html/ko/help/JavaHelpSearch/Makefile.am
@@ -0,0 +1,11 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+
+JavaHelpSearchdir = ${htmldir}/ko/help/JavaHelpSearch
+JavaHelpSearch_DATA =SCHEMA \
+ POSITIONS \
+ TMAP \
+ DOCS \
+ OFFSETS \
+ DOCS.TAB \ No newline at end of file
diff --git a/webconsole/html/ko/help/JavaHelpSearch/OFFSETS b/webconsole/html/ko/help/JavaHelpSearch/OFFSETS
new file mode 100644
index 0000000..4cfc67e
--- /dev/null
+++ b/webconsole/html/ko/help/JavaHelpSearch/OFFSETS
Binary files differ
diff --git a/webconsole/html/ko/help/JavaHelpSearch/POSITIONS b/webconsole/html/ko/help/JavaHelpSearch/POSITIONS
new file mode 100644
index 0000000..26ebae3
--- /dev/null
+++ b/webconsole/html/ko/help/JavaHelpSearch/POSITIONS
Binary files differ
diff --git a/webconsole/html/ko/help/JavaHelpSearch/SCHEMA b/webconsole/html/ko/help/JavaHelpSearch/SCHEMA
new file mode 100644
index 0000000..74ea893
--- /dev/null
+++ b/webconsole/html/ko/help/JavaHelpSearch/SCHEMA
@@ -0,0 +1,2 @@
+JavaSearch 1.0
+TMAP bs=2048 rt=1 fl=-1 id1=1050 id2=1
diff --git a/webconsole/html/ko/help/JavaHelpSearch/TMAP b/webconsole/html/ko/help/JavaHelpSearch/TMAP
new file mode 100644
index 0000000..b70f372
--- /dev/null
+++ b/webconsole/html/ko/help/JavaHelpSearch/TMAP
Binary files differ
diff --git a/webconsole/html/ko/help/Makefile.am b/webconsole/html/ko/help/Makefile.am
new file mode 100644
index 0000000..e897dae
--- /dev/null
+++ b/webconsole/html/ko/help/Makefile.am
@@ -0,0 +1,55 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = JavaHelpSearch
+
+helpdir = ${htmldir}/ko/help
+help_DATA =background.html \
+ map.jhm \
+ gbgec.html \
+ gbgpr.html \
+ toc.xml \
+ gbgca.html \
+ gbgni.html \
+ empty.html \
+ index.xml \
+ gbgce.html \
+ gbgot.html \
+ gbgdc.html \
+ gbgcm.html \
+ gbgou.html \
+ gbzbc.html \
+ gbgpb.html \
+ gbgqj.html \
+ gbgqf.html \
+ gbgeb.html \
+ gbgps.html \
+ gbgpn.html \
+ p1.html \
+ gbgpw.html \
+ gbgpj.html \
+ gbgcd.html \
+ gbgoy.html \
+ gbgkr.html \
+ gbgow.html \
+ gbzci.html \
+ gbgqu.html \
+ gbgcn.html \
+ gbgqh.html \
+ gbgdh.html \
+ gbgpu.html \
+ gbgqe.html \
+ gbgpp.html \
+ gbgpm.html \
+ app.hs \
+ gbgpt.html \
+ copyright.html \
+ gbgqa.html \
+ gbgcg.html \
+ gbgoz.html \
+ gbgpe.html \
+ gbgda.html \
+ gbgqm.html \
+ gbgqt.html \
+ gbgpa.html \
+ gbgcr.html \ No newline at end of file
diff --git a/webconsole/html/ko/help/app.hs b/webconsole/html/ko/help/app.hs
new file mode 100644
index 0000000..de55c0a
--- /dev/null
+++ b/webconsole/html/ko/help/app.hs
@@ -0,0 +1,12 @@
+<?xml version='1.0' encoding='EUC-KR'?><!-- ident "%Z%%M% %I% %E% SMI" --><!DOCTYPE helpset PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN" "helpset_1_0.dtd">
+<helpset version="1.0" xml:lang="ko">
+<title>about_vman</title>
+<maps> <homeID></homeID> <mapref location="map.jhm"/>
+</maps>
+<view> <name>TOC</name> <label>����</label> <type>javax.help.TOCView</type> <data>toc.xml</data>
+</view>
+<view> <name>Index</name> <label>����</label> <type>javax.help.IndexView</type> <data>index.xml</data>
+</view>
+<view> <name>Search</name> <label>�˻�</label> <type>javax.help.SearchView</type> <data engine="com.sun.java.help.search.DefaultSearchEngine">JavaHelpSearch</data>
+</view>
+</helpset>
diff --git a/webconsole/html/ko/help/background.html b/webconsole/html/ko/help/background.html
new file mode 100644
index 0000000..05b522d
--- /dev/null
+++ b/webconsole/html/ko/help/background.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+
+
+<title>About the Configuration Manager</title>
+<script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="BACKGROUND"></A><h2>Configuration Manager Help</h2>
+
+<p>Welcome to the Sun Java&#8482; Desktop System Configuration Manager Help pages.</p>
+
+<p>Using the Configuration Manager, administrators can assign
+profiles to individual users or organisational units stored in a central
+configuration storage such as an existing corporate LDAP server. The
+configuration settings defined in these profiles are then applied on behalf of
+the users to the applications running on the Sun Java Desktop System such as the
+Gnome desktop, Mozilla, StarOffice and Gnome applications like Evolution.</p>
+
+<p>To get help for a specific part of the Configuration Manager,
+click on one of the links on the left.</p>
+
+</body>
+</html>
diff --git a/webconsole/html/ko/help/copyright.html b/webconsole/html/ko/help/copyright.html
new file mode 100644
index 0000000..2a2d36d
--- /dev/null
+++ b/webconsole/html/ko/help/copyright.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<p>Part No: 819-3617</p><p></p>Sun Microsystems, Inc. <p><br>4150 Network Circle<br>Santa Clara, CA 95054 <br>U.S.A.</p><p>Copyright 2006, Sun Microsystems, Inc.</p><p>Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual
+property rights may include one or more U.S. patents or pending patent applications in the U.S. and in other countries.</p>
+<p>U.S. Government Rights &#8211; Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements.</p>
+<p>This distribution may include materials developed by third parties.</p>
+<p>Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively
+licensed through X/Open Company, Ltd.</p>
+<p>Sun, Sun Microsystems, the Sun logo,
+the Solaris logo, the Java Coffee Cup logo, docs.sun.com,
+Java, and
+Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S.
+and other countries. All SPARC trademarks are used under license and are trademarks
+or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+Products bearing SPARC trademarks are based upon an architecture developed by Sun
+Microsystems, Inc. </p>
+<p>The OPEN LOOK and Sun&#153; Graphical User Interface was developed by Sun Microsystems, Inc. for
+its users and licensees. Sun acknowledges the pioneering efforts of Xerox in researching
+and developing the concept of visual or graphical user interfaces for the computer
+industry. Sun holds a non-exclusive license from Xerox to the Xerox Graphical User
+Interface, which license also covers Sun's licensees who implement OPEN LOOK GUIs
+and otherwise comply with Sun's written license agreements.</p>
+<p>Products covered by and information contained in this publication are controlled by U.S. Export Control
+laws and may be subject to the export or import laws in other countries. Nuclear,
+missile, chemical or biological weapons or nuclear maritime end uses or end users,
+whether direct or indirect, are strictly prohibited. Export or reexport to countries
+subject to U.S. embargo or to entities identified on U.S. export exclusion lists,
+including, but not limited to, the denied persons and specially designated nationals
+lists is strictly prohibited.</p>
+<p>DOCUMENTATION IS PROVIDED &#8220;AS IS&#8221; AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
+IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT,
+ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.</p>
+<p></p>
+<p>Sun Microsystems, Inc. d&#233;tient les droits de propri&#233;t&#233;
+intellectuelle relatifs &#224; la technologie incorpor&#233;e dans
+le produit qui est
+d&#233;crit dans ce document. En particulier, et ce sans limitation,
+ces droits de
+propri&#233;t&#233; intellectuelle peuvent inclure un ou plusieurs
+brevets am&#233;ricains ou des
+applications de brevet en attente aux Etats-Unis et dans d'autres
+pays.</p>
+<p>Cette distribution peut comprendre des composants
+d&#233;velopp&#233;s par des tierces personnes.</p>
+<p>Certaines composants de ce produit peuvent &#234;tre
+d&#233;riv&#233;es du logiciel Berkeley BSD, licenci&#233;s par
+l'Universit&#233; de
+Californie. UNIX est une marque d&#233;pos&#233;e aux Etats-Unis et
+dans d'autres pays; elle est
+licenci&#233;e exclusivement par X/Open Company, Ltd. </p>
+<p>Sun, Sun Microsystems, le logo Sun, le logo Solaris, le logo Java
+Coffee Cup, docs.sun.com,
+ Java et Solaris sont des
+marques de fabrique ou des marques d&#233;pos&#233;es
+de Sun Microsystems, Inc. aux Etats-Unis et dans d'autres pays. Toutes
+les marques
+SPARC sont utilis&#233;es sous licence et sont des marques de fabrique
+ou des
+marques d&#233;pos&#233;es de SPARC International, Inc. aux
+Etats-Unis et dans
+d'autres pays. Les produits portant les marques SPARC sont bas&#233;s
+sur une
+architecture d&#233;velopp&#233;e par Sun Microsystems, Inc.</p>
+<p>L'interface d'utilisation graphique OPEN LOOK et
+Sun&#153; a &#233;t&#233;
+d&#233;velopp&#233;e par Sun Microsystems, Inc. pour ses
+utilisateurs et
+licenci&#233;s. Sun reconna&#238;t les efforts de pionniers de Xerox
+pour la
+recherche et le d&#233;veloppement du concept des interfaces
+d'utilisation
+visuelle ou graphique pour l'industrie de l'informatique. Sun
+d&#233;tient une licence non exclusive de Xerox sur
+l'interface d'utilisation graphique Xerox, cette licence couvrant
+&#233;galement les
+licenci&#233;s de Sun qui mettent en place l'interface d'utilisation
+graphique OPEN LOOK et
+qui, en outre, se conforment aux licences &#233;crites de Sun.</p>
+<p>Les produits qui font l'objet de cette publication et les
+informations qu'il contient sont r&#233;gis par la legislation
+am&#233;ricaine en mati&#232;re de contr&#244;le des exportations et peuvent &#234;tre soumis au droit
+d'autres pays dans le domaine des exportations et importations. Les utilisations finales, ou
+utilisateurs finaux, pour des armes nucl&#233;aires, des missiles, des armes
+chimiques ou biologiques ou pour le nucl&#233;aire maritime, directement ou
+indirectement, sont strictement interdites. Les exportations ou r&#233;exportations vers
+des pays sous embargo des Etats-Unis, ou vers des entit&#233;s figurant sur les
+listes d'exclusion d'exportation am&#233;ricaines, y compris, mais de mani&#232;re non
+exclusive, la liste de personnes qui font objet d'un ordre de ne pas participer, d'une fa&#231;on
+directe ou
+indirecte, aux exportations des produits ou des services qui sont
+r&#233;gis par la
+legislation am&#233;ricaine en mati&#232;re de contr&#244;le des
+exportations et la
+liste de ressortissants sp&#233;cifiquement design&#233;s, sont
+rigoureusement interdites.</p>
+<p>LA DOCUMENTATION EST FOURNIE "EN L'ETAT" ET TOUTES AUTRES CONDITIONS,
+DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENT EXCLUES,
+DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT
+TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A L'APTITUDE A UNE
+UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFACON. </p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/ko/help/empty.html b/webconsole/html/ko/help/empty.html
new file mode 100644
index 0000000..2efd91e
--- /dev/null
+++ b/webconsole/html/ko/help/empty.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+<title>±¸¼º Áß</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="BACKGROUND"></A><h2>¾ÆÁ÷ »ç¿ëÇÒ ¼ö ¾ø´Â Ç׸ñ</h2>
+<p>¼±ÅÃÇÑ Ç׸ñ¿¡ ´ëÇÑ µµ¿ò¸»Àº ¾ÆÁ÷ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ºÒÆíÀ» µå·Á¼­ Á˼ÛÇÕ´Ï´Ù.</p>
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgca.html b/webconsole/html/ko/help/gbgca.html
new file mode 100644
index 0000000..7bde04a
--- /dev/null
+++ b/webconsole/html/ko/help/gbgca.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>1.Sun Desktop Manager 1.0.1 µµ¿ò¸»</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgca"></A><b>1Àå</b><h1>Sun Desktop Manager 1.0.1 µµ¿ò¸»</h1>
+<p>Sun Desktop Manager µµ¿ò¸» ÆäÀÌÁö¸¦ ½ÃÀÛÇÕ´Ï´Ù. Desktop ManagerÀÇ Æ¯Á¤ ºÎºÐ¿¡ ´ëÇÑ µµ¿ò¸»À» º¸·Á¸é ¿ÞÂÊ ¸µÅ© Áß Çϳª¸¦ Ŭ¸¯ÇϽʽÿÀ. ¿Â¶óÀÎ µµ¿ò¸»Àº Desktop ManagerÀÇ ±â´É ¹× »ç¿ë¿¡ ´ëÇÑ Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgcd.html b/webconsole/html/ko/help/gbgcd.html
new file mode 100644
index 0000000..19c828b
--- /dev/null
+++ b/webconsole/html/ko/help/gbgcd.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ &#8212; ¸ðµÎ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcd"></A><h2>ÇÁ·ÎÇÊ &#8212; ¸ðµÎ</h2>
+<p>ÇÁ·ÎÇÊ &#8212; ¸ðµÎ ÆäÀÌÁö¿¡´Â ¿ä¼Ò¿¡ ÇÒ´çµÇÁö ¾ÊÀº ÇÁ·ÎÇÊÀ» Æ÷ÇÔÇÏ¿© »ç¿ë °¡´ÉÇÑ ¸ðµç ÇÁ·ÎÇÊÀÌ Ç¥½ÃµË´Ï´Ù. ÇÁ·ÎÇÊÀº µÎ Å×ÀÌºí¿¡ Ç¥½ÃµÇ´Âµ¥, Çϳª´Â µµ¸ÞÀÎ ÇÁ·ÎÇÊ¿ëÀÌ°í ´Ù¸¥ Çϳª´Â Á¶Á÷ ÇÁ·ÎÇÊ¿ëÀÔ´Ï´Ù.</p>
+<p>ÇÁ·ÎÇÊ Å×À̺íÀ» »ç¿ëÇÏ¿© ´ÙÀ½ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<ul><li><p><A HREF="gbgcr.html#gbgcr">»õ ÇÁ·ÎÇÊ ¸¸µé±â</A></p>
+</li>
+<li><p><A HREF="gbgpe.html#gbgpe">ÇÁ·ÎÇÊ »èÁ¦</A></p>
+</li>
+<li><p><A HREF="gbgpu.html#gbgpu">ÇÁ·ÎÇÊ À̸§ ¹Ù²Ù±â</A></p>
+</li>
+<li><p><A HREF="gbgow.html#gbgow">ÇÁ·ÎÇÊ º¹»ç ¹× À̵¿</A></p>
+</li>
+<li><p><A HREF="gbgpj.html#gbgpj">ÇÁ·ÎÇÊ °¡Á®¿À±â</A></p>
+</li>
+<li><p><A HREF="gbgou.html#gbgou">ÇÁ·ÎÇÊ ³»º¸³»±â</A></p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgce.html b/webconsole/html/ko/help/gbgce.html
new file mode 100644
index 0000000..97bd2af
--- /dev/null
+++ b/webconsole/html/ko/help/gbgce.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¼Ò°³</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgce"></A><h2>¼Ò°³</h2>
+<p>Desktop Manager´Â µ¥½ºÅ©Åé ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ëÇØ <i>ÇÁ·ÎÇÊ</i>À̶ó°í ÇÏ´Â Áß¾Ó ÁýÁᫎ ±¸¼º ¼³Á¤ °ü¸®¸¦ Á¦°øÇÏ´Â µµ±¸ÀÔ´Ï´Ù. Desktop Manager¸¦ »ç¿ëÇϸé ÇÁ·ÎÇÊÀ» º¸°í, Á¶Á÷ ¶Ç´Â µµ¸ÞÀÎ °èÃþÀÇ ´Ù¾çÇÑ ¿ä¼Ò¿¡ ÇÒ´çÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÁ·ÎÇÊÀº »ç¿ëÀÚ°¡ µ¥½ºÅ©Åé ¼¼¼ÇÀ» ½ÃÀÛÇϰųª Desktop Manager¿¡¼­ °ü¸®µÇ´Â ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÃÀÛÇÒ ¶§ Àû¿ëµË´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÇÇàÇÏ´Â »ç¿ëÀÚ³ª È£½ºÆ®¿¡ °ü·ÃµÈ ¸ðµç ÇÁ·ÎÇÊÀÌ °Ë»öµÇ°í, ÀÌ ¼³Á¤Àº ÀÀ¿ë ÇÁ·Î±×·¥ ¹× »ç¿ëÀÚÀÇ »ç¿ëÀÚ Á¤ÀÇ ¼³Á¤ ·ÎÄà ±âº»°ª°ú ÅëÇյ˴ϴÙ. ÇÁ·ÎÇÊÀº Áß¾Ó ÁýÁß½ÄÀ¸·Î °ü¸®µÈ ±âº»°ª ÁýÇÕÀ» ÀÀ¿ë ÇÁ·Î±×·¥¿¡ Á¦°øÇϰųª Çʼö ¼³Á¤À» ½ÃÇàÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<p>È®ÀÎÇØ¾ß ÇÒ ¿ë¾î:</p>
+<ul><li><p><i>±¸¼º ¸®Æ÷ÁöÅ丮</i>: Á¶Á÷ ¹× µµ¸ÞÀÎ Æ®¸® ÄÁÅ×À̳ʰ¡ ÇÁ·ÎÇÊ°ú ÇÔ²² ÀúÀåµË´Ï´Ù.</p>
+</li>
+<li><p><i>µµ¸ÞÀÎ</i>: µµ¸ÞÀÎ Æ®¸®ÀÇ ¿ä¼ÒÀÔ´Ï´Ù. ÄÄÇ»ÅÍ ³×Æ®¿öÅ©ÀÇ ¿µ¿ªÀ» ³ªÅ¸³À´Ï´Ù. µµ¸ÞÀÎ ¹× È£½ºÆ®¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+</li>
+<li><p><i>¿ä¼Ò</i>: ±¸¼º µ¥ÀÌÅ͸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ³í¸®Àû °³Ã¼ÀÔ´Ï´Ù. »ç¿ëÀÚ, ¿ªÇÒ/±×·ì ¹× Á¶Á÷Àº Desktop Manager¿¡¼­ ÀνÄÇÒ ¼ö ÀÖ´Â ¿£Æ¼Æ¼ÀÇ ¿¹ÀÔ´Ï´Ù.</p>
+</li>
+<li><p><i>LDAP</i>: Lightweight Directory Access ProtocolÀÔ´Ï´Ù. LDAPÀº TCP/IP¿¡¼­ ½ÇÇàµÇ´Â µð·ºÅ丮 ¼­ºñ½º ÇÁ·ÎÅäÄÝÀÔ´Ï´Ù. LDAPÀÇ ¼¼ºÎ »çÇ×Àº RFC 1777 'The Lightweight Directory Access Protocol'¿¡ Á¤ÀǵǾî ÀÖ½À´Ï´Ù.</p>
+</li>
+<li><p><i>Á¶Á÷</i>: Á¶Á÷ Æ®¸®ÀÇ ¿ä¼ÒÀÔ´Ï´Ù. Á¶Á÷ ¶Ç´Â ÇÏÀ§ Á¶Á÷À» ³ªÅ¸³À´Ï´Ù(¿¹: &#8220;Äݼ¾ÅÍ&#8221;). Á¶Á÷, »ç¿ëÀÚ ¶Ç´Â ¿ªÇÒÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+</li>
+<li><p><i>ÇÁ·ÎÇÊ</i>: ¸í¸íµÈ ±¸¼º ¼³Á¤ ÄÁÅ×À̳ÊÀÔ´Ï´Ù. ÀÌ ÄÁÅ×À̳ʴ ±¸¼º ¸®Æ÷ÁöÅ丮 ¾È¿¡ ÀúÀåµÇ¸ç ¿ä¼Ò¿¡ ÇÒ´çµÉ ¼ö ÀÖ½À´Ï´Ù.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgcg.html b/webconsole/html/ko/help/gbgcg.html
new file mode 100644
index 0000000..58b21bd
--- /dev/null
+++ b/webconsole/html/ko/help/gbgcg.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÀÏ¹Ý µî·Ï Á¤º¸</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcg"></A><h3>ÀÏ¹Ý µî·Ï Á¤º¸</h3>
+<p>ÀÏ¹Ý µî·Ï Á¤º¸ ÆäÀÌÁö¿¡¼­´Â ÇÁ·ÎÇÊ¿¡ ´ëÇÑ ÀÏ¹Ý Á¤º¸¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÆäÀÌÁö´Â ÇÁ·ÎÇÊ ÆíÁý±â âÀÇ ±âº» º¸±âÀÔ´Ï´Ù. </p>
+<p><hr size="1" noshade><p><b>Âü°í &#8211; </b>ÇÁ·ÎÇÊ ÆíÁý±â´Â »ç¿ëÀÚ°¡ »õ·Î ¸¸µé±â ¹öÆ°À» Ŭ¸¯ÇÏ¿© »õ ÇÁ·ÎÇÊÀ» ¸¸µé ¶§ ³ªÅ¸³³´Ï´Ù.</p>
+<hr size="1" noshade></p><p><A HREF="gbgpb.html#gbgpb">ÇÁ·ÎÇÊ ÀÏ¹Ý µî·Ï Á¤º¸ ÁöÁ¤</A>À» ÂüÁ¶ÇϽʽÿÀ.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgcm.html b/webconsole/html/ko/help/gbgcm.html
new file mode 100644
index 0000000..72a00a3
--- /dev/null
+++ b/webconsole/html/ko/help/gbgcm.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Ž»ö ¿µ¿ª</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcm"></A><h3>Ž»ö ¿µ¿ª</h3>
+<p>Ž»ö Æ®¸®´Â Á¶Á÷ ¹× µµ¸ÞÀÎ Æ®¸®¸¦ Ž»öÇÏ¿© ¿ä¼Ò¸¦ ¼±ÅÃÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Æ®¸®´Â ¿ä¼ÒÀÇ °èÃþÀ» ¹Ý¿µÇÕ´Ï´Ù. ³ëµå¿¡ ÇÏÀ§ ³ëµå°¡ ÀÖ´Â °æ¿ì ÆĶõ»ö »ï°¢ÇüÀÌ ³ëµå À̸§ ¿ÞÂÊ¿¡ Ç¥½ÃµË´Ï´Ù. ÆĶõ»ö »ï°¢ÇüÀ» Ŭ¸¯ÇÏ¸é ³ëµå°¡ È®ÀåµÇ°í ÀϺΠÇÏÀ§ ³ëµå°¡ Ç¥½ÃµË´Ï´Ù.</p>
+<p><hr size="1" noshade><p><b>Âü°í &#8211; </b>±âº»ÀûÀ¸·Î È®ÀåµÈ °¢ ³ëµå¿¡ ´ëÇØ ÇÏÀ§ ³ëµå°¡ 10°³¸¸ Ç¥½ÃµË´Ï´Ù. ÇÏÀ§ ³ëµå°¡ 11°³ ÀÌ»óÀÎ °æ¿ì 11¹ø° &#8220;³ëµå&#8221;´Â ¿ä¼Ò¸¦ ÂüÁ¶ÇÏÁö ¾ÊÁö¸¸ Ç¥½ÃµÇÁö ¾ÊÀº ³ëµå°¡ ÀÖÀ½À» ³ªÅ¸³À´Ï´Ù. &#8220;... Ç¥½ÃµÇÁö ¾ÊÀº ¿ä¼Ò°¡ ÀÖ½À´Ï´Ù&#8221;. ÀÌ &#8220;³ëµå&#8221;¸¦ Ŭ¸¯Çϸé ã±â ±â´ÉÀÌ ¿­¸³´Ï´Ù.</p>
+<hr size="1" noshade></p><p>¿ä¼Ò¸¦ ¼±ÅÃÇÏ·Á¸é Æ®¸®¸¦ Ž»öÇÏ¿© ¿øÇÏ´Â ¿ä¼Ò¸¦ Ŭ¸¯ÇÕ´Ï´Ù. ¿ä¼Ò¸¦ ¼±ÅÃÇϸé ÇØ´ç ¿ä¼Ò°¡ °­Á¶ Ç¥½ÃµÇ°í, ¿ä¼ÒÀÇ ÇÒ´ç ¹× »ó¼ÓµÈ ÇÁ·ÎÇÊÀÌ ³»¿ë ¿µ¿ª¿¡ Ç¥½ÃµË´Ï´Ù.</p>
+<p>Ž»öÀº Æ®¸® °èÃþ¿¡¼­ ¿ä¼Ò¸¦ ã±â À§ÇØ ¹Ýº¹ °Ë»ö ¸ÞÄ¿´ÏÁò(<A HREF="gbgpa.html#gbgpa">¿ä¼Ò °Ë»ö</A> ÂüÁ¶)°ú ºñ¹Ýº¹ ã±â(<A HREF="gbgqt.html#gbgqt">ã±â ±â´É »ç¿ë</A> ÂüÁ¶)¸¦ Á¦°øÇϱ⵵ ÇÕ´Ï´Ù. °Ë»ö ¹öÆ°À» Ŭ¸¯ÇÏ¸é °Ë»ö âÀÌ ¿­¸³´Ï´Ù.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgcn.html b/webconsole/html/ko/help/gbgcn.html
new file mode 100644
index 0000000..452b38a
--- /dev/null
+++ b/webconsole/html/ko/help/gbgcn.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>»õ ±¸¼º ¸®Æ÷ÁöÅ丮 ¸¸µé±â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcn"></A><h4>»õ ±¸¼º ¸®Æ÷ÁöÅ丮 ¸¸µé±â</h4>
+<p>±¸¼º ¸®Æ÷ÁöÅ丮´Â Á¶Á÷ °èÃþ Á¤º¸¿Í °¢ ¿ä¼ÒÀÇ ÇÁ·ÎÇÊ ¹× ÇÒ´ç µ¥ÀÌÅÍ°¡ ÀúÀåµÇ´Â À§Ä¡ÀÔ´Ï´Ù.</p>
+<h5>´Ü°è</h5><ol><li><p><b>±¸¼º ¸®Æ÷ÁöÅ丮 Å×ÀÌºí¿¡¼­ »õ·Î ¸¸µé±â ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>»õ ±¸¼º ¸®Æ÷ÁöÅ丮 ¸¶¹ý»ç°¡ ¿­¸³´Ï´Ù. ÀÌ ¸¶¹ý»ç´Â Desktop Manager¿¡¼­ »ç¿ëÇÒ ±¸¼º ¸®Æ÷ÁöÅ丮¸¦ ¸¸µå´Â µ¥ »ç¿ëµË´Ï´Ù.</p>
+</li>
+<li><p><b>¸®Æ÷ÁöÅ丮 À̸§ Çʵ忡¼­ »õ ±¸¼º ¸®Æ÷ÁöÅ丮ÀÇ À̸§À» ÀÔ·ÂÇÑ ÈÄ ´ÙÀ½À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>¸®Æ÷ÁöÅ丮 À¯Çü ¸ñ·Ï¿¡¼­ ¸®Æ÷ÁöÅ丮 À¯ÇüÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p><p>¸¶¹ý»ç¸¦ »ç¿ëÇÏ¿© ¼¼ °¡Áö À¯ÇüÀÇ ¸®Æ÷ÁöÅ丮¸¦ ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<ul><li><p>LDAP: LDAP¿¡¼­ °èÃþÀ» °¡Á®¿À¸ç ¸ðµç µ¥ÀÌÅÍ°¡ LDAP¿¡ ÀúÀåµË´Ï´Ù.</p>
+</li>
+<li><p>ÆÄÀÏ ±â¹Ý: ÆÄÀÏ¿¡¼­ °èÃþÀ» °¡Á®¿À¸ç ¸ðµç µ¥ÀÌÅÍ°¡ µð·ºÅ丮¿Í ÆÄÀÏ¿¡ ÀúÀåµË´Ï´Ù.</p>
+</li>
+<li><p>ÇÏÀ̺긮µå: LDAP¿¡¼­ °èÃþÀ» °¡Á®¿ÀÁö¸¸ ¸ðµç µ¥ÀÌÅÍ°¡ µð·ºÅ丮¿Í ÆÄÀÏ¿¡ ÀúÀåµË´Ï´Ù.</p>
+</li>
+</ul>
+</li>
+<li><p><b>´ÙÀ½ ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>ÀÌ ¸®Æ÷ÁöÅ丮¿¡ ´ëÇØ ±¸¼ºÇÒ LDAP ¼­¹öÀÇ ¼¼ºÎ Á¤º¸¸¦ ÀÔ·ÂÇÕ´Ï´Ù.</b></p><p>¼­¹ö°¡ ½ÇÇàµÇ´Â È£½ºÆ® À̸§°ú Æ÷Æ®°¡ ÇÊ¿äÇÕ´Ï´Ù. SSLÀ» »ç¿ëÇÏ¿© ÀÌ ¼­¹ö¿¡ ¿¬°áÇÒÁö ¿©ºÎ¸¦ ¼±ÅÃÇÒ ¼öµµ ÀÖ½À´Ï´Ù. </p>
+</li>
+<li><p><b>³ª¸ÓÁö ´Ü°è´Â ÀÌÀü ´Ü°è¿¡¼­ ¼±ÅÃÇÑ ³»¿ë¿¡ µû¶ó °áÁ¤µË´Ï´Ù.</b><b>¸¶¹ý»ç¿¡¼­ Á¦°øÇÏ´Â ÁöħÀ» µû¸¨´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgcr.html b/webconsole/html/ko/help/gbgcr.html
new file mode 100644
index 0000000..36fe7e8
--- /dev/null
+++ b/webconsole/html/ko/help/gbgcr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>»õ ÇÁ·ÎÇÊ ¸¸µé±â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcr"></A><h3>»õ ÇÁ·ÎÇÊ ¸¸µé±â</h3>
+<h5>´Ü°è</h5><ol><li><p><b>¿øÇÏ´Â ÇÁ·ÎÇÊ Å×À̺í(Á¶Á÷ ¶Ç´Â µµ¸ÞÀÎ)¿¡¼­ »õ·Î ¸¸µé±â ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>ÇÁ·ÎÇÊ ÆíÁý±â ¸¶¹ý»ç°¡ ¿­¸³´Ï´Ù. </p>
+</li>
+<li><p><b>¸¶¹ý»ç¿¡¼­ Á¦°øÇÏ´Â ÁöħÀ» µû¸¨´Ï´Ù.</b></p><p>ÇÁ·ÎÇÊ ÆíÁý±â¸¦ »ç¿ëÇÏ¿© »õ ÇÁ·ÎÇÊ ¸¸µé±â¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ¿Â¶óÀÎ µµ¿ò¸»ÀÇ <A HREF="gbgec.html#gbgec">ÇÁ·ÎÇÊ ÆíÁý±â</A> ÀýÀ» ÂüÁ¶ÇϽʽÿÀ.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgda.html b/webconsole/html/ko/help/gbgda.html
new file mode 100644
index 0000000..b5a7fc5
--- /dev/null
+++ b/webconsole/html/ko/help/gbgda.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¼³Á¤ ¿ä¾à</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgda"></A><h3>¼³Á¤ ¿ä¾à</h3>
+<p>¼³Á¤ ¿ä¾àÀº ¼±ÅÃÇÑ ÇÁ·ÎÇÊÀÇ µ¥ÀÌÅÍ°¡ Æ÷ÇÔµÈ ¸ðµç ±¸¼º ¼³Á¤ÀÇ Àбâ Àü¿ë º¸±âÀÔ´Ï´Ù.</p>
+<p>¼³Á¤ ¿ä¾à ÆäÀÌÁö¿¡´Â ¼³Á¤ ¿ä¾à Å×À̺íÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ÀÌ Å×ÀÌºí¿¡´Â ÇöÀç ÇÁ·ÎÇÊÀÇ µ¥ÀÌÅÍ°¡ Æ÷ÇÔµÈ ±¸¼º ¼³Á¤À» ¹üÁÖº°·Î ºÐ·ùÇÏ¿© Ç¥½ÃÇÕ´Ï´Ù. ÀÌ Å×À̺íÀº ´ÙÀ½ Çʵå·Î ±¸¼ºµË´Ï´Ù.</p>
+<p></p>
+<ul><li><p>À̸§: ¼³Á¤ À̸§</p>
+</li>
+<li><p>°ª¼³Á¤ °ª</p>
+</li>
+<li><p>»óÅÂ: »óÅ ¿­¿¡´Â &#8220;&lt;profileName>¿¡ Á¤ÀǵÈ" Ç׸ñ À¯ÇüÀÌ µé¾î ÀÖ½À´Ï´Ù. ¿©±â¼­ &lt;profileName>Àº ÇÁ·ÎÇÊ ÆíÁý±â¸¦ ±¸¼º ¼³Á¤ ÆäÀÌÁö·Î ÀüȯÇÏ°í ÀÌ ÇÁ·ÎÇÊÀÇ Æ¯Á¤ ¼³Á¤À¸·Î À̵¿ÇÏ´Â ¸µÅ©ÀÔ´Ï´Ù.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgdc.html b/webconsole/html/ko/help/gbgdc.html
new file mode 100644
index 0000000..16cc15c
--- /dev/null
+++ b/webconsole/html/ko/help/gbgdc.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ &#8212; Æ®¸® º¸±â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgdc"></A><h2>ÇÁ·ÎÇÊ &#8212; Æ®¸® º¸±â</h2>
+<p>ÇÁ·ÎÇÊ &#8212; Æ®¸® º¸±â ÆäÀÌÁö¿¡´Â ÇöÀç ¿ä¼Ò¿¡ ÇÒ´çµÈ »ç¿ë °¡´ÉÇÑ ÇÁ·ÎÇÊÀÌ ¸ðµÎ Ç¥½ÃµË´Ï´Ù. ÆäÀÌÁö ¿ÞÂÊ¿¡´Â Ž»ö ¿µ¿ªÀÌ ÀÖ°í, ¿©±â¿¡¼­ Æ®¸® °èÃþÀ» Ž»öÇÏ¿© ÇÁ·ÎÇÊÀ» ãÀ» ¼ö ÀÖ½À´Ï´Ù. ÆäÀÌÁö ¿À¸¥ÂÊ¿¡´Â ³»¿ë ¿µ¿ªÀÌ ÀÖ°í, ¿©±â¿¡´Â Ž»ö ¿µ¿ª¿¡¼­ ¼±ÅÃÇÑ ¸ðµç ÇÁ·ÎÇÊÀÇ Á¤º¸°¡ Ç¥½ÃµË´Ï´Ù.</p>
+<p>Âü°í Ç׸ñ: <A HREF="gbgcm.html#gbgcm">Ž»ö ¿µ¿ª</A> ¹× <A HREF="gbgoy.html#gbgoy">³»¿ë ¿µ¿ª</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgdh.html b/webconsole/html/ko/help/gbgdh.html
new file mode 100644
index 0000000..5a15873
--- /dev/null
+++ b/webconsole/html/ko/help/gbgdh.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>°í±Þ ¿É¼Ç</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgdh"></A><h3>°í±Þ ¿É¼Ç</h3>
+<p>°í±Þ ¿É¼Ç ÆäÀÌÁö¿¡¼­´Â ÇöÀç ÇÁ·ÎÇÊ¿¡ ´ëÇÑ °í±Þ ¿É¼ÇÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÆäÀÌÁö¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â ÁÖ¿ä ¿É¼Ç¿¡´Â µÎ °¡Áö°¡ ÀÖ½À´Ï´Ù.</p>
+<ul><li><p>Àû¿ë À§Ä¡: ÇÁ·ÎÇÊÀ» Á¶Á÷ ¶Ç´Â µµ¸ÞÀÎ Æ®¸®ÀÇ ´Ù¸¥ ÀúÀå¼Ò À§Ä¡·Î À̵¿ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀúÀå¼Ò À§Ä¡¸¦ À̵¿ÇÏ¿© ÇÁ·ÎÇÊÀÌ ÇÒ´çµÉ ¼ö ÀÖ´Â ¿ä¼Ò ÁýÇÕÀ» º¯°æÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÇÁ·ÎÇÊÀº ÇÁ·ÎÇÊÀÌ ÀúÀåµÇ¾î ÀÖ´Â ¿ä¼Ò¿¡¸¸ ÇÒ´çÇϰųª, ÇÁ·ÎÇÊÀÌ ÀúÀåµÈ ¿ä¼Ò ¾Æ·¡¿¡ ÀÖ´Â ÇÏÀ§ Æ®¸® ³» ¿ä¼Ò¿¡¸¸ ÇÒ´çÇÒ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù.</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>ÁÖÀÇ &#8211; </b>°á°ú ·¹À̾ƿôÀÌ À§¿¡¼­ ¾ð±ÞÇÑ ±ÔÄ¢À» À§¹ÝÇÒ °æ¿ì¿¡´Â &#8220;Àû¿ë À§Ä¡&#8221; ¸Å°³ º¯¼ö¸¦ º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù. ¿¹¸¦ µé¾î, ÇÁ·ÎÇÊÀ» Æ®¸® °èÃþ ¾Æ·¡·Î À̵¿ÇÏ°í, ±âÁ¸ ÇÒ´çÀÌ ÇÁ·ÎÇÊÀ» ÇÁ·ÎÇÊ ÀúÀå¼Ò À§Ä¡ ¾Æ·¡¿¡ ÀÖ´Â ¿ä¼Ò¿¡ ¿¬°áÇÏ°í ÇÁ·ÎÇÊÀ» À̵¿ÇÑ ÈÄ µ¿ÀÏÇÑ ¿ä¼Ò¿¡ ¿¬°áÇÏ´Â °æ¿ì ÀÌ ¸Å°³ º¯¼ö¸¦ º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù. ÇÏÁö¸¸ ÇöÀç´Â ¿ä¼Ò°¡ ÇÁ·ÎÇÊÀÇ ÀúÀå¼Ò À§Ä¡ À§¿¡ ÀÖ½À´Ï´Ù. ÀÌ ÀÛ¾÷À» ½ÃµµÇÒ °æ¿ì ÀÛ¾÷ÀÌ Ãë¼ÒµÇ°í °æ°í ¸Þ½ÃÁö°¡ Ç¥½ÃµË´Ï´Ù.</p><hr size="1" noshade></li>
+<li><p>º´ÇÕ ¼ø¼­: µ¿ÀÏÇÑ ¿ä¼Ò¿¡ ÀúÀåµÈ ¸ðµç ÇÁ·ÎÇÊÀÌ º´ÇյǴ ¼ø¼­¸¦ ÁöÁ¤ÇÕ´Ï´Ù. </p>
+<p>µÎ °³ ÀÌ»óÀÇ ÇÁ·ÎÇÊÀ» ´ÜÀÏ ¿ä¼Ò¿¡ ÇÒ´çÇÒ ¼ö ÀÖ°í µÎ °³ ÀÌ»óÀÇ ÇÁ·ÎÇÊ¿¡¼­ µ¿ÀÏÇÑ ¼³Á¤À» Á¤ÀÇÇÒ ¼ö Àֱ⠶§¹®¿¡ ´ÜÀÏ ¿ä¼Ò¿¡ ´ëÇØ ÇÁ·ÎÇÊÀÌ º´ÇյǴ ¼ø¼­¸¦ Á¤ÀÇÇØ¾ß ÇÕ´Ï´Ù. º´ÇÕ ¼ø¼­¸¦ Á¤ÀÇÇϸé ÇÑ °³ÀÇ ¼³Á¤ÀÌ µ¿ÀÏÇÑ ¿ä¼Ò°¡ ÇÒ´çµÈ µÑ ÀÌ»óÀÇ ÇÁ·ÎÇÊ¿¡ Á¤ÀǵǾî ÀÖ¾î ¹ß»ýÇÏ´Â Ãæµ¹À» ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<p>¸ÕÀú ÀúÀå¼Ò À§Ä¡¸¦ »ç¿ëÇÏ¿© º´ÇÕ ¼ø¼­¸¦ °áÁ¤ÇÕ´Ï´Ù. Æ®¸® ·çÆ®¿¡ °¡±î¿î À§Ä¡¿¡ ÀÖ´Â ¿ä¼Ò¿¡ ÀúÀåµÈ ÇÁ·ÎÇÊÀÌ ¸ÕÀú º´Çյ˴ϴÙ. µû¶ó¼­ Æ®¸® °èÃþ¿¡¼­ ÇÏÀ§ ¼öÁØ¿¡ ÀúÀåµÈ ÇÁ·ÎÇÊÀÌ ±× ´ÙÀ½¿¡ º´Çյ˴ϴÙ. ³ªÁß¿¡ º´ÇÕµÈ ÇÁ·ÎÇÊ ¼³Á¤ÀÌ ÀÌÀü¿¡ º´ÇÕµÈ ÇÁ·ÎÇÊ ¼³Á¤À» µ¤¾î¾¹´Ï´Ù.</p>
+</li>
+</ul>
+<p><A HREF="gbgqu.html#gbgqu">Àû¿ë À§Ä¡ º¯°æ</A>, <A HREF="gbgqe.html#gbgqe">ÇÁ·ÎÇÊ¿¡ º´ÇÕ ¼ø¼­ ÇÒ´ç</A>À» ÂüÁ¶ÇϽʽÿÀ.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgeb.html b/webconsole/html/ko/help/gbgeb.html
new file mode 100644
index 0000000..cb4825e
--- /dev/null
+++ b/webconsole/html/ko/help/gbgeb.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>±¸¼º ¼³Á¤</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgeb"></A><h3>±¸¼º ¼³Á¤</h3>
+<p>±¸¼º ¼³Á¤ ÆäÀÌÁö¿¡¼­´Â ¼±ÅÃÇÑ ÇÁ·ÎÇÊ¿¡ ÀúÀåµÈ ±¸¼º ¼³Á¤À» º¸°í ÆíÁýÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<p><A HREF="gbgot.html#gbgot">ÇÁ·ÎÇÊ ±¸¼º ¼³Á¤ º¸±â ¹× ÆíÁý</A>À» ÂüÁ¶ÇϽʽÿÀ.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgec.html b/webconsole/html/ko/help/gbgec.html
new file mode 100644
index 0000000..2296038
--- /dev/null
+++ b/webconsole/html/ko/help/gbgec.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ ÆíÁý±â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgec"></A><h2>ÇÁ·ÎÇÊ ÆíÁý±â</h2>
+<p>ÇÁ·ÎÇÊ ÆíÁý±â´Â »õ ÇÁ·ÎÇÊÀ» ¸¸µé°í ±âÁ¸ ÇÁ·ÎÇÊÀ» ÆíÁýÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¶ÇÇÑ ÇöÀç ¼±ÅÃµÈ ÇÁ·ÎÇÊÀÇ ÇöÀç ¼³Á¤ ¹× ¿É¼ÇÀ» º¼ ¼öµµ ÀÖ½À´Ï´Ù.</p>
+<p>ÇÁ·ÎÇÊ &#8212; Æ®¸® º¸±â ³»¿ë ¿µ¿ª ¶Ç´Â ÇÁ·ÎÇÊ &#8212; ¸ðµç ÆäÀÌÁöÀÇ Å×À̺í Áß Çϳª¿¡ ³ª¿Í ÀÖ´Â ÇÁ·ÎÇÊ À̸§À» Ŭ¸¯Çϸé ÇÁ·ÎÇÊ ÆíÁý±â¸¦ ¿­ ¼ö ÀÖ½À´Ï´Ù.</p>
+<p><hr size="1" noshade><p><b> ÆÁ &#8211; </b>»õ ÇÁ·ÎÇÊÀ» ¸¸µé·Á¸é <A HREF="gbgni.html#gbgni">»õ ÇÁ·ÎÇÊ ¸¸µé±â</A>¸¦ ÂüÁ¶ÇϽʽÿÀ.</p>
+<hr size="1" noshade></p><p>ÇÁ·ÎÇÊ ÆíÁý±â¿¡´Â ´ÙÀ½ ÅÇ ÆäÀÌÁö°¡ Æ÷ÇԵ˴ϴÙ.</p>
+<ul><li><p><A HREF="gbgcg.html#gbgcg">ÀÏ¹Ý µî·Ï Á¤º¸</A></p>
+</li>
+<li><p><A HREF="gbgeb.html#gbgeb">±¸¼º ¼³Á¤</A></p>
+</li>
+<li><p><A HREF="gbgkr.html#gbgkr">ÇÒ´çµÈ ¿ä¼Ò</A></p>
+</li>
+<li><p><A HREF="gbgda.html#gbgda">¼³Á¤ ¿ä¾à</A></p>
+</li>
+<li><p><A HREF="gbgdh.html#gbgdh">°í±Þ ¿É¼Ç</A></p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgkr.html b/webconsole/html/ko/help/gbgkr.html
new file mode 100644
index 0000000..f6c5462
--- /dev/null
+++ b/webconsole/html/ko/help/gbgkr.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÒ´çµÈ ¿ä¼Ò</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgkr"></A><h3>ÇÒ´çµÈ ¿ä¼Ò</h3>
+<p>ÇÒ´çµÈ ¿ä¼Ò ÆäÀÌÁö¿¡´Â ÇöÀç ÇÁ·ÎÇÊ¿¡ ÇÒ´çµÈ ¿ä¼Ò°¡ ³ª¿­µÇ¾î ÀÖÀ¸¸ç ¿ä¼Ò¸¦ ÇÒ´çÇϰųª ÇÒ´ç Ãë¼ÒÇÒ ¼ö ÀÖ½À´Ï´Ù. </p>
+<p>ÇÒ´çµÈ ¿ä¼Ò Å×ÀÌºí¿¡´Â ÇöÀç ÇÁ·ÎÇÊ ¿ä¼Ò°¡ Ç¥½ÃµÇ¸ç, ´ÙÀ½ ³»¿ëÀ¸·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.</p>
+<ul><li><p>À̸§: ÇöÀç ÇÁ·ÎÇÊÀÌ ÇÒ´çµÇ¾î ÀÖ´Â ¿ä¼ÒÀÇ À̸§ÀÔ´Ï´Ù.</p>
+</li>
+<li><p>°æ·Î: ÇöÀç ÇÁ·ÎÇÊÀÌ ÇÒ´çµÇ¾î ÀÖ´Â ¿ä¼ÒÀÇ À§Ä¡ÀÔ´Ï´Ù.</p>
+</li>
+</ul>
+<p><A HREF="gbgpm.html#gbgpm">ÇÁ·ÎÇÊ¿¡ ¿ä¼Ò ÇÒ´ç</A>, <A HREF="gbgpp.html#gbgpp">ÇÁ·ÎÇÊ¿¡¼­ ¿ä¼Ò ÇÒ´ç Ãë¼Ò</A>¸¦ ÂüÁ¶ÇϽʽÿÀ.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgni.html b/webconsole/html/ko/help/gbgni.html
new file mode 100644
index 0000000..a1e5be8
--- /dev/null
+++ b/webconsole/html/ko/help/gbgni.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>»õ ÇÁ·ÎÇÊ ¸¸µé±â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgni"></A><h4>»õ ÇÁ·ÎÇÊ ¸¸µé±â</h4>
+<h5>´Ü°è</h5><ol><li><p><b>»õ·Î ¸¸µé±â ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>ÇÁ·ÎÇÊ ÆíÁý±â°¡ ¿­¸³´Ï´Ù. </p>
+</li>
+<li><p><b>ÇÁ·ÎÇÊ ÆíÁý±â¿¡¼­ Á¦°øÇÏ´Â ÁöħÀ» µû¸¨´Ï´Ù.</b></p><p>ÇÁ·ÎÇÊ ÆíÁý±â¸¦ »ç¿ëÇÏ¿© »õ ÇÁ·ÎÇÊÀ» ¸¸µå´Â ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ¿Â¶óÀÎ µµ¿ò¸»¿¡¼­ <A HREF="gbgec.html#gbgec">ÇÁ·ÎÇÊ ÆíÁý±â</A> ÀýÀ» ÂüÁ¶ÇϽʽÿÀ.</p>
+<p><hr size="1" noshade><p><b>Âü°í &#8211; </b>»õ ÇÁ·ÎÇÊ ¸¸µé±â°¡ ³¡³ª¸é ÇöÀç ¼±ÅÃµÈ ¿ä¼Ò¿¡ ÀÚµ¿À¸·Î ÇÒ´çµË´Ï´Ù.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgot.html b/webconsole/html/ko/help/gbgot.html
new file mode 100644
index 0000000..79e6857
--- /dev/null
+++ b/webconsole/html/ko/help/gbgot.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ ±¸¼º ¼³Á¤ º¸±â ¹× ÆíÁý</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgot"></A><h4>ÇÁ·ÎÇÊ ±¸¼º ¼³Á¤ º¸±â ¹× ÆíÁý</h4>
+<h5>´Ü°è</h5><ol><li><p><b>ÇÁ·ÎÇÊÀÇ ±¸¼º ¼³Á¤À» º¸·Á¸é ÆäÀÌÁö ¿À¸¥ÂÊ¿¡ ÀÖ´Â ¹üÁÖ ¸ñ·Ï¿¡¼­ ¼³Á¤À¸·Î À̵¿ÇÕ´Ï´Ù.</b></p><p>±¸¼º ¼³Á¤Àº StarOffice?, Mozilla?, Evolution ¶Ç´Â Gnome°ú °°Àº µ¥½ºÅ©Åé ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ±¸¼º ¿É¼Ç¿¡ Á÷Á¢ÀûÀ¸·Î ÇØ´çÇÏ´Â ¹üÁÖ ³»¿¡ °èÃþÀûÀ¸·Î ±¸¼ºµË´Ï´Ù. </p>
+</li>
+<li><p><b>¿øÇÏ´Â ±¸¼º ¼³Á¤À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>¼±ÅÃÇÑ ÇÁ·ÎÇÊ ¼³Á¤ÀÌ ³ªÅ¸³ª°í, ÇØ´ç ÇÁ·ÎÇÊ¿¡ »ç¿ë °¡´ÉÇÑ ¼³Á¤ÀÌ Ç¥½ÃµË´Ï´Ù. ÇÊ¿äÇÑ °æ¿ì, °³º° ¼³Á¤ È¿°ú ¶Ç´Â Çã¿ëµÈ °ª ¹üÀ§ µî Ãß°¡ ÄÁÅؽºÆ® Á¤º¸°¡ Á¦°øµË´Ï´Ù. </p>
+<p><hr size="1" noshade><p><b>Âü°í &#8211; </b>±¸¼º ¼³Á¤ ÀÌ¿ÜÀÇ ¹üÁÖ¸¦ ¼±ÅÃÇÏ´Â °æ¿ì ÇØ´ç ¹üÁÖ ¼³Á¤ ¶Ç´Â ÇÏÀ§ ¹üÁÖ¸¦ ³ª¿­ÇÏ´Â Å×À̺íÀÌ ³ªÅ¸³³´Ï´Ù.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>°¢ ±¸¼º ¼³Á¤¿¡ ´ëÇØ ±¸Ã¼ÀûÀÎ °ªÀ» ÁöÁ¤Çϰųª, ¼³Á¤À» Á¤ÀǵÇÁö ¾ÊÀº »óÅ·ΠµÑ ¼ö ÀÖ½À´Ï´Ù.</b></p><p>¼³Á¤À» Á¤ÀǵÇÁö ¾ÊÀº »óÅ·ΠµÑ °æ¿ì ÇØ´ç ÇÁ·ÎÇÊ ¼³Á¤ÀÌ ÀÀ¿ë ÇÁ·Î±×·¥¿¡ Àû¿ëµÇÁö ¾Ê°í, ´ë½Å ±âº» Á¦°øµÈ ÆÑÅ丮 ±âº»°ªÀÌ »ç¿ëµË´Ï´Ù. ÀϹÝÀûÀ¸·Î ÇÁ·ÎÇÊ ÆíÁý±â ¸ñ·Ï ¹× ÀÀ¿ë ÇÁ·Î±×·¥Àº Ãß°¡ µµ¿ò¸» ÅؽºÆ®³ª (°¡´ÉÇÑ °æ¿ì) ¼³Á¤ ¿É¼Ç ¸ñ·Ï¿¡¼­ Á÷Á¢ Ç¥½ÃÀÚ¸¦ ÅëÇØ ±âº»°ªÀ¸·Î ¼³Á¤µË´Ï´Ù.</p>
+<p><hr size="1" noshade><p><b>Âü°í &#8211; </b>¿©·¯ °³ÀÇ ÇÁ·ÎÇÊÀÌ µ¿ÀÏÇÑ »ç¿ëÀÚ¿¡°Ô Àû¿ëµÉ ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ƯÁ¤ Á¶Á÷¿¡ ´ëÇÑ ¼³Á¤ÀÌ Æ÷ÇÔµÈ ÇÁ·ÎÇÊÀ» ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¼³Á¤Àº ÇØ´ç Á¶Á÷¿¡ Æ÷ÇÔµÈ ¸ðµç »ç¿ëÀÚ¿¡°Ô ÀÚµ¿À¸·Î Àû¿ëµË´Ï´Ù. ¸¶Âù°¡Áö·Î, ÇÏÀ§ Á¶Á÷¿¡ ´ëÇÑ ±¸¼º ¼³Á¤ÀÌ Æ÷ÇÔµÈ Ãß°¡ ÇÁ·ÎÇÊÀ» Á¤ÀÇÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¼³Á¤Àº ºÎ¸ð Á¶Á÷ÀÇ ¼³Á¤À» µ¤¾î¾µ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ÇÏÀ§ Á¶Á÷¿¡ ´Ù¸¥ ÇÁ·Ï½Ã ¼³Á¤ÀÌ Á¤ÀǵÇÁö¸¸, ´Ù¸¥ ¼³Á¤Àº º¯°æµÇÁö ¾Ê½À´Ï´Ù. µû¶ó¼­ ƯÁ¤ »ç¿ëÀÚÀÇ À¯È¿ ¼³Á¤Àº Á¶Á÷, ÇÏÀ§ Á¶Á÷ ¹× »ç¿ëÀÚ¿¡°Ô ÇÒ´çµÈ ¸ðµç ÇÁ·ÎÇÊÀ» Æ÷ÇÔÇÑ º´ÇÕ ÇÁ·Î¼¼½ºÀÇ °á°úÀÔ´Ï´Ù. </p>
+<hr size="1" noshade></p><p><hr size="1" noshade><p><b>ÆÁ &#8211; </b>°æ¿ì¿¡ µû¶ó ÀÌ º´ÇÕ ÇÁ·Î¼¼½º¸¦ Á¦¾îÇÏ°í ±¸¼º ¼³Á¤À» °­Á¦·Î Àû¿ëÇÏ·Á ÇÑ´Ù´Â °ÍÀº ´Ù¸¥ ÇÁ·ÎÇÊ¿¡¼­ ¼³Á¤À» µ¤¾î¾²°í ´Ù¸¥ °ªÀ» Á¤ÀÇÇÒ ¼ö ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ÇÁ·ÎÇÊ ÆíÁý±â¸¦ »ç¿ëÇÏ¸é °¢ ¼³Á¤¿¡ ´ëÇØ ¿øÇÏ´Â º´ÇÕ µ¿ÀÛÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±âº»°ªÀº ´Ù¸¥ "ÇÁ·ÎÇÊÀÌ ¼³Á¤À» µ¤¾î¾µ ¼ö ÀÖÀ½"À¸·Î ¼³Á¤µË´Ï´Ù. ÀÌ ¿É¼ÇÀÇ ¼±ÅÃÀ» Ãë¼ÒÇÏ¸é ¼³Á¤À» °­Á¦·Î Àû¿ëÇÏ¿© ´Ù¸¥ ÇÁ·ÎÇÊÀÌ ´õ ÀÌ»ó °ªÀ» µ¤¾î¾µ ¼ö ¾ø°Ô µË´Ï´Ù.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgou.html b/webconsole/html/ko/help/gbgou.html
new file mode 100644
index 0000000..095bd2c
--- /dev/null
+++ b/webconsole/html/ko/help/gbgou.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ ³»º¸³»±â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgou"></A><h3>ÇÁ·ÎÇÊ ³»º¸³»±â</h3>
+<h5>´Ü°è</h5><ol><li><p><b>³»º¸³¾ ÇÁ·ÎÇÊ¿¡ ÇØ´çÇÏ´Â È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>ÀÛ¾÷ ¸ñ·Ï¿¡¼­ ³»º¸³»±â¸¦ ¼±ÅÃÇÕ´Ï´Ù.</b></p><p>ÆÄÀÏÀ» ³»º¸³¾ À§Ä¡¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù.</p>
+</li>
+<li><p><b>´ëÈ­ »óÀÚ¿¡¼­ µð½ºÅ©¿¡ ÀúÀå ¿É¼ÇÀ» ¼±ÅÃÇÑ ÈÄ È®ÀÎÀ» Ŭ¸¯ÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>³»º¸³½ ÆÄÀÏÀ» ÀúÀåÇÒ À§Ä¡¸¦ ¼±ÅÃÇÏ°í È®ÀÎÀ» Ŭ¸¯ÇÕ´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgow.html b/webconsole/html/ko/help/gbgow.html
new file mode 100644
index 0000000..d491ce8
--- /dev/null
+++ b/webconsole/html/ko/help/gbgow.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ º¹»ç ¹× À̵¿</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgow"></A><h3>ÇÁ·ÎÇÊ º¹»ç ¹× À̵¿</h3>
+<h5>´Ü°è</h5><ol><li><p><b>º¹»ç ¶Ç´Â À̵¿ÇÒ ÇÁ·ÎÇÊ¿¡ ÇØ´çÇÏ´Â È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>ÀÛ¾÷ ¸ñ·Ï¿¡¼­ º¹»ç ¹× À̵¿À» ¼±ÅÃÇÕ´Ï´Ù.</b></p><p>º¹»ç ¹× À̵¿ ¸¶¹ý»ç°¡ ¿­¸³´Ï´Ù.</p>
+</li>
+<li><p><b>º¹»ç ¹× À̵¿ ¸¶¹ý»ç¿¡¼­ Á¦°øÇÏ´Â Áöħ¿¡ µû¶ó ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgoy.html b/webconsole/html/ko/help/gbgoy.html
new file mode 100644
index 0000000..ec4285d
--- /dev/null
+++ b/webconsole/html/ko/help/gbgoy.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>³»¿ë ¿µ¿ª</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgoy"></A><h3>³»¿ë ¿µ¿ª</h3>
+<p>¿ä¼Ò¸¦ ¼±ÅÃÇϸé ÇÁ·ÎÇÊ &#8212; Æ®¸® º¸±â ÆäÀÌÁöÀÇ ³»¿ë ¿µ¿ª¿¡ ÇØ´ç ¿ä¼Ò¿¡ ´ëÇÑ Á¤º¸°¡ Ç¥½ÃµË´Ï´Ù. ³»¿ë ¿µ¿ªÀº ÃÖ´ë 3°³ÀÇ Å×À̺íÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<ul><li><p>ÇÒ´çµÈ ÇÁ·ÎÇÊ Å×À̺í: ÀÌ Å×À̺íÀº Ç×»ó Ç¥½ÃµË´Ï´Ù. ÀÌ Å×ÀÌºí¿¡´Â ÇöÀç ¼±ÅÃÇÑ ¿ä¼Ò¿¡ ÇÒ´çµÈ ÇÁ·ÎÇÊÀÌ Ç¥½ÃµË´Ï´Ù. ÀÌ Å×ÀÌºí¿¡´Â 3°³ÀÇ ¿­(À̸§, ÀÛ¼ºÀÚ ¹× ¸¶Áö¸· ¼öÁ¤)ÀÌ ÀÖ½À´Ï´Ù. ¸¶Áö¸· ¼öÁ¤ ¿­ÀÇ °ªÀº ÇÁ·ÎÇÊÀÇ ¼³Á¤ÀÌ º¯°æµÈ °æ¿ì¿¡¸¸ º¯°æµÇ¸ç ÇÁ·ÎÇÊ ÀÚüÀÇ À̸§ÀÌ ¹Ù²î°Å³ª, ÇÁ·ÎÇÊÀÌ À̵¿Çϰųª ¿ì¼± ¼øÀ§°¡ ´Ù½Ã ÁöÁ¤µÈ °æ¿ì¿¡´Â º¯°æµÇÁö ¾Ê½À´Ï´Ù. </p>
+<p>ÇÁ·ÎÇÊ ÇÒ´ç Å×À̺íÀ» »ç¿ëÇÏ¿© ´ÙÀ½ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<ul><li><p><A HREF="gbgni.html#gbgni">»õ ÇÁ·ÎÇÊ ¸¸µé±â</A></p>
+</li>
+<li><p><A HREF="gbgpr.html#gbgpr">ÇÁ·ÎÇÊ »èÁ¦</A></p>
+</li>
+<li><p><A HREF="gbgpn.html#gbgpn">ÇÁ·ÎÇÊ ÇÒ´ç</A></p>
+</li>
+<li><p><A HREF="gbgqj.html#gbgqj">ÇÁ·ÎÇÊ ÇÒ´ç Ãë¼Ò</A></p>
+</li>
+<li><p><A HREF="gbgpw.html#gbgpw">ÇÁ·ÎÇÊ À̸§ ¹Ù²Ù±â</A></p>
+</li>
+<li><p><A HREF="gbgqf.html#gbgqf">ÇÁ·ÎÇÊ º¹»ç ¹× À̵¿</A></p>
+</li>
+<li><p><A HREF="gbgps.html#gbgps">ÇÁ·ÎÇÊ °¡Á®¿À±â</A></p>
+</li>
+<li><p><A HREF="gbgqh.html#gbgqh">ÇÁ·ÎÇÊ ³»º¸³»±â</A></p>
+</li>
+</ul>
+</li>
+<li><p>»ó¼ÓµÈ ÇÁ·ÎÇÊ Å×À̺í: ÀÌ Å×À̺íÀº °èÃþ¿¡¼­ ¼±ÅÃµÈ ¿ä¼Ò À§ÀÇ ¸ðµç ¿ä¼Ò¿¡ ÇÒ´çµÈ ÇÁ·ÎÇÊÀÌ ÀÖ´Â °æ¿ì Ç¥½ÃµË´Ï´Ù. ÀÌ ÇÁ·ÎÇÊÀÌ Å×ÀÌºí¿¡ ³ª¿­µË´Ï´Ù. ¿©±â¿¡´Â 2°³ÀÇ ¿­(À̸§ ¹× ÇÒ´ç ´ë»ó)ÀÌ Æ÷ÇԵ˴ϴÙ. ÇÒ´ç ´ë»ó¿¡´Â ÇÁ·ÎÇÊÀÌ ÇÒ´çµÈ ¿ä¼ÒÀÇ °æ·Î ¹× À̸§ÀÌ Ç¥½ÃµË´Ï´Ù.</p>
+</li>
+<li><p>»ç¿ëÀÚ ¶Ç´Â ¿ªÇÒ Å×À̺í: ÀÌ Å×À̺íÀº "»ç¿ëÀÚ" ¶Ç´Â "¿ªÇÒ" ¿ä¼Ò À¯ÇüÀÌ ¼±ÅÃµÈ °æ¿ì ³ªÅ¸³³´Ï´Ù. ¿ä¼Ò°¡ ÃÖ¼Ò ÇÑ °³ÀÇ ¿ªÇÒ ±¸¼º¿ø »ç¿ëÀÚÀÎ °æ¿ì¿¡´Â ÇØ´ç ¿ªÇÒÀÌ ¿ªÇÒ Å×ÀÌºí¿¡ Ç¥½ÃµË´Ï´Ù. ¿ä¼Ò°¡ ±¸¼º¿øÀÌ ÀÖ´Â ¿ªÇÒÀÎ °æ¿ì¿¡´Â ÇØ´ç ±¸¼º¿øÀÌ »ç¿ëÀÚ Å×ÀÌºí¿¡ Ç¥½ÃµË´Ï´Ù.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgoz.html b/webconsole/html/ko/help/gbgoz.html
new file mode 100644
index 0000000..3c07417
--- /dev/null
+++ b/webconsole/html/ko/help/gbgoz.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>À¯È¿ ¼³Á¤ º¸±â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgoz"></A><h3>À¯È¿ ¼³Á¤ º¸±â</h3>
+<p>À¯È¿ ¼³Á¤Àº Á¶Á÷, µµ¸ÞÀÎ ¶Ç´Â È£½ºÆ®¿Í °°Àº ÁöÁ¤µÈ ¿ä¼ÒÀÇ À¯È¿ ±¸¼º ¼³Á¤¿¡ ´ëÇÑ Àбâ Àü¿ë º¸±âÀÔ´Ï´Ù.</p>
+<p>ƯÁ¤ »ç¿ëÀÚÀÇ À¯È¿ ¼³Á¤Àº °ü·Ã Á¶Á÷ ¼öÁØ, ¿ªÇÒ ¹× »ç¿ëÀÚ¿¡ ÀúÀåµÈ ±¸¼º ¼³Á¤À» Æ÷ÇÔÇÑ º´ÇÕ ÇÁ·Î¼¼½ºÀÇ °á°úÀÔ´Ï´Ù. °³º° À¯È¿ ¼³Á¤ â¿¡¼­ ¼±ÅÃÇÑ ¿ä¼ÒÀÇ º´ÇÕ ±¸¼º ¼³Á¤À» Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô Çϸé È®ÀÎ ¹× ¿À·ù µð¹ö±ëÀ» °£ÆíÇÏ°Ô ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. À¯È¿ ¼³Á¤ º¸°í¼­¸¦ ÀμâÇÏ°í º¸°ü¿ëÀ¸·Î ÀúÀåÇÒ ¼öµµ ÀÖ½À´Ï´Ù.</p>
+<h5>´Ü°è</h5><ol><li><p><b>ÇÒ´çµÈ ÇÁ·ÎÇÊ Å×ÀÌºí¿¡¼­ À¯È¿ ¼³Á¤ ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>À¯È¿ ¼³Á¤ âÀ» óÀ½ ¿­¸é Ž»ö Æ®¸®¿¡ ¼±ÅÃµÈ ¿ä¼Ò¿¡ ´ëÇÑ À¯È¿ ¼³Á¤ÀÌ Ç¥½ÃµË´Ï´Ù.</p>
+<p>À¯È¿ ¼³Á¤ âÀº ´ÙÀ½°ú °°ÀÌ µÎ ºÎºÐÀ¸·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.</p>
+<ul><li><p>À¯È¿ ¼³Á¤ ¸Å°³ º¯¼ö ¼öÁ¤ ¼½¼ÇÀÇ À¯È¿ ¼³Á¤ ¸¸µé±â ¿µ¿ª¿¡¼­ °í·ÁÇÒ Æ®¸®¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. µµ¸ÞÀÎ Æ®¸®¿¡¼­ ¿ä¼Ò ¼±Åà ¿É¼ÇÀ» »ç¿ëÇϸé À¯È¿ ¼³Á¤ º¸°í¼­¸¦ »ý¼ºÇÒ ¿£Æ¼Æ¼¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ã¾Æº¸±â ¹öÆ°À» »ç¿ëÇÏ¿© Á¶Á÷ ¶Ç´Â µµ¸ÞÀÎ Æ®¸®ÀÇ ¿ä¼Ò¸¦ ¼±ÅÃÇÕ´Ï´Ù.</p>
+</li>
+<li><p>À¯È¿ ¼³Á¤ ¼½¼Ç¿¡´Â ´ÙÀ½ Á¤º¸°¡ Ç¥½ÃµË´Ï´Ù.</p>
+<ul><li><p>°èÃþ¿¡¼­ ¼±ÅÃµÈ ¿ä¼ÒÀÇ À§Ä¡ ¹× È£½ºÆ® À̸§</p>
+</li>
+<li><p>ÇöÀç À¯È¿ ¼³Á¤ º¸°í¼­°¡ »ý¼ºµÈ ½Ã°£ ¹× ³¯Â¥</p>
+</li>
+<li><p>°ü·Ã ÇÁ·ÎÇÊ ¼½¼Ç¿¡´Â ÇöÀç ¿ä¼Ò¿¡ ´ëÇÑ À¯È¿ ¼³Á¤ º¸°í¼­ »ý¼º°ú °ü·ÃµÈ ÇÁ·ÎÇÊ ¸ñ·ÏÀÌ Ç¥½ÃµË´Ï´Ù. ÇÁ·ÎÇÊÀº º´ÇÕ ¼ø¼­´ë·Î(°¡Àå °ü·ÃÀÌ ³ôÀº Ç׸ñºÎÅÍ ³·Àº ¼øÀ¸·Î) ³ª¿­µË´Ï´Ù. °¢ ÇÁ·ÎÇÊÀº ÇØ´ç ÇÁ·ÎÇÊ¿¡ ´ëÇÑ ÇÁ·ÎÇÊ ÆíÁý±â âÀ» ¿©´Â ¸µÅ©ÀÔ´Ï´Ù.</p>
+</li>
+<li><p>¼³Á¤ ¿ä¾à ¿µ¿ª¿¡´Â ÇöÀç À¯È¿ ¼³Á¤ º¸°í¼­ÀÇ ±¸¼º ¼³Á¤À» ¹üÁÖº°·Î ºÐ·ùÇÏ¿© Ç¥½ÃÇÕ´Ï´Ù. ¼³Á¤ ¿ä¾à¿¡´Â À̸§, °ª ¹× »óÅ Çʵ尡 Æ÷ÇԵ˴ϴÙ.</p>
+<p>»óÅ ¿­¿¡´Â &#8220;&lt;pofileName>¿¡ Á¤ÀǵÈ" Ç׸ñ À¯ÇüÀÌ µé¾î ÀÖ½À´Ï´Ù. ¿©±â¼­ &lt;profileName>Àº ±¸¼º ¼³Á¤ ÅÇ¿¡¼­ ÇØ´ç ÇÁ·ÎÇÊ¿¡ ´ëÇÑ ÇÁ·ÎÇÊ ÆíÁý±â¸¦ ¿­°í ÀÌ ÇÁ·ÎÇÊÀÇ Æ¯Á¤ ¼³Á¤À¸·Î À̵¿ÇÏ´Â ¸µÅ©ÀÔ´Ï´Ù.</p>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><p><b>°ü·Ã À¯È¿ ¼³Á¤ ¸Å°³ º¯¼ö¸¦ º¯°æÇÑ ÈÄ À¯È¿ ¼³Á¤ âÀÇ ¸Ç À§¿¡ ÀÖ´Â À¯È¿ ¼³Á¤ »ý¼º ¹öÆ°À» Ŭ¸¯ÇÏ¿© »ý¼ºµÈ À¯È¿ ¼³Á¤ º¸°í¼­¸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.</b></p><p>±×·¯¸é À¯È¿ ¼³Á¤ â¿¡ »õ º¸°í¼­°¡ Ç¥½ÃµË´Ï´Ù.</p>
+</li>
+<li><p><b>À¯È¿ ¼³Á¤ º¸°í¼­¸¦ ÀμâÇÏ·Á¸é À¯È¿ ¼³Á¤ â ¸Ç À§ ¶Ç´Â ¾Æ·¡¿¡ ÀÖ´Â Àμ⠹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgpa.html b/webconsole/html/ko/help/gbgpa.html
new file mode 100644
index 0000000..4013852
--- /dev/null
+++ b/webconsole/html/ko/help/gbgpa.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¿ä¼Ò °Ë»ö</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpa"></A><h4>¿ä¼Ò °Ë»ö</h4>
+<p>°Ë»ö ±â´ÉÀ» »ç¿ëÇÏ¸é µµ¸ÞÀÎ ¶Ç´Â Á¶Á÷ °èÃþ¿¡¼­ ¿ä¼Ò¸¦ ¹Ýº¹Çؼ­ °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ±â´ÉÀº ¿ä¼ÒÀÇ Á÷°è ÀÚ½ÄÀº ¹°·Ð, ¸ðµç ÇÏÀ§¸¦ °Ë»öÇÕ´Ï´Ù. ¿ä¼ÒÀÇ Á÷°è Àڽĸ¸ °Ë»öÇÏ·Á¸é ã±â ±â´ÉÀ» »ç¿ëÇÕ´Ï´Ù.</p>
+<p>°Ë»öÀ» ½ÇÇàÇÏ¸é °Ë»ö âÀÌ ¿­¸®°í, ÀÌ Ã¢¿¡¼­ °í±Þ °Ë»öÀ» ¼öÇàÇÒ ¼öµµ ÀÖ½À´Ï´Ù.</p>
+<h5>´Ü°è</h5><ol><li><p><b>°Ë»öÇÒ ¿ä¼ÒÀÇ À̸§ ¶Ç´Â ºÎºÐ À̸§À» °Ë»ö Çʵ忡 ÀÔ·ÂÇÕ´Ï´Ù.</b></p><p><hr size="1" noshade><p><b>Âü°í &#8211; </b>°Ë»öÀº ´ë/¼Ò¹®ÀÚ¸¦ ±¸ºÐÇϰųª Á¦ÇÑÇÏÁö ¾Ê½À´Ï´Ù. ¿¹¸¦ µé¾î, °Ë»ö ¹®ÀÚ¿­ "bc"´Â "ABC"¿Í "bcd"¸¦ ã½À´Ï´Ù. º°Ç¥(*)´Â °Ë»ö ¹®ÀÚ¿­ ³» ÀÓÀÇÀÇ ¹®ÀÚ ½ÃÄö½º¸¦ ³ªÅ¸³À´Ï´Ù. °Ë»ö ¹®ÀÚ¿­¿¡¼­ ¿øÇÏ´Â ¸ðµç À§Ä¡¿¡ µÎ °³ ÀÌ»óÀÇ º°Ç¥¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ºó Çʵå´Â &#8220;*&#8221; °Ë»ö ¹®ÀÚ¿­ÀÌ ÀÖ´Â Çʵå¿Í °°Àº ±â´ÉÀ» ÇÕ´Ï´Ù.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>°Ë»ö ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>°Ë»ö âÀÌ ¿­¸³´Ï´Ù. Ž»ö ¿µ¿ªÀÇ °Ë»ö Çʵ忡 ÀÔ·ÂÇÑ ¹®ÀÚ¿­ÀÌ ÇØ´ç °Ë»ö Çʵ忡¼­ °Ë»ö âÀÇ °Ë»ö Çʵå·Î ¿Å°ÜÁö°í ÇØ´ç ¹®ÀÚ¿­ °Ë»öÀÌ ÀÚµ¿À¸·Î ½ÃÀ۵˴ϴÙ. ±×¸®°í ³ª¸é °á°ú Å×ÀÌºí¿¡ °Ë»öµÈ ¿ä¼ÒÀÇ À̸§, À¯Çü ¹× °æ·Î¸¦ º¸¿©ÁÖ´Â °Ë»ö °á°ú°¡ Ç¥½ÃµË´Ï´Ù.</p>
+<p><hr size="1" noshade><p><b>Âü°í &#8211; </b>ÃÖ´ë °Ë»ö °á°ú ¼ö´Â 100°³·Î Á¦Çѵ˴ϴÙ.</p>
+<hr size="1" noshade></p><p>°Ë»öµÈ °á°ú°¡ ¾ø°Å³ª Ž»ö ¿µ¿ªÀÇ °Ë»ö Çʵ尡 ºñ¾î ÀÖ´Â °æ¿ì °Ë»ö âÀÇ °Ë»ö Çʵ忡 ¿ä¼ÒÀÇ À̸§À» ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù. </p>
+<p><hr size="1" noshade><p><b>ÆÁ &#8211; </b>°Ë»ö ÇÊµå ¿·¿¡ ÀÖ´Â À¯Çü ¼öÁ¤ÀÚ ¸ñ·ÏÀ» »ç¿ëÇÏ¿© "°Ë»ö µµ¸ÞÀÎ"°ú °°Àº ƯÁ¤ ¿ä¼Ò À¯ÇüÀ» °Ë»öÇÕ´Ï´Ù.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>ÇÊ¿ä¿¡ µû¶ó, °í±Þ ¿É¼Ç Ç¥½Ã ¹öÆ°À» Ŭ¸¯ÇÏ¿© °Ë»ö¿¡ °í±Þ ¿É¼ÇÀ» Ãß°¡ÇÕ´Ï´Ù.</b></p><p>°í±Þ ¿É¼ÇÀº ´ÙÀ½ ³»¿ëÀ¸·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.</p>
+<ul><li><p>Á¦ÇÑ ¹üÀ§: °Ë»ö ¾Ë°í¸®ÁòÀÌ Æ®¸®¸¦ ÅëÇØ À̵¿À» ½ÃÀÛÇÒ ¿ä¼Ò¸¦ °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+</li>
+<li><p>ÆäÀÌÁö ´ç Ç¥½ÃµÇ´Â °á°ú ¼ö: °á°ú Å×À̺íÀÇ ¸ðµç ÆäÀÌÁö¿¡ Ç¥½ÃµÇ´Â °á°ú ¼ö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+</li>
+</ul>
+</li>
+<li><p><b>»õ °Ë»ö ¶Ç´Â ¼öÁ¤µÈ °Ë»ö °á°ú¸¦ º¸·Á¸é °Ë»ö ¹öÆ°À» ´Ù½Ã Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p><hr size="1" noshade><p><b>Âü°í &#8211; </b>¿ø·¡´ë·Î ¹öÆ°À» Ŭ¸¯ÇÏ¸é ¸ðµç °Ë»ö ¸Å°³ º¯¼ö°¡ ±âº»°ªÀ¸·Î º¯°æµÇ°í °Ë»ö Çʵ尡 Áö¿öÁý´Ï´Ù.</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgpb.html b/webconsole/html/ko/help/gbgpb.html
new file mode 100644
index 0000000..a6c3970
--- /dev/null
+++ b/webconsole/html/ko/help/gbgpb.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ ÀÏ¹Ý µî·Ï Á¤º¸ ÁöÁ¤</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpb"></A><h4>ÇÁ·ÎÇÊ ÀÏ¹Ý µî·Ï Á¤º¸ ÁöÁ¤</h4>
+<h5>´Ü°è</h5><ol><li><p><b>À̸§ Çʵ忡 ¿øÇÏ´Â ÇÁ·ÎÇÊ À̸§À» ÀÔ·ÂÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>¼³¸í Çʵ忡 ¼³¸íÀ» Ãß°¡ÇÕ´Ï´Ù.</b></p><p>¼³¸í Çʵå´Â ºñ¿öµÑ ¼ö ÀÖ½À´Ï´Ù.</p>
+<p><hr size="1" noshade><p><b>Âü°í &#8211; </b>ÀÛ¼ºÀÚ ¹× ¸¶Áö¸· ¼öÁ¤ Çʵå´Â Àбâ Àü¿ëÀ̹ǷΠ¼öÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÛ¼ºÀÚ Çʵ忡´Â ÇÁ·ÎÇÊ ÀÛ¼ºÀÚ°¡ Ç¥½ÃµÇ°í ¸¶Áö¸· ¼öÁ¤ Çʵ忡´Â ¸¶Áö¸· ¼öÁ¤ÇÑ ³¯Â¥ ¹× ½Ã°£ÀÌ Ç¥½ÃµË´Ï´Ù.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>ÀúÀå ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>»õ Á¤º¸¸¦ ÀúÀåÇϱâ Àü¿¡ âÀ» ´ÝÀ¸¸é ¼³Á¤À» ÀúÀåÇÒÁö ¹¯´Â °æ°í ´ëÈ­ »óÀÚ°¡ Ç¥½ÃµË´Ï´Ù.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgpe.html b/webconsole/html/ko/help/gbgpe.html
new file mode 100644
index 0000000..ab323f9
--- /dev/null
+++ b/webconsole/html/ko/help/gbgpe.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ »èÁ¦</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpe"></A><h3>ÇÁ·ÎÇÊ »èÁ¦</h3>
+<h5>´Ü°è</h5><ol><li><p><b>»èÁ¦ÇÒ ÇÁ·ÎÇÊ¿¡ ÇØ´çÇÏ´Â È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>»èÁ¦</b> ¹öÆ°À» ´©¸¨´Ï´Ù.</p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgpj.html b/webconsole/html/ko/help/gbgpj.html
new file mode 100644
index 0000000..f3ed832
--- /dev/null
+++ b/webconsole/html/ko/help/gbgpj.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ °¡Á®¿À±â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpj"></A><h3>ÇÁ·ÎÇÊ °¡Á®¿À±â</h3>
+<h5>´Ü°è</h5><ol><li><p><b>¸ðµç È®ÀζõÀÌ ¼±Åà Ãë¼ÒµÇ¾ú´ÂÁö È®ÀÎÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>ÀÛ¾÷ ¸ñ·Ï¿¡¼­ °¡Á®¿À±â¸¦ ¼±ÅÃÇÕ´Ï´Ù.</b></p><p>ÇÁ·ÎÇÊ °¡Á®¿À±â ´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù.</p>
+</li>
+<li><p><b>°¡Á®¿Ã ÆÄÀÏÀÇ °æ·Î¸¦ ÀÔ·ÂÇϰųª ã¾Æº¸±â ¹öÆ°À» Ŭ¸¯ÇÏ¿© ¿î¿µ üÁ¦ÀÇ ±âº» ÆÄÀÏ ¼±Åà ´ëÈ­ »óÀÚ¿¡¼­ ÆÄÀÏÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>°¡Á®¿À±â ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgpm.html b/webconsole/html/ko/help/gbgpm.html
new file mode 100644
index 0000000..7926692
--- /dev/null
+++ b/webconsole/html/ko/help/gbgpm.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ¿¡ ¿ä¼Ò ÇÒ´ç</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpm"></A><h4>ÇÁ·ÎÇÊ¿¡ ¿ä¼Ò ÇÒ´ç</h4>
+<h5>´Ü°è</h5><ol><li><p><b>¿ä¼Ò ÇÒ´ç ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>Ž»ö Æ®¸®¸¦ Æ÷ÇÔÇϴ âÀÌ ³ªÅ¸³³´Ï´Ù.</p>
+</li>
+<li><p><b>Æ®¸®¸¦ Ž»öÇÑ ÈÄ ¿øÇÏ´Â ¿ä¼Ò¸¦ ¼±ÅÃÇÕ´Ï´Ù.</b></p><p><hr size="1" noshade><p><b>ÆÁ &#8211; </b>Æ®¸®¿¡¼­ ¿øÇÏ´Â ¿ä¼Ò¸¦ ãÀ» ¼ö ¾ø´Â °æ¿ì °Ë»ö ¹öÆ°À» Ŭ¸¯ÇÏ¸é °Ë»ö âÀ» ¿­°í ¿ä¼Ò¸¦ ãÀ» ¼ö ÀÖ½À´Ï´Ù.</p>
+<hr size="1" noshade></p><p>±×¸®°í ³ª¸é ÇØ´ç ¿ä¼Ò°¡ ÇÒ´çµÈ ¿ä¼Ò Å×ÀÌºí¿¡ ³ªÅ¸³ª°í ÇöÀç ÇÁ·ÎÇÊ¿¡ ÇÒ´çµË´Ï´Ù.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgpn.html b/webconsole/html/ko/help/gbgpn.html
new file mode 100644
index 0000000..4bfe4d7
--- /dev/null
+++ b/webconsole/html/ko/help/gbgpn.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ ÇÒ´ç</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpn"></A><h4>ÇÁ·ÎÇÊ ÇÒ´ç</h4>
+<h5>´Ü°è</h5><ol><li><p><b>ÇÁ·ÎÇÊ ÇÒ´ç ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>¼±ÅÃÇÑ ¿ä¼Ò¿¡ ÇÒ´çÇÒ ¼ö ÀÖ´Â »ç¿ë °¡´ÉÇÑ ÇÁ·ÎÇÊÀ» ¸ðµÎ ³ª¿­ÇÏ´Â ´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù. </p>
+<p><hr size="1" noshade><p><b>Âü°í &#8211; </b>¼±ÅÃÇÑ ¿ä¼Ò¿¡ ÀÌ¹Ì ÇÒ´çµÈ ÇÁ·ÎÇÊ°ú ÇöÀç ¼±ÅÃµÈ ¿ä¼Ò ¶Ç´Â ±× À§¿¡ ÀúÀåµÇÁö ¾ÊÀº ÇÁ·ÎÇÊÀº ³ª¿­µÇÁö ¾Ê½À´Ï´Ù.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>³ª¿­µÈ ÇÁ·ÎÇÊÀ» Çϳª ÀÌ»ó ¼±ÅÃÇÏ°í È®ÀÎÀ» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>ÀÌÁ¦ »õ·Î ÇÒ´çµÈ ÇÁ·ÎÇÊÀÌ ÇÒ´çµÈ ÇÁ·ÎÇÊ Å×ÀÌºí¿¡ ³ªÅ¸³³´Ï´Ù.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgpp.html b/webconsole/html/ko/help/gbgpp.html
new file mode 100644
index 0000000..c4af749
--- /dev/null
+++ b/webconsole/html/ko/help/gbgpp.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ¿¡¼­ ¿ä¼Ò ÇÒ´ç Ãë¼Ò</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpp"></A><h4>ÇÁ·ÎÇÊ¿¡¼­ ¿ä¼Ò ÇÒ´ç Ãë¼Ò</h4>
+<h5>´Ü°è</h5><ol><li><p><b>ÇÒ´çÀ» Ãë¼ÒÇÒ ¿ä¼Ò¿¡ ÇØ´çÇÏ´Â È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>¿ä¼Ò ÇÒ´ç Ãë¼Ò ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>ÀÌÁ¦ ¿ä¼Ò°¡ ÇöÀç ÇÁ·ÎÇÊ¿¡ ÇÒ´çµÇ¾î ÀÖÁö ¾Ê°í ÇÒ´çµÈ ¿ä¼Ò Å×ÀÌºí¿¡¼­ »ç¶óÁý´Ï´Ù.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgpr.html b/webconsole/html/ko/help/gbgpr.html
new file mode 100644
index 0000000..6cfba72
--- /dev/null
+++ b/webconsole/html/ko/help/gbgpr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÆÄÀÏ »èÁ¦</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpr"></A><h4>ÇÁ·ÎÆÄÀÏ »èÁ¦</h4>
+<h5>´Ü°è</h5><ol><li><p><b>»èÁ¦ÇÒ ÇÁ·ÎÆÄÀÏ¿¡ ÇØ´çÇÏ´Â È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p><p>È®ÀÎ ´ëÈ­ »óÀÚ°¡ ³ªÅ¸³³´Ï´Ù.</p>
+<hr size="1" noshade><p><IMG ALT="ÁÖÀÇ" src="graphics/caution.gif"> <b>ÁÖÀÇ &ndash; </b>»èÁ¦ ÀÛ¾÷À» ¼öÇàÇÏ¸é ¸ðµç ÁöÁ¤ÀÌ Á¦°ÅµÇ°í ³ª¼­ ÇÁ·ÎÆÄÀÏÀÌ ½ÇÁ¦·Î »èÁ¦µË´Ï´Ù. ÇÑ ¹ø »èÁ¦ÇÏ¸é ´Ù½Ã °Ë»öÇÒ ¼ö ¾ø½À´Ï´Ù. ÇÁ·ÎÆÄÀÏÀ» »èÁ¦Çϸé ÇöÀç ¿ä¼Ò ÀÌ¿ÜÀÇ ´Ù¸¥ ¿ä¼Ò¿¡ ´ëÇÑ ÁöÁ¤µµ Á¦°ÅµË´Ï´Ù. ´Ü¼øÈ÷ ¿ä¼Ò¿¡¼­ ÇÁ·ÎÆÄÀÏ ÁöÁ¤¸¸À» Á¦°ÅÇÏ·Á¸é ÁöÁ¤ Ãë¼Ò¸¦ »ç¿ëÇÕ´Ï´Ù.</p><hr size="1" noshade></li>
+<li><p><b>»èÁ¦</b> ¹öÆ°À» ´©¸¨´Ï´Ù.</p></li>
+<li><p><b>ÇÁ·ÎÆÄÀÏÀ» Á¤¸» »èÁ¦ÇÏ·Á´Â °æ¿ì¿¡´Â È®ÀÎ ´ëÈ­ »óÀÚ¿¡¼­ È®ÀÎ ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgps.html b/webconsole/html/ko/help/gbgps.html
new file mode 100644
index 0000000..71a02b7
--- /dev/null
+++ b/webconsole/html/ko/help/gbgps.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ °¡Á®¿À±â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgps"></A><h4>ÇÁ·ÎÇÊ °¡Á®¿À±â</h4>
+<h5>´Ü°è</h5><ol><li><p><b>¸ðµç È®ÀζõÀÇ ¼±ÅÃÀ» Ãë¼ÒµÇ¾ú´ÂÁö È®ÀÎÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>ÀÛ¾÷ ¸ñ·Ï¿¡¼­ °¡Á®¿À±â¸¦ ¼±ÅÃÇÕ´Ï´Ù.</b></p><p>°¡Á®¿À±â ÇÁ·ÎÇÊ ´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù.</p>
+</li>
+<li><p><b>°¡Á®¿Ã ÆÄÀÏÀÇ °æ·Î¸¦ ÀÔ·ÂÇϰųª ã¾Æº¸±â ¹öÆ°À» Ŭ¸¯ÇÏ¿© ¿î¿µ üÁ¦ÀÇ ±âº» ÆÄÀÏ ¼±Åà ´ëÈ­ »óÀÚ¿¡¼­ ÆÄÀÏÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>°¡Á®¿À±â ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgpt.html b/webconsole/html/ko/help/gbgpt.html
new file mode 100644
index 0000000..62db343
--- /dev/null
+++ b/webconsole/html/ko/help/gbgpt.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>±¸¼º ¸®Æ÷ÁöÅ丮 Å×À̺í</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpt"></A><h3>±¸¼º ¸®Æ÷ÁöÅ丮 Å×À̺í</h3>
+<p>±¸¼º ¸®Æ÷ÁöÅ丮 Å×À̺íÀº 5°³ÀÇ ¿­·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.</p>
+<ul><li><p>¼±Åà ¿­: ¸®Æ÷ÁöÅ丮¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Â È®ÀζõÀÌ ÀÖ½À´Ï´Ù.</p>
+<p>Çϳª ÀÌ»óÀÇ ¸®Æ÷ÁöÅ丮¸¦ ¼±ÅÃÇϸé Á¦°Å, À̸§ ¹Ù²Ù±â ¹× µ¿±âÈ­ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<p><hr size="1" noshade><p><b>Âü°í &#8211; </b>¸®Æ÷ÁöÅ丮¸¦ ÇÑ °³¸¸ ¼±ÅÃÇÏ¸é »õ·Î ¸¸µé±â ¹öÆ°À» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.</p>
+<hr size="1" noshade></p></li>
+<li><p>À̸§: ¸®Æ÷ÁöÅ丮ÀÇ À̸§À» Æ÷ÇÔÇÕ´Ï´Ù.</p>
+<p>À̸§ ¿­ÀÇ ³»¿ëÀº ¸µÅ©ÀÔ´Ï´Ù. ÀÌ ¸µÅ© Áß Çϳª¸¦ Ŭ¸¯ÇÏ¸é ±¸¼º ¸®Æ÷ÁöÅ丮 º¸±â°¡ ¼±ÅÃÇÑ ¸®Æ÷ÁöÅ丮ÀÇ ÇÁ·ÎÇÊ ÆíÁý±â ÆäÀÌÁö·Î ¹Ù²ò´Ï´Ù.</p>
+</li>
+<li><p>À¯Çü: 3°³ÀÇ À¯Çü(LDAP, ÆÄÀÏ ¶Ç´Â ÇÏÀ̺긮µå) Áß Çϳª·Î ÁöÁ¤µË´Ï´Ù.</p>
+<ul><li><p>LDAP: LDAP ¸®Æ÷ÁöÅ丮´Â LDAP ¼­¹ö¿¡¼­ ȸ»çÀÇ Á¶Á÷ ±¸Á¶(»ç¿ëÀÚ, Á¶Á÷, È£½ºÆ®, µµ¸ÞÀÎ µî)¸¦ Àоî¿Â ÈÄ µ¿ÀÏÇÑ ÇØ´ç LDAP ¼­¹ö¸¦ »ç¿ëÇÏ¿© ±¸¼º ¼³Á¤À» Àаųª ¾¹´Ï´Ù. </p>
+</li>
+<li><p>ÆÄÀÏ: ÆÄÀÏ ¸®Æ÷ÁöÅ丮´Â ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ ȸ»çÀÇ Á¶Á÷ ±¸Á¶¸¦ Àоî¿Â ÈÄ µ¿ÀÏÇÑ ÇØ´ç ÆÄÀÏ ½Ã½ºÅÛÀ» »ç¿ëÇÏ¿© ±¸¼º ¼³Á¤À» Àаųª ¾¹´Ï´Ù. </p>
+</li>
+<li><p>ÇÏÀ̺긮µå: ÇÏÀ̺긮µå ¸®Æ÷ÁöÅ丮´Â LDAP ¼­¹ö¿¡¼­ ȸ»çÀÇ Á¶Á÷ ±¸Á¶¸¦ Àоî¿Â ÈÄ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ ±¸¼º ¼³Á¤À» Àаųª ¾¹´Ï´Ù.</p>
+</li>
+</ul>
+</li>
+<li><p>Á¶Á÷ µ¥ÀÌÅÍ À§Ä¡: ÆÄÀÏ ¸®Æ÷ÁöÅ丮ÀÇ °æ¿ì¿¡´Â ÆÄÀÏÀ̸ç, LDAP ¶Ç´Â ÇÏÀ̺긮µå ¸®Æ÷ÁöÅ丮ÀÇ °æ¿ì¿¡´Â LDAP URLÀÔ´Ï´Ù. Á¶Á÷ µ¥ÀÌÅÍÀÇ ÀúÀå¼Ò À§Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù.</p>
+</li>
+<li><p>ÇÁ·ÎÇÊ µ¥ÀÌÅÍ À§Ä¡: ÆÄÀÏ ¸®Æ÷ÁöÅ丮ÀÇ °æ¿ì¿¡´Â ÆÄÀÏÀÌ°í, LDAP ¶Ç´Â ÇÏÀ̺긮µå ¸®Æ÷ÁöÅ丮ÀÇ °æ¿ì¿¡´Â LDAP URLÀÔ´Ï´Ù. ±¸¼º ¼³Á¤ÀÇ ÀúÀå¼Ò À§Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÇÁ·ÎÇÊÀº »ç¿ëÀÚ, Á¶Á÷, È£½ºÆ® ¹× µµ¸ÞÀο¡ ÇÒ´çµÇ´Â ¸í¸íµÈ ±¸¼º ¼³Á¤ ¸ðÀ½ÀÔ´Ï´Ù.</p>
+</li>
+</ul>
+<p>±¸¼º ¼³Á¤ Å×ÀÌºí¿¡¼­´Â ´ÙÀ½ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<ul><li><p><A HREF="gbgcn.html#gbgcn">»õ·Î ¸¸µé±â</A>: »õ ±¸¼º ¸®Æ÷ÁöÅ丮¸¦ ¸¸µì´Ï´Ù. </p>
+</li>
+<li><p>Á¦°Å: ±âÁ¸ ±¸¼º ¸®Æ÷ÁöÅ丮¸¦ Á¦°ÅÇÕ´Ï´Ù.</p>
+</li>
+<li><p>À̸§ º¯°æ: ±¸¼º ¸®Æ÷ÁöÅ丮ÀÇ À̸§À» ¹Ù²ß´Ï´Ù.</p>
+</li>
+<li><p><A HREF="gbgqm.html#gbgqm">µ¿±âÈ­</A>: ±¸¼º ¸®Æ÷ÁöÅ丮¸¦ µ¿±âÈ­ÇÕ´Ï´Ù.</p>
+<p>Çϳª³ª µÎ °³ÀÇ ¸®Æ÷ÁöÅ丮¸¦ ¼±ÅÃÇÏ´Â °æ¿ì¿¡¸¸ ÀÌ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgpu.html b/webconsole/html/ko/help/gbgpu.html
new file mode 100644
index 0000000..58b4eb7
--- /dev/null
+++ b/webconsole/html/ko/help/gbgpu.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ À̸§ ¹Ù²Ù±â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpu"></A><h3>ÇÁ·ÎÇÊ À̸§ ¹Ù²Ù±â</h3>
+<h5>´Ü°è</h5><ol><li><p><b>À̸§À» ¹Ù²Ü ÇÁ·ÎÇÊ¿¡ ÇØ´çÇÏ´Â È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>ÀÛ¾÷ ¸ñ·Ï¿¡¼­ À̸§ ¹Ù²Ù±â¸¦ ¼±ÅÃÇÕ´Ï´Ù.</b></p><p>´ëÈ­ »óÀÚ°¡ Ç¥½ÃµË´Ï´Ù.</p>
+</li>
+<li><p><b>´ëÈ­ »óÀÚÀÇ ÅؽºÆ® Çʵ忡 ÇÁ·ÎÇÊÀÇ »õ À̸§À» ÀÔ·ÂÇÏ°í È®ÀÎÀ» Ŭ¸¯ÇÕ´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgpw.html b/webconsole/html/ko/help/gbgpw.html
new file mode 100644
index 0000000..c4e9e99
--- /dev/null
+++ b/webconsole/html/ko/help/gbgpw.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ À̸§ ¹Ù²Ù±â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpw"></A><h4>ÇÁ·ÎÇÊ À̸§ ¹Ù²Ù±â</h4>
+<h5>´Ü°è</h5><ol><li><p><b>À̸§À» ¹Ù²Ü ÇÁ·ÎÇÊ¿¡ ÇØ´çÇÏ´Â È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>ÀÛ¾÷ ¸ñ·Ï¿¡¼­ À̸§ ¹Ù²Ù±â¸¦ ¼±ÅÃÇÕ´Ï´Ù.</b></p><p>À̸§ ¹Ù²Ù±â ´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù.</p>
+</li>
+<li><p><b>´ëÈ­ »óÀÚÀÇ ÅؽºÆ® Çʵ忡 ÇÁ·ÎÇÊÀÇ »õ À̸§À» ÀÔ·ÂÇÏ°í È®ÀÎÀ» Ŭ¸¯ÇÕ´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgqa.html b/webconsole/html/ko/help/gbgqa.html
new file mode 100644
index 0000000..8746ad2
--- /dev/null
+++ b/webconsole/html/ko/help/gbgqa.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>±¸¼º ¸®Æ÷ÁöÅ丮 â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqa"></A><h2>±¸¼º ¸®Æ÷ÁöÅ丮 â</h2>
+<p>±¸¼º ¸®Æ÷ÁöÅ丮´Â ÀÀ¿ë ÇÁ·Î±×·¥À» ±¸¼ºÇÏ´Â µ¥ ÇÊ¿äÇÑ ±¸¼º µ¥ÀÌÅÍÀÇ ÀúÀå¼Ò À§Ä¡·Î, Á¶Á÷ °èÃþ Á¤º¸°¡ °¢ ¿ä¼ÒÀÇ ÇÁ·ÎÇÊ ¹× ÇÒ´ç µ¥ÀÌÅÍ¿Í ÇÔ²² ÀúÀåµË´Ï´Ù. ±¸¼º ¸®Æ÷ÁöÅ丮 â¿¡¼­´Â »õ ¸®Æ÷ÁöÅ丮¸¦ ¸¸µé°í ±âÁ¸ ¸®Æ÷ÁöÅ丮¿¡¼­ ÀÛ¾÷ ¹× µ¿±âÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<p>±¸¼º ¸®Æ÷ÁöÅ丮 âÀº ¸¶½ºÆ®Çìµå¿Í ±¸¼º ¸®Æ÷ÁöÅ丮 ¸ñ·ÏÀ¸·Î ±¸¼ºµË´Ï´Ù.</p>
+<p>¸¶½ºÆ®Çìµå¿¡´Â ¸¹Àº ÀϹÝÀûÀÎ ¸µÅ©°¡ Ç¥½ÃµÇ¾î ÀÖ½À´Ï´Ù. ¸¶½ºÆ®ÇìµåÀÇ À§ÂÊ ºÎºÐ¿¡´Â ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î ³× °³ÀÇ ¸µÅ©°¡ Æ÷ÇÔµÈ À¯Æ¿¸®Æ¼ Ç¥½ÃÁÙÀÌ ÀÖ½À´Ï´Ù.</p>
+<ul><li><p>ÄÜ¼Ö ¹öÆ°À» ´©¸£¸é Java Web Console ½ÃÀÛ ÆäÀÌÁö°¡ ¿­¸³´Ï´Ù.</p>
+</li>
+<li><p>¹öÀü ¹öÆ°À» ´©¸£¸é Desktop Manager¿¡ ´ëÇÑ ¹öÀü Á¤º¸¸¦ Ç¥½ÃÇϴ âÀÌ ¿­¸³´Ï´Ù.</p>
+</li>
+<li><p>·Î±×¾Æ¿ô ¹öÆ°À» ´©¸£¸é Java Web Console°ú Configuration Manager¿¡¼­ ·Î±×¾Æ¿ôµÇ°í ·Î±×ÀÎ ÆäÀÌÁö·Î µ¹¾Æ°©´Ï´Ù.</p>
+</li>
+<li><p>µµ¿ò¸» ¹öÆ°À» ´©¸£¸é ¿Â¶óÀÎ µµ¿ò¸» ÆäÀÌÁö°¡ ¿­¸³´Ï´Ù. </p>
+</li>
+</ul>
+<p>¸¶½ºÆ®ÇìµåÀÇ ÇÏ´Ü ºÎºÐ¿¡´Â Á¦Ç° À̸§, ¼­¹ö À̸§ ¹× ÇöÀç ·Î±×ÀÎµÈ °ü¸®ÀÚ À̸§ÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.</p>
+<p><A HREF="gbgpt.html#gbgpt">±¸¼º ¸®Æ÷ÁöÅ丮 Å×À̺í</A> ¹× <A HREF="gbgcn.html#gbgcn">»õ ±¸¼º ¸®Æ÷ÁöÅ丮 ¸¸µé±â</A>¸¦ ÂüÁ¶ÇϽʽÿÀ.</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgqe.html b/webconsole/html/ko/help/gbgqe.html
new file mode 100644
index 0000000..8a4c9a0
--- /dev/null
+++ b/webconsole/html/ko/help/gbgqe.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ¿¡ º´ÇÕ ¼ø¼­ ÇÒ´ç</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqe"></A><h4>ÇÁ·ÎÇÊ¿¡ º´ÇÕ ¼ø¼­ ÇÒ´ç</h4>
+<h5>´Ü°è</h5><ol><li><p><b>¼±ÅÃÇÑ ¸ñ·Ï¿¡¼­ ¿øÇÏ´Â ÇÁ·ÎÇÊÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>¸ñ·ÏÀÇ ¿À¸¥ÂÊ¿¡ ÀÖ´Â ¹öÆ°À» »ç¿ëÇÏ¿© ÇÁ·ÎÇÊÀ» ¸ñ·ÏÀÇ À§ ¶Ç´Â ¾Æ·¡·Î À̵¿ÇÕ´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgqf.html b/webconsole/html/ko/help/gbgqf.html
new file mode 100644
index 0000000..2cfebbc
--- /dev/null
+++ b/webconsole/html/ko/help/gbgqf.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ º¹»ç ¹× À̵¿</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqf"></A><h4>ÇÁ·ÎÇÊ º¹»ç ¹× À̵¿</h4>
+<h5>´Ü°è</h5><ol><li><p><b>º¹»ç ¶Ç´Â À̵¿ÇÒ ÇÁ·ÎÇÊ¿¡ ÇØ´çÇÏ´Â È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>ÀÛ¾÷ ¸ñ·Ï¿¡¼­ º¹»ç ¹× À̵¿À» ¼±ÅÃÇÕ´Ï´Ù.</b></p><p>º¹»ç ¹× À̵¿ ¸¶¹ý»ç°¡ ¿­¸³´Ï´Ù.</p>
+</li>
+<li><p><b>º¹»ç ¹× À̵¿ ¸¶¹ý»ç¿¡¼­ Á¦°øÇÏ´Â Áöħ¿¡ µû¶ó ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgqh.html b/webconsole/html/ko/help/gbgqh.html
new file mode 100644
index 0000000..dd12941
--- /dev/null
+++ b/webconsole/html/ko/help/gbgqh.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ ³»º¸³»±â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqh"></A><h4>ÇÁ·ÎÇÊ ³»º¸³»±â</h4>
+<h5>´Ü°è</h5><ol><li><p><b>³»º¸³¾ ÇÁ·ÎÇÊ¿¡ ÇØ´çÇÏ´Â È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>ÀÛ¾÷ ¸ñ·Ï¿¡¼­ ³»º¸³»±â¸¦ ¼±ÅÃÇÕ´Ï´Ù.</b></p><p>ÆÄÀÏÀ» ³»º¸³¾ À§Ä¡¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù.</p>
+</li>
+<li><p><b>´ëÈ­ »óÀÚ¿¡¼­ µð½ºÅ©¿¡ ÀúÀå ¿É¼ÇÀ» ¼±ÅÃÇÑ ÈÄ È®ÀÎÀ» Ŭ¸¯ÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>³»º¸³½ ÆÄÀÏÀ» ÀúÀåÇÒ À§Ä¡¸¦ ¼±ÅÃÇÏ°í È®ÀÎÀ» Ŭ¸¯ÇÕ´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgqj.html b/webconsole/html/ko/help/gbgqj.html
new file mode 100644
index 0000000..fd3da8a
--- /dev/null
+++ b/webconsole/html/ko/help/gbgqj.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÇÁ·ÎÇÊ ÇÒ´ç Ãë¼Ò</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqj"></A><h4>ÇÁ·ÎÇÊ ÇÒ´ç Ãë¼Ò</h4>
+<h5>´Ü°è</h5><ol><li><p><b>ÇÒ´çÀ» Ãë¼ÒÇÒ ÇÁ·ÎÇÊ¿¡ ÇØ´çÇÏ´Â È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>ÇÁ·ÎÇÊ ÇÒ´ç Ãë¼Ò ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>ÀÌÁ¦ ÇØ´ç ÇÁ·ÎÇÊÀÇ ÇÒ´çÀÌ Ãë¼ÒµÇ°í ÇÒ´çµÈ ÇÁ·ÎÇÊ Å×ÀÌºí¿¡¼­ »ç¶óÁý´Ï´Ù.</p>
+<hr size="1" noshade><p><IMG ALT="Caution" src="graphics/caution.gif"> <b>ÁÖÀÇ &#8211; </b>ÀÌ ÀÛ¾÷Àº °æ°í ´ëÈ­ »óÀÚ°¡ Ç¥½ÃµÇÁö ¾ÊÀ¸¹Ç·Î, ½Ç¼ö·Î ÇÁ·ÎÇÊ ÇÒ´ç Ãë¼Ò ¹öÆ°À» Ŭ¸¯ÇÑ °æ¿ì ÇÁ·ÎÇÊ ÇÒ´ç ±â´ÉÀ» »ç¿ëÇÏ¿© ÀÌ ÀýÂ÷¸¦ Ãë¼ÒÇÒ ¼ö ÀÖ½À´Ï´Ù.</p><hr size="1" noshade></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgqm.html b/webconsole/html/ko/help/gbgqm.html
new file mode 100644
index 0000000..77b5594
--- /dev/null
+++ b/webconsole/html/ko/help/gbgqm.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>±¸¼º ¸®Æ÷ÁöÅ丮 µ¿±âÈ­</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqm"></A><h4>±¸¼º ¸®Æ÷ÁöÅ丮 µ¿±âÈ­</h4>
+<p>Desktop Manager¸¦ »ç¿ëÇÏ¸é ´ÙÁß ¹é¿£µå¸¦ µ¿½Ã¿¡ °ü¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ±â´ÉÀ» »ç¿ëÇϸé Å×½ºÆ®¿ë ¹é¿£µå ÇÑ °³¿Í ÃÖÁ¾ ÇÁ·Î´ö¼Ç¿ë ¹é¿£µå ÇÑ °³¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌÁ¦ ±¸¼º º¯°æ »çÇ×À» Å×½ºÆ® ¹é¿£µå¿¡¼­ ¸ÕÀú Á¤ÀÇÇÏ¿© Æò°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·± ´ÙÀ½, Àüü ¶Ç´Â ÀϺΠÅ×½ºÆ® ¹é¿£µå¸¦ ÇÁ·Î´ö¼Ç ¹é¿£µå¿Í <i>µ¿±âÈ­</i>ÇÏ¿© ÇÊ¿äÇÑ º¯°æ »çÇ×À» ½Å¼ÓÇÏ°í ¾ÈÀüÇÏ°Ô ÇÁ·Î´ö¼Ç ½Ã½ºÅÛ¿¡ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ýÀº ÇÁ·Î´ö¼Ç ¹é¿£µåÀÇ ´Ü¼ø ¹é¾÷ ¹× º¹¿ø ¸ÞÄ¿´ÏÁòÀ¸·Îµµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ µ¿±âÈ­ ÀÛ¾÷Àº µ¿±âÈ­ â¿¡¼­ ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<p></p>
+<h5>´Ü°è</h5><ol><li><p><b>±¸¼º ¸®Æ÷ÁöÅ丮 â¿¡¼­ µ¿±âÈ­ÇÒ ¸®Æ÷ÁöÅ丮¸¦ ¼±ÅÃÇÕ´Ï´Ù.</b></p><p>µ¿±âÈ­ âÀÌ ¿­¸³´Ï´Ù.</p>
+</li>
+<li><p><b>¼Ò½º ±¸¼º ¸®Æ÷ÁöÅ丮 ¸ñ·Ï¿¡¼­ ¼Ò½º ¸®Æ÷ÁöÅ丮¸¦ ¼±ÅÃÇÕ´Ï´Ù.</b></p><p>º¯°æÀ» À§ÇØ ¼Ò½º·Î ÀÛ¿ëÇÏ´Â ¼Ò½º ¸®Æ÷ÁöÅ丮¸¦ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸®Æ÷ÁöÅ丮´Â º¯°æµÇÁö <i>¾Ê½À´Ï´Ù</i>. </p>
+</li>
+<li><p>(¼±Åà »çÇ×) <b>¼Ò½º ½ÃÀÛ À§Ä¡ ¿·¿¡ ÀÖ´Â º¯°æ ¹öÆ°À» Ŭ¸¯ÇÏ¸é ¼Ò½º ¸®Æ÷ÁöÅ丮¸¦ Á¦ÇÑÇÒ ¼ö ÀÖ½À´Ï´Ù.</b></p><p>ÀÌ ±â´ÉÀº ·çÆ® ÀÌ¿ÜÀÇ ´Ù¸¥ ¿ä¼Ò¸¦ µ¿±âÈ­ÀÇ ¼Ò½º ½ÃÀÛ À§Ä¡·Î ÁöÁ¤ÇÕ´Ï´Ù.</p>
+<p>¿øÇÏ´Â Á¶Á÷ ¶Ç´Â µµ¸ÞÀÎ ¿ä¼Ò·Î À̵¿ÇÒ ¼ö ÀÖ´Â ´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù. ¿ä¼Ò¸¦ ¼±ÅÃÇÏ¸é »õ °æ·Î°¡ ¼Ò½º ½ÃÀÛ À§Ä¡¿¡ Àû¿ëµË´Ï´Ù.</p>
+</li>
+<li><p><b>´ë»ó ±¸¼º ¸®Æ÷ÁöÅ丮 ¸ñ·Ï¿¡¼­ ´ë»ó ¸®Æ÷ÁöÅ丮¸¦ ¼±ÅÃÇÕ´Ï´Ù.</b></p><p>º¯°æÀ» À§ÇØ ´ë»óÀ¸·Î ÀÛ¿ëÇÏ´Â ´ë»ó ¸®Æ÷ÁöÅ丮¸¦ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸®Æ÷ÁöÅ丮´Â <i>º¯°æµË´Ï´Ù</i>. </p>
+</li>
+<li><p>(¼±Åà »çÇ×) <b>´ë»ó ½ÃÀÛ À§Ä¡ ¿·¿¡ ÀÖ´Â º¯°æ ¹öÆ°À» Ŭ¸¯ÇÏ¸é ´ë»ó ¸®Æ÷ÁöÅ丮¸¦ Á¦ÇÑÇÒ ¼ö ÀÖ½À´Ï´Ù.</b></p><p>ÀÌ ±â´ÉÀº ·çÆ® ÀÌ¿ÜÀÇ ´Ù¸¥ ¿ä¼Ò¸¦ µ¿±âÈ­ÀÇ ´ë»óÀ¸·Î ÁöÁ¤ÇÕ´Ï´Ù.</p>
+<p>¿øÇÏ´Â Á¶Á÷ ¶Ç´Â µµ¸ÞÀÎ ¿ä¼Ò·Î À̵¿ÇÒ ¼ö ÀÖ´Â ´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù. ¿ä¼Ò¸¦ ¼±ÅÃÇÏ¸é »õ °æ·Î°¡ ´ë»ó ½ÃÀÛ À§Ä¡¿¡ Àû¿ëµË´Ï´Ù.</p>
+</li>
+<li><p><b>ºñ±³ ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>µÎ Æ®¸®°¡ ºñ±³µÇ¾î ¸ðµç Â÷ÀÌÁ¡ÀÌ Å×ÀÌºí¿¡ ³ª¿­µË´Ï´Ù. </p>
+</li>
+<li><p><b>µ¿±âÈ­ÇÒ ÇÁ·ÎÇÊÀ» Æ÷ÇÔÇÏ´Â Å×À̺í Çà ¿·¿¡ ÀÖ´Â È®ÀζõÀ» ¼±ÅÃÇÏ°í µ¿±âÈ­ ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>µ¿±âÈ­°¡ ¿Ï·áµÇ¸é ´ë»ó ¸®Æ÷ÁöÅ丮°¡ ¼±ÅÃÇÑ ÇÁ·ÎÇÊ¿¡ ÇØ´çÇÏ´Â ¼Ò½º ¸®Æ÷ÁöÅ丮¿Í ÀÏÄ¡µË´Ï´Ù.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgqt.html b/webconsole/html/ko/help/gbgqt.html
new file mode 100644
index 0000000..1d6070f
--- /dev/null
+++ b/webconsole/html/ko/help/gbgqt.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ã±â ±â´É »ç¿ë</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqt"></A><h4>ã±â ±â´É »ç¿ë</h4>
+<p>ã±â ±â´ÉÀ» »ç¿ëÇϸé È®ÀåµÈ ¿ä¼ÒÀÇ <i>Á÷°è</i> ÀڽĿ¡ ÇØ´çÇÏ´Â ¸ðµç ¿ä¼Ò¿¡ ´ëÇÑ Á¤±ÔÈ­µÈ °Ë»öÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ±â´ÉÀº °Ë»ö ±â´É°ú´Â ´Þ¸®, ¿ä¼Ò¿¡ ´ëÇÑ ¹Ýº¹ °Ë»öÀ» Á¦°øÇÕ´Ï´Ù.</p>
+<h5>´Ü°è</h5><ol><li><p><b>Ž»ö Æ®¸®¿¡¼­ ÀϺΠ¿ä¼Ò´Â Ç¥½ÃµÇÁö ¾ÊÀ½ ³ëµå¸¦ Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>ã±â âÀÌ ¿­¸³´Ï´Ù.</p>
+</li>
+<li><p><b>ã±â Çʵ忡 Àüü ¶Ç´Â ºÎºÐ ¹®ÀÚ¿­À» ÀÔ·ÂÇÕ´Ï´Ù.</b></p><p>°Ë»öÀº ´ë/¼Ò¹®ÀÚ¸¦ ±¸ºÐÇϰųª Á¦ÇÑÇÏÁö ¾Ê½À´Ï´Ù. ¿¹¸¦ µé¾î, °Ë»ö ¹®ÀÚ¿­ "bc"´Â "ABC"¿Í "bcd"¸¦ ã½À´Ï´Ù. º°Ç¥(*)´Â °Ë»ö ¹®ÀÚ¿­ ³» ÀÓÀÇÀÇ ¹®ÀÚ ½ÃÄö½º¸¦ ³ªÅ¸³À´Ï´Ù. °Ë»ö ¹®ÀÚ¿­¿¡¼­ ¿øÇÏ´Â ¸ðµç À§Ä¡¿¡ µÎ °³ ÀÌ»óÀÇ º°Ç¥¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ºó Çʵå´Â &#8220;*&#8221; °Ë»ö ¹®ÀÚ¿­ÀÌ ÀÖ´Â Çʵå¿Í °°Àº ±â´ÉÀ» ÇÕ´Ï´Ù.</p>
+</li>
+<li><p><b>ã±â ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>°á°ú ¸ñ·ÏÀÌ Ç¥½ÃµË´Ï´Ù. °Ë»ö °á°ú ¼ö´Â 100°³·Î Á¦Çѵ˴ϴÙ.</p>
+</li>
+<li><p><b>°Ë»öÇÑ ¿ä¼Ò¸¦ Ž»ö Æ®¸®¿¡ Ãß°¡ÇÏ·Á¸é °á°ú ¸ñ·Ï¿¡¼­ ¿øÇÏ´Â ¿ä¼Ò¸¦ Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>ã±â âÀÌ ´ÝÈ÷°í ÇØ´ç ¿ä¼Ò°¡ Ž»ö Æ®¸®ÀÇ ÇÏÀ§ ³ëµå ¸ñ·Ï¿¡ Ãß°¡µË´Ï´Ù.</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbgqu.html b/webconsole/html/ko/help/gbgqu.html
new file mode 100644
index 0000000..0738b33
--- /dev/null
+++ b/webconsole/html/ko/help/gbgqu.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Àû¿ë À§Ä¡ º¯°æ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqu"></A><h4>Àû¿ë À§Ä¡ º¯°æ</h4>
+<h5>´Ü°è</h5><ol><li><p><b>º¯°æ ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</b></p><p>Ž»ö Æ®¸®¸¦ Æ÷ÇÔÇϴ âÀÌ ³ªÅ¸³³´Ï´Ù.</p>
+</li>
+<li><p><b>Æ®¸®¸¦ Ž»öÇÑ ÈÄ ¿øÇÏ´Â ¿ä¼Ò¸¦ ¼±ÅÃÇÕ´Ï´Ù.</b></p><p><hr size="1" noshade><p><b>ÆÁ &#8211; </b>Æ®¸®¿¡¼­ ¿øÇÏ´Â ¿ä¼Ò¸¦ ãÀ» ¼ö ¾ø´Â °æ¿ì °Ë»ö ¹öÆ°À» Ŭ¸¯ÇÏ¸é °Ë»ö âÀ» ¿­°í ¿ä¼Ò¸¦ ãÀ» ¼ö ÀÖ½À´Ï´Ù.</p>
+<hr size="1" noshade></p></li>
+<li><p><b>È®ÀÎ ¹öÆ°À» ´©¸¨´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbzbc.html b/webconsole/html/ko/help/gbzbc.html
new file mode 100644
index 0000000..a753a77
--- /dev/null
+++ b/webconsole/html/ko/help/gbzbc.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>±¸¼º ¸®Æ÷ÁöÅ丮 Á¦°Å</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbzbc"></A><h4>±¸¼º ¸®Æ÷ÁöÅ丮 Á¦°Å</h4><A NAME="indexterm-15"></A><h5>´Ü°è</h5><ol><li><p><b>Á¦°ÅÇÒ ±¸¼º ¸®Æ÷ÁöÅ丮¿¡ ÇØ´çÇÏ´Â È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>Á¦°Å ¹öÆ°À» ´©¸¨´Ï´Ù.</b></p><p>È®ÀÎ ´ëÈ­ »óÀÚ°¡ ³ªÅ¸³³´Ï´Ù.</p>
+</li>
+<li><p><b>±¸¼º ¸®Æ÷ÁöÅ丮¸¦ Á¦°ÅÇÏ·Á¸é È®ÀÎ ´ëÈ­ »óÀÚ¿¡¼­ È®ÀÎ ¹öÆ°À» ´©¸¨´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/gbzci.html b/webconsole/html/ko/help/gbzci.html
new file mode 100644
index 0000000..c40644b
--- /dev/null
+++ b/webconsole/html/ko/help/gbzci.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-KR"><!-- ident "%Z%%M% %I% %E% SMI" --><title>±¸¼º ¸®Æ÷ÁöÅ丮 À̸§ ¹Ù²Ù±â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbzci"></A><h4>±¸¼º ¸®Æ÷ÁöÅ丮 À̸§ ¹Ù²Ù±â</h4><A NAME="indexterm-16"></A><h5>´Ü°è</h5><ol><li><p><b>À̸§À» ¹Ù²Ü ±¸¼º ¸®Æ÷ÁöÅ丮¿¡ ÇØ´çÇÏ´Â È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù.</b></p></li>
+<li><p><b>À̸§ ¹Ù²Ù±â ¹öÆ°À» ´©¸¨´Ï´Ù.</b></p><p>À̸§ ¹Ù²Ù±â ´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù.</p>
+</li>
+<li><p><b>´ëÈ­ »óÀÚÀÇ ÅؽºÆ® Çʵ忡 ±¸¼º ¸®Æ÷ÁöÅ丮ÀÇ »õ À̸§À» ÀÔ·ÂÇÏ°í È®ÀÎÀ» ´©¸¨´Ï´Ù.</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/ko/help/index.xml b/webconsole/html/ko/help/index.xml
new file mode 100644
index 0000000..aeadfa1
--- /dev/null
+++ b/webconsole/html/ko/help/index.xml
@@ -0,0 +1,30 @@
+<!-- ident "%Z%%M% %I% %E% SMI" --><?xml version='1.0' encoding='UTF-8'?><!DOCTYPE index PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN" "index_1_0.dtd">
+<index version="1.0">
+<indexitem target="gbgpn" text="í”„ë¡œíŒŒì¼ ì§€ì •"></indexitem>
+<indexitem target="gbgce" text="구성 리í¬ì§€í† ë¦¬"><indexitem target="gbgcn" text="새로 만들기"></indexitem><indexitem target="gbzbc" text="제거"></indexitem><indexitem target="gbzci" text="ì´ë¦„ 바꾸기"></indexitem><indexitem target="gbgqm" text="ë™ê¸°í™”"></indexitem><indexitem text="유형"><indexitem target="gbgpt" text="파ì¼"></indexitem><indexitem target="gbgpt" text="하ì´ë¸Œë¦¬ë“œ"></indexitem><indexitem target="gbgpt" text="LDAP(Lightweight Directory Access Protocol)"></indexitem>
+</indexitem>
+<indexitem target="gbgpt" text="세부 정보 보기"></indexitem>
+</indexitem>
+<indexitem target="gbgni" text="í”„ë¡œíŒŒì¼ ë§Œë“¤ê¸°"></indexitem>
+<indexitem target="gbgcn" text="리í¬ì§€í† ë¦¬ 만들기"></indexitem>
+<indexitem target="gbgpr" text="í”„ë¡œíŒŒì¼ ì‚­ì œ"></indexitem>
+<indexitem target="gbgce" text="ë„ë©”ì¸"></indexitem>
+<indexitem target="gbgoz" text="유효 설정, 보기"></indexitem>
+<indexitem target="gbgcm" text="요소 트리"></indexitem>
+<indexitem target="gbgce" text="요소"><indexitem target="gbgqt" text="찾기 기능"></indexitem><indexitem target="gbgoy" text="정보"></indexitem><indexitem target="gbgpa" text="검색"></indexitem>
+</indexitem>
+<indexitem target="gbgqh" text="í”„ë¡œíŒŒì¼ ë‚´ë³´ë‚´ê¸°"></indexitem>
+<indexitem target="gbgps" text="í”„ë¡œíŒŒì¼ ê°€ì ¸ì˜¤ê¸°"></indexitem>
+<indexitem target="gbgpt" text="LDAP(Lightweight Directory Access Protocol)"></indexitem>
+<indexitem target="gbgqa" text="로그 아웃"></indexitem>
+<indexitem target="gbgcm" text="íƒìƒ‰"></indexitem>
+<indexitem target="gbgce" text="ì¡°ì§"></indexitem>
+<indexitem target="gbgcm" text="í”„ë¡œíŒŒì¼ íŠ¸ë¦¬"></indexitem>
+<indexitem target="gbgce" text="프로파ì¼"><indexitem target="gbgpn" text="지정"></indexitem><indexitem target="gbgni" text="새로 만들기"></indexitem><indexitem target="gbgpr" text="ì‚­ì œ"></indexitem><indexitem target="gbgqh" text="내보내기"></indexitem><indexitem target="gbgps" text="가져오기"></indexitem><indexitem target="gbgcm" text="íƒìƒ‰"></indexitem><indexitem target="gbgqj" text="지정 취소"></indexitem>
+</indexitem>
+<indexitem target="gbgqa" text="리í¬ì§€í† ë¦¬"></indexitem>
+<indexitem target="gbgpa" text="검색"></indexitem>
+<indexitem target="gbgqm" text="ë™ê¸°í™”"></indexitem>
+<indexitem target="gbgcd" text="모든 í”„ë¡œíŒŒì¼ ë³´ê¸°"></indexitem>
+<indexitem target="gbgdc" text="ì§€ì •ëœ í”„ë¡œíŒŒì¼ ë³´ê¸°"></indexitem>
+</index>
diff --git a/webconsole/html/ko/help/map.jhm b/webconsole/html/ko/help/map.jhm
new file mode 100644
index 0000000..a14c734
--- /dev/null
+++ b/webconsole/html/ko/help/map.jhm
@@ -0,0 +1,46 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN" "map_1_0.dtd">
+<map version="1.0">
+ <mapID target="gbgca" url="gbgca.html"/>
+ <mapID target="gbgce" url="gbgce.html"/>
+ <mapID target="gbgqa" url="gbgqa.html"/>
+ <mapID target="gbgpt" url="gbgpt.html"/>
+ <mapID target="gbgcn" url="gbgcn.html"/>
+ <mapID target="gbzbc" url="gbzbc.html"/>
+ <mapID target="gbzci" url="gbzci.html"/>
+ <mapID target="gbgqm" url="gbgqm.html"/>
+ <mapID target="gbgdc" url="gbgdc.html"/>
+ <mapID target="gbgcm" url="gbgcm.html"/>
+ <mapID target="gbgpa" url="gbgpa.html"/>
+ <mapID target="gbgqt" url="gbgqt.html"/>
+ <mapID target="gbgoy" url="gbgoy.html"/>
+ <mapID target="gbgni" url="gbgni.html"/>
+ <mapID target="gbgpr" url="gbgpr.html"/>
+ <mapID target="gbgpn" url="gbgpn.html"/>
+ <mapID target="gbgqj" url="gbgqj.html"/>
+ <mapID target="gbgpw" url="gbgpw.html"/>
+ <mapID target="gbgqf" url="gbgqf.html"/>
+ <mapID target="gbgps" url="gbgps.html"/>
+ <mapID target="gbgqh" url="gbgqh.html"/>
+ <mapID target="gbgoz" url="gbgoz.html"/>
+ <mapID target="gbgcd" url="gbgcd.html"/>
+ <mapID target="gbgcr" url="gbgcr.html"/>
+ <mapID target="gbgpe" url="gbgpe.html"/>
+ <mapID target="gbgpu" url="gbgpu.html"/>
+ <mapID target="gbgow" url="gbgow.html"/>
+ <mapID target="gbgpj" url="gbgpj.html"/>
+ <mapID target="gbgou" url="gbgou.html"/>
+ <mapID target="gbgec" url="gbgec.html"/>
+ <mapID target="gbgcg" url="gbgcg.html"/>
+ <mapID target="gbgpb" url="gbgpb.html"/>
+ <mapID target="gbgeb" url="gbgeb.html"/>
+ <mapID target="gbgot" url="gbgot.html"/>
+ <mapID target="gbgkr" url="gbgkr.html"/>
+ <mapID target="gbgpm" url="gbgpm.html"/>
+ <mapID target="gbgpp" url="gbgpp.html"/>
+ <mapID target="gbgda" url="gbgda.html"/>
+ <mapID target="gbgdh" url="gbgdh.html"/>
+ <mapID target="gbgqu" url="gbgqu.html"/>
+ <mapID target="gbgqe" url="gbgqe.html"/>
+</map>
diff --git a/webconsole/html/ko/help/p1.html b/webconsole/html/ko/help/p1.html
new file mode 100644
index 0000000..2ffa551
--- /dev/null
+++ b/webconsole/html/ko/help/p1.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<h1>Java Desktop System Configuration Manager Release 2.0 Online Help</h1>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/ko/help/toc.xml b/webconsole/html/ko/help/toc.xml
new file mode 100644
index 0000000..3da2f4d
--- /dev/null
+++ b/webconsole/html/ko/help/toc.xml
@@ -0,0 +1,44 @@
+<!-- ident "%Z%%M% %I% %E% SMI" --><?xml version='1.0' encoding='UTF-8'?><!DOCTYPE toc PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN" "toc_1_0.dtd">
+<toc version="1.0">
+<tocitem target="gbgca" text="Sun Desktop Manager 1.0.1 ë„움ë§"><tocitem target="gbgce" text="소개"></tocitem>
+<tocitem target="gbgqa" text="구성 리í¬ì§€í† ë¦¬ ì°½"><tocitem target="gbgpt" text="구성 리í¬ì§€í† ë¦¬ í…Œì´ë¸”"><tocitem target="gbgcn" text="새 구성 리í¬ì§€í† ë¦¬ 만들기"></tocitem>
+<tocitem target="gbzbc" text="구성 리í¬ì§€í† ë¦¬ 제거"></tocitem>
+<tocitem target="gbzci" text="구성 리í¬ì§€í† ë¦¬ ì´ë¦„ 바꾸기"></tocitem>
+<tocitem target="gbgqm" text="구성 리í¬ì§€í† ë¦¬ ë™ê¸°í™”"></tocitem>
+</tocitem>
+</tocitem>
+<tocitem target="gbgdc" text="í”„ë¡œíŒŒì¼ &#8212; 트리 보기"><tocitem target="gbgcm" text="íƒìƒ‰ ì°½"><tocitem target="gbgpa" text="요소 검색"></tocitem>
+<tocitem target="gbgqt" text="찾기 기능 사용"></tocitem>
+</tocitem>
+<tocitem target="gbgoy" text="ë‚´ìš© ì°½"><tocitem target="gbgni" text="새 í”„ë¡œíŒŒì¼ ë§Œë“¤ê¸°"></tocitem>
+<tocitem target="gbgpr" text="í”„ë¡œíŒŒì¼ ì‚­ì œ"></tocitem>
+<tocitem target="gbgpn" text="í”„ë¡œíŒŒì¼ ì§€ì •"></tocitem>
+<tocitem target="gbgqj" text="í”„ë¡œíŒŒì¼ ì§€ì • 취소"></tocitem>
+<tocitem target="gbgpw" text="í”„ë¡œíŒŒì¼ ì´ë¦„ 바꾸기"></tocitem>
+<tocitem target="gbgqf" text="í”„ë¡œíŒŒì¼ ë³µì‚¬ ë° ì´ë™"></tocitem>
+<tocitem target="gbgps" text="í”„ë¡œíŒŒì¼ ê°€ì ¸ì˜¤ê¸°"></tocitem>
+<tocitem target="gbgqh" text="í”„ë¡œíŒŒì¼ ë‚´ë³´ë‚´ê¸°"></tocitem>
+</tocitem>
+<tocitem target="gbgoz" text="유효 설정 보기"></tocitem>
+</tocitem>
+<tocitem target="gbgcd" text="í”„ë¡œíŒŒì¼ &#8212; 모ë‘"><tocitem target="gbgcr" text="새 í”„ë¡œíŒŒì¼ ë§Œë“¤ê¸°"></tocitem>
+<tocitem target="gbgpe" text="í”„ë¡œíŒŒì¼ ì‚­ì œ"></tocitem>
+<tocitem target="gbgpu" text="í”„ë¡œíŒŒì¼ ì´ë¦„ 바꾸기"></tocitem>
+<tocitem target="gbgow" text="í”„ë¡œíŒŒì¼ ë³µì‚¬ ë° ì´ë™"></tocitem>
+<tocitem target="gbgpj" text="í”„ë¡œíŒŒì¼ ê°€ì ¸ì˜¤ê¸°"></tocitem>
+<tocitem target="gbgou" text="í”„ë¡œíŒŒì¼ ë‚´ë³´ë‚´ê¸°"></tocitem>
+</tocitem>
+<tocitem target="gbgec" text="í”„ë¡œíŒŒì¼ íŽ¸ì§‘ê¸°"><tocitem target="gbgcg" text="ì¼ë°˜ ë“±ë¡ ì •ë³´"><tocitem target="gbgpb" text="프로파ì¼ì— 대한 ì¼ë°˜ ë“±ë¡ ì •ë³´ 지정"></tocitem>
+</tocitem>
+<tocitem target="gbgeb" text="구성 설정"><tocitem target="gbgot" text="í”„ë¡œíŒŒì¼ êµ¬ì„± 설정 보기 ë° íŽ¸ì§‘"></tocitem>
+</tocitem>
+<tocitem target="gbgkr" text="ì§€ì •ëœ ìš”ì†Œ"><tocitem target="gbgpm" text="프로파ì¼ì— 요소 지정"></tocitem>
+<tocitem target="gbgpp" text="프로파ì¼ì—ì„œ 요소 지정 취소"></tocitem>
+</tocitem>
+<tocitem target="gbgda" text="설정 요약"></tocitem>
+<tocitem target="gbgdh" text="고급 옵션"><tocitem target="gbgqu" text="위치ì—ì„œ ì‘용프로그램 변경"></tocitem>
+<tocitem target="gbgqe" text="프로파ì¼ì— 병합 순서 지정"></tocitem>
+</tocitem>
+</tocitem>
+</tocitem>
+</toc>
diff --git a/webconsole/html/ko/helpContent.html b/webconsole/html/ko/helpContent.html
new file mode 100644
index 0000000..6e41022
--- /dev/null
+++ b/webconsole/html/ko/helpContent.html
@@ -0,0 +1,336 @@
+<html>
+<head>
+<title>Sun Java[TM] Desktop System Configuration Manager - µµ¿ò¸» ³»¿ë</title>
+<meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"><!-- Empty script so IE5.0 Windows will draw table and button borders --><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"></script></head>
+
+<body class="help-body"><a name="top"></a><p><a name="intro"> </a><div class="help-header-1">Configuration Manager µµ¿ò¸»</div></p>
+<p>Sun Java[TM] Desktop System Configuration Manager µµ¿ò¸» ÆäÀÌÁöÀÔ´Ï´Ù. Java Desktop System Configuration ManagerÀÇ Æ¯Á¤ ºÎºÐ¿¡ ´ëÇÑ µµ¿ò¸»À» º¸·Á¸é ¿ÞÂÊ¿¡ ÀÖ´Â ¸µÅ© Áß Çϳª¸¦ Ŭ¸¯ÇϽʽÿÀ.</p>
+<p>µµ¿ò¸» ÆäÀÌÁöÀÇ Ã¹ Ç׸ñÀÎ <a class="help-link" href="#concepts">¹è°æ ¹× °³³ä</a>¿¡¼­´Â Configuration Manager Á¦Ç°¿¡ ´ëÇÑ ÀϹÝÀûÀÎ ¹è°æ Á¤º¸¿Í °³³ä¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. <a class="help-link" href="#ui">·¹À̾ƿô ¹× µ¿ÀÛ</a>¿¡¼­´Â Configuration ManagerÀÇ ÀϹÝÀûÀÎ ·¹À̾ƿô°ú µ¿ÀÛ¿¡ ´ëÇØ »ìÆ캼 ¼ö ÀÖ½À´Ï´Ù. </p>
+<p>ÀϹÝÀûÀÎ Á¤º¸ ÆäÀÌÁö¸¦ »ìÆ캻 ÈÄ <a class="help-link" href="#masthead"><b>¸¶½ºÆ®Çìµå</b></a>, <a class="help-link" href="#navigation"><b>Ž»ö â</b></a> ¹× <a class="help-link" href="#content"><b>³»¿ë â</b></a>¿¡ ´ëÇÑ º¸´Ù ±¸Ã¼ÀûÀÎ µµ¿ò¸»À» º¼ ¼ö ÀÖ½À´Ï´Ù. <a class="help-link" href="#login">·Î±×ÀÎ</a>°ú <a href="#reporting">º¸°í</a> ±â´ÉÀÌ ÀÖ´Â ÆäÀÌÁöµµ ÀÖ½À´Ï´Ù. <p><a name="concepts"> </a><div class="help-header-1">¹è°æ ¹× °³³ä</div></p>
+<p>Configuration Manager¿¡¼­´Â ±¸¼º ¼³Á¤À» Áß¾Ó ÁýÁß½ÄÀ¸·Î °ü¸®ÇÏ´Â µ¿½Ã¿¡ Á¶Á÷ °èÃþ ±¸Á¶ÀÇ °¢ ¼öÁØ¿¡¼­ ±¸¼º ¼³Á¤À» È®ÀÎ, Á¤ÀÇ ¹× Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. º» ¼³¸í¼­¿¡¼­´Â Àǹ̻ó ±ä¹ÐÈ÷ ¿¬°üµÈ ±¸¼º ¼³Á¤À» "±¸¼º Á¤Ã¥"À̶ó°í ºÎ¸¨´Ï´Ù.</p>
+<P>Configuration Manager´Â Æ®¸®¶ó°íµµ ÇÏ´Â ¼¼ °¡Áö °èÃþ ±¸Á¶¸¦ °ü¸®ÇÕ´Ï´Ù. Configuration ManagerÀÇ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ ÀÌÇØÇÏ·Á¸é ´ÙÀ½ µÎ Æ®¸®¸¦ ±¸ºÐÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù.</P>
+<p><div class="help-header-2"><a name="dataStructures">µ¥ÀÌÅÍ ±¸Á¶</a></div></p>
+<P>±¸¼º Á¤Ã¥¿¡ ÀÇÇØ ¸¸µé¾îÁø Æ®¸®¸¦ ±¸¼º Á¤Ã¥ Æ®¸®¶ó°í ÇÕ´Ï´Ù(±×¸² 1 - "Æ®¸®"ÀÇ ÆĶõ»ö ºÎºÐ ÂüÁ¶). Mozilla¿Í °°ÀÌ ±¸¼ºÀÌ º¹ÀâÇÑ ÇÁ·Î±×·¥À» »ç¿ëÇÑ ÀûÀÌ ÀÖÀ¸¸é ±¸¼º ¼³Á¤ÀÇ °èÃþ ±¸Á¶°¡ ³¸¼³Áö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ÀÏ¹Ý ±¸¼º Á¤Ã¥À» "/Mozilla/Navigator"ÀÇ "/Mozilla/Navigator/HomeUrl" ±¸¼º ¼³Á¤¿¡ ºñÀ¯ÇÒ ¼ö ÀÖ½À´Ï´Ù.</P>
+<P>±¸¼º Á¤Ã¥ Æ®¸®´Â µÎ ¹ø° Æ®¸® À¯ÇüÀÎ Á¶Á÷ Æ®¸®·Î ÅëÇյ˴ϴÙ(±×¸² 1 - "Æ®¸®"ÀÇ È¸»ö ºÎºÐ ÂüÁ¶). Á¶Á÷ Æ®¸®´Â Á¶Á÷ ´ÜÀ§ °£ÀÇ °ü°è¸¦ ³ªÅ¸³À´Ï´Ù. ÀÌ·¸°Ô Çؼ­ "±¸¼º Á¤Ã¥ Æ®¸®°¡ Æ÷ÇÔµÈ Á¶Á÷ Æ®¸®"°¡ ¸¸µé¾îÁý´Ï´Ù. Á¶Á÷ Æ®¸®´Â LDAP ¼­¹ö¸¦ »ç¿ëÇÏ¿© Ç¥ÇöµË´Ï´Ù.</P>
+<p>¼¼ ¹ø° Æ®¸® À¯ÇüÀº µµ¸ÞÀÎ Æ®¸®ÀÔ´Ï´Ù. µµ¸ÞÀÎ Æ®¸®´Â Çϵå¿þ¾î ÀåÄ¡ °£ÀÇ °ü°è¸¦ ³ªÅ¸³À´Ï´Ù. ±¸¼º Á¤Ã¥ Æ®¸®´Â µµ¸ÞÀÎ Æ®¸®¿¡ ÅëÇյǹǷΠ±¸¼º Á¤Ã¥ Æ®¸®°¡ Æ÷ÇÔµÈ µµ¸ÞÀÎ Æ®¸®°¡ ¸¸µé¾îÁý´Ï´Ù. µµ¸ÞÀÎ Æ®¸®´Â LDAP ¼­¹ö¸¦ »ç¿ëÇÏ¿© Ç¥ÇöµË´Ï´Ù.</p>
+<p>Á¶Á÷ Æ®¸®¿Í µµ¸ÞÀÎ Æ®¸® »ç¿ëÀ» À§ÇÑ ±âº» °³³äÀº µ¿ÀÏÇÕ´Ï´Ù. µÎ Æ®¸®ÀÇ ÁÖ¿ä Â÷ÀÌÁ¡Àº Á¶Á÷ Æ®¸®´Â »ç¿ëÀÚ¸¦ À¯Áö °ü¸®ÇÏ´Â ¹Ý¸é µµ¸ÞÀÎ Æ®¸®´Â È£½ºÆ®¸¦ À¯Áö °ü¸®ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. »ç¿ëÀÚ¿Í È£½ºÆ®°¡ µÎ °³ÀÇ Æ®¸®¿¡¼­ º°µµ·Î À¯Áö °ü¸®µÇ¹Ç·Î Configuration Manager´Â »ç¿ëÀÚ ±â¹Ý ±¸¼º°ú È£½ºÆ® ±â¹Ý ±¸¼ºÀ» ¸ðµÎ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. µÎ Æ®¸®ÀÇ À¯»çÁ¡ ¶§¹®¿¡ ÀÌ Àý¿¡¼­´Â Á¶Á÷ Æ®¸®¸¦ Áß½ÉÀ¸·Î ¼³¸íÇϸç, Á¶Á÷ Æ®¸®¿Í µµ¸ÞÀÎ Æ®¸® °£¿¡ Â÷ÀÌÁ¡ÀÌ ÀÖ´Â °æ¿ì¿¡¸¸ µµ¸ÞÀÎ Æ®¸®¿¡ ´ëÇØ ¾ð±ÞÇÕ´Ï´Ù.</p>
+<P>´ë±â¾÷¿¡¼­ Á¶Á÷ µ¥ÀÌÅ͸¦ °èÃþ ±¸Á¶¿¡ µû¶ó ¸ÅÇÎÇÏ´Â °æ¿ì ÁÖ·Î LDAP ¼­¹ö¸¦ »ç¿ëÇÕ´Ï´Ù. LDAP¿¡¼­ Á¶Á÷ Æ®¸® ³»ÀÇ °¢ À§Ä¡¸¦ ¿£Æ¼Æ¼¶ó°í ÇÕ´Ï´Ù.</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_ldap_v4.png" NAME="Trees" ALT="Æ®¸®" ALIGN=LEFT WIDTH=550 HEIGHT=369 BORDER=1> </FONT><P><FONT COLOR="#000000"><A NAME="fig_trees"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">±×¸² 1 &ndash; Æ®¸®</FONT></FONT></I></FONT></P>
+<p><div class="help-header-2"><a name="SecDataManagement">º¸¾È ¹× µ¥ÀÌÅÍ °ü¸®</a></div></p>
+<p>ÀÌ·¯ÇÑ "Æ®¸®ÀÇ Æ®¸®" ±¸Á¶´Â °èÃþÀû º¸¾È ¹× µ¥ÀÌÅÍ °ü¸®¸¦ ¿ëÀÌÇÏ°Ô Çϸç Ãʱ⿡ Àüü ±¸¼º Á¤Ã¥ Æ®¸®¸¦ µ¿½Ã¿¡ Á¶Á÷ Æ®¸®ÀÇ ·çÆ®¿¡ »ðÀÔÇÔÀ¸·Î½á ¸¸µé¾îÁý´Ï´Ù. Ãʱ⠱¸¼º Á¤Ã¥ Æ®¸®ÀÇ ±¸¼º ¼³Á¤¿¡ ´ëÇÑ ¿£Æ¼Æ¼º° º¯°æ »çÇ×Àº ÇØ´ç ¿£Æ¼Æ¼¿¡ ÀúÀåµË´Ï´Ù. ½±°Ô ¾Ë¾Æº¼ ¼ö ÀÖµµ·Ï ±×¸² 1¿¡´Â "marketing"°ú "jclarke"¶ó´Â Á¶Á÷ ¿£Æ¼Æ¼¿Í °ü·ÃµÈ ±¸¼º Á¤Ã¥ Æ®¸®¸¸ Ç¥½ÃµÇ¾î ÀÖ½À´Ï´Ù.</P>
+<p><div class="help-header-2"><a name="GenConfigSettings">±¸¼º ¼³Á¤ »ý¼º</a></div></p>
+<P>ƯÁ¤ ¿£Æ¼Æ¼¿¡ ´ëÇÑ ±¸¼º ¼³Á¤Àº º´ÇÕ¿¡ ÀÇÇØ »ý¼ºµË´Ï´Ù. Á¶Á÷ Æ®¸®³ª µµ¸ÞÀÎ Æ®¸®¿¡¼­ ƯÁ¤ ¿£Æ¼Æ¼¿Í °ü·ÃµÈ ¸ðµç ±¸¼º ¼³Á¤À» ·¹À̾î¶ó°í ÇÕ´Ï´Ù. º´ÇÕÀº ·çÆ® ·¹À̾¼­ ½ÃÀÛµÇ¸ç ¿øÇÏ´Â ¿£Æ¼Æ¼¿¡ µµ´ÞÇÒ ¶§±îÁö Æ®¸®¸¦ µû¶ó ÁøÇàµË´Ï´Ù. ƯÁ¤ ¿£Æ¼Æ¼¿Í °ü·ÃµÈ ·¹À̾¼­ º¯°æµÈ ±¸¼º ¼³Á¤Àº Æ®¸® °èÃþ ±¸Á¶¿¡¼­ ÇÏÀ§ ¿£Æ¼Æ¼¿Í °ü·ÃµÈ ·¹À̾ »ó¼ÓµË´Ï´Ù(<A class="help-link" HREF="#fig_merging">±×¸² 2 - "·¹ÀÌ¾î º´ÇÕ"</a> ÂüÁ¶). ƯÁ¤ ·¹À̾¼­ ÀÚü ¼³Á¤À» Á¤ÀÇÇÏ¸é »ó¼ÓµÈ °ªÀ» µ¤¾î¾µ ¼ö ÀÖ½À´Ï´Ù.</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_merge.gif" NAME="LayerMerging" ALT="·¹ÀÌ¾î º´ÇÕ" ALIGN=LEFT WIDTH=550 HEIGHT=520 BORDER=1> </FONT><P><FONT COLOR="#000000"><A NAME="fig_merging"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">±×¸² 2 &ndash; ·¹ÀÌ¾î º´ÇÕ</FONT></FONT></I></FONT></P>
+<p><FONT COLOR="#000000">±¸¼º ¼³Á¤°ú ¸¶Âù°¡Áö·Î º¸¾È Ư¡µµ »ó¼ÓµË´Ï´Ù.</FONT><FONT COLOR="#000000">"o=marketing"¿¡ ¿¬°áµÈ ·¹À̾¼­ ƯÁ¤ ±¸¼º ¼³Á¤¿¡ ´ëÇØ "º¸È£µÊ" º¸¾È ¼Ó¼ºÀ» ÁöÁ¤Çϸé Æ®¸®¿¡¼­ ¸ðµç ÈÄ¼Ó ·¹À̾îÀÇ ÀÌ ±¸¼º ¼³Á¤ÀÌ Àбâ Àü¿ëÀ¸·Î ¼³Á¤µË´Ï´Ù(<A class="help-link" HREF="#fig_protection">±×¸² 3 - "º¸È£"</a> ÂüÁ¶).</FONT></P>
+<P><FONT COLOR="#000000"><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_protected_v3.png" NAME="Protection" ALT="º¸È£" ALIGN=LEFT WIDTH=550 HEIGHT=524 BORDER=1> </FONT></FONT><P><FONT COLOR="#000000"><FONT COLOR="#000000"><A NAME="fig_protection"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">±×¸² 3 &ndash; º¸È£</FONT></FONT></I></FONT></FONT></P>
+<p><div class="help-header-2"><a name="BCAssociating">Á¶Á÷ Æ®¸® ¶Ç´Â µµ¸ÞÀÎ Æ®¸®¿Í ±¸¼º Á¤Ã¥ Æ®¸® ¿¬°á</a></div></p>
+<p>±¸¼º Á¤Ã¥ Æ®¸®´Â ´ÙÀ½ µÎ °¡Áö ¹æ¹ýÀ¸·Î Á¶Á÷ Æ®¸®ÀÇ ¿£Æ¼Æ¼¿¡ ¿¬°áµË´Ï´Ù.</P>
+<UL>
+ <li>µ¶¸³Çü ±¸¼º Á¤Ã¥ Æ®¸®·Î ƯÁ¤ ¿£Æ¼Æ¼¿¡ ÀúÀåµÇ´Â °æ¿ì</li>
+ <li>Á¤Ã¥ ±×·ì¿¡¼­ ƯÁ¤ ¿£Æ¼Æ¼·Î ¿¬°áµÇ´Â °æ¿ì</li>
+</UL>
+<p><p><div class="help-header-2"><a name="BCPolicyGroups">Á¤Ã¥ ±×·ì</a></div></p>
+<P>Á¤Ã¥ ±×·ìÀº ±¸¼º Á¤Ã¥ÀÇ ÄÁÅ×À̳ʷÎ, °¢°¢ °íÀ¯ÇÑ À̸§À» °®½À´Ï´Ù. ±¸¼º Á¤Ã¥ÀÌ ÇØ´ç ±¸¼º ¼³Á¤À» ±¸¼º Á¤Ã¥ Æ®¸®¿¡ ÀúÀåÇϱ⠶§¹®¿¡ Á¤Ã¥ ±×·ìÀº ±¸¼º Á¤Ã¥ Æ®¸®ÀÇ ÄÁÅ×À̳ÊÀ̱⵵ ÇÕ´Ï´Ù(<A class="help-link" HREF="#fig_trees">±×¸² 1 &ndash; "Æ®¸®"</A> ÂüÁ¶). Á¤Ã¥ ±×·ìÀº Á¤Ã¥ ¸®Æ÷ÁöÅ丮¿¡ ÀúÀåµÇ¸ç, Á¤Ã¥ ±×·ì¿¡ ´ëÇÑ ¸µÅ©¸¦ ¸¸µé¾î ¸ðµç À¯ÇüÀÇ ¿£Æ¼Æ¼°¡ »ç¿ëÇÒ ¼ö ÀÖÀ¸¹Ç·Î »ç¿ëµÈ ¹é¿£µå¿Í °ü°è ¾øÀÌ À¯¿¬¼ºÀÌ Áõ°¡ÇÕ´Ï´Ù. Á¤Ã¥ ±×·ìÀÇ ¶Ç ´Ù¸¥ ÀÌÁ¡Àº °¡Á®¿À±â¿Í ³»º¸³»±â°¡ °¡´ÉÇϱ⠶§¹®¿¡ À¯Áö °ü¸®°¡ ¿ëÀÌÇÏ´Ù´Â °ÍÀÔ´Ï´Ù.</P>
+<P>°ü¸®ÀÚ´Â Á¤Ã¥ ¸®Æ÷ÁöÅ丮¿¡ ÀúÀåµÈ "Experts" ¹× "Novice" Á¤Ã¥ ±×·ì°ú °°ÀÌ ÀÇ¹Ì»ó ±¸ºÐµÇ´Â ¹üÀ§¿¡ ´ëÇØ ±¸¼º Á¤Ã¥ ÁýÇÕÀ» ¸¸µç ÈÄ Àüü Á¶Á÷ Æ®¸®¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.</P>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="ÆäÀÌÁö ¸Ç À§·Î À̵¿" width="11" height="10" hspace="4" border="0">¸Ç À§·Î</a></div><a name="ui"> </a><div class="help-header-1">·¹À̾ƿô ¹× µ¿ÀÛ</div>
+<p>Configuration ManagerÀÇ ·¹À̾ƿôÀº ¸¶½ºÆ®Çìµå, Ž»ö â ¹× ³»¿ë âÀÇ ¼¼ ºÎºÐÀ¸·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù. ¸¶½ºÆ®Çìµå´Â ÆäÀÌÁö ¸Ç À§¿¡ ÀÖ½À´Ï´Ù. ¿ÞÂÊ ¾Æ·¡¿¡´Â Ž»ö â, ¿À¸¥ÂÊ ¾Æ·¡¿¡´Â ³»¿ë âÀÌ À§Ä¡ÇØ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ·¹À̾ƿô À¯ÇüÀ» ¿ÞÂÊ-¿À¸¥ÂÊ Ã¢ ÁýÇÕÀ̶ó°íµµ ÇÕ´Ï´Ù. Ãß°¡ ´ëÈ­ »óÀÚ¿Í µµ¿ò¸» ³»¿ëÀ» Ç¥½ÃÇϱâ À§ÇØ º°µµÀÇ ºê¶ó¿ìÀú âÀÌ ¿­¸³´Ï´Ù.</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="ÆäÀÌÁö ¸Ç À§·Î À̵¿" width="11" height="10" hspace="4" border="0">¸Ç À§·Î</a></div><a name="login"> </a><div class="help-header-1">·Î±×ÀÎ</div>
+<p>Configuration Manager¸¦ »ç¿ëÇÏ·Á¸é Sun Web Console¿¡ ·Î±×ÀÎÇØ¾ß ÇÕ´Ï´Ù. Sun Web ConsoleÀ» ÅëÇØ ¾×¼¼½ºÇÏ´Â °ü¸® ÀÀ¿ë ÇÁ·Î±×·¥Àº ¸ðµÎ µ¿ÀÏÇÑ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÕ´Ï´Ù. ÄܼÖÀÇ °¡Àå Å« ÀÌÁ¡Àº °ü¸®ÀÚ°¡ ÇÑ ¹ø¸¸ ·Î±×ÀÎÇϸé ÄÜ¼Ö ³»¿¡¼­ ¸ðµç ÀÀ¿ë ÇÁ·Î±×·¥À» »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ÀÌ·± ¸ñÀûÀ» À§ÇØ Sun Web ConsoleÀº Ç¥ÁØ ·Î±×ÀÎ ÆäÀÌÁö¸¦ Á¦°øÇÕ´Ï´Ù.</p>
+<p>Ç¥ÁØ ·Î±×ÀÎ ÆäÀÌÁö¿¡¼­ »ç¿ëÀÚ À̸§°ú ¾ÏÈ£ ÅؽºÆ® Çʵå À§¿¡´Â ÇöÀç ·Î±×ÀÎÇÏ°í ÀÖ´Â ¼­¹ö°¡ Ç¥½ÃµË´Ï´Ù.</p>
+<p>Web Console¿¡ ¼º°øÀûÀ¸·Î ·Î±×ÀÎÇϸé Web Console ÀÀ¿ë ÇÁ·Î±×·¥ ½ÃÀÛ ÆäÀÌÁö°¡ ³ªÅ¸³³´Ï´Ù. ¿©±â¼­ "Configuration Manager" ÀÀ¿ë ÇÁ·Î±×·¥À» ¼±ÅÃÇϸé Configuration Manager°¡ ½ÃÀ۵˴ϴÙ.</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="ÆäÀÌÁö ¸Ç À§·Î À̵¿" width="11" height="10" hspace="4" border="0">¸Ç À§·Î</a></div><a name="masthead"> </a><div class="help-header-1">¸¶½ºÆ®Çìµå</div>
+<p>¸¶½ºÆ®Çìµå¿¡´Â Àüü Á¦Ç° À̸§(Sun Java[TM] Desktop System Configuration Manager)°ú ¸¹Àº ÀϹÝÀûÀÎ ¸µÅ©°¡ Ç¥½ÃµÇ¾î ÀÖ½À´Ï´Ù.</p>
+<ul><li><b>ÄܼÖ</b> ¸µÅ©¸¦ Ŭ¸¯Çϸé Sun Web Console ÀÀ¿ë ÇÁ·Î±×·¥ ½ÃÀÛ ÆäÀÌÁö·Î µ¹¾Æ°©´Ï´Ù.</li>
+ <li> <b>¹öÀü</b> ¸µÅ©¸¦ Ŭ¸¯ÇÏ¸é ¹öÀü âÀÌ ¿­¸³´Ï´Ù.</li>
+ <li> <b>·Î±× ¾Æ¿ô</b> ¸µÅ©¸¦ Ŭ¸¯Çϸé Sun Web Console°ú Configuration Manager¿¡¼­ ·Î±×¾Æ¿ôµÇ°í ·Î±×ÀÎ ÆäÀÌÁö·Î µ¹¾Æ°©´Ï´Ù.</li>
+ <li><b>µµ¿ò¸»</b> ¸µÅ©¸¦ Ŭ¸¯Çϸé ÀÌ·¯ÇÑ µµ¿ò¸» ÆäÀÌÁö°¡ ¿­¸³´Ï´Ù.</li>
+</ul>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="ÆäÀÌÁö ¸Ç À§·Î À̵¿" width="11" height="10" hspace="4" border="0">¸Ç À§·Î</a></div><a name="navigation"> </a><div class="help-header-1">Ž»ö â</div>
+<p>Ž»ö â¿¡¼­´Â Á¶Á÷, »ç¿ëÀÚ ¹× ¿ªÇÒÀÌ Æ÷ÇÔµÈ Á¶Á÷ Æ®¸®¿Í µµ¸ÞÀÎ ¹× È£½ºÆ®°¡ Æ÷ÇÔµÈ µµ¸ÞÀÎ Æ®¸®¸¦ Ž»öÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ ÇØ´ç »ç¿ëÀÚ ¹× È£½ºÆ® Á¤Ã¥ ¸®Æ÷ÁöÅ丮¿¡ ÀÖ´Â Á¤Ã¥ ±×·ìÀ» °ü¸®ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.</p>
+<p>Ž»ö â¿¡´Â µÎ °³ÀÇ ÃÖ»óÀ§ ÅÇÀÎ <b>»ç¿ëÀÚ</B> ÅÇ°ú <b>È£½ºÆ®</B> ÅÇÀÌ ÀÖ½À´Ï´Ù. </p><a name="entities"> </a><div class="help-header-2">»ç¿ëÀÚ ÅÇ</div>
+<p>µÎ °³ÀÇ ÇÏÀ§ ÅÇÀÎ <b>Á¶Á÷ Æ®¸®</B> ÅÇ°ú <b>Á¤Ã¥ ¸®Æ÷ÁöÅ丮</B> ÅÇÀÌ ÀÖ½À´Ï´Ù. <b>Á¶Á÷ Æ®¸®</B> ÅÇÀ» »ç¿ëÇÏ¿© Á¶Á÷ Æ®¸®¸¦ Ž»öÇÒ ¼ö ÀÖ½À´Ï´Ù. </p><a name="parpath"></a><div class="help-header-3">»óÇÏ °æ·Î</div>
+<p><b>Á¶Á÷ Æ®¸®</B> ÅÇÀÇ ¸Ç À§¿¡´Â ÇöÀç ¿£Æ¼Æ¼ °æ·Î¸¦ ½Ã°¢ÀûÀ¸·Î º¸¿©ÁÖ´Â ÄÁÆ®·ÑÀÎ »óÇÏ °æ·Î°¡ ÀÖ½À´Ï´Ù. ¸ðµç °æ·Î ±¸°£Àº ƯÁ¤ ¿£Æ¼Æ¼¸¦ ³ªÅ¸³»´Â ¸µÅ©ÀÔ´Ï´Ù. ´Ü, ÀÏ¹Ý ÅؽºÆ®·Î Ç¥½ÃµÇ°í ÇöÀç ¿£Æ¼Æ¼¸¦ ³ªÅ¸³»´Â ¸¶Áö¸· ¸µÅ©´Â Á¦¿ÜµË´Ï´Ù. »óÇÏ °æ·Î¸¦ »ç¿ëÇÏ¿© Ž»öÇϱâ À§ÇØ Æ¯Á¤ ¸µÅ©¸¦ Ŭ¸¯ÇÏ¸é ´ÙÀ½ ÀÛ¾÷ÀÌ ¼öÇàµË´Ï´Ù. <ul><li>»óÇÏ °æ·Î°¡ Ŭ¸¯ÇÑ ¿£Æ¼Æ¼¸¦ °¡¸®Å°°í Ž»ö Å×ÀÌºí¿¡ ÇØ´ç ¿£Æ¼Æ¼ÀÇ ÇÏÀ§ ¿£Æ¼Æ¼°¡ Ç¥½ÃµÇµµ·Ï Ž»ö âÀÌ »õ·Î °íÃÄÁý´Ï´Ù.</li>
+ <li>ÇØ´ç ¿£Æ¼Æ¼¿Í °ü·ÃµÈ ±¸¼º Á¤Ã¥ µ¥ÀÌÅÍ°¡ ³»¿ë â¿¡ Ç¥½ÃµË´Ï´Ù. </li>
+</ul>Ž»ö â°ú ³»¿ë âÀº Àüü ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ µ¿±âÈ­µÇ¾î µ¿ÀÏÇÑ µ¥ÀÌÅÍ º¸±â¸¦ Á¦°øÇÕ´Ï´Ù. </p><a name="navtable"></a><div class="help-header-3">Ž»ö Å×À̺í</div>
+<p>Ž»ö Å×À̺íÀº »óÇÏ °æ·Î ¾Æ·¡¿¡ ÀÖÀ¸¸ç ÇöÀç ¿£Æ¼Æ¼ÀÇ ÇÏÀ§ ¿£Æ¼Æ¼°¡ ³ª¿­µË´Ï´Ù. "À̸§" ¿­¿¡´Â ÇöÀç ¿£Æ¼Æ¼ÀÇ ¸ðµç ÇÏÀ§ ¿£Æ¼Æ¼ À̸§ÀÌ Æ÷ÇԵ˴ϴÙ. "À¯Çü" ¿­¿¡´Â ¿£Æ¼Æ¼ À¯ÇüÀÌ Ç¥½ÃµË´Ï´Ù. ¸ðµç ÇàÀÇ "ÀÛ¾÷" ¿­¿¡´Â <b>º¸±â</B> ¸µÅ©°¡ ÀÖ½À´Ï´Ù.</p>
+<p>ƯÁ¤ ¿£Æ¼Æ¼·Î À̵¿Çϱâ À§ÇØ ³ª¿­µÈ À̸§ Áß Çϳª¸¦ Ŭ¸¯ÇÏ¸é ´ÙÀ½ ÀÛ¾÷ÀÌ ¼öÇàµË´Ï´Ù. <ul><li>¼±ÅÃÇÑ ÇÏÀ§ ¿£Æ¼Æ¼°¡ ÇöÀç ¿£Æ¼Æ¼°¡ µË´Ï´Ù.</li>
+ <li>»óÇÏ °æ·Î°¡ »õ·Î¿î ÇöÀç ¿£Æ¼Æ¼¸¦ °¡¸®Å°°í Ž»ö Å×ÀÌºí¿¡ ÇØ´ç ¿£Æ¼Æ¼ÀÇ ÇÏÀ§ ¿£Æ¼Æ¼°¡ Ç¥½ÃµÇµµ·Ï Ž»ö âÀÌ »õ·Î °íÃÄÁý´Ï´Ù.</li>
+ <li>ÇØ´ç ¿£Æ¼Æ¼¿Í °ü·ÃµÈ ±¸¼º Á¤Ã¥ÀÌ ³»¿ë â¿¡ Ç¥½ÃµË´Ï´Ù. </li>
+</ul></p>¿£Æ¼Æ¼ À¯ÇüÀº "Á¶Á÷", "»ç¿ëÀÚ" ¶Ç´Â "¿ªÇÒ" Áß ÇϳªÀÔ´Ï´Ù.</p>
+<p>³ª¿­µÈ ƯÁ¤ ¿£Æ¼Æ¼ÀÇ ¼¼ºÎ Á¤º¸¸¦ º¸±â À§ÇØ <b>º¸±â</B> ¸µÅ©¸¦ Ŭ¸¯ÇÏ¸é ´ÙÀ½ ÀÛ¾÷ÀÌ ¼öÇàµË´Ï´Ù. <ul><li>¼±ÅÃÇÑ ÇàÀÇ ¹è°æÀÌ ÆĶõ»öÀ¸·Î ¹Ù²ò´Ï´Ù. </li>
+ <li>¼±ÅÃÇÑ ¿£Æ¼Æ¼¿Í °ü·ÃµÈ µ¥ÀÌÅÍ°¡ ³»¿ë â¿¡ Ç¥½ÃµË´Ï´Ù. </li>
+</ul>¹è°æÀÌ ÆĶõ»öÀÎ ÇàÀº ÇöÀç ³»¿ë â¿¡ Ç¥½ÃµÈ µ¥ÀÌÅÍÀÇ ¿£Æ¼Æ¼¸¦ ³ªÅ¸³À´Ï´Ù.</p>
+<p>Ž»ö Å×À̺íÀÇ ÀÛ¾÷ Ç¥½ÃÁÙ¿¡´Â <b>ÇÊÅÍ</B> µå·Ó´Ù¿î ¸Þ´º¿Í <b>°í±Þ ÇÊÅÍ</b> ¾ÆÀÌÄÜ¿¡ ÀÖ½À´Ï´Ù. Å×À̺í Ç׸ñ ¼ö°¡ 10°³¸¦ ÃÊ°úÇϸé Å×À̺í Ç׸ñ º¸±â¸¦ º¯°æÇÒ ¼ö ÀÖµµ·Ï <b>ÆäÀÌÁö ´ÜÀ§ Ç¥½Ã/½ºÅ©·Ñ</b> ¾ÆÀÌÄÜÀÌ Ç¥½ÃµË´Ï´Ù.</p>
+<p><b>ÇÊÅÍ</b> µå·Ó´Ù¿î ¸Þ´º¿¡¼­ Ž»ö Å×ÀÌºí¿¡ Ç¥½ÃÇÒ Ç׸ñ À¯ÇüÀ» ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ Ç׸ñ Áß¿¡¼­ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. <ul><li>"¸ðµç Ç׸ñ"Àº ¸ðµç À¯ÇüÀÇ ¿£Æ¼Æ¼¸¦ Ž»ö Å×ÀÌºí¿¡ Ç¥½ÃÇÕ´Ï´Ù.</li>
+ <li>"Á¶Á÷"Àº "Á¶Á÷" À¯ÇüÀÇ ¿£Æ¼Æ¼¸¸ Ž»ö Å×ÀÌºí¿¡ Ç¥½ÃÇÕ´Ï´Ù.</li>
+ <li>"»ç¿ëÀÚ"´Â "»ç¿ëÀÚ" À¯ÇüÀÇ ¿£Æ¼Æ¼¸¸ Ž»ö Å×ÀÌºí¿¡ Ç¥½ÃÇÕ´Ï´Ù.</li>
+ <li>"¿ªÇÒ"Àº "¿ªÇÒ" À¯ÇüÀÇ ¿£Æ¼Æ¼¸¸ Ž»ö Å×ÀÌºí¿¡ Ç¥½ÃÇÕ´Ï´Ù. </li>
+</ul></p><a name="adfilter"></a><div class="help-header-3">°í±Þ ÇÊÅÍ</div>
+<p>Ž»ö Å×ÀÌºí¿¡¼­ <b>°í±Þ ÇÊÅÍ</B> ¾ÆÀÌÄÜÀ» Ŭ¸¯ÇÏ¸é °í±Þ ÇÊÅÍ ´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù.</P>
+<p><b>À¯Çü</b> ¼½¼Ç¿¡¼­ ÇÊÅ͸µÇÒ ¿£Æ¼Æ¼ À¯ÇüÀ» Ç¥½ÃÇÕ´Ï´Ù. º¸´Ù ±¸Ã¼ÀûÀÎ ÇÊÅ͸¦ ¸¸µé·Á¸é <b>À̸§</b> ÅؽºÆ® Çʵ忡 ÇÊÅ͸¦ Àû¿ëÇÒ À̸§À» ÀÔ·ÂÇÑ ´ÙÀ½ ´ëÈ­ »óÀÚ ¾Æ·¡ÂÊ¿¡ ÀÖ´Â <b>ÇÊÅÍ</B> ¹öÆ°À» Ŭ¸¯ÇÏ¿© ÇÊÅ͸¦ ½ÇÇàÇÕ´Ï´Ù. </p><a name="search"></a><div class="help-header-3">°Ë»ö</div>
+<p>°Ë»ö âÀ» ¿­·Á¸é Ž»ö Å×À̺í À§¿¡ ÀÖ´Â <b>°Ë»ö</b> ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù. °Ë»ö âÀº ¸¶½ºÆ®Çìµå, ¸Å°³ º¯¼ö ¿µ¿ª(¿ÞÂÊ) ¹× °á°ú ¿µ¿ª(¿À¸¥ÂÊ)À¸·Î ÀÌ·ç¾îÁ® ÀÖÀ¸¸ç Á¶Á÷ Æ®¸® Àüü¿¡¼­ ƯÁ¤ ¿£Æ¼Æ¼ À¯Çü°ú ¿£Æ¼Æ¼ À̸§À» ¹Ýº¹Çؼ­ °Ë»öÇÏ´Â µ¥ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. °Ë»ö âÀÌ ¹é±×¶ó¿îµå¿¡ ¿­·Á ÀÖÀ» ¶§ ÁÖ Ã¢ÀÇ Å½»ö â¿¡¼­ <b>°Ë»ö</b> ¹öÆ°À» Ŭ¸¯ÇÏ¸é °Ë»ö âÀÌ ¸Ç À§¿¡ Ç¥½ÃµË´Ï´Ù. °Ë»ö ⠸Ű³ º¯¼ö ¿µ¿ªÀÇ »óÇÏ °æ·Î¿¡ Ç¥½ÃµÇ´Â °Ë»ö âÀÇ ÇöÀç ¿£Æ¼Æ¼°¡ »õ·Î °íÃÄÁý´Ï´Ù. ´Ù¸¥ ¸ðµç ¸Å°³ º¯¼ö¿Í °á°ú ¿µ¿ªÀÇ ³»¿ëÀº º¯°æµÇÁö ¾Ê½À´Ï´Ù.</p>
+<p>¸Å°³ º¯¼ö ¿µ¿ªÀÇ ¸Ç À§¿¡´Â ÇöÀç ¿£Æ¼Æ¼ °æ·Î¸¦ ½Ã°¢ÀûÀ¸·Î º¸¿©ÁÖ´Â »óÇÏ °æ·Î°¡ Ç¥½ÃµË´Ï´Ù. ¸Å°³ º¯¼ö ¿µ¿ªÀÇ »ç¿ë ¹æ¹ý¿¡ ´ëÇؼ­´Â <a class="help-link" href="#parpath">»óÇÏ °æ·Î</a> Àý¿¡¼­ ¼³¸íÇÕ´Ï´Ù.</p>
+<p>ƯÁ¤ ¿£Æ¼Æ¼ À¯ÇüÀ» °Ë»öÇÏ·Á¸é »óÇÏ °æ·Î ¾Æ·¡¿¡ ÀÖ´Â µå·Ó´Ù¿î ¸ñ·Ï¿¡¼­ ÇØ´ç À¯ÇüÀ» ¼±ÅÃÇÕ´Ï´Ù. "¸ðµÎ °Ë»ö", "Á¶Á÷ °Ë»ö", "»ç¿ëÀÚ °Ë»ö", "¿ªÇÒ °Ë»ö", "µµ¸ÞÀÎ °Ë»ö", "È£½ºÆ® °Ë»ö" µîÀÇ 6°³ À¯Çü Áß¿¡¼­ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<p>°Ë»ö ¹üÀ§¸¦ Á¼È÷·Á¸é µå·Ó´Ù¿î ¸ñ·Ï ¿·¿¡ ÀÖ´Â ÅؽºÆ® »óÀÚ¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ Çʵ忡 ÀÔ·ÂÇÑ °Ë»ö ¹®ÀÚ¿­°ú ÀÏÄ¡ÇÏ´Â ¿£Æ¼Æ¼ À̸§À» °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. <b>½ÃÀÛ À§Ä¡</b> ¶óµð¿À ¹öÆ° Áß Çϳª¸¦ ¼±ÅÃÇÏ¿© Æ®¸® °Ë»öÀ» ½ÃÀÛÇÏ´Â À§Ä¡¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÇöÀç À§Ä¡ºÎÅÍ °Ë»öÇϰųª Æ®¸® ¸Ç À§¿¡¼­ °Ë»öÀ» ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. ±âº»°ªÀº ÇöÀç À§Ä¡¿¡¼­ °Ë»öÇÏ´Â °ÍÀÔ´Ï´Ù. °¢ À§Ä¡´Â ÇØ´ç À̸§À¸·Î Ç¥ÇöµË´Ï´Ù. »óÇÏ °æ·Î¿¡¼­ ƯÁ¤ °æ·Î ±¸°£À» Ŭ¸¯Çϸé ÇöÀç °Ë»ö À§Ä¡°¡ ¼±ÅÃÇÑ ¿£Æ¼Æ¼·Î ¹Ù²îÁö¸¸ ³×ºñ°ÔÀÌÅÍÀÇ Ç¥½Ã ¿µ¿ªÀº º¯°æµÇÁö ¾Ê½À´Ï´Ù.</p>
+<p>"ÆäÀÌÁö ´ç Ç¥½ÃµÇ´Â °á°ú ¼ö" µå·Ó´Ù¿î ¸ñ·Ï¿¡¼­ Ç¥½ÃÇÒ °á°ú ¼ö¸¦ ¼±ÅÃÇÕ´Ï´Ù.</p>
+<p>°Ë»ö â¿¡ ÀÖ´Â ¸ðµç °Ë»ö Çʵå´Â °Ë»ö ¹®ÀÚ¿­¿¡ ¿ÍÀϵåÄ«µå·Î »ç¿ëµÈ º°Ç¥("*")¸¦ Çã¿ëÇÕ´Ï´Ù. º°Ç¥´Â ÀÓÀÇ ¼öÀÇ ÀÓÀÇ ¹®ÀÚ¸¦ ³ªÅ¸³À´Ï´Ù. °Ë»ö Á¶°ÇÀ» ¿©·¯ °³ ÁöÁ¤ÇÏ¸é ¸ðµç °Ë»ö Á¶°Ç¿¡ ÀÏÄ¡ÇÏ´Â ¿£Æ¼Æ¼¸¸ °á°ú Å×ÀÌºí¿¡ Ãß°¡µË´Ï´Ù. °Ë»öÀº ´ë/¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾Ê½À´Ï´Ù.</p>
+<p>°Ë»öÀ» ½ÃÀÛÇÏ·Á¸é <b>°Ë»ö</b> ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù. ±×·¯¸é °Ë»ö °á°ú°¡ Æ÷ÇÔµÈ Å×À̺íÀÌ °á°ú ¿µ¿ª¿¡ Ç¥½ÃµË´Ï´Ù.</p>
+<p>ÆäÀÌÁö¿¡¼­ º¯°æÇÑ °ªÀ» ¿ø·¡´ë·Î º¹¿øÇÏ·Á´Â °æ¿ì <b>¿ø·¡´ë·Î</b> ¹öÆ°À» Ŭ¸¯ÇÏ¸é ¸Å°³ º¯¼ö ¿µ¿ª¿¡ ±âº»°ªÀÌ Ç¥½ÃµË´Ï´Ù. ÅؽºÆ® »óÀÚ¿¡ ÀÔ·ÂÇÑ °ªÀº ¸ðµÎ Áö¿öÁö°í µå·Ó´Ù¿î ¸ñ·Ï°ú ¶óµð¿À ¹öÆ° ±×·ì¿¡¼­´Â ù ¹ø° °ªÀÌ ¼±Åõ˴ϴÙ.</p>
+<p>°Ë»ö âÀ» óÀ½ ½ÇÇàÇÏ¸é °á°ú ¿µ¿ª¿¡ ºó ÆäÀÌÁö°¡ ³ªÅ¸³ª°í °Ë»ö ÈÄ¿¡ °á°ú Å×À̺íÀÌ Ç¥½ÃµË´Ï´Ù. °á°ú Å×ÀÌºí¿¡´Â "À̸§", "À¯Çü" ¹× "°æ·Î" ¿­ÀÌ ÀÖ½À´Ï´Ù.</p>
+<p>°á°ú¸¦ º¸±â À§ÇØ "À̸§" ¿­ ¾Æ·¡¿¡¼­ ÇØ´ç À̸§À» Ŭ¸¯ÇÏ¸é ´ÙÀ½ ÀÛ¾÷ÀÌ ¼öÇàµË´Ï´Ù. <ul><li>ÁÖ Ã¢ÀÌ ¸Ç À§¿¡ Ç¥½ÃµË´Ï´Ù.</li>
+ <li>"À̸§" ¸µÅ©°¡ ³ªÅ¸³»´Â ¿£Æ¼Æ¼°¡ Ž»ö Å×ÀÌºí¿¡¼­ ÆĶõ»ö ¹è°æÀ¸·Î Ç¥½ÃµÇµµ·Ï ÁÖ Ã¢ÀÇ Å½»ö âÀÌ »õ·Î °íÃÄÁý´Ï´Ù. </li>
+ <li>ÇØ´ç ¿£Æ¼Æ¼¿Í °ü·ÃµÈ ±¸¼º Á¤Ã¥ÀÌ ÁÖ Ã¢ÀÇ ³»¿ë â¿¡ Ç¥½ÃµË´Ï´Ù.</li>
+ </UL>
+</p>
+<p>"À¯Çü" ¿­¿¡´Â ¿£Æ¼Æ¼ À¯ÇüÀÌ Ç¥½ÃµË´Ï´Ù. ¿£Æ¼Æ¼ À¯ÇüÀº "Á¶Á÷", "»ç¿ëÀÚ" ¶Ç´Â "¿ªÇÒ" Áß ÇϳªÀÔ´Ï´Ù.</p>
+<p>"°æ·Î" ¿­¿¡´Â ¿£Æ¼Æ¼ °æ·Î°¡ Æ÷ÇԵ˴ϴÙ. ÀÌ °æ·Î´Â °Ë»ö ½ÃÀÛ À§Ä¡¿¡ »ó´ëÀûÀÎ °æ·Î¸¦ Ç¥½ÃÇÕ´Ï´Ù.</p>
+<p>"»ç¿ëÀÚ" À¯ÇüÀ» °Ë»öÇÏ´Â °æ¿ì "»ç¿ëÀÚ ID", "À̸§", "¼º" µîÀÇ »ç¿ëÀÚ Á¤º¸¸¦ ÀÔ·ÂÇϱâ À§ÇÑ ¿©·¯ °³ÀÇ ÅؽºÆ® »óÀÚ°¡ ¸Å°³ º¯¼ö ¿µ¿ª¿¡ Ç¥½ÃµË´Ï´Ù. °á°ú ¿µ¿ª¿¡µµ "À̸§" ¿­ ¿À¸¥ÂÊ¿¡ »ç¿ëÀÚ ID°¡ Æ÷ÇÔµÈ "»ç¿ëÀÚ ID" ¿­ÀÌ Ãß°¡µË´Ï´Ù. ¸Å°³ º¯¼ö ¿µ¿ªÀÇ "»ç¿ëÀÚ ID" ÅؽºÆ® »óÀÚ¿¡ ÃÖ¼Ò ÇÑ ¹®ÀÚ ÀÌ»óÀ» ÀÔ·ÂÇϸé "»ç¿ëÀÚ ID" ¿­ÀÌ ±âº» Á¤·Ä ±âÁØÀÌ µË´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é "À̸§" ¿­ÀÌ ±âº» Á¤·Ä ±âÁØÀÌ µË´Ï´Ù. </p><a name="hoststab"> </a><div class="help-header-2">È£½ºÆ® ÅÇ</div>
+<p><b>È£½ºÆ®</B> ÅÇ¿¡´Â µÎ °³ÀÇ ÇÏÀ§ ÅÇÀÎ <b>µµ¸ÞÀÎ Æ®¸®</B> ÅÇ°ú <b>Á¤Ã¥ ¸®Æ÷ÁöÅ丮</B> ÅÇÀÌ ÀÖ½À´Ï´Ù. </p><a name="domtree"></a><div class="help-header-3">µµ¸ÞÀÎ Æ®¸® ÅÇ</div>
+<p>µµ¸ÞÀÎ Æ®¸®¿¡´Â »ç¿ëÇÏ°í ÀÖ´Â Çϵå¿þ¾îÀÇ ±¸¼º ¼³Á¤ÀÌ Ç¥½ÃµË´Ï´Ù.</P>
+<p>µµ¸ÞÀÎ Æ®¸®ÀÇ Å½»ö ¹æ¹ýÀº Á¶Á÷ Æ®¸®¿Í µ¿ÀÏÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº <a href="#entities">»ç¿ëÀÚ ÅÇ</A> ÀýÀ» ÂüÁ¶ÇϽʽÿÀ. <a name="actionbar"></a><div class="help-header-3">ÀÛ¾÷ Ç¥½ÃÁÙ</div>
+<p>Ž»ö Å×À̺íÀÇ <b>ÇÊÅÍ</B> µå·Ó´Ù¿î ¸Þ´º¿¡´Â ´ÙÀ½ 4°³ Ç׸ñÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. <ul><li>"¸ðµç Ç׸ñ" - ¸ðµç ¿£Æ¼Æ¼ À¯ÇüÀ» Ç¥½ÃÇÕ´Ï´Ù.</li>
+ <li>"µµ¸ÞÀÎ" - µµ¸ÞÀÎ À¯ÇüÀÇ ¿£Æ¼Æ¼¸¦ Ç¥½ÃÇÕ´Ï´Ù.</li>
+ <li>"È£½ºÆ®" - È£½ºÆ® À¯ÇüÀÇ ¿£Æ¼Æ¼¸¦ Ç¥½ÃÇÕ´Ï´Ù. </li>
+</ul>
+</p><a name="adfilterhosts"></a><div class="help-header-3">°í±Þ ÇÊÅÍ</div>
+<p>µµ¸ÞÀÎ Æ®¸®ÀÇ °í±Þ ÇÊÅÍ´Â Á¶Á÷ Æ®¸®ÀÇ °í±Þ ÇÊÅÍ¿Í µ¿ÀÏÇÑ ¹æ½ÄÀ¸·Î ÀÛµ¿Çϸç(ÀÌÀü <a href="#adfilter">°í±Þ ÇÊÅÍ</a> Àý ÂüÁ¶), "µµ¸ÞÀÎ" ¿£Æ¼Æ¼ À¯Çü°ú "È£½ºÆ®" ¿£Æ¼Æ¼ À¯ÇüÀ» ÇÊÅ͸µÇÒ ¼ö ÀÖ½À´Ï´Ù. </p><a name="searchhosts"></a><div class="help-header-3">°Ë»ö</div>
+<p><b>µµ¸ÞÀÎ Æ®¸®</b> ÅÇ¿¡¼­ <b>°Ë»ö</b> ¹öÆ°À» Ŭ¸¯ÇÏ¸é µµ¸ÞÀÎ °Ë»öÀÌ ³ªÅ¸³³´Ï´Ù. µµ¸ÞÀÎ °Ë»öÀº Á¶Á÷ Æ®¸® °Ë»ö°ú µ¿ÀÏÇÑ ¹æ½ÄÀ¸·Î ÀÛµ¿ÇÏÁö¸¸(<a href="#">À§ÀÇ ³»¿ë</a> ÂüÁ¶) ½ÃÀÛ À§Ä¡ Çʵ尡 "Çϵå¿þ¾î"·Î ¼³Á¤µË´Ï´Ù.</p>
+
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="ÆäÀÌÁö ¸Ç À§·Î À̵¿" width="11" height="10" hspace="4" border="0">¸Ç À§·Î</a></div><a name="psptab"> </a><div class="help-header-2">Á¤Ã¥ ¸®Æ÷ÁöÅ丮</div>
+<p><b>Á¤Ã¥ ¸®Æ÷ÁöÅ丮</b> ÅÇÀº <b>»ç¿ëÀÚ</B> ÅÇ°ú <b>È£½ºÆ®</B> ÅÇ¿¡ ¸ðµÎ ÀÖ½À´Ï´Ù.</P>
+<p>Á¤Ã¥ ¸®Æ÷ÁöÅ丮´Â »ç¿ëÀÚ Á¤Ã¥ ±×·ìÀ̳ª È£½ºÆ® Á¤Ã¥ ±×·ìÀÇ ÄÁÅ×À̳ÊÀÔ´Ï´Ù. Á¤Ã¥ ±×·ìÀº ¿ì¼± ¼øÀ§¿¡ µû¶ó Á¤ÀÇµÈ ¼ø¼­´ë·Î ³ª¿­µË´Ï´Ù. </p><a name="psptable"></a><div class="help-header-3">Á¤Ã¥ ±×·ì Å×À̺í</div>
+<P>Á¤Ã¥ ±×·ì Å×À̺íÀº ÆäÀÌÁö ¸Ç À§¿¡ ÀÖÀ¸¸ç Á¤Ã¥ ±×·ìÀÌ ³ª¿­µË´Ï´Ù. ÀÌ Å×ÀÌºí¿¡´Â ¼±Åà ¿­, "À̸§" ¹× "¿ì¼± ¼øÀ§" ¿­ÀÌ ÀÖ½À´Ï´Ù. </P>
+<P>¼±Åà ¿­Àº <b>Á¤Ã¥ ±×·ì ÀÛ¾÷</b> µå·Ó´Ù¿î ¸Þ´º¿¡ ³ª¿­µÈ ÀÛ¾÷À» Àû¿ëÇÒ ÇàÀ» Ç¥½ÃÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.</P>
+<P>ƯÁ¤ Á¤Ã¥ ±×·ìÀ¸·Î À̵¿Çϱâ À§ÇØ ÇØ´ç À̸§À» Ŭ¸¯ÇÏ¸é ´ÙÀ½ ÀÛ¾÷ÀÌ ¼öÇàµË´Ï´Ù.</P>
+<UL>
+ <li>¼±ÅÃÇÑ ÇàÀÇ ¹è°æÀÌ ÆĶõ»öÀ¸·Î ¹Ù²ò´Ï´Ù.</li>
+ <li>¼±ÅÃÇÑ Á¤Ã¥°ú °ü·ÃµÈ µ¥ÀÌÅÍ°¡ ³»¿ë â¿¡ Ç¥½ÃµË´Ï´Ù.</li>
+</ul>
+<p>"¿ì¼± ¼øÀ§" ¿­¿¡´Â Á¤Ã¥ ±×·ìÀÇ ¿ì¼± ¼øÀ§°¡ Æ÷ÇԵ˴ϴÙ. °ü¸®ÀÚ°¡ ƯÁ¤ ¿£Æ¼Æ¼¿¡ µÎ °³ ÀÌ»óÀÇ Á¤Ã¥ ±×·ìÀ» ¿¬°áÇÑ °æ¿ì ¿ì¼± ¼øÀ§¿¡ µû¶ó Á¤Ã¥ ±×·ìÀÇ º´ÇÕ ¼ø¼­°¡ Á¤Àǵ˴ϴÙ.</p>
+<P>¹è°æÀÌ ÆĶõ»öÀÎ ÇàÀº ÇöÀç ³»¿ë â¿¡ Ç¥½ÃµÈ µ¥ÀÌÅÍÀÇ Á¤Ã¥ ±×·ì(Ç¥½ÃµÈ Á¤Ã¥ ±×·ì)À» ³ªÅ¸³À´Ï´Ù. </P><a name="pspactions"></a><div class="help-header-3">Á¤Ã¥ ±×·ì ÀÛ¾÷ Ç¥½ÃÁÙ</div>
+<P><b>Á¤Ã¥ ±×·ì ÀÛ¾÷</B> µå·Ó´Ù¿î ¸Þ´º¿¡´Â À§ ¾Æ·¡¼øÀ¸·Î ´ÙÀ½ ÀÛ¾÷ÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. </P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <THEAD>
+ <TR VALIGN=TOP>
+ <TH WIDTH="11%">
+ <P>À̸§</P>
+ </TH>
+ <TH WIDTH="89%">
+ <P>ÀÛ¾÷</P>
+ </TH>
+ </TR>
+ </THEAD>
+ <TBODY>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+ <P>»õ·Î ¸¸µé±â</P>
+ </TD>
+ <TD WIDTH="89%">
+ <P>»ç¿ëÀÚ°¡ Á¤Ã¥ ±×·ìÀÇ °íÀ¯ À̸§À» ÀÔ·ÂÇÒ ¼ö ÀÖ´Â ´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù. È®ÀÎÀ» Ŭ¸¯Çϸé Á¤Ã¥ ±×·ìÀÌ Ãß°¡µÇ°í º¯°æ »çÇ×À» ¹Ý¿µÇϱâ À§ÇØ Å½»ö âÀÌ »õ·Î °íÃÄÁý´Ï´Ù.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="11%">
+ <P>»èÁ¦</P>
+ </td>
+ <TD WIDTH="89%">
+ <P>Á¤Ã¥ ±×·ì »èÁ¦¸¦ È®ÀÎÇÏ´Â °æ°í ¸Þ½ÃÁö°¡ Ç¥½ÃµÈ Æ˾÷ âÀÌ ¿­¸³´Ï´Ù. »ç¿ëÀÚ°¡ È®ÀÎÀ» Ŭ¸¯Çϸé Á¤Ã¥ ±×·ìÀÌ »èÁ¦µÇ°í º¯°æ »çÇ×À» ¹Ý¿µÇϱâ À§ÇØ Å½»ö âÀÌ »õ·Î °íÃÄÁý´Ï´Ù.</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>À̸§ ¹Ù²Ù±â</p>
+ </td>
+ <td width="89%">
+ <p>´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù. »ç¿ëÀÚ°¡ Á¤Ã¥ ±×·ìÀÇ »õ·Î¿î °íÀ¯ À̸§À» ÀÔ·ÂÇϸé Á¤Ã¥ ±×·ìÀÇ À̸§ÀÌ ¹Ù²î°í º¯°æ »çÇ×À» ¹Ý¿µÇϱâ À§ÇØ Å½»ö âÀÌ »õ·Î °íÃÄÁý´Ï´Ù.</p>
+ </td>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>¿ì¼± ¼øÀ§ ÆíÁý</p>
+ </td>
+ <td width="89%">
+ <p>¿ì¼± ¼øÀ§ º¯°æÀ» À§ÇÑ ¸ñ·Ï »óÀÚ°¡ Æ÷ÇÔµÈ ´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù.</p>
+ </td>
+ </tr>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+ <P>³»º¸³»±â</P>
+ </TD>
+ <TD WIDTH="89%">
+ <P>´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù. »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ Á¤Ã¥ ±×·ìÀ» ³»º¸³¾ ´ë»ó °æ·Î¸¦ ÀÔ·ÂÇÕ´Ï´Ù.</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>°¡Á®¿À±â</p>
+ </td>
+ <td width="89%">
+ <p>´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù. »ç¿ëÀÚ°¡ °¡Á®¿Ã Á¤Ã¥ ±×·ìÀ» ¼±ÅÃÇÑ ´ÙÀ½ È®ÀÎÀ» Ŭ¸¯Çϸé Á¤Ã¥ ±×·ìÀÌ Ãß°¡µÇ°í º¯°æ »çÇ×À» ¹Ý¿µÇϱâ À§ÇØ Å½»ö âÀÌ »õ·Î °íÃÄÁý´Ï´Ù.</p>
+ </td>
+ </tr>
+ </TBODY>
+</TABLE>
+
+<p><a name="psppriorities"></a><div class="help-header-3">Á¤Ã¥ ±×·ì ¿ì¼± ¼øÀ§</div></p>
+<p>Á¤Ã¥ ±×·ì ¿ì¼± ¼øÀ§ÀÇ °³³äÀº °ü¸®ÀÚ°¡ ·¹ÀÌ¾î º´ÇÕ ¼ø¼­¸¦ Á¤ÀÇÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù. ƯÁ¤ ¿£Æ¼Æ¼¿¡ Á¤Ã¥ ±×·ìÀÌ µÎ °³ ÀÌ»ó ÁöÁ¤µÇ¾î ÀÖÀ¸¸é º´ÇÕ °úÁ¤¿¡¼­ Á¤Ã¥ ±×·ì ¿ì¼± ¼øÀ§°¡ »ç¿ëµË´Ï´Ù. ÀÌ °æ¿ì ¿£Æ¼Æ¼ °èÃþ ±¸Á¶¸¸À¸·Î´Â Á¤Ã¥ ±×·ì º´ÇÕ ¼ø¼­¸¦ °áÁ¤Çϱ⿡ ÃæºÐÇÏÁö ¾ÊÀ¸¹Ç·Î Á¤Ã¥ ±×·ì¿¡ ¿ì¼± ¼øÀ§¸¦ ÁöÁ¤ÇÏ¿© ¹®Á¦¸¦ ÇØ°áÇÕ´Ï´Ù.</p>
+<p>Á¤Ã¥ ±×·ì ¿ì¼± ¼øÀ§ ´ëÈ­ »óÀÚ¸¦ ¿­·Á¸é <b>Á¤Ã¥ ±×·ì ÀÛ¾÷</b> µå·Ó´Ù¿î ¸Þ´º¿¡¼­ <b>¿ì¼± ¼øÀ§ ÆíÁý</b>À» ¼±ÅÃÇÕ´Ï´Ù. Á¤Ã¥ ±×·ìÀÇ ¿ì¼± ¼øÀ§¸¦ ³ôÀ̰ųª ³·Ãß·Á¸é ´ÙÀ½ ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù.</p>
+<ol>
+ <li>¸ñ·Ï¿¡¼­ Á¤Ã¥ ±×·ìÀ» ¼±ÅÃÇÕ´Ï´Ù.</li>
+ <li><b>À§·Î À̵¿</b> ¶Ç´Â <b>¾Æ·¡·Î À̵¿</b> ¹öÆ°À» Ŭ¸¯ÇÏ¿© ¿ì¼± ¼øÀ§¸¦ ³ôÀ̰ųª ³·Ãä´Ï´Ù. </li>
+</ol>
+
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="ÆäÀÌÁö ¸Ç À§·Î À̵¿" width="11" height="10" hspace="4" border="0">¸Ç À§·Î</a></div><a name="content"> </a><div class="help-header-1">³»¿ë â</div>
+<p>³»¿ë â¿¡´Â Ž»ö â¿¡¼­ ¼±ÅÃÇÑ ¿£Æ¼Æ¼³ª Á¤Ã¥ ±×·ì°ú °ü·ÃµÈ µ¥ÀÌÅÍ°¡ Ç¥½ÃµË´Ï´Ù. µ¥ÀÌÅÍ´Â ÅÇÀ¸·Î ¹­¿© ÀÖ½À´Ï´Ù. Ž»ö â¿¡¼­ ¼±ÅÃÇÑ Ç׸ñ¿¡ µû¶ó ³»¿ë â¿¡ Ç¥½ÃµÇ´Â ÅÇÀÇ ¼ö¿Í À¯ÇüÀÌ °áÁ¤µË´Ï´Ù. ±âº» È°¼º ÅÇÀº <b>Á¤Ã¥</b> ÅÇÀÔ´Ï´Ù. ÇöÀç È°¼º ÅÇÀº Ž»ö â¿¡¼­ ´Ù¸¥ Ç׸ñÀ» ¼±ÅÃÇصµ »õ Ç׸ñ¿¡¼­ ÇØ´ç ÅÇÀ» Á¦°øÇϱ⸸ ÇÏ¸é °è¼Ó È°¼º »óŸ¦ À¯ÁöÇÕ´Ï´Ù. »õ·Î ¼±ÅÃÇÑ Ç׸ñ¿¡¼­ ÇØ´ç ÅÇÀ» Á¦°øÇÏÁö ¾ÊÀ¸¸é <b>Á¤Ã¥</b> ÅÇÀÌ È°¼ºÈ­µË´Ï´Ù. ÅÇÀ» ´Ù½Ã È°¼ºÈ­Çϸé ÇØ´ç ÅÇÀÇ ³»ºÎ »óÅÂ(»óÇÏ °æ·Î, Á¤·Ä ¼ø¼­)µµ ±×´ë·Î ºÒ·¯¿É´Ï´Ù. </p><a name="policies"> </a><div class="help-header-2">Á¤Ã¥ ÅÇ</div>
+<p><b>Á¤Ã¥</B> ÅÇ¿¡¼­´Â ÇÏÀ§ ±×·ì, ±¸¼º ¼³Á¤ ¶Ç´Â µÑ ´Ù¸¦ Ç¥½ÃÇÏ´Â ±¸¼º Á¤Ã¥ Æ®¸®¸¦ Ž»öÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<p>¸ðµç Á¤Ã¥ ÆäÀÌÁö¿¡´Â ´ÙÀ½ µÎ °³ÀÇ ¹öÆ°ÀÌ ÀÖ½À´Ï´Ù. <ul><li><b>º¸°í¼­</b>: ÀÚ¼¼ÇÑ ³»¿ëÀº <a href="#reporting">º¸°í</a> ÀýÀ» ÂüÁ¶ÇϽʽÿÀ.</li>
+ <li><b>¼³Á¤ Áö¿ì±â</b>: ÀÌ ¹öÆ°Àº ÇöÀç Ç¥½ÃµÈ ¿£Æ¼Æ¼ ÇÏÀ§ ±×·ìÀÇ ¸ðµç ±¸¼º µ¥ÀÌÅ͸¦ Àç±ÍÀûÀ¸·Î »èÁ¦ÇÕ´Ï´Ù. </li>
+</ul>
+</P>
+<p>±¸¼º Á¤Ã¥ Æ®¸®¿¡¼­ °¢ ·çÆ® Ç׸ñÀº "StarSuite 7"°ú °°Àº ÀÀ¿ë ÇÁ·Î±×·¥À» ³ªÅ¸³À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ¾Æ·¡ÀÇ Æ®¸®´Â ÇØ´ç ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ¼ÓÇÏ´Â ±¸¼º Á¤Ã¥À» ³ª¿­ÇÕ´Ï´Ù. ±¸¼º Á¤Ã¥Àº ±¸¼º Á¤Ã¥ Æ®¸®ÀÇ ¾îµð¿¡³ª À§Ä¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±¸¼º Á¤Ã¥ÀÌ ±¸¼º Á¤Ã¥ Æ®¸®ÀÇ ¸®ÇÁ°¡ ¾Æ´Ï¸é ±¸¼º Á¤Ã¥ Æ®¸®¿¡¼­ ÇöÀçÀÇ ÇÑ À§Ä¡¿¡ ´ëÇÑ Á¤Ã¥ Å×À̺í°ú ±¸¼º Á¤Ã¥À» ¸ðµÎ Ç¥½ÃÇØ¾ß ÇÕ´Ï´Ù. </p><a name="caparpath"> </a><div class="help-header-3">»óÇÏ °æ·Î</div>
+<p>»óÇÏ °æ·Î´Â ÆäÀÌÁö ¸Ç À§, ÅÇ ¾Æ·¡¿¡ Ç¥½ÃµÇ¸ç ±¸¼º Á¤Ã¥ Æ®¸®¿¡¼­ÀÇ ÇöÀç À§Ä¡¸¦ ½Ã°¢ÀûÀ¸·Î º¸¿©ÁÝ´Ï´Ù. ¶ÇÇÑ Å½»ö âÀÇ »óÇÏ °æ·Î¿Í µ¿ÀÏÇÑ ¹æ½ÄÀ¸·Î ÀÛµ¿ÇÕ´Ï´Ù(ÀÌÀü <a class="help-link" href="#parpath">»óÇÏ °æ·Î</a> Àý ÂüÁ¶). </p><a name="subgroupstable"> </a><div class="help-header-3">ÇÏÀ§ ±×·ì Å×À̺í</div>
+<P>ÇÏÀ§ ±×·ì Å×À̺íÀº »óÇÏ °æ·Î ¾Æ·¡¿¡ ÀÖÀ¸¸ç ±¸¼º Á¤Ã¥ Æ®¸®¿¡¼­ ÇöÀç À§Ä¡ÀÇ ÇÏÀ§ ±×·ìÀÌ ³ª¿­µË´Ï´Ù. ÀÌ Å×ÀÌºí¿¡´Â "À̸§" ¿­°ú "¼³¸í" ¿­ÀÌ ÀÖ½À´Ï´Ù.</P>
+<P>"À̸§" ¿­¿¡´Â ±¸¼º Á¤Ã¥ Æ®¸®¿¡¼­ ÇöÀç À§Ä¡ÀÇ ¸ðµç ÇÏÀ§ ±×·ì À̸§ÀÌ Æ÷ÇԵ˴ϴÙ. °¢ À̸§Àº ¸µÅ©·Î Ç¥½ÃµË´Ï´Ù. ±¸¼º Á¤Ã¥ Æ®¸®¸¦ Ž»öÇϱâ À§ÇØ Æ¯Á¤ À̸§ ¸µÅ©¸¦ Ŭ¸¯ÇÏ¸é ´ÙÀ½ ÀÛ¾÷ÀÌ ¼öÇàµË´Ï´Ù.</P>
+<UL>
+ <li>»óÇÏ °æ·Î°¡ ±¸¼º Á¤Ã¥ Æ®¸®¿¡¼­ÀÇ »õ À§Ä¡¸¦ °¡¸®Å°µµ·Ï ³»¿ë âÀÌ »õ·Î °íÃÄÁý´Ï´Ù.</li>
+ <li>Á¤Ã¥ Å×À̺íÀ̳ª Á¤Ã¥ÀÌ Ç¥½ÃµÇµµ·Ï ³»¿ë âÀÌ »õ·Î °íÃÄÁý´Ï´Ù.</LI>
+</UL>
+<P>ÀÌ·¯ÇÑ Å½»ö ¹æ¹ýÀ» "µå¸±´Ù¿î" Ž»öÀ̶ó°í ÇÕ´Ï´Ù.</P>
+<P>¼³¸í ¿­¿¡´Â ÇÏÀ§ ±×·ì¿¡ ´ëÇÑ °£·«ÇÑ ¼³¸íÀÌ Æ÷ÇԵ˴ϴÙ. </P><A NAME="capolicies"></A><div class="help-header-3">Á¤Ã¥</div>
+<P>ÇöÀç ¿£Æ¼Æ¼¿Í ÇöÀç ±¸¼º Á¤Ã¥ÀÇ Á¶ÇÕ¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â À¯È¿ÇÑ ±¸¼º Á¤Ã¥ µ¥ÀÌÅÍ°¡ ÀÖÀ¸¸é ³»¿ë âÀÇ "Á¤Ã¥" ÅÇ¿¡ ÇØ´ç µ¥ÀÌÅÍ°¡ Ç¥½ÃµË´Ï´Ù.</p>
+<p>µ¥ÀÌÅÍ´Â Å×À̺í·Î Á¦°øµÇ¸ç, °¢ Å×ÀÌºí¿¡´Â ¼±Åà ¾ÆÀÌÄÜÀÌ Æ÷ÇÔµÈ ¼±Åà ¿­, "»óÅÂ" ¿­, "À̸§" ¿­, "°ª" ¿­ µî ¸ðµÎ 4°³ÀÇ ¿­ÀÌ ÀÖ½À´Ï´Ù. Å×À̺í ÀÛ¾÷ Ç¥½ÃÁÙ¿¡´Â µå·Ó´Ù¿î ÀÛ¾÷ ¸Þ´º°¡ ÀÖ½À´Ï´Ù. </p>
+<p>ƯÁ¤ ¿ä¼Ò¸¦ ¼±ÅÃÇÏ·Á¸é ¾Õ¿¡ ÀÖ´Â È®ÀζõÀ» ¼±ÅÃÇÕ´Ï´Ù. ÀÌÁ¦ ÀÛ¾÷ Ç¥½ÃÁÙ¿¡ ÀÖ´Â µå·Ó´Ù¿î ¸Þ´ºÀÇ ÀÛ¾÷À» ¼±ÅÃÇÑ ¿ä¼Ò¿¡ ´ëÇØ ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ Ç¥¿¡´Â °¢ ÀÛ¾÷¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀÌ ³ª¿Í ÀÖ½À´Ï´Ù.</p>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P><B>ÀÛ¾÷</B></P>
+ </TD>
+ <TD WIDTH="83%">
+ <P><B>±â´É</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>º¸È£</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>¼±ÅÃÇÑ ¿ä¼Ò¸¦ º¸È£Çϵµ·Ï ¼³Á¤ÇÕ´Ï´Ù.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>º¸È£ ÇØÁ¦</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>¼±ÅÃÇÑ ¿ä¼Ò¿¡ ´ëÇÑ º¸È£¸¦ Á¦°ÅÇÕ´Ï´Ù.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>±âº»°ª Àû¿ë</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>Á¤Ã¥ ÅÛÇø®Æ®¿¡¼­ Çϵå ÄÚµåµÈ ±âº» µ¥ÀÌÅ͸¦ »ç¿ëÇÕ´Ï´Ù.</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Áö¿ì±â</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>¿ä¼Ò¿¡ ÀúÀåµÇ´Â µ¥ÀÌÅ͸¦ »èÁ¦ÇÕ´Ï´Ù.</P>
+ </TD>
+ </TR>
+
+</TABLE>
+<p>¿ä¼Ò À̸§ÀÇ ¿ÞÂÊ¿¡´Â ¿ä¼Ò »óŸ¦ º¸¿©ÁÖ´Â µÎ °³ÀÇ ¾ÆÀÌÄÜÀÌ ÀÖ½À´Ï´Ù. ´ÙÀ½ Ç¥¿¡´Â °¢ ¾ÆÀÌÄÜ°ú ÇØ´ç ±â´ÉÀÌ ¿ä¾àµÇ¾î ÀÖ½À´Ï´Ù.</P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><B>¾ÆÀÌÄÜ</B></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P><B>ÀǹÌ</B></P>
+ </TD>
+ <TD WIDTH="32%">
+ <P><B>±â´É</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_set_here.png" NAME="DefinedHere" ALT="ÀÌ ¼öÁØ¿¡¼­ Á¤ÀǵÊ" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Á¶Á÷ Æ®¸®ÀÇ ÀÌ ¼öÁØ¿¡¼­ ¿ä¼Ò °ªÀÌ ¼³Á¤µÇ¾úÀ½À» ³ªÅ¸³À´Ï´Ù.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_set_above.png" NAME="DefinedLayered" ALT="»óÀ§ ¼öÁØ¿¡¼­ Á¤ÀǵÊ" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Á¶Á÷(¶Ç´Â µµ¸ÞÀÎ) Æ®¸®ÀÇ »óÀ§ ¼öÁØ¿¡¼­ ¿ä¼Ò °ªÀÌ ¼³Á¤µÇ¾úÀ½À» ³ªÅ¸³»¸ç ¸µÅ©¸¦ Á¦°øÇÕ´Ï´Ù. »ç¿ëÀÚ¿¡°Ô Ç¥½ÃµÇ´Â °ªÀº Á¶Á÷ ³»ÀÇ ·¹À̾î, Áï ¿£Æ¼Æ¼ ¼öÁØÀÇ º´ÇÕ °á°úÀÔ´Ï´Ù.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>¾ÆÀÌÄÜÀ» Ŭ¸¯ÇÏ¸é °ªÀÌ ¼³Á¤µÈ À§Ä¡·Î À̵¿ÇÕ´Ï´Ù.</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_protected_here.png" NAME="ProtectedHere" ALT="ÀÌ ¼öÁØ¿¡¼­ º¸È£µÊ" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Á¶Á÷(¶Ç´Â µµ¸ÞÀÎ) Æ®¸®ÀÇ ÀÌ ¼öÁØ¿¡¼­ ¿ä¼Ò º¸È£°¡ ¼³Á¤µÇ¾úÀ½À» ³ªÅ¸³À´Ï´Ù. º¸È£ ¼³Á¤Àº Á¶Á÷ ¹× ±¸¼º Á¤Ã¥ Æ®¸®¿¡¼­ ¸ðµÎ »ó¼ÓµË´Ï´Ù.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_protected_above.png" NAME="ProtectedLayered" ALT="»óÀ§ ¼öÁØ¿¡¼­ º¸È£µÊ" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>Á¶Á÷(¶Ç´Â µµ¸ÞÀÎ) Æ®¸®ÀÇ »óÀ§ ¼öÁØ¿¡¼­ ¿ä¼Ò º¸È£°¡ ¼³Á¤µÇ¾úÀ½À» ³ªÅ¸³»¸ç ¸µÅ©¸¦ Á¦°øÇÕ´Ï´Ù. ÀÌ ¿ä¼Ò ¶Ç´Â Ç׸ñÀÇ º¸È£´Â Á¶Á÷ ³»ÀÇ ·¹À̾î, Áï ¿£Æ¼Æ¼ ¼öÁØÀÇ º´ÇÕ °á°úÀÔ´Ï´Ù.</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>¾ÆÀÌÄÜÀ» Ŭ¸¯ÇÏ¸é º¸È£°¡ ¼³Á¤µÈ À§Ä¡·Î À̵¿ÇÕ´Ï´Ù.</P>
+ </TD>
+ </TR>
+</TABLE>
+<p>"°ª" ¿­ÀÇ °ªÀ» º¯°æÇÏ¿© µ¥ÀÌÅÍ °ªÀ» º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. »óÅ º¯°æ »çÇ×°ú ¸¶Âù°¡Áö·Î º¯°æµÈ °ªµµ ÀúÀåÇØ¾ß ÇÕ´Ï´Ù. <b>ÀúÀå</b> ¹öÆ°À» Ŭ¸¯ÇÏ¸é °ªÀÌ ÀúÀåµË´Ï´Ù. </p><a name="casets"> </a><div class="help-header-3">ÁýÇÕ</div>
+<p>ÁýÇÕÀº µ¿Àû µî·Ï Á¤º¸ Ä÷º¼ÇÀ» ÀǹÌÇÕ´Ï´Ù. ¿ä¼Ò¸¦ ÁýÇÕ¿¡ Ãß°¡ÇÏ°í Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<p>¿ä¼Ò¸¦ ÁýÇÕ¿¡ Ãß°¡ÇÏ·Á¸é ´ÙÀ½ ÀÛ¾÷À» ¼öÇàÇÕ´Ï´Ù. <ol><li><b>»õ·Î ¸¸µé±â</b> ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù. </li>
+ <li>»õ ¿ä¼Ò À̸§À» ÀÔ·ÂÇÒ ¼ö ÀÖ´Â ´ëÈ­ »óÀÚ°¡ ¿­¸³´Ï´Ù. ¿ä¼Ò°¡ Ãß°¡µÇ°í ÁÖ Ã¢ÀÌ »õ·Î °íÃÄÁý´Ï´Ù.</li>
+ <li>ÁÖ Ã¢¿¡¼­ »õ ¿ä¼Ò¸¦ ÆíÁýÇÒ ¼ö ÀÖ½À´Ï´Ù.</li>
+</ol>
+<p>¿ä¼Ò¸¦ ÁýÇÕ¿¡¼­ »èÁ¦ÇÏ·Á¸é ÇØ´ç ¿ä¼Ò¸¦ ¼±ÅÃÇÏ°í <b>»èÁ¦</B> ¹öÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.</p>
+<p>ÁýÇÕÀº ¸µÅ©·Î Ç¥ÇöµÇ¸ç ´Ù¸¥ ÁýÇÕ¿¡ Æ÷Ç﵃ ¼öµµ ÀÖ½À´Ï´Ù. ¸µÅ©¸¦ Ŭ¸¯Çϸé ÁýÇÕÀ¸·Î À̵¿ÇÏ¸ç ¿©±â¼­ ÁýÇÕÀ» ÆíÁýÇÒ ¼ö ÀÖ½À´Ï´Ù. </p><a name="policysets"> </a><div class="help-header-2">Á¤Ã¥ ±×·ì ÅÇ</div>
+<p>Á¤Ã¥ ±×·ì ÆäÀÌÁö¿¡¼­´Â Á¤Ã¥ ±×·ìÀ» ¼±ÅÃÇÑ ¿£Æ¼Æ¼¿¡ Ãß°¡ÇÏ°í Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù.</p>
+<p>¿ÞÂÊÀÇ <b>»ç¿ë °¡´É</b> ¸ñ·Ï¿¡ ÀÖ´Â Á¤Ã¥ ±×·ìÀ» Ãß°¡ÇÏ·Á¸é </p>
+<ol>
+ <li>¸ñ·Ï¿¡¼­ Á¤Ã¥ ±×·ìÀ» ¼±ÅÃÇÕ´Ï´Ù.</li>
+ <li><b>Ãß°¡</b> ¹öÆ°À» Ŭ¸¯ÇÏ¿© ¼±ÅÃÇÑ Á¤Ã¥ ±×·ìÀ» ¿À¸¥ÂÊÀÇ <b>¼±ÅÃ</B> ¸ñ·Ï¿¡ Ãß°¡ÇÕ´Ï´Ù.</li>
+ <li><b>ÀúÀå</b>À» Ŭ¸¯ÇÏ¿© »õ ÁöÁ¤À» ÀúÀåÇÕ´Ï´Ù. </LI>
+</ol><a name="caentities"> </a><div class="help-header-2">ÁöÁ¤ ´ë»ó ÅÇ</div>
+<p>Ž»ö âÀÇ Á¤Ã¥ ¸®Æ÷ÁöÅ丮¿¡¼­ Á¤Ã¥ ±×·ìÀ» ¼±ÅÃÇÏ¸é ³»¿ë â¿¡ <b>ÁöÁ¤ ´ë»ó</b> ÅÇ ÆäÀÌÁö°¡ Æ÷ÇԵ˴ϴÙ. ÁöÁ¤ ´ë»ó ÆäÀÌÁö¿¡´Â ¼±ÅÃÇÑ Á¤Ã¥ ±×·ìÀÌ ÁöÁ¤µÈ ¿£Æ¼Æ¼°¡ ¸ðµÎ ³ª¿­µË´Ï´Ù.</p>
+<p>ÁöÁ¤ ´ë»ó ÅÇ ÆäÀÌÁö¿¡¼­ ¼öÇàÇÒ ¼ö ÀÖ´Â ÀÛ¾÷Àº ´ÙÀ½°ú °°½À´Ï´Ù. <ul><li><b>Á¦°Å</B>´Â ¼±ÅÃÇÑ ¿£Æ¼Æ¼¿Í Ž»ö â¿¡¼­ ¼±ÅÃÇÑ Á¤Ã¥ ±×·ì °£ÀÇ ¿¬°áÀ» ²÷½À´Ï´Ù. </li>
+ <li>"À̸§" ¿­¿¡¼­ ƯÁ¤ ¿£Æ¼Æ¼¸¦ Ŭ¸¯Çϸé Ž»ö â¿¡¼­ ÇØ´ç ¿£Æ¼Æ¼ ¹è°æÀÌ ÆĶõ»öÀ¸·Î Ç¥½ÃµÇµµ·Ï Ž»ö âÀÌ »õ·Î °íÃÄÁý´Ï´Ù. </li>
+</ul>
+</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="ÆäÀÌÁö ¸Ç À§·Î À̵¿" width="11" height="10" hspace="4" border="0">¸Ç À§·Î</a></div><a name="roles"> </a><div class="help-header-2">¿ªÇÒ ÅÇ</div>
+<p>Ž»ö â¿¡¼­ "»ç¿ëÀÚ" ¿£Æ¼Æ¼ À¯ÇüÀ» ¼±ÅÃÇÏ°í ÇØ´ç »ç¿ëÀÚ°¡ ÃÖ¼Ò ÇÑ °³ ÀÌ»ó ¿ªÇÒÀÇ ±¸¼º¿øÀÌ¸é ³»¿ë â¿¡ <b>¿ªÇÒ</B> ÅÇ ÆäÀÌÁö°¡ Æ÷ÇԵ˴ϴÙ. <b>¿ªÇÒ</B> ÆäÀÌÁö¿¡´Â ¼±ÅÃÇÑ »ç¿ëÀÚ°¡ ±¸¼º¿øÀ¸·Î ¼ÓÇØ ÀÖ´Â ¿ªÇÒÀÌ ¸ðµÎ ³ª¿­µË´Ï´Ù.</p>
+<p>ÀÌ ÆäÀÌÁö¿¡´Â "À̸§" ¿­°ú "°æ·Î" ¿­ÀÌ ÀÖ½À´Ï´Ù. "À̸§" ¿­¿¡´Â ¿ªÇÒ À̸§ÀÌ Æ÷ÇԵǰí "°æ·Î" ¿­¿¡´Â ¿ªÇÒ¿¡ ´ëÇÑ Àý´ë °æ·Î°¡ Æ÷ÇԵ˴ϴÙ. </p><a name="users"> </a><div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="ÆäÀÌÁö ¸Ç À§·Î À̵¿" width="11" height="10" hspace="4" border="0">¸Ç À§·Î</a></div><a name="reporting"> </a><div class="help-header-1">º¸°í</div>
+<p>º¸°í¼­´Â µ¥ÀÌÅÍ°¡ Æ÷ÇÔµÈ ¸ðµç ±¸¼º ¼³Á¤ÀÇ Àбâ Àü¿ë º¸±âÀÔ´Ï´Ù. <b>º¸°í¼­</B> ¹öÆ°À» Ŭ¸¯ÇÏ¸é º¸°í¼­°¡ Æ®¸®°ÅµÇ°í º¸°í¼­ ±¸¼º ´ëÈ­ »óÀÚ°¡ ³ªÅ¸³³´Ï´Ù.</p>
+<p>"º¸°í¼­ ±¸¼º" ´ëÈ­ »óÀÚ¿¡¼­´Â ´ÙÀ½ ¼³Á¤À» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. <ul><li>º¸°í ½Ã °í·ÁÇÒ Æ®¸®(Á¶Á÷ ¹×/¶Ç´Â µµ¸ÞÀÎ Æ®¸®)(<b>º¸°í¼­ ¿ëµµ</B>)</li>
+ <li>º¸°í¼­ ÀÛ¼º ½Ã Ç¥½ÃÇÒ ¿­(<b>»óÅ °æ·Î</b> ¿­°ú <b>¼³¸í</B> ¿­Àº ºñÈ°¼º °¡´É)</li>
+</ul>
+<p>»ç¿ëÀÚ Á¤ÀÇ°¡ ³¡³­ ÈÄ º¸°í¼­¸¦ Ŭ¸¯ÇÏ¸é ¼±ÅÃÇÑ µ¥ÀÌÅ͸¸ Àбâ Àü¿ëÀ¸·Î Ç¥½ÃµË´Ï´Ù.</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="ÆäÀÌÁö ¸Ç À§·Î À̵¿" width="11" height="10" hspace="4" border="0">¸Ç À§·Î</a></div>
+
+</body>
+</html>
diff --git a/webconsole/html/ko/helpNav.html b/webconsole/html/ko/helpNav.html
new file mode 100644
index 0000000..c10f406
--- /dev/null
+++ b/webconsole/html/ko/helpNav.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+ <title>APOC Manager - µµ¿ò¸» ¸ñÂ÷</title>
+ <meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+ <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"><!-- Empty script so IE5.0 Windows will draw table and button borders --><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"></script></HEAD>
+ <BODY>
+ <table border="0">
+ <tr>
+ <td><div class="help-header-3"><span class="help-header-3">¸ñÂ÷</span></div>
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#concepts" target="contentFrame">¹è°æ ¹× °³³ä</a></li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#dataStructures" target="contentFrame">µ¥ÀÌÅÍ ±¸Á¶</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#SecDataManagement" target="contentFrame">º¸¾È ¹× µ¥ÀÌÅÍ °ü¸®</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#GenConfigSettings" target="contentFrame">±¸¼º ¼³Á¤ »ý¼º</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#BCAssociation" target="contentFrame">¿¬°á</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#BCPolicyGroups" target="contentFrame">Á¤Ã¥ ±×·ì</A></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#ui" target="contentFrame"> ·¹À̾ƿô ¹× µ¿ÀÛ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#login" target="contentFrame"> ·Î±×ÀÎ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#masthead" target="contentFrame"> ¸¶½ºÆ®Çìµå â</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#navigation" target="contentFrame"> Ž»ö â</a></li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#entities" target="contentFrame"> »ç¿ëÀÚ ÅÇ</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#parpath" target="contentFrame"> »óÇÏ °æ·Î</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#navtable" target="contentFrame"> Ž»ö Å×À̺í</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#adfilter" target="contentFrame"> °í±Þ ÇÊÅÍ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#search" target="contentFrame"> °Ë»ö</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#hoststab" target="contentFrame"> È£½ºÆ® ÅÇ</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#domtree" target="contentFrame"> µµ¸ÞÀÎ Æ®¸®</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#actionbar" target="contentFrame"> ÀÛ¾÷ Ç¥½ÃÁÙ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#adfilterhosts" target="contentFrame"> °í±Þ ÇÊÅÍ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#searchhosts" target="contentFrame"> °Ë»ö</a></li>
+ </UL>
+ <li><a class="help-toc-link" href="helpContent.html#psptab" target="contentFrame"> Á¤Ã¥ ¸®Æ÷ÁöÅ丮</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#psptable" target="contentFrame"> Á¤Ã¥ ±×·ì Å×À̺í</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#pspactions" target="contentFrame"> Á¤Ã¥ ±×·ì ÀÛ¾÷ Ç¥½ÃÁÙ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#psppriorities" target="contentFrame"> Á¤Ã¥ ±×·ì ¿ì¼± ¼øÀ§</a></li>
+ </ul>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#content" target="contentFrame"> ³»¿ë â</a></li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#policies" target="contentFrame"> Á¤Ã¥ ÅÇ</a></li>
+ <ul type="circle"><li><a class="help-toc-link" href="helpContent.html#caparpath" target="contentFrame"> »óÇÏ °æ·Î</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#subgroupstable" target="contentFrame"> ÇÏÀ§ ±×·ì Å×À̺í</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#capolicies" target="contentFrame"> Á¤Ã¥</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#casets" target="contentFrame"> ÁýÇÕ</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#policysets" target="contentFrame"> Á¤Ã¥ ±×·ì ÅÇ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#caentities" target="contentFrame"> ÁöÁ¤ ´ë»ó ÅÇ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#roles" target="contentFrame"> ¿ªÇÒ ÅÇ</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#reporting" target="contentFrame"> º¸°í</a></li>
+ </ul>
+ </td>
+ </tr>
+ </table>
+ </BODY>
+</HTML>
diff --git a/webconsole/html/ko/helpToolbar.html b/webconsole/html/ko/helpToolbar.html
new file mode 100644
index 0000000..9babc7d
--- /dev/null
+++ b/webconsole/html/ko/helpToolbar.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+ <title>APOC Manager - µµ¿ò¸» µµ±¸ ¸ðÀ½</title>
+ <meta name="Copyright" content="Copyright (c) 2003 by Sun Microsystems, Inc. ¸ðµç ±Ç¸®´Â ÀúÀÛ±ÇÀÚÀÇ ¼ÒÀ¯ÀÔ´Ï´Ù.">
+ <meta http-equiv="Content-Type" content="text/html; charset=ks_c_5601-1987">
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ </HEAD>
+ <BODY>
+ <table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><img src="/apoc/images/dot.gif" width="1" height="15" alt=""/></td>
+ <td align="right" nowrap="nowrap" valign="bottom"><div
+class="TtlBtnDiv">
+ <input name="Masthead.CloseButton" type="submit" class="Btn1" value="´Ý±â"
+title="µµ¿ò¸» âÀ» ´Ý½À´Ï´Ù." onclick="javascript: parent.parent.close();
+return false;" onmouseover="javascript: if (this.disabled==0)
+this.className='Btn1Hov'" onmouseout="javascript: if (this.disabled==0) this.className='Btn1'"
+on blur="javascript: if (this.disabled==0) this.className='Btn1'"
+onfocus="javascript: if (this.disabled==0) this.className='Btn1Hov'" />
+ </div></td>
+ </tr>
+ </TABLE>
+</body>
diff --git a/webconsole/html/zh_CN/Makefile.am b/webconsole/html/zh_CN/Makefile.am
new file mode 100644
index 0000000..b34244c
--- /dev/null
+++ b/webconsole/html/zh_CN/Makefile.am
@@ -0,0 +1,10 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = help
+
+zh_CNdir = ${htmldir}/zh_CN
+zh_CN_DATA =helpNav.html \
+ help.html \
+ helpContent.html \
+ helpToolbar.html \ No newline at end of file
diff --git a/webconsole/html/zh_CN/help.html b/webconsole/html/zh_CN/help.html
new file mode 100644
index 0000000..3e5c6c4
--- /dev/null
+++ b/webconsole/html/zh_CN/help.html
@@ -0,0 +1,74 @@
+<html>
+ <head>
+ <title>Help - StarOffice Configuration Manager</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ </head>
+<script language="JavaScript">
+<!--
+
+var sPkgName = " "
+var sAnchorName = " "
+var sAnchorCon = " "
+var sAnchorNav = " "
+var sHelpLocale = " "
+if (window.anchor != null) {
+ sAnchorName = anchor;
+}
+if (window.top.opener.top.content.document.ContentAreaForm!=null) {
+ sAnchorName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.Anchor'].value;
+ sPkgName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.PkgName'].value;
+ sHelpLocale =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.HelpLocale'].value;
+ if (sHelpLocale=="nolocalizedhelp")
+ sHelpLocale="_en_US";
+}
+if (sAnchorName=="hoststab" || sAnchorName=="psptab" || sAnchorName=="entities" ||
+sAnchorName=="policies" || sAnchorName=="policysets" || sAnchorName=="caentities" ||
+sAnchorName=="roles" || sAnchorName=="")
+{
+ document.write('<frameset cols="30%, 70%" border="1" framespacing="0"> ');
+
+ document.write(' <frame name="navFrame"');
+ document.write(' title="Help Navigation Area"');
+ document.write(' id="nav"');
+ document.write(' src="helpNav.html">');
+
+ document.write(' <frameset rows="10%, 90%" border="1" framespacing="0">');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="contentFrame"');
+ document.write(' title="Help Content Area"');
+ document.write(' id="content"');
+ document.write(' src="helpContent.html#'+sAnchorName+'">');
+ document.write(' <\/frameset>');
+ document.write('<\/frameset>');
+
+} else {
+ // The correct package name is not available yet
+ document.write('<frameset rows="10%, 90%" border="0" framespacing="0"> ');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="templateContent"');
+ document.write(' title="Help Template"');
+ document.write(' id="temphelp"');
+ document.write(' src="../../packages/'+sPkgName+'/web/'+sAnchorName+sHelpLocale+'.html">');
+ document.write('<\/frameset>');
+}
+
+
+//-->
+
+</script>
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ </body>
+ </noframes>
+</html>
diff --git a/webconsole/html/zh_CN/help/JavaHelpSearch/DOCS b/webconsole/html/zh_CN/help/JavaHelpSearch/DOCS
new file mode 100644
index 0000000..3ae2bb7
--- /dev/null
+++ b/webconsole/html/zh_CN/help/JavaHelpSearch/DOCS
Binary files differ
diff --git a/webconsole/html/zh_CN/help/JavaHelpSearch/DOCS.TAB b/webconsole/html/zh_CN/help/JavaHelpSearch/DOCS.TAB
new file mode 100644
index 0000000..9b60423
--- /dev/null
+++ b/webconsole/html/zh_CN/help/JavaHelpSearch/DOCS.TAB
@@ -0,0 +1,3 @@
+eÿÿÿÝÿÿÝÿÿÿÿÿÿÿÿÿÿÿÙÿý—ÿÿÿÿÿÿÿÿÿeÿÿÿÿÿÿÿÿÙý—ÿÿÿÿÿeÿý×ÿÿÿÿÿÿÿÿý•—ÿý—ÿý—ý—ÿÿÿÿÿÿÿÿÿÿÿÿÙÿÙeÿÿÿÿÿÿÿÿeÿÿÿÿÿÿÿÿÿÿÿÿÿeÿÿÿÿÿÿÿÿÿÿÿÿÙÿÿÙYÙÿÙeý—ÿÿ÷_ÿÿÿÿÿÿÿÿÿÿÿuÝÿÿÿÿÿÿÝmö_ÿÿÿÿÿÿÿÿý—ÿÿý×ôjÊêª0ºªÿ*ªªª*ª¨Â說®*ªèÒŽ(£Šê«ªª0¨ÂH¨Â«ª(ä*,hJª8®ªúꪳ
+®¾£
+£J®ëã Œ*ªÏ*ª¨Âªªªªªªëª£JŒ*Œ*¯ªªª«ªºªªª«ªªªª¬âÌ/ó‹ÿÿÍ/ÿÿ0¿ÿÿÿÿÿÿÿÿÿÌ/ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó ÿÿÌ/ÿÿÿÿÿÿÿ0¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó ÿÿÿÿÿÿÿÿÿÿý€ \ No newline at end of file
diff --git a/webconsole/html/zh_CN/help/JavaHelpSearch/Makefile.am b/webconsole/html/zh_CN/help/JavaHelpSearch/Makefile.am
new file mode 100644
index 0000000..981949b
--- /dev/null
+++ b/webconsole/html/zh_CN/help/JavaHelpSearch/Makefile.am
@@ -0,0 +1,11 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+
+JavaHelpSearchdir = ${htmldir}/zh_CN/help/JavaHelpSearch
+JavaHelpSearch_DATA =DOCS.TAB \
+ DOCS \
+ POSITIONS \
+ OFFSETS \
+ TMAP \
+ SCHEMA \ No newline at end of file
diff --git a/webconsole/html/zh_CN/help/JavaHelpSearch/OFFSETS b/webconsole/html/zh_CN/help/JavaHelpSearch/OFFSETS
new file mode 100644
index 0000000..49a5d53
--- /dev/null
+++ b/webconsole/html/zh_CN/help/JavaHelpSearch/OFFSETS
@@ -0,0 +1 @@
+‡ÓZ$Iâ¶t:ëÕ.f=ôOŽzæšè\‘!`FŠ~ãÕ2ÖÈ ím´ëƒ õCxÁsÌO©bç¢ïlFÌŒ\r%/aÔf 3ˆÈduk/_¸ìöù•–«Ø vZ~Èr>Æ.ñ”93)c¦ŠÆz@ÞLÇÓ'ú \ No newline at end of file
diff --git a/webconsole/html/zh_CN/help/JavaHelpSearch/POSITIONS b/webconsole/html/zh_CN/help/JavaHelpSearch/POSITIONS
new file mode 100644
index 0000000..0825e0b
--- /dev/null
+++ b/webconsole/html/zh_CN/help/JavaHelpSearch/POSITIONS
Binary files differ
diff --git a/webconsole/html/zh_CN/help/JavaHelpSearch/SCHEMA b/webconsole/html/zh_CN/help/JavaHelpSearch/SCHEMA
new file mode 100644
index 0000000..03cfc0b
--- /dev/null
+++ b/webconsole/html/zh_CN/help/JavaHelpSearch/SCHEMA
@@ -0,0 +1,2 @@
+JavaSearch 1.0
+TMAP bs=2048 rt=1 fl=-1 id1=730 id2=1
diff --git a/webconsole/html/zh_CN/help/JavaHelpSearch/TMAP b/webconsole/html/zh_CN/help/JavaHelpSearch/TMAP
new file mode 100644
index 0000000..59212e6
--- /dev/null
+++ b/webconsole/html/zh_CN/help/JavaHelpSearch/TMAP
Binary files differ
diff --git a/webconsole/html/zh_CN/help/Makefile.am b/webconsole/html/zh_CN/help/Makefile.am
new file mode 100644
index 0000000..9dbcfc0
--- /dev/null
+++ b/webconsole/html/zh_CN/help/Makefile.am
@@ -0,0 +1,55 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = JavaHelpSearch
+
+helpdir = ${htmldir}/zh_CN/help
+help_DATA =gbgpw.html \
+ gbgoy.html \
+ gbgkr.html \
+ gbgpj.html \
+ gbgcd.html \
+ gbgqf.html \
+ map.jhm \
+ gbgeb.html \
+ gbgps.html \
+ toc.xml \
+ gbgpn.html \
+ gbgpb.html \
+ gbgqj.html \
+ gbgou.html \
+ index.xml \
+ gbzbc.html \
+ gbgcm.html \
+ gbgot.html \
+ background.html \
+ gbgdc.html \
+ empty.html \
+ gbgce.html \
+ copyright.html \
+ gbgec.html \
+ gbgpr.html \
+ gbgca.html \
+ p1.html \
+ gbgni.html \
+ gbgqt.html \
+ gbgpa.html \
+ gbgcr.html \
+ gbgpe.html \
+ gbgda.html \
+ gbgqm.html \
+ gbgpt.html \
+ gbgqa.html \
+ gbgoz.html \
+ gbgcg.html \
+ gbgqe.html \
+ app.hs \
+ gbgpp.html \
+ gbgpm.html \
+ gbgpu.html \
+ gbgdh.html \
+ gbgqu.html \
+ gbgcn.html \
+ gbgqh.html \
+ gbgow.html \
+ gbzci.html \ No newline at end of file
diff --git a/webconsole/html/zh_CN/help/app.hs b/webconsole/html/zh_CN/help/app.hs
new file mode 100644
index 0000000..9df605b
--- /dev/null
+++ b/webconsole/html/zh_CN/help/app.hs
@@ -0,0 +1,12 @@
+<?xml version='1.0' encoding='UTF-8'?><!-- ident "%Z%%M% %I% %E% SMI" --><!DOCTYPE helpset PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN" "helpset_1_0.dtd">
+<helpset version="1.0" xml:lang="zh_CN">
+<title>about_vman</title>
+<maps> <homeID></homeID> <mapref location="map.jhm"/>
+</maps>
+<view> <name>TOC</name> <label>����</label> <type>javax.help.TOCView</type> <data>toc.xml</data>
+</view>
+<view> <name>Index</name> <label>����</label> <type>javax.help.IndexView</type> <data>index.xml</data>
+</view>
+<view> <name>Search</name> <label>����</label> <type>javax.help.SearchView</type> <data engine="com.sun.java.help.search.DefaultSearchEngine">JavaHelpSearch</data>
+</view>
+</helpset>
diff --git a/webconsole/html/zh_CN/help/background.html b/webconsole/html/zh_CN/help/background.html
new file mode 100644
index 0000000..05b522d
--- /dev/null
+++ b/webconsole/html/zh_CN/help/background.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+
+
+<title>About the Configuration Manager</title>
+<script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="BACKGROUND"></A><h2>Configuration Manager Help</h2>
+
+<p>Welcome to the Sun Java&#8482; Desktop System Configuration Manager Help pages.</p>
+
+<p>Using the Configuration Manager, administrators can assign
+profiles to individual users or organisational units stored in a central
+configuration storage such as an existing corporate LDAP server. The
+configuration settings defined in these profiles are then applied on behalf of
+the users to the applications running on the Sun Java Desktop System such as the
+Gnome desktop, Mozilla, StarOffice and Gnome applications like Evolution.</p>
+
+<p>To get help for a specific part of the Configuration Manager,
+click on one of the links on the left.</p>
+
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/copyright.html b/webconsole/html/zh_CN/help/copyright.html
new file mode 100644
index 0000000..2a2d36d
--- /dev/null
+++ b/webconsole/html/zh_CN/help/copyright.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<p>Part No: 819-3617</p><p></p>Sun Microsystems, Inc. <p><br>4150 Network Circle<br>Santa Clara, CA 95054 <br>U.S.A.</p><p>Copyright 2006, Sun Microsystems, Inc.</p><p>Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual
+property rights may include one or more U.S. patents or pending patent applications in the U.S. and in other countries.</p>
+<p>U.S. Government Rights &#8211; Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements.</p>
+<p>This distribution may include materials developed by third parties.</p>
+<p>Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively
+licensed through X/Open Company, Ltd.</p>
+<p>Sun, Sun Microsystems, the Sun logo,
+the Solaris logo, the Java Coffee Cup logo, docs.sun.com,
+Java, and
+Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S.
+and other countries. All SPARC trademarks are used under license and are trademarks
+or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+Products bearing SPARC trademarks are based upon an architecture developed by Sun
+Microsystems, Inc. </p>
+<p>The OPEN LOOK and Sun&#153; Graphical User Interface was developed by Sun Microsystems, Inc. for
+its users and licensees. Sun acknowledges the pioneering efforts of Xerox in researching
+and developing the concept of visual or graphical user interfaces for the computer
+industry. Sun holds a non-exclusive license from Xerox to the Xerox Graphical User
+Interface, which license also covers Sun's licensees who implement OPEN LOOK GUIs
+and otherwise comply with Sun's written license agreements.</p>
+<p>Products covered by and information contained in this publication are controlled by U.S. Export Control
+laws and may be subject to the export or import laws in other countries. Nuclear,
+missile, chemical or biological weapons or nuclear maritime end uses or end users,
+whether direct or indirect, are strictly prohibited. Export or reexport to countries
+subject to U.S. embargo or to entities identified on U.S. export exclusion lists,
+including, but not limited to, the denied persons and specially designated nationals
+lists is strictly prohibited.</p>
+<p>DOCUMENTATION IS PROVIDED &#8220;AS IS&#8221; AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
+IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT,
+ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.</p>
+<p></p>
+<p>Sun Microsystems, Inc. d&#233;tient les droits de propri&#233;t&#233;
+intellectuelle relatifs &#224; la technologie incorpor&#233;e dans
+le produit qui est
+d&#233;crit dans ce document. En particulier, et ce sans limitation,
+ces droits de
+propri&#233;t&#233; intellectuelle peuvent inclure un ou plusieurs
+brevets am&#233;ricains ou des
+applications de brevet en attente aux Etats-Unis et dans d'autres
+pays.</p>
+<p>Cette distribution peut comprendre des composants
+d&#233;velopp&#233;s par des tierces personnes.</p>
+<p>Certaines composants de ce produit peuvent &#234;tre
+d&#233;riv&#233;es du logiciel Berkeley BSD, licenci&#233;s par
+l'Universit&#233; de
+Californie. UNIX est une marque d&#233;pos&#233;e aux Etats-Unis et
+dans d'autres pays; elle est
+licenci&#233;e exclusivement par X/Open Company, Ltd. </p>
+<p>Sun, Sun Microsystems, le logo Sun, le logo Solaris, le logo Java
+Coffee Cup, docs.sun.com,
+ Java et Solaris sont des
+marques de fabrique ou des marques d&#233;pos&#233;es
+de Sun Microsystems, Inc. aux Etats-Unis et dans d'autres pays. Toutes
+les marques
+SPARC sont utilis&#233;es sous licence et sont des marques de fabrique
+ou des
+marques d&#233;pos&#233;es de SPARC International, Inc. aux
+Etats-Unis et dans
+d'autres pays. Les produits portant les marques SPARC sont bas&#233;s
+sur une
+architecture d&#233;velopp&#233;e par Sun Microsystems, Inc.</p>
+<p>L'interface d'utilisation graphique OPEN LOOK et
+Sun&#153; a &#233;t&#233;
+d&#233;velopp&#233;e par Sun Microsystems, Inc. pour ses
+utilisateurs et
+licenci&#233;s. Sun reconna&#238;t les efforts de pionniers de Xerox
+pour la
+recherche et le d&#233;veloppement du concept des interfaces
+d'utilisation
+visuelle ou graphique pour l'industrie de l'informatique. Sun
+d&#233;tient une licence non exclusive de Xerox sur
+l'interface d'utilisation graphique Xerox, cette licence couvrant
+&#233;galement les
+licenci&#233;s de Sun qui mettent en place l'interface d'utilisation
+graphique OPEN LOOK et
+qui, en outre, se conforment aux licences &#233;crites de Sun.</p>
+<p>Les produits qui font l'objet de cette publication et les
+informations qu'il contient sont r&#233;gis par la legislation
+am&#233;ricaine en mati&#232;re de contr&#244;le des exportations et peuvent &#234;tre soumis au droit
+d'autres pays dans le domaine des exportations et importations. Les utilisations finales, ou
+utilisateurs finaux, pour des armes nucl&#233;aires, des missiles, des armes
+chimiques ou biologiques ou pour le nucl&#233;aire maritime, directement ou
+indirectement, sont strictement interdites. Les exportations ou r&#233;exportations vers
+des pays sous embargo des Etats-Unis, ou vers des entit&#233;s figurant sur les
+listes d'exclusion d'exportation am&#233;ricaines, y compris, mais de mani&#232;re non
+exclusive, la liste de personnes qui font objet d'un ordre de ne pas participer, d'une fa&#231;on
+directe ou
+indirecte, aux exportations des produits ou des services qui sont
+r&#233;gis par la
+legislation am&#233;ricaine en mati&#232;re de contr&#244;le des
+exportations et la
+liste de ressortissants sp&#233;cifiquement design&#233;s, sont
+rigoureusement interdites.</p>
+<p>LA DOCUMENTATION EST FOURNIE "EN L'ETAT" ET TOUTES AUTRES CONDITIONS,
+DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENT EXCLUES,
+DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT
+TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A L'APTITUDE A UNE
+UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFACON. </p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/empty.html b/webconsole/html/zh_CN/help/empty.html
new file mode 100644
index 0000000..af15c4b
--- /dev/null
+++ b/webconsole/html/zh_CN/help/empty.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+<title>ÕýÔÚ¹¹½¨ÖÐ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="BACKGROUND"></A><h2>ÉÐÎÞ¿ÉÓÃÖ÷Ìâ</h2>
+<p>ÉÐδÌṩѡ¶¨Ö÷ÌâµÄ°ïÖúÐÅÏ¢¡£¶ÔÓÚÓɴ˸øÄú´øÀ´µÄ²»±ã£¬ÎÒÃÇÉî±íǸÒâ¡£</p>
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgca.html b/webconsole/html/zh_CN/help/gbgca.html
new file mode 100644
index 0000000..d3fafb4
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgca.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>1.Sun Desktop Manager 1.0.1 °ïÖú</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgca"></A><b>µÚ 1 ÕÂ</b><h1>Sun Desktop Manager 1.0.1 °ïÖú</h1>
+<p>»¶Ó­·ÃÎÊ Sun Desktop Manager °ïÖúÒ³Ãæ¡£Òª»ñµÃ Desktop Manager Ìض¨²¿·ÖµÄ°ïÖú£¬Çëµ¥»÷×ó²àµÄÁ´½ÓÖ®Ò»¡£Áª»ú°ïÖúÌṩÁËÓÐ¹Ø Desktop Manager ¹¦ÄܺÍÓ÷¨µÄÐÅÏ¢¡£</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgcd.html b/webconsole/html/zh_CN/help/gbgcd.html
new file mode 100644
index 0000000..719fad1
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgcd.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÅäÖÃÎļþ &#8212; ËùÓÐ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcd"></A><h2>ÅäÖÃÎļþ &#8212; ËùÓÐ</h2>
+<p>&#8220;ÅäÖÃÎļþ &#8212; ËùÓÐ&#8221;Ò³ÃæÏÔʾÁËËùÓпÉÓõÄÅäÖÃÎļþ£¬°üÀ¨Î´Ö¸¶¨¸øÔªËصÄÅäÖÃÎļþ¡£ÅäÖÃÎļþÏÔʾÔÚÁ½¸ö±í¸ñÖУºÒ»¸ö±í¸ñÏÔʾÓòÅäÖÃÎļþ£¬ÁíÒ»¸ö±í¸ñÏÔʾ×éÖ¯ÅäÖÃÎļþ¡£</p>
+<p>ʹÓÃÅäÖÃÎļþ±í¸ñ¿ÉÒÔÖ´ÐÐÒÔϲÙ×÷£º</p>
+<ul><li><p><A HREF="gbgcr.html#gbgcr">´´½¨ÐÂÅäÖÃÎļþ</A></p>
+</li>
+<li><p><A HREF="gbgpe.html#gbgpe">ɾ³ýÅäÖÃÎļþ</A></p>
+</li>
+<li><p><A HREF="gbgpu.html#gbgpu">ÖØÃüÃûÅäÖÃÎļþ</A></p>
+</li>
+<li><p><A HREF="gbgow.html#gbgow">¸´ÖƺÍÒƶ¯ÅäÖÃÎļþ</A></p>
+</li>
+<li><p><A HREF="gbgpj.html#gbgpj">µ¼ÈëÅäÖÃÎļþ</A></p>
+</li>
+<li><p><A HREF="gbgou.html#gbgou">µ¼³öÅäÖÃÎļþ</A></p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgce.html b/webconsole/html/zh_CN/help/gbgce.html
new file mode 100644
index 0000000..f23c8de
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgce.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¼ò½é</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgce"></A><h2>¼ò½é</h2>
+<p>Desktop Manager ÊÇÒ»ÖÖ¹¤¾ß£¬¿ÉÓÃÓÚ¶Ô×ÀÃæÓ¦ÓóÌÐòµÄÅäÖÃÉèÖ㨳ÆΪ<i>ÅäÖÃÎļþ</i>£©½øÐм¯ÖйÜÀí¡£Desktop Manager ÔÊÐíÄú²é¿´ÅäÖÃÎļþ£¬²¢½«ÆäÖ¸¶¨¸ø×éÖ¯»òÓò²ã´Î½á¹¹Öеĸ÷ÖÖÔªËØ¡£µ±Óû§Æô¶¯ÓÉ Desktop Manager ¹ÜÀíµÄ×ÀÃæ»á»°»òÓ¦ÓóÌÐòʱ£¬½«»áÓ¦ÓÃÕâЩÅäÖÃÎļþ¡£ÓëÓû§»òÔËÐÐÓ¦ÓóÌÐòµÄÖ÷»úÏà¹ØµÄËùÓÐÅäÖÃÎļþ¶¼½«±»¼ìË÷³öÀ´£¬²¢ÇÒÆäÉèÖý«ÓëÓ¦ÓóÌÐòµÄ±¾µØĬÈÏÉèÖÃÒÔ¼°Óû§×Ô¶¨ÒåÉèÖü¯³ÉÔÚÒ»Æð¡£ÅäÖÃÎļþ¼È¿ÉÓÃÓÚÏòÓ¦ÓóÌÐòÌṩһ×鼯ÖйÜÀíµÄĬÈÏÉèÖã¬Ò²¿ÉÓÃÓÚÌṩǿÖÆÐÔÉèÖá£</p>
+<p>ÐèÒªÁ˽âµÄÊõÓ</p>
+<ul><li><p><i>ÅäÖÃϵͳÐÅÏ¢¿â</i>£º×éÖ¯ºÍÓòÊ÷ÈÝÆ÷£¬ÄÚ²¿´æ´¢ÅäÖÃÎļþ¡£</p>
+</li>
+<li><p><i>Óò</i>£ºÓòÊ÷ÖеÄÔªËØ¡£±íʾ¼ÆËã»úÍøÂçÖеÄÒ»¸öÇøÓò¡£¿ÉÄÜ°üº¬¶à¸öÓòºÍÖ÷»ú¡£</p>
+</li>
+<li><p><i>ÔªËØ</i>£ºÒ»¸öÂß¼­¶ÔÏ󣬿ɽ«ÅäÖÃÊý¾ÝÖ¸¶¨¸ø¸Ã¶ÔÏó¡£Óû§¡¢½ÇÉ«/×éÒÔ¼°×éÖ¯¾ùΪ Desktop Manager ¿Éʶ±ðʵÌåµÄʾÀý</p>
+</li>
+<li><p><i>LDAP</i>£ºÇáÁ¿¼¶Ä¿Â¼·ÃÎÊЭÒé¡£LDAP ÊÇÔÚ TCP/IP Ö®ÉÏÔËÐеÄĿ¼·þÎñЭÒé¡£LDAP µÄϸ½ÚÔÚ RFC 1777&#8220;ÇáÁ¿Ä¿Â¼·ÃÎÊЭÒé&#8221;Öж¨Òå¡£</p>
+</li>
+<li><p><i>×éÖ¯</i>£º×éÖ¯Ê÷ÖеÄÔªËØ¡£±íʾ×éÖ¯»ò×Ó×éÖ¯£¬ÀýÈç&#8220;ºô½ÐÖÐÐÄ&#8221;¡£¿ÉÄÜ°üº¬¶à¸ö×éÖ¯¡¢Óû§»ò½ÇÉ«¡£</p>
+</li>
+<li><p><i>ÅäÖÃÎļþ</i>£º°üº¬ÅäÖÃÉèÖõÄÃüÃûÈÝÆ÷¡£Ëü´æ´¢ÔÚÅäÖÃϵͳÐÅÏ¢¿âÖУ¬²¢ÇÒ¿ÉÒÔÖ¸¶¨¸øÔªËØ¡£</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgcg.html b/webconsole/html/zh_CN/help/gbgcg.html
new file mode 100644
index 0000000..4e87284
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgcg.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>³£¹æÊôÐÔ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcg"></A><h3>³£¹æÊôÐÔ</h3>
+<p>&#8220;³£¹æÊôÐÔ&#8221;Ò³ÃæÔÊÐíÄúÖ¸¶¨ÓйØÅäÖÃÎļþµÄ³£¹æÐÅÏ¢¡£´ËÒ³ÃæÊÇ&#8220;ÅäÖÃÎļþ±à¼­Æ÷&#8221;´°¿ÚµÄĬÈÏÊÓͼ¡£</p>
+<p><hr size="1" noshade><p><b>×¢Òâ &#8211; </b>µ±Óû§µ¥»÷&#8220;н¨&#8221;°´Å¥´´½¨ÐµÄÅäÖÃÎļþʱ£¬½«³öÏÖÅäÖÃÎļþ±à¼­Æ÷¡£</p>
+<hr size="1" noshade></p><p>Çë²Î¼û<A HREF="gbgpb.html#gbgpb">ΪÅäÖÃÎļþÖ¸¶¨³£¹æÊôÐÔ</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgcm.html b/webconsole/html/zh_CN/help/gbgcm.html
new file mode 100644
index 0000000..2152507
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgcm.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>µ¼º½ÇøÓò</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcm"></A><h3>µ¼º½ÇøÓò</h3>
+<p>µ¼º½Ê÷ÓÃÓÚä¯ÀÀ×éÖ¯ºÍÓòÊ÷ÒÔÑ¡ÔñÔªËØ¡£Ê÷·´Ó³ÁËÔªËصIJã´Î½á¹¹¡£Èç¹û½Úµã°üº¬×ӽڵ㣬ÔòÔÚ½ÚµãÃû³ÆµÄ×ó²à»áÏÔʾһ¸öÀ¶É«Èý½ÇÐΡ£µ¥»÷À¶É«Èý½ÇÐν«Õ¹¿ª½Úµã£¬´Ó¶øÏÔʾһЩ×ӽڵ㡣</p>
+<p><hr size="1" noshade><p><b>×¢Òâ &#8211; </b>ĬÈÏÇé¿öÏ£¬Ã¿¸öÕ¹¿ªµÄ½ÚµãÖ»ÏÔʾ 10 ¸ö×ӽڵ㡣Èç¹ûÓÐ 10 ¸öÒÔÉϵÄ×ӽڵ㣬ÔòµÚ 11 ¸ö&#8220;½Úµã&#8221;²¢²»Ö¸Ïòij¸öÔªËØ£¬¶øÊÇͨ¹ýÏÔʾÒÔÏÂÄÚÈݱíÃ÷»¹ÓÐδÏÔʾµÄ½Úµã£º&#8220;... δÏÔʾijЩԪËØ&#8221;¡£µ¥»÷´Ë&#8220;½Úµã&#8221;½«´ò¿ª&#8220;²éÕÒ&#8221;¹¦ÄÜ¡£</p>
+<hr size="1" noshade></p><p>ҪѡÔñij¸öÔªËØ£¬¿ÉÒÔä¯ÀÀÊ÷²¢µ¥»÷ËùÐèµÄÔªËØ¡£Ñ¡Ôñij¸öÔªËØÖ®ºó£¬½«Í»³öÏÔʾ¸ÃÔªËØ£¬²¢ÇÒÄÚÈÝÇøÓò½«ÏÔʾ¸ÃÔªËصÄÖ¸¶¨ÅäÖÃÎļþºÍ¼Ì³ÐÅäÖÃÎļþ¡£</p>
+<p>µ¼º½»¹ÌṩÁËÒ»ÖÖÓÃÓڵݹéËÑË÷£¨Çë²Î¼û<A HREF="gbgpa.html#gbgpa">ËÑË÷ÔªËØ</A>£©ºÍ·ÇµÝ¹é²éÕÒ£¨Çë²Î¼û<A HREF="gbgqt.html#gbgqt">ʹÓòéÕÒ¹¦ÄÜ</A>£©µÄ»úÖÆ£¬ÒÔ±ãÔÚÊ÷²ã´Î½á¹¹Öж¨Î»ÔªËØ¡£µ¥»÷&#8220;ËÑË÷&#8221;°´Å¥½«´ò¿ª&#8220;ËÑË÷&#8221;´°¿Ú¡£</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgcn.html b/webconsole/html/zh_CN/help/gbgcn.html
new file mode 100644
index 0000000..4e98bb1
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgcn.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>´´½¨ÐµÄÅäÖÃϵͳÐÅÏ¢¿â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcn"></A><h4>´´½¨ÐµÄÅäÖÃϵͳÐÅÏ¢¿â</h4>
+<p>ÅäÖÃϵͳÐÅÏ¢¿âÓÃÓÚ´æ´¢×éÖ¯²ã´Î½á¹¹ÐÅÏ¢£¬ÒÔ¼°Ã¿¸öÔªËصÄÅäÖÃÎļþºÍÖ¸¶¨Êý¾Ý¡£</p>
+<h5>²½Öè</h5><ol><li><p><b>ÔÚ&#8220;ÅäÖÃϵͳÐÅÏ¢¿â&#8221;±í¸ñÖе¥»÷&#8220;н¨&#8221;°´Å¥</b></p><p>½«´ò¿ªÐ½¨ÅäÖÃϵͳÐÅÏ¢¿âÏòµ¼¡£¸ÃÏòµ¼ÓÃÓÚ´´½¨ÔÚ Desktop Manager ÖÐʹÓõÄÅäÖÃϵͳÐÅÏ¢¿â¡£</p>
+</li>
+<li><p><b>ÔÚ&#8220;ϵͳÐÅÏ¢¿âÃû³Æ&#8221;×Ö¶ÎÖУ¬¼üÈëÐÂÅäÖÃϵͳÐÅÏ¢¿âµÄÃû³Æ£¬È»ºóµ¥»÷&#8220;ÏÂÒ»²½&#8221;¡£</b></p></li>
+<li><p><b>´Ó&#8220;ϵͳÐÅÏ¢¿âÀàÐÍ&#8221;ÁбíÖÐÑ¡ÔñϵͳÐÅÏ¢¿âÀàÐÍ¡£</b></p><p>¸ÃÏòµ¼¿ÉÓÃÓÚÅäÖÃÈýÖÖÀàÐ͵ÄϵͳÐÅÏ¢¿â£º</p>
+<ul><li><p>LDAP£º´Ó LDAP »ñÈ¡²ã´Î½á¹¹£¬²¢ÇÒËùÓÐÊý¾Ý¶¼´æ´¢ÔÚ LDAP ÖС£</p>
+</li>
+<li><p>Îļþʽ£º´ÓÎļþ»ñÈ¡²ã´Î½á¹¹£¬²¢ÇÒËùÓÐÊý¾Ý¶¼´æ´¢ÔÚĿ¼ºÍÎļþÖС£</p>
+</li>
+<li><p>»ìºÏʽ£º´Ó LDAP »ñÈ¡²ã´Î½á¹¹£¬µ«ËùÓÐÊý¾Ý¶¼´æ´¢ÔÚĿ¼ºÍÎļþÖС£</p>
+</li>
+</ul>
+</li>
+<li><p><b>µ¥»÷&#8220;ÏÂÒ»²½&#8221;°´Å¥¡£</b></p></li>
+<li><p><b>ÊäÈëҪΪ´ËϵͳÐÅÏ¢¿âÅäÖÃµÄ LDAP ·þÎñÆ÷µÄÏêϸÐÅÏ¢¡£</b></p><p>±ØÐëÊäÈëÔËÐзþÎñÆ÷µÄÖ÷»úÃûºÍ¶Ë¿Ú¡£»¹¿ÉÒÔÑ¡ÔñÊÇ·ñʹÓà SSL Á¬½Óµ½´Ë·þÎñÆ÷¡£</p>
+</li>
+<li><p><b>ºóÐø²½ÖèÈ¡¾öÓÚÔÚÉÏÊö²½ÖèÖÐËù×öµÄÑ¡Ôñ¡£</b><b>°´ÕÕÏòµ¼ÌṩµÄ˵Ã÷½øÐвÙ×÷¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgcr.html b/webconsole/html/zh_CN/help/gbgcr.html
new file mode 100644
index 0000000..2a04ea2
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgcr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>´´½¨ÐµÄÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcr"></A><h3>´´½¨ÐµÄÅäÖÃÎļþ</h3>
+<h5>²½Öè</h5><ol><li><p><b>ÔÚËùÐèµÄÅäÖÃÎļþ±í¸ñ£¨×éÖ¯»òÓò£©Öе¥»÷&#8220;н¨&#8221;°´Å¥¡£</b></p><p>½«´ò¿ª&#8220;ÅäÖÃÎļþ±à¼­Æ÷&#8221;Ïòµ¼¡£</p>
+</li>
+<li><p><b>°´ÕÕÏòµ¼ÌṩµÄ˵Ã÷½øÐвÙ×÷¡£</b></p><p>ÓйØʹÓÃÅäÖÃÎļþ±à¼­Æ÷´´½¨ÐÂÅäÖÃÎļþµÄÏêϸÐÅÏ¢£¬Çë²Î¼ûÁª»ú°ïÖúµÄ<A HREF="gbgec.html#gbgec">ÅäÖÃÎļþ±à¼­Æ÷</A>²¿·Ö¡£</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgda.html b/webconsole/html/zh_CN/help/gbgda.html
new file mode 100644
index 0000000..ed9ee46
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgda.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÉèÖÃÕªÒª</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgda"></A><h3>ÉèÖÃÕªÒª</h3>
+<p>&#8220;ÉèÖÃÕªÒª&#8221;ÊÇËùÓÐÅäÖÃÉèÖõÄÖ»¶ÁÊÓͼ£¬ÕâЩÅäÖÃÉèÖðüº¬Ñ¡¶¨ÅäÖÃÎļþµÄÊý¾Ý¡£</p>
+<p>&#8220;ÉèÖÃÕªÒª&#8221;Ò³Ãæ°üº¬&#8220;ÉèÖÃÕªÒª&#8221;±í¸ñ¡£´Ë±í¸ñÏÔʾÁË°üº¬µ±Ç°ÅäÖÃÎļþÊý¾ÝµÄÅäÖÃÉèÖ㬲¢¶ÔÕâЩÅäÖÃÉèÖð´Àà±ð½øÐÐÁË»®·Ö¡£´Ë±í¸ñ°üº¬ÒÔÏÂ×ֶΣº</p>
+<p></p>
+<ul><li><p>Ãû³Æ: ÉèÖÃÃû³Æ</p>
+</li>
+<li><p>ÊýÖµ£ºÉèÖÃÖµ</p>
+</li>
+<li><p>״̬£º×´Ì¬Áаüº¬ÀàÐÍ&#8220;¶¨ÒåÓÚ &lt;profileName&gt;&#8221;µÄÌõÄ¿£¬ÆäÖÐ &lt;profileName&gt; ÊÇÒ»¸öÁ´½Ó£¬ÓÃÓÚ´ÓÅäÖÃÎļþ±à¼­Æ÷Çл»µ½&#8220;ÅäÖÃÉèÖÃ&#8221;Ò³Ã棬²¢ÔÚ´ËÅäÖÃÎļþÖе¼º½µ½Ìض¨µÄÉèÖá£</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgdc.html b/webconsole/html/zh_CN/help/gbgdc.html
new file mode 100644
index 0000000..ccd90eb
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgdc.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÅäÖÃÎļþ &#8212; Ê÷ÊÓͼ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgdc"></A><h2>ÅäÖÃÎļþ &#8212; Ê÷ÊÓͼ</h2>
+<p>&#8220;ÅäÖÃÎļþ &#8212; Ê÷ÊÓͼ&#8221;Ò³ÃæÏÔʾÁ˵±Ç°Ö¸¶¨¸øij¸öÔªËصÄËùÓпÉÓÃÅäÖÃÎļþ¡£Ò³ÃæµÄ×ó²àÊǵ¼º½ÇøÓò£¬¿ÉÒÔÔÚ¸ÃÇøÓòÖÐä¯ÀÀÊ÷²ã´Î½á¹¹ÒÔ²éÕÒÅäÖÃÎļþ¡£Ò³ÃæµÄÓÒ²àÊÇÄÚÈÝÇøÓò£¬ÏÔʾÓйØÔÚµ¼º½ÇøÓòÖÐÑ¡¶¨µÄÈÎÒâÅäÖÃÎļþµÄÐÅÏ¢¡£</p>
+<p>ÁíÇë²Î¼û£º<A HREF="gbgcm.html#gbgcm">µ¼º½ÇøÓò</A>ºÍ<A HREF="gbgoy.html#gbgoy">ÄÚÈÝÇøÓò</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgdh.html b/webconsole/html/zh_CN/help/gbgdh.html
new file mode 100644
index 0000000..ff73a53
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgdh.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¸ß¼¶Ñ¡Ïî</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgdh"></A><h3>¸ß¼¶Ñ¡Ïî</h3>
+<p>ʹÓÃ&#8220;¸ß¼¶Ñ¡Ïî&#8221;Ò³Ãæ¿ÉÒÔΪµ±Ç°ÅäÖÃÎļþÖ¸¶¨¸ß¼¶Ñ¡Ïî¡£ÔÚ´ËÒ³ÃæÖÐÓÐÁ½¸öÖ÷ÒªµÄ¿ÉÓÃÑ¡Ï</p>
+<ul><li><p>Ó¦ÓÃÓÚ£ºÔÊÐí½«ÅäÖÃÎļþÒƶ¯µ½×éÖ¯»òÓòÊ÷ÖеIJ»Í¬´æ´¢Î»Öá£Òƶ¯´æ´¢Î»ÖõÄͬʱ£¬Ò²¸ü¸ÄÁË¿ÉÒÔ½«ÅäÖÃÎļþÖ¸¶¨»òÓ¦Óõ½µÄÒ»×éÔªËØ¡£ÕâÊÇÒòΪ£¬Ö»Äܽ«ÅäÖÃÎļþÖ¸¶¨¸ø´æ´¢¸ÃÅäÖÃÎļþµÄÔªËØ£¬»ò¸ÃÔªËØϵÄ×ÓÊ÷ÖеÄÔªËØ¡£</p>
+<hr size="1" noshade><p><IMG ALT="СÐÄ" src="graphics/caution.gif"> <b>СÐÄ &#8211; </b>Èç¹ûÒƶ¯µÄ½á¹û²»·ûºÏÉÏÊö¹æÔò£¬ÔòÎÞ·¨¸ü¸Ä&#8220;Ó¦ÓÃÓÚ&#8221;²ÎÊý¡£ÀýÈ磬ÔÚÖ´ÐÐÒÔϲÙ×÷ʱ½«»á³öÏÖÉÏÊöÎÊÌ⣺ÑØÊ÷µÄ²ã´Î½á¹¹ÏòÏÂÒƶ¯ÅäÖÃÎļþ£¬²¢ÇÒÏÖÓÐÖ¸¶¨½«¸ÃÅäÖÃÎļþÁ¬½Óµ½Æä´æ´¢Î»ÖÃϵÄij¸öÔªËØ£¬ÔÚÒƶ¯ÅäÖÃÎļþÖ®ºó£¬´ËÖ¸¶¨ÈÔÈ»½«¸ÃÅäÖÃÎļþÁ¬½Óµ½Í¬Ò»ÔªËØ¡£µ«ÊÇ£¬¸ÃÔªËØÏÖÔÚλÓÚÅäÖÃÎļþ´æ´¢Î»ÖÃÖ®ÉÏ¡£Èç¹û³¢ÊÔÖ´ÐÐÒÔÉϲÙ×÷£¬Ôò»áÈ¡Ïû¸Ã²Ù×÷£¬²¢ÏÔʾ¾¯¸æÏûÏ¢¡£</p><hr size="1" noshade></li>
+<li><p>ºÏ²¢Ë³Ðò£ºÖ¸¶¨¶Ô´æ´¢ÔÚͬһԪËØÄÚµÄËùÓÐÅäÖÃÎļþ½øÐкϲ¢Ê±²ÉÓõÄ˳Ðò¡£</p>
+<p>ÒòΪ¿ÉÒÔ½«¶à¸öÅäÖÃÎļþÖ¸¶¨¸øÒ»¸öÔªËØ£¬ÇÒ¶à¸öÅäÖÃÎļþ¿ÉÒÔ¶¨ÒåÏàͬµÄÉèÖã¬ËùÒÔΪһ¸öÔªËغϲ¢ÅäÖÃÎļþʱ£¬±ØÐ붨ÒåºÏ²¢Ë³Ðò¡£Õâ½â¾öÁËÔÚÖ¸¶¨¸øͬһԪËصĶà¸öÅäÖÃÎļþÖж¨ÒåÒ»¸öÉèÖÃʱµÄ³åÍ»ÎÊÌâ¡£</p>
+<p>´æ´¢Î»ÖÃÊ×ÏÈÓÃÓÚÈ·¶¨ºÏ²¢Ë³Ðò¡£Ê×ÏȺϲ¢µÄÊÇ´æ´¢ÔÚ¾àÊ÷¸ù½Ï½üµÄÔªËØÖеÄÅäÖÃÎļþ¡£Æä´ÎºÏ²¢µÄÊÇ´æ´¢ÔÚÊ÷²ã´Î½á¹¹ÖнÏÉî²ãλÖõÄÅäÖÃÎļþ¡£½ÏÍíºÏ²¢µÄÅäÖÃÎļþÉèÖý«»á¸²¸Ç½ÏÔçºÏ²¢µÄÅäÖÃÎļþÉèÖá£</p>
+</li>
+</ul>
+<p>Çë²Î¼û<A HREF="gbgqu.html#gbgqu">¸ü¸ÄÓ¦ÓÃλÖÃ</A>ºÍ<A HREF="gbgqe.html#gbgqe">ΪÅäÖÃÎļþÖ¸¶¨ºÏ²¢Ë³Ðò</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgeb.html b/webconsole/html/zh_CN/help/gbgeb.html
new file mode 100644
index 0000000..33f1416
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgeb.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÅäÖÃÉèÖÃ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgeb"></A><h3>ÅäÖÃÉèÖÃ</h3>
+<p>ʹÓÃ&#8220;ÅäÖÃÉèÖÃ&#8221;Ò³Ãæ¿ÉÒԲ鿴ºÍ±à¼­´æ´¢ÔÚÑ¡¶¨ÅäÖÃÎļþÖеÄÅäÖÃÉèÖá£</p>
+<p>Çë²Î¼û<A HREF="gbgot.html#gbgot">²é¿´ºÍ±à¼­ÅäÖÃÎļþµÄÅäÖÃÉèÖÃ</A>¡£</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgec.html b/webconsole/html/zh_CN/help/gbgec.html
new file mode 100644
index 0000000..de44ae5
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgec.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÅäÖÃÎļþ±à¼­Æ÷</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgec"></A><h2>ÅäÖÃÎļþ±à¼­Æ÷</h2>
+<p>ÅäÖÃÎļþ±à¼­Æ÷ÓÃÓÚ´´½¨ÐµÄÅäÖÃÎļþÒÔ¼°±à¼­ÏÖÓеÄÅäÖÃÎļþ¡£»¹¿ÉÒÔÓÃÓڲ鿴µ±Ç°Ñ¡¶¨ÅäÖÃÎļþµÄµ±Ç°ÉèÖúÍÑ¡Ïî¡£</p>
+<p>ͨ¹ýÔÚ&#8220;ÅäÖÃÎļþ &#8212; Ê÷ÊÓͼ&#8221;ÄÚÈÝÇøÓò»ò&#8220;ÅäÖÃÎļþ &#8212; ËùÓÐ&#8221;Ò³ÃæÖе¥»÷ÈÎÒ»±í¸ñÖеÄÅäÖÃÎļþÃû³Æ£¬¿ÉÒÔ´ò¿ªÅäÖÃÎļþ±à¼­Æ÷¡£</p>
+<p><hr size="1" noshade><p><b>Ìáʾ &#8211; </b>Òª´´½¨ÐµÄÅäÖÃÎļþ£¬Çë²Î¼û<A HREF="gbgni.html#gbgni">´´½¨ÐµÄÅäÖÃÎļþ</A>¡£</p>
+<hr size="1" noshade></p><p>ÅäÖÃÎļþ±à¼­Æ÷°üº¬ÒÔÏÂÑ¡ÏҳÃ棺</p>
+<ul><li><p><A HREF="gbgcg.html#gbgcg">³£¹æÊôÐÔ</A></p>
+</li>
+<li><p><A HREF="gbgeb.html#gbgeb">ÅäÖÃÉèÖÃ</A></p>
+</li>
+<li><p><A HREF="gbgkr.html#gbgkr">Ö¸¶¨µÄÔªËØ</A></p>
+</li>
+<li><p><A HREF="gbgda.html#gbgda">ÉèÖÃÕªÒª</A></p>
+</li>
+<li><p><A HREF="gbgdh.html#gbgdh">¸ß¼¶Ñ¡Ïî</A></p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgkr.html b/webconsole/html/zh_CN/help/gbgkr.html
new file mode 100644
index 0000000..d5e33ee
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgkr.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Ö¸¶¨µÄÔªËØ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgkr"></A><h3>Ö¸¶¨µÄÔªËØ</h3>
+<p>&#8220;Ö¸¶¨µÄÔªËØ&#8221;Ò³ÃæÁгöÁËÖ¸¶¨¸øµ±Ç°ÅäÖÃÎļþµÄÔªËØ£¬²¢ÇÒÔÊÐíÖ¸¶¨»òÈ¡ÏûÖ¸¶¨ÔªËØ¡£</p>
+<p>µ±Ç°ÅäÖÃÎļþÔªËØÏÔʾÔÚ&#8220;Ö¸¶¨µÄÔªËØ&#8221;±í¸ñÖУ¬¸Ã±í¸ñ°üº¬ÒÔÏÂÐÅÏ¢£º</p>
+<ul><li><p>Ãû³Æ: ±»Ö¸¶¨Á˵±Ç°ÅäÖÃÎļþµÄÔªËصÄÃû³Æ¡£</p>
+</li>
+<li><p>·¾¶: ±»Ö¸¶¨Á˵±Ç°ÅäÖÃÎļþµÄÔªËصÄλÖá£</p>
+</li>
+</ul>
+<p>Çë²Î¼û<A HREF="gbgpm.html#gbgpm">½«ÔªËØÖ¸¶¨¸øÅäÖÃÎļþ</A>ºÍ<A HREF="gbgpp.html#gbgpp">È¡Ïû½«ÔªËØÖ¸¶¨¸øÅäÖÃÎļþ</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgni.html b/webconsole/html/zh_CN/help/gbgni.html
new file mode 100644
index 0000000..d489ab5
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgni.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>´´½¨ÐµÄÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgni"></A><h4>´´½¨ÐµÄÅäÖÃÎļþ</h4>
+<h5>²½Öè</h5><ol><li><p><b>µ¥»÷&#8220;н¨&#8221;°´Å¥¡£</b></p><p>½«´ò¿ªÅäÖÃÎļþ±à¼­Æ÷¡£</p>
+</li>
+<li><p><b>°´ÕÕÅäÖÃÎļþ±à¼­Æ÷ÌṩµÄ˵Ã÷½øÐвÙ×÷¡£</b></p><p>ÓйØÈçºÎʹÓÃÅäÖÃÎļþ±à¼­Æ÷´´½¨ÐÂÅäÖÃÎļþµÄÏêϸÐÅÏ¢£¬Çë²Î¼ûÁª»ú°ïÖúÖеÄ<A HREF="gbgec.html#gbgec">ÅäÖÃÎļþ±à¼­Æ÷</A>²¿·Ö¡£</p>
+<p><hr size="1" noshade><p><b>×¢Òâ &#8211; </b>´´½¨ÐµÄÅäÖÃÎļþÖ®ºó£¬»á×Ô¶¯½«¸ÃÅäÖÃÎļþÖ¸¶¨¸øµ±Ç°Ñ¡¶¨µÄÔªËØ¡£</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgot.html b/webconsole/html/zh_CN/help/gbgot.html
new file mode 100644
index 0000000..1d1cb41
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgot.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>²é¿´ºÍ±à¼­ÅäÖÃÎļþµÄÅäÖÃÉèÖÃ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgot"></A><h4>²é¿´ºÍ±à¼­ÅäÖÃÎļþµÄÅäÖÃÉèÖÃ</h4>
+<h5>²½Öè</h5><ol><li><p><b>Òª²é¿´ÅäÖÃÎļþµÄÅäÖÃÉèÖã¬Çë´ÓÒ³ÃæÓÒ²àµÄÀà±ðÁÐ±íµ¼º½µ½¸ÃÉèÖá£</b></p><p>ÅäÖÃÉèÖñ»»®·ÖΪ¶àÖÖÀà±ð£¬²¢°´ÕÕÒ»¶¨µÄ²ã´Î½á¹¹½øÐÐ×éÖ¯¡£ÕâЩÀà±ðÖ±½ÓÓë×ÀÃæÓ¦ÓóÌÐò£¨Èç StarSuite&#153;¡¢Mozilla&#153;¡¢Evolution »ò Gnome£©µÄÅäÖÃÑ¡ÏîÏà¶ÔÓ¦¡£</p>
+</li>
+<li><p><b>µ¥»÷ËùÐèµÄÅäÖÃÉèÖá£</b></p><p>½«³öÏÖÑ¡¶¨ÅäÖÃÎļþµÄÉèÖã¬ÆäÖÐÏÔʾÁ˸ÃÅäÖÃÎļþµÄ¿ÉÓÃÉèÖá£Èç¹ûÐèÒª£¬»¹»áÌṩÆäËûÉÏÏÂÎÄÐÅÏ¢£¬Èçµ¥¸öÉèÖõÄЧ¹û»òÔÊÐíµÄÖµ·¶Î§¡£</p>
+<p><hr size="1" noshade><p><b>×¢Òâ &#8211; </b>Èç¹ûÑ¡ÔñÁËij¸öÀà±ð£¨¶ø·ÇÅäÖÃÉèÖã©£¬½«³öÏÖÒ»¸ö±í¸ñ£¬ÆäÖÐÁгöÁ˸ÃÀà±ðÉèÖûò×ÓÀà±ð¡£</p>
+<hr size="1" noshade></p></li>
+<li><p><b>¶ÔÓÚÿ¸öÅäÖÃÉèÖã¬Äú¿ÉÒÔÖ¸¶¨Ò»¸ö¾ßÌåµÄÖµ£¬Ò²¿ÉÒÔ²»¶ÔÉèÖýøÐж¨Òå¡£</b></p><p>Èç¹û²»¶¨ÒåÉèÖã¬Ó¦ÓóÌÐò½«²»»áÊÜ´ËÅäÖÃÎļþÉèÖõÄÓ°Ï죬¶øʹÓÃÆäÄÚÖõijö³§Ä¬ÈÏÖµ¡£Í¨³££¬ÅäÖÃÎļþ±à¼­Æ÷»áͨ¹ý¸½¼Ó°ïÖúÎı¾»òÖ±½Óͨ¹ýÉèÖÃÑ¡ÏîÁбíÖеıê¼Ç£¨Èç¹û¿ÉÄÜ£©À´ÁгöÓ¦ÓóÌÐòĬÈÏÖµ¡£</p>
+<p><hr size="1" noshade><p><b>×¢Òâ &#8211; </b>¶à¸öÅäÖÃÎļþ¿ÉÄÜ»áÓ°ÏìͬһÓû§£¬Á˽âÕâÒ»µã·Ç³£ÖØÒª¡£ÀýÈ磬¿ÉÒÔʹÓÃij¸öÌض¨×éÖ¯µÄÉèÖô´½¨Ò»¸öÅäÖÃÎļþ¡£ÕâЩÉèÖÿÉ×Ô¶¯ÓÃÓÚ´Ë×éÖ¯µÄËùÓÐÓû§¡£ÀàËƵأ¬»¹¿ÉÒÔʹÓÃ×Ó×éÖ¯µÄÅäÖÃÉèÖö¨ÒåÆäËûÅäÖÃÎļþ¡£ÕâЩÉèÖÿÉÒÔ¸²¸Ç¸¸×éÖ¯µÄÉèÖã¬ÀýÈ磬Ϊ×Ó×éÖ¯¶¨Ò岻ͬµÄ´úÀíÉèÖ㬵«±£³ÖÆäËûÉèÖò»±ä¡£Ä³¸öÌض¨Óû§µÄÓÐЧÉèÖÿÉÄÜÊÇÖ¸¶¨¸ø×éÖ¯¡¢×Ó×éÖ¯ºÍ¸ÃÓû§µÄËùÓÐÅäÖÃÎļþµÄºÏ²¢½á¹û¡£</p>
+<hr size="1" noshade></p><p><hr size="1" noshade><p><b>Ìáʾ &#8211; </b>ÔÚijЩÇé¿öÏ£¬Äú¿ÉÄÜÐèÒª¿ØÖƴ˺ϲ¢¹ý³Ì²¢Ç¿ÖÆʹÓÃij¸öÅäÖÃÉèÖã¬ÕâÒâζ×ÅÆäËûÅäÖÃÎļþÎÞ·¨¸²¸Ç¸ÃÉèÖò¢¶¨Ò岻ͬµÄÖµ¡£ÅäÖÃÎļþ±à¼­Æ÷ÔÊÐíΪÿ¸öÉèÖÃÖ¸¶¨ËùÐèµÄºÏ²¢²Ù×÷¡£Ä¬ÈÏÇé¿öÏ£¬ÆäËû&#8220;ÅäÖÃÎļþ¿ÉÒÔ¸²¸Ç&#8221;ÉèÖá£È¡ÏûÑ¡Ôñ´ËÑ¡ÏǿÖÆʹÓøÃÉèÖã¬ÆäËûÅäÖÃÎļþÎÞ·¨¸²¸Ç¸ÃÉèÖõÄÖµ¡£</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgou.html b/webconsole/html/zh_CN/help/gbgou.html
new file mode 100644
index 0000000..ec20ed8
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgou.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>µ¼³öÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgou"></A><h3>µ¼³öÅäÖÃÎļþ</h3>
+<h5>²½Öè</h5><ol><li><p><b>Ñ¡ÖÐÒªµ¼³öµÄÅäÖÃÎļþËù¶ÔÓ¦µÄ¸´Ñ¡¿ò¡£</b></p></li>
+<li><p><b>´Ó²Ù×÷ÁбíÖÐÑ¡Ôñ&#8220;µ¼³ö&#8221;¡£</b></p><p>½«´ò¿ªÒ»¸ö¶Ô»°¿ò£¬¿ÉÒÔÔڸöԻ°¿òÖÐÖ¸¶¨Òª½«Îļþµ¼³öµ½µÄλÖá£</p>
+</li>
+<li><p><b>ÔÚ¶Ô»°¿òÖÐÑ¡Ôñ&#8220;±£´æµ½´ÅÅÌ&#8221;Ñ¡ÏȻºóµ¥»÷&#8220;È·¶¨&#8221;¡£</b></p></li>
+<li><p><b>Ñ¡Ôñµ¼³öÎļþµÄ±£´æλÖã¬È»ºóµ¥»÷&#8220;È·¶¨&#8221;¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgow.html b/webconsole/html/zh_CN/help/gbgow.html
new file mode 100644
index 0000000..f850d7d
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgow.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¸´ÖƺÍÒƶ¯ÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgow"></A><h3>¸´ÖƺÍÒƶ¯ÅäÖÃÎļþ</h3>
+<h5>²½Öè</h5><ol><li><p><b>Ñ¡ÖÐÒª¸´ÖÆ»òÒƶ¯µÄÅäÖÃÎļþËù¶ÔÓ¦µÄ¸´Ñ¡¿ò¡£</b></p></li>
+<li><p><b>´Ó²Ù×÷ÁбíÖÐÑ¡Ôñ&#8220;¸´ÖÆ/Òƶ¯&#8221;¡£</b></p><p>½«´ò¿ª&#8220;¸´ÖÆ/Òƶ¯&#8221;Ïòµ¼¡£</p>
+</li>
+<li><p><b>°´ÕÕ&#8220;¸´ÖÆ/Òƶ¯&#8221;Ïòµ¼ÌṩµÄ˵Ã÷Ö´ÐÐÈÎÎñ¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgoy.html b/webconsole/html/zh_CN/help/gbgoy.html
new file mode 100644
index 0000000..16fa93f
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgoy.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÄÚÈÝÇøÓò</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgoy"></A><h3>ÄÚÈÝÇøÓò</h3>
+<p>Èç¹ûÑ¡Ôñij¸öÔªËØ£¬ÔòÓйظÃÔªËصÄÐÅÏ¢½«ÏÔʾÔÚ&#8220;ÅäÖÃÎļþ &#8212; Ê÷ÊÓͼ&#8221;Ò³ÃæµÄÄÚÈÝÇøÓòÖС£ÄÚÈÝÇøÓò×î¶à¿É°üº¬Èý¸ö±í¸ñ£º</p>
+<ul><li><p>&#8220;Ö¸¶¨µÄÅäÖÃÎļþ&#8221;±í¸ñ£º½«Ê¼ÖÕÏÔʾ´Ë±í¸ñ¡£´Ë±í¸ñÏÔʾÁËÖ¸¶¨¸øµ±Ç°Ñ¡¶¨ÔªËصÄÅäÖÃÎļþ¡£ÆäÖаüº¬Èý¸öÁУº&#8220;Ãû³Æ&#8221;¡¢&#8220;×÷Õß&#8221;ºÍ&#8220;ÉÏ´ÎÐÞ¸Äʱ¼ä&#8221;¡£Ö»ÓÐÔÚ¸ü¸ÄÁËÅäÖÃÎļþµÄij¸öÉèÖÃʱ£¬&#8220;ÉÏ´ÎÐÞ¸Äʱ¼ä&#8221;ÁеÄÖµ²Å»á¸ü¸Ä¡£Èç¹ûÖ»ÊÇÖØÃüÃû¡¢Òƶ¯ÅäÖÃÎļþ»òÖØÐÂÖ¸¶¨ÆäÓÅÏȼ¶£¬Ôò¸ÃÁеÄÖµ²»»á¸ü¸Ä¡£</p>
+<p>ʹÓÃ&#8220;Ö¸¶¨ÅäÖÃÎļþ&#8221;±í¸ñ¿ÉÒÔÖ´ÐÐÒÔϲÙ×÷£º</p>
+<ul><li><p><A HREF="gbgni.html#gbgni">´´½¨ÐµÄÅäÖÃÎļþ</A></p>
+</li>
+<li><p><A HREF="gbgpr.html#gbgpr">ɾ³ýÅäÖÃÎļþ</A></p>
+</li>
+<li><p><A HREF="gbgpn.html#gbgpn">Ö¸¶¨ÅäÖÃÎļþ</A></p>
+</li>
+<li><p><A HREF="gbgqj.html#gbgqj">È¡ÏûÖ¸¶¨ÅäÖÃÎļþ</A></p>
+</li>
+<li><p><A HREF="gbgpw.html#gbgpw">ÖØÃüÃûÅäÖÃÎļþ</A></p>
+</li>
+<li><p><A HREF="gbgqf.html#gbgqf">¸´ÖƺÍÒƶ¯ÅäÖÃÎļþ</A></p>
+</li>
+<li><p><A HREF="gbgps.html#gbgps">µ¼ÈëÅäÖÃÎļþ</A></p>
+</li>
+<li><p><A HREF="gbgqh.html#gbgqh">µ¼³öÅäÖÃÎļþ</A></p>
+</li>
+</ul>
+</li>
+<li><p>&#8220;¼Ì³ÐµÄÅäÖÃÎļþ&#8221;±í¸ñ£ºÈç¹ûÔÚ²ã´Î½á¹¹ÖÐλÓÚÑ¡¶¨ÔªËØÖ®ÉϵÄÈÎÒ»ÔªËؾßÓÐÖ¸¶¨µÄÅäÖÃÎļþ£¬Ôò»áÏÔʾ´Ë±í¸ñ¡£Ôڴ˱í¸ñÖÐÁгöÁ˸ÃÅäÖÃÎļþ¡£ÆäÖаüº¬Á½¸öÁУº&#8220;Ãû³Æ&#8221;ºÍ&#8220;Ö¸¶¨¸ø&#8221;¡£&#8220;Ö¸¶¨¸ø&#8221;ÁÐÏÔʾԪËØ£¨ÅäÖÃÎļþ±»Ö¸¶¨¸ø´ËÔªËØ£©µÄ·¾¶ºÍÃû³Æ¡£</p>
+</li>
+<li><p>&#8220;Óû§&#8221;»ò&#8220;½ÇÉ«&#8221;±í¸ñ£ºÑ¡Ôñ&#8220;Óû§&#8221;»ò&#8220;½ÇÉ«&#8221;ÀàÐ͵ÄÔªËØʱ½«ÏÔʾ´Ë±í¸ñ¡£Èç¹ûÔªËØÊÇÒ»¸öÓû§£¬²¢ÇÒÊÇÒ»¸ö»ò¶à¸ö½ÇÉ«µÄ³ÉÔ±£¬ÔòÕâЩ½ÇÉ«½«ÏÔʾÔÚ&#8220;½ÇÉ«&#8221;±í¸ñÖС£Èç¹ûÔªËØÊÇÒ»¸öÓµÓжà¸ö³ÉÔ±µÄ½ÇÉ«£¬ÔòÕâЩ³ÉÔ±½«ÏÔʾÔÚ&#8220;Óû§&#8221;±í¸ñÖС£</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgoz.html b/webconsole/html/zh_CN/help/gbgoz.html
new file mode 100644
index 0000000..a21e08b
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgoz.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>²é¿´ÓÐЧÉèÖÃ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgoz"></A><h3>²é¿´ÓÐЧÉèÖÃ</h3>
+<p>&#8220;ÓÐЧÉèÖÃ&#8221;ÊǸø¶¨ÔªËØ£¨Èç×éÖ¯¡¢Óò»òÖ÷»ú£©ÓÐЧÅäÖÃÉèÖõÄÖ»¶ÁÊÓͼ¡£</p>
+<p>Ìض¨Óû§µÄÓÐЧÉèÖÃÊǺϲ¢Ö®ºóµÄ½á¹û£¬ÆäÖаüÀ¨´æ´¢ÔÚÏà¹Ø×éÖ¯¼¶±ð¡¢½ÇÉ«ÒÔ¼°Óû§ÖеÄÅäÖÃÉèÖ᣿ÉÒÔÔÚµ¥¶ÀµÄ&#8220;ÓÐЧÉèÖÃ&#8221;´°¿ÚÖÐÏÔʾѡ¶¨ÔªËصĺϲ¢ÅäÖÃÉèÖá£ÕâÑù²»½öÒ×ÓÚÑéÖ¤¶øÇÒ¿ÉÒÔ½øÐдíÎóµ÷ÊÔ¡£»¹¿ÉÒÔ´òÓ¡ºÍ´æ´¢ÓÐЧÉèÖñ¨±íÒÔ½øÐй鵵¡£</p>
+<h5>²½Öè</h5><ol><li><p><b>ÔÚ&#8220;Ö¸¶¨µÄÅäÖÃÎļþ&#8221;±í¸ñÖе¥»÷&#8220;ÓÐЧÉèÖÃ&#8221;°´Å¥¡£</b></p><p>µÚÒ»´Î´ò¿ªÊ±£¬½«ÏÔʾµ¼º½Ê÷ÖÐÑ¡¶¨ÔªËصÄÓÐЧÉèÖá£</p>
+<p>&#8220;ÓÐЧÉèÖÃ&#8221;´°¿ÚÓÉÒÔÏÂÁ½¸ö²¿·Ö×é³É£º</p>
+<ul><li><p>&#8220;ÐÞ¸ÄÓÐЧÉèÖòÎÊý&#8221;²¿·Ö£¬¿ÉÔڸò¿·ÖµÄ&#8220;ʹÓÃÒÔÏÂÄÚÈÝÉú³ÉÓÐЧÉèÖÃ&#8221;ÇøÓòÑ¡ÔñÐèÒªÓõ½µÄÊ÷¡£Ê¹ÓÃ&#8220;´ÓÓòÊ÷ÖÐÑ¡ÔñÔªËØ&#8221;Ñ¡Ïî¿ÉÒÔÑ¡ÔñÒªÉú³ÉÓÐЧÉèÖñ¨±íµÄʵÌ塣ʹÓÃ&#8220;ä¯ÀÀ&#8221;°´Å¥¿ÉÒÔÑ¡Ôñ×éÖ¯»òÓòÊ÷ÖеÄÔªËØ¡£</p>
+</li>
+<li><p>&#8220;ÓÐЧÉèÖÃ&#8221;²¿·Ö£¬¸Ã²¿·ÖÏÔʾÁËÒÔÏÂÄÚÈÝ£º</p>
+<ul><li><p>²ã´Î½á¹¹ÖÐÑ¡¶¨ÔªËصÄλÖúÍÖ÷»úÃû¡£</p>
+</li>
+<li><p>µ±Ç°ÓÐЧÉèÖñ¨±íÉú³ÉµÄʱ¼äºÍÈÕÆÚ¡£</p>
+</li>
+<li><p>&#8220;Ïà¹ØµÄÅäÖÃÎļþ&#8221;ÇøÓò£¬ÔÚ¸ÃÇøÓòÖУ¬ÏÔʾÁËÓëÉú³Éµ±Ç°ÔªËصÄÓÐЧÉèÖñ¨±íÏà¹ØµÄÅäÖÃÎļþÁÐ±í¡£ÕâЩÅäÖÃÎļþ°´ÕÕ¹ØÁª³Ì¶ÈÒÔÓɸߵ½µÍµÄºÏ²¢Ë³ÐòÁгö¡£Ã¿¸öÅäÖÃÎļþ¶¼ÏÔʾΪһ¸öÁ´½Ó£¬ÓÃÓÚ´ò¿ª¸ÃÅäÖÃÎļþµÄ&#8220;ÅäÖÃÎļþ±à¼­Æ÷&#8221;´°¿Ú¡£</p>
+</li>
+<li><p>&#8220;ÉèÖÃÕªÒª&#8221;ÇøÓò£¬ÔÚ¸ÃÇøÓòÖУ¬°´ÕÕÀà±ð·Ö×éÏÔʾÁ˵±Ç°ÓÐЧÉèÖñ¨±íµÄÅäÖÃÉèÖá£&#8220;ÉèÖÃÕªÒª&#8221;°üº¬&#8220;Ãû³Æ&#8221;¡¢&#8220;Öµ&#8221;ºÍ&#8220;״̬&#8221;×ֶΡ£</p>
+<p>&#8220;״̬&#8221;Áаüº¬&#8220;¶¨ÒåÓÚ &lt;pofileName>&#8221;ÀàÐ͵ÄÌõÄ¿£¬ÆäÖУ¬&lt;pofileName> ÊÇÒ»¸öÁ´½Ó£¬ÓÃÓÚÔÚ&#8220;ÅäÖÃÉèÖÃ&#8221;Ñ¡ÏÉÏ´ò¿ª¸ÃÅäÖÃÎļþµÄ&#8220;ÅäÖÃÎļþ±à¼­Æ÷&#8221;£¬²¢ÇÒµ¼º½µ½¸ÃÅäÖÃÎļþÖеÄÌض¨ÉèÖá£</p>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><p><b>¿ÉÒÔʹÓÃÒÔÏ·½·¨ÐÞ¸ÄÉú³ÉµÄÓÐЧÉèÖñ¨±í£º¸ü¸ÄÈκÎÏà¹ØµÄÓÐЧÉèÖòÎÊý£¬È»ºóµ¥»÷&#8220;ÓÐЧÉèÖÃ&#8221;´°¿Ú¶¥²¿µÄ&#8220;Éú³ÉÓÐЧÉèÖÃ&#8221;°´Å¥¡£</b></p><p>Õâʱ£¬&#8220;ÓÐЧÉèÖÃ&#8221;´°¿ÚÖн«ÏÔʾһ¸öб¨±í¡£</p>
+</li>
+<li><p><b>Òª´òÓ¡ÓÐЧÉèÖñ¨±í£¬Çëµ¥»÷&#8220;ÓÐЧÉèÖÃ&#8221;´°¿Ú¶¥²¿»òµ×²¿µÄ&#8220;´òÓ¡&#8221;°´Å¥¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgpa.html b/webconsole/html/zh_CN/help/gbgpa.html
new file mode 100644
index 0000000..8a8279b
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgpa.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ËÑË÷ÔªËØ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpa"></A><h4>ËÑË÷ÔªËØ</h4>
+<p>ʹÓÃ&#8220;ËÑË÷&#8221;¹¦ÄÜ¿ÉÒÔ¶ÔÓò»ò×éÖ¯²ã´Î½á¹¹ÖеÄÔªËؽøÐеݹéËÑË÷¡£¸Ã¹¦Äܲ»½öËÑË÷ÔªËصÄÖ±½Ó×ÓÔªËØ£¬¶øÇÒ»¹ËÑË÷ËùÓеÄ×ÓËïÔªËØ¡£Òª½ö¶ÔÔªËصÄÖ±½Ó×ÓÔªËؽøÐÐËÑË÷£¬ÇëʹÓÃ&#8220;²éÕÒ&#8221;¹¦ÄÜ¡£</p>
+<p>ËÑË÷ʱ»á´ò¿ª&#8220;ËÑË÷&#8221;´°¿Ú£¬¸Ã´°¿ÚÔÊÐí½øÐиü¸ß¼¶µÄËÑË÷¡£</p>
+<h5>²½Öè</h5><ol><li><p><b>ÔÚËÑË÷×Ö¶ÎÖмüÈëÒªËÑË÷µÄÔªËصÄÃû³Æ»ò²¿·ÖÃû³Æ¡£</b></p><p><hr size="1" noshade><p><b>×¢Òâ &#8211; </b>ËÑË÷²»Çø·Ö´óСд£¬²¢ÇÒ²»ÊÇÈ«×ÖÆ¥Å䣬ÀýÈ磬ÊäÈëËÑË÷×Ö·û´® "bc" ½«»áÕÒµ½ "ABC" ºÍ "bcb"¡£ÐǺŠ(*) ÔÚËÑË÷×Ö·û´®ÖбíʾÈÎÒâ×Ö·ûÐòÁС£¿ÉÒÔÔÚ×Ö·û´®µÄÈÎÒâλÖÃʹÓöà¸öÐǺš£¿Õ×Ö¶ÎÏ൱ÓÚËÑË÷×Ö·û´®Îª "*" µÄ×ֶΡ£</p>
+<hr size="1" noshade></p></li>
+<li><p><b>µ¥»÷&#8220;ËÑË÷&#8221;°´Å¥¡£</b></p><p>½«´ò¿ª&#8220;ËÑË÷&#8221;´°¿Ú¡£ÔÚ&#8220;µ¼º½&#8221;ÇøÓòµÄËÑË÷×Ö¶ÎÖмüÈëµÄÈκÎ×Ö·û´®¶¼»á´Ó¸ÃËÑË÷×Ö¶ÎÒƶ¯µ½&#8220;ËÑË÷&#8221;´°¿ÚµÄËÑË÷×Ö¶ÎÖУ¬²¢×Ô¶¯¿ªÊ¼¶Ô¸Ã×Ö·û´®½øÐÐËÑË÷¡£È»ºó£¬ËùÓнá¹û½«ÏÔʾÔÚ½á¹û±í¸ñÖУ¬ÆäÖаüÀ¨ÕÒµ½µÄËùÓÐÔªËصÄÃû³Æ¡¢ÀàÐͺÍ·¾¶¡£</p>
+<p><hr size="1" noshade><p><b>×¢Òâ &#8211; </b>×î´ó½á¹ûÊýÏÞ¶¨Îª 100¡£</p>
+<hr size="1" noshade></p><p>Èç¹ûûÓÐÕÒµ½Èκνá¹û£¬»òʹ&#8220;µ¼º½&#8221;ÇøÓòµÄËÑË÷×ֶα£ÁôΪ¿Õ£¬Ôò¿ÉÒÔÔÚ&#8220;ËÑË÷&#8221;´°¿ÚµÄËÑË÷×Ö¶ÎÖмüÈëÔªËصÄÃû³Æ¡£</p>
+<p><hr size="1" noshade><p><b>Ìáʾ &#8211; </b>ʹÓÃËÑË÷×Ö¶ÎÅԱߵÄÀàÐÍÐÞÊηûÁÐ±í£¬¿ÉÒÔ¶ÔÌض¨ÔªËØÀàÐͽøÐÐËÑË÷£¬ÀýÈç&#8220;ËÑË÷Óò&#8221;¡£</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Èç¹ûÐèÒª£¬¿ÉÒÔµ¥»÷&#8220;ÏÔʾ¸ß¼¶Ñ¡Ïî&#8221;°´Å¥À´¶ÔËÑË÷Ìí¼Ó¸ß¼¶Ñ¡Ïî¡£</b></p><p>¸ß¼¶Ñ¡Ïî°üÀ¨ÒÔÏÂÄÚÈÝ£º</p>
+<ul><li><p>ÏÞ¶¨Îª£º¿ÉÓÃÓÚÈ·¶¨ËÑË÷Ëã·¨±éÀúÊ÷µÄÆðʼԪËØ¡£</p>
+</li>
+<li><p>ÿ¸öÒ³ÃæÉÏÏÔʾµÄ½á¹ûÊý£º¿ÉÓÃÓÚÈ·¶¨½á¹û±í¸ñµÄÿ¸öÒ³ÃæÉÏÏÔʾµÄ½á¹ûÊý¡£</p>
+</li>
+</ul>
+</li>
+<li><p><b>Ôٴε¥»÷&#8220;ËÑË÷&#8221;°´Å¥ÒԲ鿴ÐÂËÑË÷»òÐ޸ĺóµÄËÑË÷µÄ½á¹û¡£</b></p><p><hr size="1" noshade><p><b>×¢Òâ &#8211; </b>µ¥»÷&#8220;ÖØÉè&#8221;°´Å¥»á½«ËùÓÐËÑË÷²ÎÊý¸ü¸ÄΪĬÈÏÖµ£¬²¢Çå¿Õ&#8220;ËÑË÷&#8221;×ֶΡ£</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgpb.html b/webconsole/html/zh_CN/help/gbgpb.html
new file mode 100644
index 0000000..9f2ca1e
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgpb.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Ö¸¶¨ÅäÖÃÎļþµÄ³£¹æÊôÐÔ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpb"></A><h4>Ö¸¶¨ÅäÖÃÎļþµÄ³£¹æÊôÐÔ</h4>
+<h5>²½Öè</h5><ol><li><p><b>ÔÚ&#8220;Ãû³Æ&#8221;×Ö¶ÎÖмüÈëËùÐèµÄÅäÖÃÎļþÃû³Æ¡£</b></p></li>
+<li><p><b>ÔÚ&#8220;×¢ÊÍ&#8221;×Ö¶ÎÖÐÌí¼Ó×¢ÊÍ¡£</b></p><p>¿ÉÒÔ½«&#8220;×¢ÊÍ&#8221;×ֶα£ÁôΪ¿Õ¡£</p>
+<p><hr size="1" noshade><p><b>×¢Òâ &#8211; </b>&#8220;×÷Õß&#8221;ºÍ&#8220;ÉÏ´ÎÐÞ¸Äʱ¼ä&#8221;Ϊֻ¶Á×ֶΣ¬ÎÞ·¨½øÐÐÐ޸ġ£&#8220;×÷Õß&#8221;×Ö¶ÎÏÔʾÅäÖÃÎļþµÄ×÷Õߣ¬&#8220;ÉÏ´ÎÐÞ¸Äʱ¼ä&#8221;×Ö¶ÎÏÔʾÉÏ´ÎÐ޸ĵÄÈÕÆÚºÍʱ¼ä¡£</p>
+<hr size="1" noshade></p></li>
+<li><p><b>µ¥»÷&#8220;±£´æ&#8221;°´Å¥¡£</b></p><p>Èç¹ûÔÚ±£´æÐÂÐÅϢ֮ǰ¹Ø±Õ´°¿Ú£¬½«³öÏÖÒ»¸ö¾¯¸æ¶Ô»°¿ò£¬ÌáʾÄúÊÇ·ñÒª±£´æÉèÖá£</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgpe.html b/webconsole/html/zh_CN/help/gbgpe.html
new file mode 100644
index 0000000..d23e097
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgpe.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ɾ³ýÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpe"></A><h3>ɾ³ýÅäÖÃÎļþ</h3>
+<h5>²½Öè</h5><ol><li><p><b>Ñ¡ÖÐҪɾ³ýµÄÅäÖÃÎļþËù¶ÔÓ¦µÄ¸´Ñ¡¿ò¡£</b></p></li>
+<li><p><b>µ¥»÷&#8220;ɾ³ý&#8221;°´Å¥¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgpj.html b/webconsole/html/zh_CN/help/gbgpj.html
new file mode 100644
index 0000000..3d2d2d8
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgpj.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>µ¼ÈëÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpj"></A><h3>µ¼ÈëÅäÖÃÎļþ</h3>
+<h5>²½Öè</h5><ol><li><p><b>È·±£ËùÓи´Ñ¡¿ò¶¼Î´Ñ¡ÖС£</b></p></li>
+<li><p><b>´Ó²Ù×÷ÁбíÖÐÑ¡Ôñ&#8220;µ¼Èë&#8221;¡£</b></p><p>½«´ò¿ª&#8220;µ¼ÈëÅäÖÃÎļþ&#8221;¶Ô»°¿ò¡£</p>
+</li>
+<li><p><b>ÊäÈëÒªµ¼ÈëµÄÎļþµÄ·¾¶£¬»òÕßµ¥»÷&#8220;ä¯ÀÀ&#8221;°´Å¥´Ó²Ù×÷ϵͳµÄĬÈÏÎļþÑ¡ÔñÆ÷¶Ô»°¿òÖÐÑ¡ÔñÎļþ¡£</b></p></li>
+<li><p><b>µ¥»÷&#8220;µ¼Èë&#8221;°´Å¥¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgpm.html b/webconsole/html/zh_CN/help/gbgpm.html
new file mode 100644
index 0000000..81f393d
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgpm.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>½«ÔªËØÖ¸¶¨¸øÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpm"></A><h4>½«ÔªËØÖ¸¶¨¸øÅäÖÃÎļþ</h4>
+<h5>²½Öè</h5><ol><li><p><b>µ¥»÷&#8220;Ö¸¶¨ÔªËØ&#8221;°´Å¥¡£</b></p><p>½«ÏÔʾ°üº¬µ¼º½Ê÷µÄ´°¿Ú¡£</p>
+</li>
+<li><p><b>ä¯ÀÀÊ÷£¬²¢Ñ¡ÔñËùÐèÔªËØ¡£</b></p><p><hr size="1" noshade><p><b>Ìáʾ &#8211; </b>Èç¹ûÔÚÊ÷ÖÐÕÒ²»µ½ËùÐèÔªËØ£¬¿ÉÒÔµ¥»÷&#8220;ËÑË÷&#8221;°´Å¥ÒÔ´ò¿ª&#8220;ËÑË÷&#8221;´°¿ÚÀ´²éÕÒÔªËØ¡£</p>
+<hr size="1" noshade></p><p>ÏÖÔÚ£¬ÔªËؽ«³öÏÖÔÚ&#8220;Ö¸¶¨µÄÔªËØ&#8221;±í¸ñÖУ¬²¢ÒÑÖ¸¶¨¸øµ±Ç°ÅäÖÃÎļþ¡£</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgpn.html b/webconsole/html/zh_CN/help/gbgpn.html
new file mode 100644
index 0000000..21a22ec
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgpn.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Ö¸¶¨ÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpn"></A><h4>Ö¸¶¨ÅäÖÃÎļþ</h4>
+<h5>²½Öè</h5><ol><li><p><b>µ¥»÷&#8220;Ö¸¶¨ÅäÖÃÎļþ&#8221;°´Å¥¡£</b></p><p>½«´ò¿ªÒ»¸ö¶Ô»°¿ò£¬ÆäÖÐÁгöÁË¿ÉÒÔÖ¸¶¨¸øÑ¡¶¨ÔªËصÄËùÓпÉÓÃÅäÖÃÎļþ¡£</p>
+<p><hr size="1" noshade><p><b>×¢Òâ &#8211; </b>²»»áÁгöÒѾ­Ö¸¶¨¸øÑ¡¶¨ÔªËصÄÅäÖÃÎļþ£¬ÒÔ¼°Î´´æ´¢ÔÚµ±Ç°Ñ¡¶¨ÔªËØ»òÆäÉϼ¶ÔªËØÖеÄÅäÖÃÎļþ¡£</p>
+<hr size="1" noshade></p></li>
+<li><p><b>Ñ¡ÔñÒ»¸ö»ò¶à¸öÁгöµÄÅäÖÃÎļþ£¬È»ºóµ¥»÷&#8220;È·¶¨&#8221;¡£</b></p><p>ÏÖÔÚ£¬ÐÂÖ¸¶¨µÄÅäÖÃÎļþ½«ÏÔʾÔÚ&#8220;Ö¸¶¨µÄÅäÖÃÎļþ&#8221;±í¸ñÖС£</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgpp.html b/webconsole/html/zh_CN/help/gbgpp.html
new file mode 100644
index 0000000..5374ead
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgpp.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>È¡Ïû½«ÔªËØÖ¸¶¨¸øÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpp"></A><h4>È¡Ïû½«ÔªËØÖ¸¶¨¸øÅäÖÃÎļþ</h4>
+<h5>²½Öè</h5><ol><li><p><b>Ñ¡ÖÐҪȡÏûÖ¸¶¨µÄÔªËØËù¶ÔÓ¦µÄ¸´Ñ¡¿ò¡£</b></p></li>
+<li><p><b>µ¥»÷&#8220;È¡ÏûÖ¸¶¨ÔªËØ&#8221;°´Å¥¡£</b></p><p>ÏÖÔÚ£¬²»ÔÙ½«¸ÃÔªËØÖ¸¶¨¸øµ±Ç°ÅäÖÃÎļþ£¬²¢ÇÒ&#8220;Ö¸¶¨µÄÔªËØ&#8221;±í¸ñÖн«²»ÔÙÏÔʾ¸ÃÔªËØ¡£</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgpr.html b/webconsole/html/zh_CN/help/gbgpr.html
new file mode 100644
index 0000000..f7bb94b
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgpr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GB2312"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ɾ³ýÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpr"></A> <h4>ɾ³ýÅäÖÃÎļþ</h4>
+<h5>²½Öè</h5><ol><li><p><b>Ñ¡ÖÐҪɾ³ýµÄÅäÖÃÎļþËù¶ÔÓ¦µÄ¸´Ñ¡¿ò¡£</b></p><p>½«³öÏÖÒ»¸öÈ·È϶Ի°¿ò¡£</p>
+<hr size="1" noshade><p><IMG ALT="СÐÄ" src="graphics/caution.gif"> <b>СÐÄ &ndash; </b>´Ëɾ³ý²Ù×÷½«É¾³ýËùÓÐÖ¸¶¨£¬²¢ÕæÕýɾ³ý¸ÃÅäÖÃÎļþ¡£Á˽âÕâÒ»µã·Ç³£ÖØÒª¡£É¾³ýÖ®ºó½«ÎÞ·¨ÖØлñÈ¡¸ÃÎļþ£¬ÒòΪËüÒѲ»´æÔÚ¡£É¾³ýÅäÖÃÎļþÖ®ºó£¬³ýÁË»áɾ³ýµ±Ç°ÔªËصÄÖ¸¶¨Ö®Í⣬»¹»áɾ³ýÆäËûÔªËصÄÖ¸¶¨¡£Èç¹ûÖ»Ïëɾ³ýij¸öÔªËصÄÅäÖÃÎļþÖ¸¶¨£¬ÇëʹÓÃ&ldquo;È¡ÏûÖ¸¶¨&rdquo;²Ù×÷¡£</p><hr size="1" noshade></li>
+<li><p><b>µ¥»÷&ldquo;ɾ³ý&rdquo;°´Å¥¡£</b></p></li>
+<li><p><b>Èç¹ûȷʵҪɾ³ýÅäÖÃÎļþ£¬ÇëÔÚÈ·È϶Ի°¿òÖе¥»÷&ldquo;È·¶¨&rdquo;°´Å¥¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgps.html b/webconsole/html/zh_CN/help/gbgps.html
new file mode 100644
index 0000000..a52b9e1
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgps.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>µ¼ÈëÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgps"></A><h4>µ¼ÈëÅäÖÃÎļþ</h4>
+<h5>²½Öè</h5><ol><li><p><b>È·±£ËùÓи´Ñ¡¿ò¶¼Î´Ñ¡ÖС£</b></p></li>
+<li><p><b>´Ó²Ù×÷ÁбíÖÐÑ¡Ôñ&#8220;µ¼Èë&#8221;¡£</b></p><p>½«´ò¿ª&#8220;µ¼ÈëÅäÖÃÎļþ&#8221;¶Ô»°¿ò¡£</p>
+</li>
+<li><p><b>ÊäÈëÒªµ¼ÈëµÄÎļþµÄ·¾¶£¬»òÕßµ¥»÷&#8220;ä¯ÀÀ&#8221;°´Å¥´Ó²Ù×÷ϵͳµÄĬÈÏÎļþÑ¡ÔñÆ÷¶Ô»°¿òÖÐÑ¡ÔñÎļþ¡£</b></p></li>
+<li><p><b>µ¥»÷&#8220;µ¼Èë&#8221;°´Å¥¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgpt.html b/webconsole/html/zh_CN/help/gbgpt.html
new file mode 100644
index 0000000..fb71710
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgpt.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>&#8220;ÅäÖÃϵͳÐÅÏ¢¿â&#8221;±í¸ñ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpt"></A><h3>&#8220ÅäÖÃϵͳÐÅÏ¢¿â&#8221±í¸ñ</h3>
+<p>&#8220;ÅäÖÃϵͳÐÅÏ¢¿â&#8221;±í¸ñÓÉÎåÁÐ×é³É£º</p>
+<ul><li><p>&#8220;Ñ¡Ôñ&#8221;ÁУ¨ÆäÖаüº¬ÓÃÓÚÑ¡ÔñϵͳÐÅÏ¢¿âµÄ¸´Ñ¡¿ò£©</p>
+<p>ͨ¹ýÑ¡ÔñÒ»¸ö»ò¶à¸öϵͳÐÅÏ¢¿â£¬¿ÉÆôÓÃ&#8220;ɾ³ý&#8221;¡¢&#8220;ÖØÃüÃû&#8221;ºÍ&#8220;ͬ²½&#8221;¹¦ÄÜ¡£</p>
+<p><hr size="1" noshade><p><b> ×¢Òâ &#8211; </b>Ñ¡ÔñϵͳÐÅÏ¢¿âʱ½«½ûÓÃ&#8220;н¨&#8221;°´Å¥¡£</p>
+<hr size="1" noshade></p></li>
+<li><p>Ãû³Æ: °üº¬ÏµÍ³ÐÅÏ¢¿âµÄÃû³Æ</p>
+<p>&#8220;Ãû³Æ&#8221;ÁеÄÄÚÈݶ¼ÏÔʾΪÁ´½Ó¡£Èç¹ûµ¥»÷ÆäÖÐÒ»¸öÁ´½Ó£¬½«ÏÔʾѡ¶¨ÏµÍ³ÐÅÏ¢¿âµÄ&#8220;ÅäÖÃÎļþ±à¼­Æ÷&#8221;Ò³Ã棬¶ø²»ÏÔʾԭÀ´µÄ&#8220;ÅäÖÃϵͳÐÅÏ¢¿â&#8221;ÊÓͼ¡£</p>
+</li>
+<li><p>ÀàÐÍ: ¿ÉÒÔÊÇ LDAP ʽ¡¢Îļþʽ»ò»ìºÏʽÕâÈýÖÖÀàÐÍÖ®Ò»</p>
+<ul><li><p>LDAP ʽ£ºLDAP ʽϵͳÐÅÏ¢¿â´Ó LDAP ·þÎñÆ÷¶ÁÈ¡¹«Ë¾µÄ×éÖ¯½á¹¹£¨Óû§¡¢×éÖ¯¡¢Ö÷»ú¡¢ÓòµÈ£©£¬²¢Ê¹ÓÃͬһ LDAP ·þÎñÆ÷¶Á/дÅäÖÃÉèÖá£</p>
+</li>
+<li><p>Îļþʽ£ºÎļþʽϵͳÐÅÏ¢¿â´ÓÎļþϵͳ¶ÁÈ¡¹«Ë¾µÄ×éÖ¯½á¹¹£¬²¢Ê¹ÓÃͬһÎļþϵͳ¶Á/дÅäÖÃÉèÖá£</p>
+</li>
+<li><p>»ìºÏʽ£º»ìºÏʽϵͳÐÅÏ¢¿â´Ó LDAP ·þÎñÆ÷¶ÁÈ¡¹«Ë¾µÄ×éÖ¯½á¹¹£¬È»ºóʹÓÃÎļþϵͳ¶Á/дÅäÖÃÉèÖá£</p>
+</li>
+</ul>
+</li>
+<li><p>×éÖ¯Êý¾ÝλÖãºÈç¹ûÊÇÎļþʽϵͳÐÅÏ¢¿â£¬ÔòΪÎļþ£»Èç¹ûÊÇ LDAP ʽ»ò»ìºÏʽϵͳÐÅÏ¢¿â£¬ÔòΪ LDAP URL¡£¸ÃÁÐÓÃÓÚÖ¸¶¨×éÖ¯Êý¾ÝµÄ´æ´¢Î»Öá£</p>
+</li>
+<li><p>ÅäÖÃÎļþÊý¾ÝλÖãºÈç¹ûÊÇÎļþʽϵͳÐÅÏ¢¿â£¬ÔòΪÎļþ£»Èç¹ûÊÇ LDAP ʽ»ò»ìºÏʽϵͳÐÅÏ¢¿â£¬ÔòΪ LDAP URL¡£¸ÃÁÐÓÃÓÚÖ¸¶¨ÅäÖÃÉèÖõĴ洢λÖá£ÅäÖÃÎļþÊÇÃüÃûµÄÅäÖÃÉèÖü¯ºÏ£¬¸Ã¼¯ºÏÓÃÓÚÖ¸¶¨¸øÓû§¡¢×éÖ¯¡¢Ö÷»úºÍÓò¡£</p>
+</li>
+</ul>
+<p>¿ÉÒÔÔÚ&#8220;ÅäÖÃϵͳÐÅÏ¢¿â&#8221;±í¸ñÖÐÖ´ÐÐÏÂÁвÙ×÷£º</p>
+<ul><li><p><A HREF="gbgcn.html#gbgcn">н¨</A>£º´´½¨ÐµÄÅäÖÃϵͳÐÅÏ¢¿â</p>
+</li>
+<li><p>ɾ³ý£ºÉ¾³ýÏÖÓеÄÅäÖÃϵͳÐÅÏ¢¿â</p>
+</li>
+<li><p>ÖØÃüÃû£ºÖØÃüÃûÅäÖÃϵͳÐÅÏ¢¿â</p>
+</li>
+<li><p><A HREF="gbgqm.html#gbgqm">ͬ²½</A>£ºÍ¬²½ÅäÖÃϵͳÐÅÏ¢¿â</p>
+<p>Ö»ÓÐÔÚÑ¡ÔñÁËÒ»¸ö»òÁ½¸öϵͳÐÅÏ¢¿âʱ²ÅÆôÓô˹¦ÄÜ</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgpu.html b/webconsole/html/zh_CN/help/gbgpu.html
new file mode 100644
index 0000000..161e443
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgpu.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÖØÃüÃûÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpu"></A><h3>ÖØÃüÃûÅäÖÃÎļþ</h3>
+<h5>²½Öè</h5><ol><li><p><b>Ñ¡ÖÐÒªÖØÃüÃûµÄÅäÖÃÎļþËù¶ÔÓ¦µÄ¸´Ñ¡¿ò¡£</b></p></li>
+<li><p><b>´Ó²Ù×÷ÁбíÖÐÑ¡Ôñ&#8220;ÖØÃüÃû&#8221;¡£</b></p><p>ÆÁÄ»½«ÏÔʾһ¸ö¶Ô»°¿ò¡£</p>
+</li>
+<li><p><b>ÔÚ¶Ô»°¿òµÄÎı¾×Ö¶ÎÖмüÈëÅäÖÃÎļþµÄÐÂÃû³Æ£¬È»ºóµ¥»÷&#8220;È·¶¨&#8221;¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgpw.html b/webconsole/html/zh_CN/help/gbgpw.html
new file mode 100644
index 0000000..e41eedd
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgpw.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÖØÃüÃûÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpw"></A><h4>ÖØÃüÃûÅäÖÃÎļþ</h4>
+<h5>²½Öè</h5><ol><li><p><b>Ñ¡ÖÐÒªÖØÃüÃûµÄÅäÖÃÎļþËù¶ÔÓ¦µÄ¸´Ñ¡¿ò¡£</b></p></li>
+<li><p><b>´Ó²Ù×÷ÁбíÖÐÑ¡Ôñ&#8220;ÖØÃüÃû&#8221;¡£</b></p><p>½«´ò¿ª&#8220;ÖØÃüÃû&#8221;¶Ô»°¿ò¡£</p>
+</li>
+<li><p><b>ÔÚ¶Ô»°¿òµÄÎı¾×Ö¶ÎÖмüÈëÅäÖÃÎļþµÄÐÂÃû³Æ£¬È»ºóµ¥»÷&#8220;È·¶¨&#8221;¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgqa.html b/webconsole/html/zh_CN/help/gbgqa.html
new file mode 100644
index 0000000..a7a43a4
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgqa.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>&#8220;ÅäÖÃϵͳÐÅÏ¢¿â&#8221;´°¿Ú</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqa"></A><h2>&#8220;ÅäÖÃϵͳÐÅÏ¢¿â&#8221;´°¿Ú</h2>
+<p>ÅäÖÃϵͳÐÅÏ¢¿âÓÃÓÚ´æ´¢ÒÔÏÂÐÅÏ¢£ºÅäÖÃÓ¦ÓóÌÐòËùÐèµÄÅäÖÃÊý¾Ý¡¢×éÖ¯²ã´Î½á¹¹ÐÅÏ¢ÒÔ¼°Ã¿¸öÔªËصÄÅäÖÃÎļþºÍÖ¸¶¨Êý¾Ý¡£ÔÚ&#8220;ÅäÖÃϵͳÐÅÏ¢¿â&#8221;´°¿ÚÖУ¬¿ÉÒÔ´´½¨ÐµÄϵͳÐÅÏ¢¿â£¬Ò²¿ÉÒÔʹÓúÍͬ²½ÏÖÓеÄϵͳÐÅÏ¢¿â¡£</p>
+<p>&#8220;ÅäÖÃϵͳÐÅÏ¢¿â&#8221;´°¿Ú°üÀ¨±¨Í·ºÍ&#8220;ÅäÖÃϵͳÐÅÏ¢¿â&#8221;ÁÐ±í¡£</p>
+<p>±¨Í·ÌṩÁËÐí¶à³£¹æÁ´½Ó¡£±¨Í·µÄÉϲ¿°üº¬¹¤¾ßÀ¸£¬¹¤¾ßÀ¸Öаüº¬ËĸöÁ´½Ó£¬´Ó×óµ½ÓÒÒÀ´ÎΪ£º</p>
+<ul><li><p>&#8220;¿ØÖÆ̨&#8221;°´Å¥£¬ÓÃÓÚ´ò¿ª Java Web Console Æô¶¯Ò³Ãæ¡£</p>
+</li>
+<li><p>&#8220;°æ±¾&#8221;°´Å¥£¬ÓÃÓÚ´ò¿ªÒ»¸ö´°¿Ú£¬ÏÔʾÓÐ¹Ø Desktop Manager µÄ°æ±¾ÐÅÏ¢¡£</p>
+</li>
+<li><p>&#8220;×¢Ïú&#8221;°´Å¥£¬ÓÃÓÚ´Ó Java Web Console ×¢Ïú£¬´Ó¶øÍ˳öÅäÖùÜÀíÆ÷£¬²¢·µ»Øµ½µÇ¼ҳÃæ¡£</p>
+</li>
+<li><p>&#8220;°ïÖú&#8221;°´Å¥£¬ÓÃÓÚ´ò¿ªÁª»ú°ïÖúÒ³Ãæ¡£</p>
+</li>
+</ul>
+<p>±¨Í·µÄϲ¿°üº¬²úÆ·Ãû³Æ¡¢·þÎñÆ÷Ãû³ÆÒÔ¼°µ±Ç°µÇ¼µÄ¹ÜÀíÔ±µÄÃû³Æ¡£</p>
+<p>Çë²Î¼û<A HREF="gbgpt.html#gbgpt">ÅäÖÃϵͳÐÅÏ¢¿â±í¸ñ</A>ºÍ<A HREF="gbgcn.html#gbgcn">´´½¨ÐµÄÅäÖÃϵͳÐÅÏ¢¿â</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgqe.html b/webconsole/html/zh_CN/help/gbgqe.html
new file mode 100644
index 0000000..8c19916
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgqe.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>Ö¸¶¨ÅäÖÃÎļþµÄºÏ²¢Ë³Ðò</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqe"></A><h4>Ö¸¶¨ÅäÖÃÎļþµÄºÏ²¢Ë³Ðò</h4>
+<h5>²½Öè</h5><ol><li><p><b>ÔÚ&#8220;ÒÑÑ¡Ôñ&#8221;ÁбíÖÐÑ¡ÔñËùÐèµÄÅäÖÃÎļþ¡£</b></p></li>
+<li><p><b>ʹÓÃÁбíÓÒ²àµÄ°´Å¥£¬ÔÚÁбíÖÐÉÏÒÆ»òÏÂÒÆÅäÖÃÎļþ¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgqf.html b/webconsole/html/zh_CN/help/gbgqf.html
new file mode 100644
index 0000000..1bedcd8
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgqf.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¸´ÖƺÍÒƶ¯ÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqf"></A><h4>¸´ÖƺÍÒƶ¯ÅäÖÃÎļþ</h4>
+<h5>²½Öè</h5><ol><li><p><b>Ñ¡ÖÐÒª¸´ÖÆ»òÒƶ¯µÄÅäÖÃÎļþËù¶ÔÓ¦µÄ¸´Ñ¡¿ò¡£</b></p></li>
+<li><p><b>´Ó²Ù×÷ÁбíÖÐÑ¡Ôñ&#8220;¸´ÖÆ/Òƶ¯&#8221;¡£</b></p><p>½«´ò¿ª&#8220;¸´ÖÆ/Òƶ¯Ïòµ¼&#8221;¡£</p>
+</li>
+<li><p><b>°´ÕÕ&#8220;¸´ÖÆ/Òƶ¯Ïòµ¼&#8221;Ïòµ¼ÌṩµÄ˵Ã÷Ö´ÐÐÈÎÎñ¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgqh.html b/webconsole/html/zh_CN/help/gbgqh.html
new file mode 100644
index 0000000..ca87511
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgqh.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>µ¼³öÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqh"></A><h4>µ¼³öÅäÖÃÎļþ</h4>
+<h5>²½Öè</h5><ol><li><p><b>Ñ¡ÖÐÒªµ¼³öµÄÅäÖÃÎļþËù¶ÔÓ¦µÄ¸´Ñ¡¿ò¡£</b></p></li>
+<li><p><b>´Ó²Ù×÷ÁбíÖÐÑ¡Ôñ&#8220;µ¼³ö&#8221;¡£</b></p><p>½«´ò¿ªÒ»¸ö¶Ô»°¿ò£¬¿ÉÒÔÔڸöԻ°¿òÖÐÖ¸¶¨Òª½«Îļþµ¼³öµ½µÄλÖá£</p>
+</li>
+<li><p><b>ÔÚ¶Ô»°¿òÖÐÑ¡Ôñ&#8220;±£´æµ½´ÅÅÌ&#8221;Ñ¡ÏȻºóµ¥»÷&#8220;È·¶¨&#8221;¡£</b></p></li>
+<li><p><b>Ñ¡Ôñµ¼³öÎļþµÄ±£´æλÖã¬È»ºóµ¥»÷&#8220;È·¶¨&#8221;¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgqj.html b/webconsole/html/zh_CN/help/gbgqj.html
new file mode 100644
index 0000000..530de40
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgqj.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>È¡ÏûÖ¸¶¨ÅäÖÃÎļþ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqj"></A><h4>È¡ÏûÖ¸¶¨ÅäÖÃÎļþ</h4>
+<h5>²½Öè</h5><ol><li><p><b>Ñ¡ÖÐҪȡÏûÖ¸¶¨µÄÅäÖÃÎļþËù¶ÔÓ¦µÄ¸´Ñ¡¿ò¡£</b></p></li>
+<li><p><b>µ¥»÷&#8220;È¡ÏûÖ¸¶¨ÅäÖÃÎļþ&#8221;°´Å¥¡£</b></p><p>ÏÖÔÚÒÑÈ¡ÏûÖ¸¶¨¸ÃÅäÖÃÎļþ£¬ÔÚ&#8220;Ö¸¶¨µÄÅäÖÃÎļþ&#8221;±í¸ñÖн«²»ÔÙÏÔʾ¸ÃÎļþ¡£</p>
+<hr size="1" noshade><p><IMG ALT="СÐÄ" src="graphics/caution.gif"> <b>СÐÄ &#8211; </b>´Ë²Ù×÷ûÓо¯¸æ¶Ô»°¿ò£¬Òò´ËÈç¹ûÄú´íÎóµ¥»÷ÁË&#8220;È¡ÏûÖ¸¶¨ÅäÖÃÎļþ&#8221;°´Å¥£¬¿ÉÒÔʹÓÃ&#8220;Ö¸¶¨ÅäÖÃÎļþ&#8221;¹¦ÄÜÀ´»Ö¸´Ö¸¶¨¡£</p><hr size="1" noshade></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgqm.html b/webconsole/html/zh_CN/help/gbgqm.html
new file mode 100644
index 0000000..fd3a28a
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgqm.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ͬ²½ÅäÖÃϵͳÐÅÏ¢¿â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqm"></A><h4>ͬ²½ÅäÖÃϵͳÐÅÏ¢¿â</h4>
+<p>ʹÓà Desktop Manager ¿ÉÒÔ²¢ÐйÜÀí¶à¸öºó¶Ë¡£´Ë¹¦ÄÜÔÊÐíÄú¶¨ÒåÒ»¸öÓÃÓÚ²âÊԵĺó¶ËÒÔ¼°Ò»¸öÓÃÓÚ×îÖÕÉú²úµÄºó¶Ë¡£ÏÖÔÚ¿ÉÒÔÏÈÔÚ²âÊÔºó¶ËÖж¨ÒåºÍÆÀ¹ÀÅäÖøü¸Ä¡£È»ºó¿ÉÒÔ½«²¿·Ö»òÕû¸ö²âÊÔºó¶ËÓëÉú²úºó¶Ë½øÐÐ<i>ͬ²½</i>£¬ÒԱ㽫ËùÐè¸ü¸Ä¿ìËÙ°²È«µØÓ¦Óõ½Éú²úϵͳÖС£´Ë·½·¨Ò²¿ÉÓÃ×÷Éú²úºó¶ËµÄ¼òµ¥±¸·ÝºÍ»Ö¸´»úÖÆ¡£Ê¹ÓÃ&#8220;ͬ²½&#8221;´°¿Ú¿ÉÒÔÖ´ÐдËͬ²½²Ù×÷¡£</p>
+<p></p>
+<h5>²½Öè</h5><ol><li><p><b>ÔÚ&#8220;ÅäÖÃϵͳÐÅÏ¢¿â&#8221;´°¿ÚÖÐÑ¡ÔñÒª½øÐÐͬ²½µÄϵͳÐÅÏ¢¿â¡£</b></p><p>½«´ò¿ª&#8220;ͬ²½&#8221;´°¿Ú¡£</p>
+</li>
+<li><p><b>´Ó&#8220;Ô´ÅäÖÃϵͳÐÅÏ¢¿â&#8221;ÁбíÖÐÑ¡ÔñԴϵͳÐÅÏ¢¿â¡£</b></p><p>¿ÉÒÔ¶Ô×÷Ϊ¸ü¸ÄÔ´µÄԴϵͳÐÅÏ¢¿â½øÐиü¸Ä¡£´ËϵͳÐÅÏ¢¿â<i>²»»á</i>¸ü¸Ä¡£</p>
+</li>
+<li><p>£¨¿ÉÑ¡£©<b>¿ÉÒÔͨ¹ýµ¥»÷&#8220;Ô´Æðʼµã&#8221;ÅԱߵÄ&#8220;¸ü¸Ä&#8221;°´Å¥À´ÏÞÖÆԴϵͳÐÅÏ¢¿â¡£</b></p><p>´Ë²Ù×÷½«ÁíÒ»¸öÔªËØ£¨¶ø²»ÊǸù£©Ö¸¶¨ÎªÍ¬²½µÄÔ´Æðʼµã¡£</p>
+<p>½«´ò¿ªÒ»¸ö¶Ô»°¿ò£¬¿ÉÒÔÔڸöԻ°¿òÖе¼º½µ½ËùÐèµÄ×éÖ¯»òÓòÔªËØ¡£Ñ¡Ôñij¸öÔªËØÖ®ºó£¬Ð·¾¶½«ÏÔʾÔÚ&#8220;Ô´Æðʼµã&#8221;ÖС£</p>
+</li>
+<li><p><b>´Ó&#8220;Ä¿±êÅäÖÃϵͳÐÅÏ¢¿â&#8221;ÁбíÖÐÑ¡ÔñÄ¿±êϵͳÐÅÏ¢¿â¡£</b></p><p>¿ÉÒÔ¶Ô×÷Ϊ¸ü¸ÄÄ¿±êµÄÄ¿±êϵͳÐÅÏ¢¿â½øÐиü¸Ä¡£´ËϵͳÐÅÏ¢¿â<i>½«»á</i>¸ü¸Ä¡£</p>
+</li>
+<li><p>£¨¿ÉÑ¡£©<b>¿ÉÒÔͨ¹ýµ¥»÷&#8220;Ä¿±êÆðʼµã&#8221;ÅԱߵÄ&#8220;¸ü¸Ä&#8221;°´Å¥À´ÏÞÖÆÄ¿±êϵͳÐÅÏ¢¿â¡£</b></p><p>´Ë²Ù×÷½«ÁíÒ»¸öÔªËØ£¨¶ø²»ÊǸù£©Ö¸¶¨ÎªÍ¬²½µÄÄ¿±ê¡£</p>
+<p>½«´ò¿ªÒ»¸ö¶Ô»°¿ò£¬¿ÉÒÔÔڸöԻ°¿òÖе¼º½µ½ËùÐèµÄ×éÖ¯»òÓòÔªËØ¡£Ñ¡Ôñij¸öÔªËØÖ®ºó£¬Ð·¾¶½«ÏÔʾÔÚ&#8220;Ä¿±êÆðʼµã&#8221;ÖС£</p>
+</li>
+<li><p><b>µ¥»÷&#8220;±È½Ï&#8221;°´Å¥¡£</b></p><p>½«¶ÔÕâÁ½¸öÊ÷½øÐбȽϣ¬²¢ÔÚ±í¸ñÖÐÁгöËùÓвîÒì¡£</p>
+</li>
+<li><p><b>Ñ¡Öбí¸ñÐУ¨°üº¬ÒªÍ¬²½µÄÅäÖÃÎļþ£©ÅԱߵĸ´Ñ¡¿ò£¬È»ºóµ¥»÷&#8220;ͬ²½&#8221;°´Å¥¡£</b></p><p>ͬ²½Íê³Éºó£¬Ä¿±êϵͳÐÅÏ¢¿â½«°´ÕÕÑ¡¶¨µÄÅäÖÃÎļþÓëԴϵͳÐÅÏ¢¿â½øÐÐÆ¥Åä¡£</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgqt.html b/webconsole/html/zh_CN/help/gbgqt.html
new file mode 100644
index 0000000..cd68710
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgqt.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ʹÓÃ&#8220;²éÕÒ&#8221;¹¦ÄÜ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqt"></A><h4>ʹÓÃ&#8220;²éÕÒ&#8221;¹¦ÄÜ</h4>
+<p>ʹÓÃ&#8220;²éÕÒ&#8221;¹¦ÄÜ¿ÉÒÔ¶ÔÕ¹¿ªÔªËصÄËùÓÐ<i>Ö±½Ó</i>×ÓÔªËØÖ´ÐÐÏÞ¶¨²éÕÒ¡£ÕâÓëËÑË÷¹¦Äܲ»Í¬£¬ËÑË÷¹¦ÄÜÌṩ¶ÔÔªËصĵݹéËÑË÷¡£</p>
+<h5>²½Öè</h5><ol><li><p><b>µ¥»÷µ¼º½Ê÷ÖеÄ&#8220;δÏÔʾijЩԪËØ&#8221;½Úµã¡£</b></p><p>½«´ò¿ª&#8220;²éÕÒ&#8221;´°¿Ú¡£</p>
+</li>
+<li><p><b>ÔÚ&#8220;²éÕÒ&#8221;×Ö¶ÎÖмüÈëÒ»¸ö×Ö·û´®»ò²¿·Ö×Ö·û´®¡£</b></p><p>ËÑË÷²»Çø·Ö´óСд£¬²¢ÇÒ²»ÊÇÈ«×ÖÆ¥Å䣬ÀýÈ磬ÊäÈëËÑË÷×Ö·û´® "bc" ½«»áÕÒµ½ "ABC" ºÍ "bcd"¡£ÐǺŠ(*) ÔÚËÑË÷×Ö·û´®ÖбíʾÈÎÒâ×Ö·ûÐòÁС£¿ÉÒÔÔÚËÑË÷×Ö·û´®µÄÈÎÒâλÖÃʹÓöà¸öÐǺš£¿Õ×Ö¶ÎÏ൱ÓÚËÑË÷×Ö·û´®Îª "*" µÄ×ֶΡ£</p>
+</li>
+<li><p><b>µ¥»÷&#8220;²éÕÒ&#8221;°´Å¥¡£</b></p><p>½«ÏÔʾ½á¹ûÁÐ±í¡£×î´ó½á¹ûÊýÏÞ¶¨Îª 100¡£</p>
+</li>
+<li><p><b>Òª½«ÕÒµ½µÄÔªËØÌí¼Óµ½µ¼º½Ê÷ÖУ¬ÇëÔÚ½á¹ûÁбíÖе¥»÷ËùÐèµÄÔªËØ¡£</b></p><p>&#8220;²éÕÒ&#8221;´°¿Ú½«¹Ø±Õ£¬ÔªËؽ«±»Ìí¼Óµ½µ¼º½Ê÷µÄ×Ó½ÚµãÁбíÖС£</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbgqu.html b/webconsole/html/zh_CN/help/gbgqu.html
new file mode 100644
index 0000000..59391ce
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbgqu.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GBK"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¸ü¸ÄÓ¦ÓÃλÖÃ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqu"></A><h4>¸ü¸ÄÓ¦ÓÃλÖÃ</h4>
+<h5>²½Öè</h5><ol><li><p><b>µ¥»÷&#8220;¸ü¸Ä&#8221;°´Å¥¡£</b></p><p>½«³öÏÖ°üº¬µ¼º½Ê÷µÄ´°¿Ú¡£</p>
+</li>
+<li><p><b>ä¯ÀÀ¸ÃÊ÷£¬²¢Ñ¡ÔñËùÐèÔªËØ¡£</b></p><p><hr size="1" noshade><p><b> Ìáʾ &#8211; </b>Èç¹ûÔÚÊ÷ÖÐÕÒ²»µ½ËùÐèÔªËØ£¬Ôò¿ÉÒÔµ¥»÷&#8220;ËÑË÷&#8221;°´Å¥´ò¿ª&#8220;ËÑË÷&#8221;´°¿ÚÀ´²éÕÒ¸ÃÔªËØ¡£</p>
+<hr size="1" noshade></p></li>
+<li><p><b>µ¥»÷&#8220;È·¶¨&#8221;°´Å¥¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbzbc.html b/webconsole/html/zh_CN/help/gbzbc.html
new file mode 100644
index 0000000..ebfc4d3
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbzbc.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GB2312"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ɾ³ýÅäÖÃϵͳÐÅÏ¢¿â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbzbc"></A><h4>ɾ³ýÅäÖÃϵͳÐÅÏ¢¿â</h4><A NAME="indexterm-15"></A><h5>²½Öè</h5><ol><li><p><b>Ñ¡ÖÐҪɾ³ýµÄÅäÖÃϵͳÐÅÏ¢¿âËù¶ÔÓ¦µÄ¸´Ñ¡¿ò¡£</b></p></li>
+<li><p><b>µ¥»÷&ldquo;ɾ³ý&rdquo;°´Å¥¡£</b></p><p>½«³öÏÖÒ»¸öÈ·È϶Ի°¿ò¡£</p>
+</li>
+<li><p><b>Èç¹ûȷʵҪɾ³ýÅäÖÃϵͳÐÅÏ¢¿â£¬ÇëÔÚÈ·È϶Ի°¿òÖе¥»÷&ldquo;È·¶¨&rdquo;¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/gbzci.html b/webconsole/html/zh_CN/help/gbzci.html
new file mode 100644
index 0000000..0461cc6
--- /dev/null
+++ b/webconsole/html/zh_CN/help/gbzci.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=GB2312"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÖØÃüÃûÅäÖÃϵͳÐÅÏ¢¿â</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbzci"></A><h4>ÖØÃüÃûÅäÖÃϵͳÐÅÏ¢¿â</h4><A NAME="indexterm-16"></A><h5>²½Öè</h5><ol><li><p><b>Ñ¡ÖÐÒªÖØÃüÃûµÄÅäÖÃϵͳÐÅÏ¢¿âËù¶ÔÓ¦µÄ¸´Ñ¡¿ò¡£</b></p></li>
+<li><p><b>µ¥»÷&ldquo;ÖØÃüÃû&rdquo;°´Å¥¡£</b></p><p>½«´ò¿ª&ldquo;ÖØÃüÃû&rdquo;¶Ô»°¿ò¡£</p>
+</li>
+<li><p><b>ÔÚ¶Ô»°¿òµÄÎı¾×Ö¶ÎÖмüÈëÅäÖÃϵͳÐÅÏ¢¿âµÄÐÂÃû³Æ£¬È»ºóµ¥»÷&ldquo;È·¶¨&rdquo;¡£</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/index.xml b/webconsole/html/zh_CN/help/index.xml
new file mode 100644
index 0000000..4d15381
--- /dev/null
+++ b/webconsole/html/zh_CN/help/index.xml
@@ -0,0 +1,30 @@
+<!-- ident "%Z%%M% %I% %E% SMI" --><?xml version='1.0' encoding='UTF-8'?><!DOCTYPE index PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN" "index_1_0.dtd">
+<index version="1.0">
+<indexitem target="gbgpn" text="指定é…置文件"></indexitem>
+<indexitem target="gbgce" text="é…置系统信æ¯åº“"><indexitem target="gbgcn" text="新建"></indexitem><indexitem target="gbzbc" text="删除"></indexitem><indexitem target="gbzci" text="é‡å‘½å"></indexitem><indexitem target="gbgqm" text="åŒæ­¥"></indexitem><indexitem text="类型"><indexitem target="gbgpt" text="文件"></indexitem><indexitem target="gbgpt" text="æ··åˆ"></indexitem><indexitem target="gbgpt" text="LDAP(Lightweight Directory Access Protocol,轻é‡ç›®å½•è®¿é—®å议)"></indexitem>
+</indexitem>
+<indexitem target="gbgpt" text="查看详细信æ¯"></indexitem>
+</indexitem>
+<indexitem target="gbgni" text="创建é…置文件"></indexitem>
+<indexitem target="gbgcn" text="创建系统信æ¯åº“"></indexitem>
+<indexitem target="gbgpr" text="删除é…置文件"></indexitem>
+<indexitem target="gbgce" text="域"></indexitem>
+<indexitem target="gbgoz" text="有效设置, 查看"></indexitem>
+<indexitem target="gbgcm" text="元素树"></indexitem>
+<indexitem target="gbgce" text="元素"><indexitem target="gbgqt" text="查找功能"></indexitem><indexitem target="gbgoy" text="ä¿¡æ¯"></indexitem><indexitem target="gbgpa" text="æœç´¢"></indexitem>
+</indexitem>
+<indexitem target="gbgqh" text="导出é…置文件"></indexitem>
+<indexitem target="gbgps" text="导入é…置文件"></indexitem>
+<indexitem target="gbgpt" text="LDAP(Lightweight Directory Access Protocol,轻é‡ç›®å½•è®¿é—®å议)"></indexitem>
+<indexitem target="gbgqa" text="注销"></indexitem>
+<indexitem target="gbgcm" text="导航"></indexitem>
+<indexitem target="gbgce" text="组织"></indexitem>
+<indexitem target="gbgcm" text="é…置文件树"></indexitem>
+<indexitem target="gbgce" text="é…置文件"><indexitem target="gbgpn" text="指定"></indexitem><indexitem target="gbgni" text="新建"></indexitem><indexitem target="gbgpr" text="删除"></indexitem><indexitem target="gbgqh" text="导出"></indexitem><indexitem target="gbgps" text="导入"></indexitem><indexitem target="gbgcm" text="导航"></indexitem><indexitem target="gbgqj" text="å–消指定"></indexitem>
+</indexitem>
+<indexitem target="gbgqa" text="系统信æ¯åº“"></indexitem>
+<indexitem target="gbgpa" text="æœç´¢"></indexitem>
+<indexitem target="gbgqm" text="åŒæ­¥"></indexitem>
+<indexitem target="gbgcd" text="查看所有é…置文件"></indexitem>
+<indexitem target="gbgdc" text="查看指定的é…置文件"></indexitem>
+</index>
diff --git a/webconsole/html/zh_CN/help/map.jhm b/webconsole/html/zh_CN/help/map.jhm
new file mode 100644
index 0000000..a14c734
--- /dev/null
+++ b/webconsole/html/zh_CN/help/map.jhm
@@ -0,0 +1,46 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN" "map_1_0.dtd">
+<map version="1.0">
+ <mapID target="gbgca" url="gbgca.html"/>
+ <mapID target="gbgce" url="gbgce.html"/>
+ <mapID target="gbgqa" url="gbgqa.html"/>
+ <mapID target="gbgpt" url="gbgpt.html"/>
+ <mapID target="gbgcn" url="gbgcn.html"/>
+ <mapID target="gbzbc" url="gbzbc.html"/>
+ <mapID target="gbzci" url="gbzci.html"/>
+ <mapID target="gbgqm" url="gbgqm.html"/>
+ <mapID target="gbgdc" url="gbgdc.html"/>
+ <mapID target="gbgcm" url="gbgcm.html"/>
+ <mapID target="gbgpa" url="gbgpa.html"/>
+ <mapID target="gbgqt" url="gbgqt.html"/>
+ <mapID target="gbgoy" url="gbgoy.html"/>
+ <mapID target="gbgni" url="gbgni.html"/>
+ <mapID target="gbgpr" url="gbgpr.html"/>
+ <mapID target="gbgpn" url="gbgpn.html"/>
+ <mapID target="gbgqj" url="gbgqj.html"/>
+ <mapID target="gbgpw" url="gbgpw.html"/>
+ <mapID target="gbgqf" url="gbgqf.html"/>
+ <mapID target="gbgps" url="gbgps.html"/>
+ <mapID target="gbgqh" url="gbgqh.html"/>
+ <mapID target="gbgoz" url="gbgoz.html"/>
+ <mapID target="gbgcd" url="gbgcd.html"/>
+ <mapID target="gbgcr" url="gbgcr.html"/>
+ <mapID target="gbgpe" url="gbgpe.html"/>
+ <mapID target="gbgpu" url="gbgpu.html"/>
+ <mapID target="gbgow" url="gbgow.html"/>
+ <mapID target="gbgpj" url="gbgpj.html"/>
+ <mapID target="gbgou" url="gbgou.html"/>
+ <mapID target="gbgec" url="gbgec.html"/>
+ <mapID target="gbgcg" url="gbgcg.html"/>
+ <mapID target="gbgpb" url="gbgpb.html"/>
+ <mapID target="gbgeb" url="gbgeb.html"/>
+ <mapID target="gbgot" url="gbgot.html"/>
+ <mapID target="gbgkr" url="gbgkr.html"/>
+ <mapID target="gbgpm" url="gbgpm.html"/>
+ <mapID target="gbgpp" url="gbgpp.html"/>
+ <mapID target="gbgda" url="gbgda.html"/>
+ <mapID target="gbgdh" url="gbgdh.html"/>
+ <mapID target="gbgqu" url="gbgqu.html"/>
+ <mapID target="gbgqe" url="gbgqe.html"/>
+</map>
diff --git a/webconsole/html/zh_CN/help/p1.html b/webconsole/html/zh_CN/help/p1.html
new file mode 100644
index 0000000..2ffa551
--- /dev/null
+++ b/webconsole/html/zh_CN/help/p1.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<h1>Java Desktop System Configuration Manager Release 2.0 Online Help</h1>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/help/toc.xml b/webconsole/html/zh_CN/help/toc.xml
new file mode 100644
index 0000000..6771c90
--- /dev/null
+++ b/webconsole/html/zh_CN/help/toc.xml
@@ -0,0 +1,44 @@
+<!-- ident "%Z%%M% %I% %E% SMI" --><?xml version='1.0' encoding='UTF-8'?><!DOCTYPE toc PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN" "toc_1_0.dtd">
+<toc version="1.0">
+<tocitem target="gbgca" text="Sun Desktop Manager 1.0.1 帮助"><tocitem target="gbgce" text="简介"></tocitem>
+<tocitem target="gbgqa" text="é…置系统信æ¯åº“窗å£"><tocitem target="gbgpt" text="é…置系统信æ¯åº“表格"><tocitem target="gbgcn" text="新建é…置系统信æ¯åº“"></tocitem>
+<tocitem target="gbzbc" text="删除é…置系统信æ¯åº“"></tocitem>
+<tocitem target="gbzci" text="é‡å‘½åé…置系统信æ¯åº“"></tocitem>
+<tocitem target="gbgqm" text="åŒæ­¥é…置系统信æ¯åº“"></tocitem>
+</tocitem>
+</tocitem>
+<tocitem target="gbgdc" text="é…置文件 &#8212; 树视图"><tocitem target="gbgcm" text="导航区域"><tocitem target="gbgpa" text="æœç´¢å…ƒç´ "></tocitem>
+<tocitem target="gbgqt" text="使用查找功能"></tocitem>
+</tocitem>
+<tocitem target="gbgoy" text="内容区域"><tocitem target="gbgni" text="新建é…置文件"></tocitem>
+<tocitem target="gbgpr" text="删除é…置文件"></tocitem>
+<tocitem target="gbgpn" text="指定é…置文件"></tocitem>
+<tocitem target="gbgqj" text="å–消指定é…置文件"></tocitem>
+<tocitem target="gbgpw" text="é‡å‘½åé…置文件"></tocitem>
+<tocitem target="gbgqf" text="å¤åˆ¶å’Œç§»åŠ¨é…置文件"></tocitem>
+<tocitem target="gbgps" text="导入é…置文件"></tocitem>
+<tocitem target="gbgqh" text="导出é…置文件"></tocitem>
+</tocitem>
+<tocitem target="gbgoz" text="查看有效设置"></tocitem>
+</tocitem>
+<tocitem target="gbgcd" text="é…置文件 &#8212; 全部"><tocitem target="gbgcr" text="新建é…置文件"></tocitem>
+<tocitem target="gbgpe" text="删除é…置文件"></tocitem>
+<tocitem target="gbgpu" text="é‡å‘½åé…置文件"></tocitem>
+<tocitem target="gbgow" text="å¤åˆ¶å’Œç§»åŠ¨é…置文件"></tocitem>
+<tocitem target="gbgpj" text="导入é…置文件"></tocitem>
+<tocitem target="gbgou" text="导出é…置文件"></tocitem>
+</tocitem>
+<tocitem target="gbgec" text="é…置文件编辑器"><tocitem target="gbgcg" text="常规属性"><tocitem target="gbgpb" text="指定é…置文件的常规属性"></tocitem>
+</tocitem>
+<tocitem target="gbgeb" text="é…置设置"><tocitem target="gbgot" text="查看和编辑é…置文件的é…置设置"></tocitem>
+</tocitem>
+<tocitem target="gbgkr" text="指定的元素"><tocitem target="gbgpm" text="将元素指定给é…置文件"></tocitem>
+<tocitem target="gbgpp" text="从é…置文件中å–消指定元素"></tocitem>
+</tocitem>
+<tocitem target="gbgda" text="设置摘è¦"></tocitem>
+<tocitem target="gbgdh" text="高级选项"><tocitem target="gbgqu" text="更改应用ä½ç½®"></tocitem>
+<tocitem target="gbgqe" text="指定é…置文件的åˆå¹¶é¡ºåº"></tocitem>
+</tocitem>
+</tocitem>
+</tocitem>
+</toc>
diff --git a/webconsole/html/zh_CN/helpContent.html b/webconsole/html/zh_CN/helpContent.html
new file mode 100644
index 0000000..24f2e71
--- /dev/null
+++ b/webconsole/html/zh_CN/helpContent.html
@@ -0,0 +1,336 @@
+<html>
+<head>
+<title>Sun Java[TM] Desktop System Configuration Manager - °ïÖúÄÚÈÝ</title>
+<meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+<meta http-equiv="Content-Type" content="text/html; charset=GB2312"><!-- Empty script so IE5.0 Windows will draw table and button borders --><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"></script></head>
+
+<body class="help-body"><a name="top"></a><p><a name="intro"> </a><div class="help-header-1">Configuration Manager °ïÖú</div></p>
+<p>»¶Ó­Ê¹Óà Sun Java[TM] Desktop System Configuration Manager °ïÖúÒ³Ãæ¡£Òª»ñµÃ Java Desktop System Configuration Manager Ìض¨²¿·ÖµÄ°ïÖú£¬Çëµ¥»÷×ó²àÏàÓ¦µÄÁ´½Ó¡£</p>
+<p>±¾°ïÖúÏȽéÉÜÁË Configuration Manager µÄ³£¹æ²úÆ·±³¾°ºÍ¸ÅÄî - <a class="help-link" href="#concepts">±³¾°ºÍ¸ÅÄî</a>¡£ÓÐ¹Ø Configuration Manager µÄijЩ³£¹æ°æʽºÍÐÐΪ·½ÃæµÄÄÚÈÝ¿ÉÒÔÔÚ<a class="help-link" href="#ui">°æʽºÍÐÐΪ</a>ÖÐÕÒµ½¡£</p>
+<p>³£¹æÒ³ÃæÖ®ºóÊǸü¼ÓÏêϸµÄ°ïÖú£¬·Ö±ðÕë¶Ô<a class="help-link" href="#masthead"><b>±¨Í·</b></a>¡¢<a class="help-link" href="#navigation"><b>[ä¯ÀÀ] ´°¸ñ</b></a>ºÍ <a class="help-link" href="#content"><b>[ÄÚÈÝ] ´°¸ñ</b></a>¡£»¹ÓÐһЩҳÃæ½éÉÜ<a class="help-link" href="#login">µÇ¼</a>ºÍ<a href="#reporting">±¨±í</a>¹¦ÄÜ¡£<p><a name="concepts"> </a><div class="help-header-1">±³¾°ºÍ¸ÅÄî</div></p>
+<p>Configuration Manager ÔÊÐí¶ÔÅäÖÃÉèÖýøÐм¯ÖÐʽ¹ÜÀí¡£¿ÉÒÔÔÚ×éÖ¯²ã´Î½á¹¹µÄ²»Í¬¼¶±ðÉϲ鿴¡¢¶¨ÒåºÍʵʩÅäÖÃÉèÖá£ÔÚ±¾ÎĵµµÄÓàϲ¿·Ö£¬½«ÓïÒåÉϽôÃÜÏà¹ØµÄ&ldquo;ÅäÖÃÉèÖÃ&rdquo;³ÆΪ&ldquo;ÅäÖòßÂÔ&rdquo;¡£</p>
+<P>Configuration Manager ¿ÉÒÔ´¦ÀíÈý¸ö²»Í¬µÄ²ã´Î½á¹¹£¨»ò³Æ֮ΪÊ÷£©¡£ÎªÁËÁ˽â Configuration Manager Óû§½çÃ棬Çø·ÖÒÔÏÂÕâÁ½¸öÊ÷ÊǺÜÖØÒªµÄ£º</P>
+<p><div class="help-header-2"><a name="dataStructures">Êý¾Ý½á¹¹</a></div></p>
+<P>Ò»¸öÊ÷ÊÇÓÉÅäÖòßÂÔ¹¹³É£¬Òò´Ë±»³ÆΪÅäÖòßÂÔÊ÷£¨Çë²ÎÔÄͼ 1 -&ldquo;Ê÷&rdquo;ÖеÄÀ¶É«²¿·Ö£©¡£ÓÐÐí¶à³ÌÐò£¨ÀýÈç Mozilla£©¾ßÓиüΪ¸´ÔÓµÄÅäÖ㬶ÔÓÚÓùýÕâЩ³ÌÐòµÄÓû§¶øÑÔ£¬ËûÃDz¢²»»á¶ÔÅäÖÃÉèÖõIJã´Î½á¹¹×éÖ¯·½Ê½¸Ðµ½Ä°Éú¡£µäÐ͵ÄÅäÖòßÂÔ£¨¾ßÓÐ&ldquo;/Mozilla/Navigator/HomeUrl&rdquo;µÄÅäÖÃÉèÖã©¿ÉÒÔͨ¹ý&ldquo;/Mozilla/Navigator&rdquo;½øÐÐÒýÓá£</P>
+<P>ÅäÖòßÂÔÊ÷ǶÈëµ½µÚ¶þÖÖÀàÐ͵ÄÊ÷£¨×éÖ¯Ê÷£©ÖУ¨Çë²ÎÔÄͼ 1 -&ldquo;Ê÷&rdquo;ÖеĻÒÉ«²¿·Ö£©¡£×éÖ¯Ê÷ÓÃÓÚ±íʾ×éÖ¯µ¥ÔªÖ®¼äµÄ¹Øϵ¡£½á¹ûÊÇ&ldquo;×éÖ¯Ê÷º¬ÓÐÅäÖòßÂÔÊ÷&rdquo;¡£×éÖ¯Ê÷Óà LDAP ·þÎñÆ÷±íʾ¡£</P>
+<p>µÚÈýÖÖÀàÐ͵ÄÊ÷ÊÇÓòÊ÷¡£ÓòÊ÷±íʾӲ¼þµ¥ÔªÖ®¼äµÄ¹Øϵ¡£ÅäÖòßÂÔÊ÷ǶÈëµ½ÓòÊ÷ÖУ¬Òò´ËÓòÊ÷º¬ÓÐÅäÖòßÂÔÊ÷¡£ÓòÊ÷Óà LDAP ·þÎñÆ÷±íʾ¡£</p>
+<p>ʹÓÃ×éÖ¯Ê÷ºÍʹÓÃÓòÊ÷µÄ¸ÅÄîÊÇÏàͬµÄ¡£Á½ÕßÖ®¼äµÄÖ÷ÒªÇø±ðÔÚÓÚ×éÖ¯Ê÷ÓÃÓÚά»¤Óû§£¬¶øÓòÊ÷ÓÃÓÚά»¤Ö÷»ú¡£Óû§ºÍÖ÷»úλÓÚÕâÁ½¸ö¶ÀÁ¢µÄÊ÷ÖУ¬ÕâʹµÃ Configuration Manager ¿ÉÒÔÌṩ»ùÓÚÓû§ºÍ»ùÓÚÖ÷»úµÄÅäÖá£ÓÉÓÚÁ½¸öÊ÷·Ç³£ÏàËÆ£¬Òò´Ë±¾½Ú½«Ö÷Òª½éÉÜ×éÖ¯Ê÷£¬µ±×éÖ¯Ê÷ºÍÓòÊ÷Ö®¼ä´æÔÚ²î±ðʱÔÙÌá¼°ÓòÊ÷¡£</p>
+<P>ͨ³££¬´óÐÍÆóҵʹÓà LDAP ·þÎñÆ÷ÒÔ²ã´Î½á¹¹µÄ·½Ê½Ó³Éä×éÖ¯Êý¾Ý¡£ÔÚ LDAP ÖУ¬×éÖ¯Ê÷ÖеÄÒ»¸öλÖóÆΪһ¸öʵÌå¡£</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_ldap_v4.png" NAME="Trees" ALT="Trees" ALIGN=LEFT WIDTH=550 HEIGHT=369 BORDER=1> </FONT><P><FONT COLOR="#000000"><A NAME="fig_trees"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">ͼ 1 &ndash; Ê÷</FONT></FONT></I></FONT></P>
+<p><div class="help-header-2"><a name="SecDataManagement">°²È«ºÍÊý¾Ý¹ÜÀí</a></div></p>
+<p>ÕâÖÖ&ldquo;Ê÷ÖÐÊ÷&rdquo;ʹ²ã´Î½á¹¹µÄ°²È«ºÍÊý¾Ý¹ÜÀí±äµÃ¸ü¼ÓÈÝÒס£¸ÃÊ÷½á¹¹ÊÇͨ¹ý×î³õÔÚ×éÖ¯Ê÷µÄ¸ù²¿Ò»´ÎÐÔ²åÈëÕû¸öÅäÖòßÂÔÊ÷¶øʵÏֵġ£¶Ô³õʼÅäÖòßÂÔÊ÷µÄÅäÖÃÉèÖÃËù×÷µÄÌض¨ÓÚʵÌåµÄ¸ü¸Ä´æ´¢ÔÚÏàÓ¦µÄʵÌåÖС£ÎªÁ˼ò±ãÆð¼û£¬Í¼ 1 ½öÏÔʾÁËÓëÃûΪ&ldquo;marketing&rdquo;ºÍ&ldquo;jclarke&rdquo;µÄ×é֯ʵÌåÏà¹ØÁªµÄÅäÖòßÂÔÊ÷¡£</P>
+<p><div class="help-header-2"><a name="GenConfigSettings">ÅäÖÃÉèÖõÄÉú³É</a></div></p>
+<P>ʵÌåµÄÅäÖÃÉèÖÃͨ¹ýºÏ²¢»ñµÃ¡£Óë×éÖ¯Ê÷»òÓòÊ÷ÖеÄij¸öʵÌåÏà¹ØÁªµÄËùÓÐÅäÖÃÉèÖóÆΪ·Ö²ã¡£ºÏ²¢´Ó¸ù·Ö²ã¿ªÊ¼£¬ÑØ×ÅÊ÷Ö±µ½µ½´ïËùÐèµÄʵÌåΪֹ¡£ÔÚÓëijʵÌåÏà¹ØÁªµÄij¸ö·Ö²ãÖжÔÅäÖÃÉèÖÃËù×÷µÄ¸ü¸Ä»á±»ÓëÊ÷²ã´Î½á¹¹ÖиüϲãµÄʵÌåÏà¹ØÁªµÄ·Ö²ã¼Ì³Ð£¨Çë²ÎÔÄ<A class="help-link" HREF="#fig_merging">ͼ 2 -&ldquo;·Ö²ãºÏ²¢&rdquo;</a>£©¡£¼Ì³ÐµÄÖµ¿ÉÒÔ±»Ìض¨·Ö²ãΪ×Ô¼º¶¨ÒåµÄÉèÖÃËù¸²¸Ç¡£</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_merge.gif" NAME="LayerMerging" ALT="Layer Merging" ALIGN=LEFT WIDTH=550 HEIGHT=520 BORDER=1> </FONT><P><FONT COLOR="#000000"><A NAME="fig_merging"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">ͼ 2 &ndash; ·Ö²ãºÏ²¢</FONT></FONT></I></FONT></P>
+<p><FONT COLOR="#000000">¸Ã¼Ì³Ð¹æÔòÊÊÓÃÓÚÅäÖÃÉèÖã¬Ò²ÊÊÓÃÓÚ°²È«ÌØÐÔ£º</FONT><FONT COLOR="#000000">Èç¹û½«¸½¼Óµ½&ldquo;o=marketing&rdquo;µÄ·Ö²ãÖеÄij¸öÅäÖÃÉèÖõݲȫÊôÐÔÖ¸¶¨Îª&ldquo;Êܱ£»¤&rdquo;£¬Ôò´ËÊ÷¸Ã·Ö²ãºóµÄËùÓзֲãÖУ¬´ËÅäÖÃÉèÖÃΪֻ¶Á£¨Çë²ÎÔÄ<A class="help-link" HREF="#fig_protection">ͼ 3 -&ldquo; ±£»¤&rdquo;</a>£©¡£</FONT></P>
+<P><FONT COLOR="#000000"><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_protected_v3.png" NAME="Protection" ALT="Protection" ALIGN=LEFT WIDTH=550 HEIGHT=524 BORDER=1> </FONT></FONT><P><FONT COLOR="#000000"><FONT COLOR="#000000"><A NAME="fig_protection"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">ͼ 3 &ndash; ±£»¤</FONT></FONT></I></FONT></FONT></P>
+<p><div class="help-header-2"><a name="BCAssociating">½«ÅäÖòßÂÔÊ÷Óë×éÖ¯Ê÷»òÓòÊ÷Ïà¹ØÁª</a></div></p>
+<p>ÅäÖòßÂÔÊ÷ͨ¹ýÒÔÏÂÁ½ÖÖ·½Ê½°ó¶¨µ½×éÖ¯Ê÷µÄʵÌ壺</P>
+<UL>
+ <li>×÷Ϊ×Ôº¬ÅäÖòßÂÔÊ÷´æ´¢ÔÚʵÌå´¦</li>
+ <li>Á´½Óµ½²ßÂÔ×éÖеÄʵÌå</li>
+</UL>
+<p><p><div class="help-header-2"><a name="BCPolicyGroups">²ßÂÔ×é</a></div></p>
+<P>²ßÂÔ×éÊÇÅäÖòßÂÔµÄÈÝÆ÷£¬Ã¿¸ö²ßÂÔ×鶼ÓÐÓëÆäÏà¹ØµÄΨһÃû³Æ¡£ËüÃÇÒ²ÊÇÅäÖòßÂÔÊ÷µÄÈÝÆ÷£¬ÒòΪÅäÖòßÂÔ½«ÆäÅäÖÃÉèÖô洢ÔÚÅäÖòßÂÔÊ÷ÖУ¨Çë²ÎÔÄ<A class="help-link" HREF="#fig_trees">ͼ 1 &ndash;&ldquo;Ê÷&rdquo;</A>£©¡£²ßÂÔ×é´æ´¢ÔÚ²ßÂÔϵͳÐÅÏ¢¿âÖС£Í¨¹ý½¨Á¢ÖÁ²ßÂÔ×éµÄÁ´½Ó£¬ËùÓÐÀàÐ͵ÄʵÌå¾ù¿ÉʹÓÃÕâЩ²ßÂÔ×é¡£ÕâʹµÃʹÓõĺó¶Ë¸ü¼ÓÁé»îºÍ¶ÀÁ¢¡£²ßÂÔ×éµÄÁíÒ»¸öÓŵãÊÇ¿ÉÒÔÊäÈëºÍÊä³ö£¬´Ó¶ø¸ü¼Ó±ãÓÚά»¤¡£</P>
+<P>¹ÜÀíÔ±¿ÉÒÔ½¨Á¢µ¥¶ÀÓïÒ巶ΧµÄÅäÖòßÂÔ¼¯ºÏ£¬ÀýÈç´æ´¢ÔÚ²ßÂÔϵͳÐÅÏ¢¿âÖеÄ&ldquo;Experts&rdquo;ºÍ&ldquo;Novice&rdquo;²ßÂÔ×顣Ȼºó¿É½«ÕâЩÅäÖòßÂÔÓÃÓÚÕû¸ö×éÖ¯Ê÷¡£</P>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">·µ»ØÒ³Ê×</a></div><a name="ui"> </a><div class="help-header-1">°æʽºÍÐÐΪ</div>
+<p>Configuration Manager µÄ°æʽÓÉÈý¸öÇøÓò×é³É£º±¨Í·¡¢[ä¯ÀÀ] ´°¸ñºÍ [ÄÚÈÝ] ´°¸ñ¡£±¨Í·Î»ÓÚÒ³ÃæµÄ¶¥¶Ë¡£×óÏ·½ÇøÓòÊÇ [ä¯ÀÀ] ´°¸ñ¡£ÓÒÏ·½ÇøÓòÊÇ [ÄÚÈÝ] ´°¸ñ¡£´ËÀàÐ͵İæʽҲ³ÆΪ&ldquo;×óÓÒÃæ°å¼¯&rdquo;¡£ÏÔʾÆäËû¶Ô»°¿òºÍ°ïÖúÄÚÈÝʱ»á´ò¿ªµ¥¶ÀµÄä¯ÀÀÆ÷´°¿Ú¡£</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">·µ»ØÒ³Ê×</a></div><a name="login"> </a><div class="help-header-1">µÇ¼</div>
+<p>ҪʹÓà Configuration Manager£¬±ØÐëµÇ¼µ½ Sun Web ¿ØÖÆ̨¡£Sun Web ¿ØÖÆ̨Öаüº¬¹ÜÀíÓ¦ÓóÌÐò£¬ÕâЩӦÓóÌÐò¶¼¾ßÓÐÒ»ÖµÄÓû§½çÃæ¡£¸Ã¿ØÖÆ̨µÄÓŵãÖ®Ò»ÊǹÜÀíÔ±Ö»ÐèÒªµÇ¼һ´Î¼´¿ÉʹÓÿØÖÆ̨ÖеÄËùÓÐÓ¦ÓóÌÐò¡£Îª´Ë£¬Sun Web ¿ØÖÆ̨Ìṩ±ê×¼µÄµÇ¼ҳÃæ¡£</p>
+<p>ÔÚ±ê×¼µÇ¼ҳÃæÉÏ£¬ÒªµÇ¼µ½µÄ·þÎñÆ÷ÏÔʾÔÚ&ldquo;Óû§Ãû&rdquo;ºÍ&ldquo;¿ÚÁî&rdquo;ÎÄ×Ö×ֶεÄÉÏ·½¡£</p>
+<p>³É¹¦µÇ¼µ½ Web ¿ØÖÆ̨ºó£¬½«ÏÔʾ Web ¿ØÖÆ̨ӦÓóÌÐòÆô¶¯Ò³Ãæ¡£ÔÚ¸ÃÒ³ÃæÖУ¬¿ÉÒÔÑ¡Ôñ&ldquo;Configuration Manager&rdquo;Ó¦ÓóÌÐò£¬ÒÔÆô¶¯ Configuration Manager¡£</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">·µ»ØÒ³Ê×</a></div><a name="masthead"> </a><div class="help-header-1">±¨Í·</div>
+<p>±¨Í·Öаüº¬ÍêÕûµÄ²úÆ·Ãû³Æ (Sun Java[TM] Desktop System Configuration Manager)¡£±¨Í·Ò²ÌṩºÜ¶à³£¹æÁ´½Ó£º</p>
+<ul><li>&ldquo;<b>¿ØÖÆ̨</b>&rdquo;Á´½ÓʹÄú·µ»Øµ½ Sun Web ¿ØÖÆ̨ӦÓóÌÐòÆô¶¯Ò³Ãæ¡£</li>
+ <li>&ldquo;<b>°æ±¾</b>&rdquo;Á´½Ó½«´ò¿ª°æ±¾´°¿Ú¡£</li>
+ <li>&ldquo;<b>×¢Ïú</b>&rdquo;Á´½ÓÓÃÓÚ×¢Ïú Sun Web ¿ØÖÆ̨£¬¼Ì¶ø×¢Ïú Configuration Manager£¬²¢·µ»Øµ½µÇ¼ҳÃæ¡£</li>
+ <li>&ldquo;<b>°ïÖú</b>&rdquo;Á´½Ó½«´ò¿ªÕâЩ°ïÖúÒ³Ãæ¡£</li>
+</ul>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">·µ»ØÒ³Ê×</a></div><a name="navigation"> </a><div class="help-header-1">[ä¯ÀÀ] ´°¸ñ</div>
+<p>[ä¯ÀÀ] ´°¸ñʹÄú¿ÉÒÔä¯ÀÀº¬ÓÐ×éÖ¯¡¢Óû§ºÍ½ÇÉ«µÄ×éÖ¯Ê÷£¬ÒÔ¼°º¬ÓÐÓòºÍÖ÷»úµÄÓòÊ÷¡£Ëü»¹¿ÉÒÔÓÃÓÚ¹ÜÀíÏàÓ¦Óû§ºÍÖ÷»ú²ßÂÔϵͳÐÅÏ¢¿âÖеIJßÂÔ×é¡£</p>
+<p>[ä¯ÀÀ] ´°¸ñÖаüº¬Á½¸ö¶¥²ãÑ¡Ï£º&ldquo;<b>Óû§</B>&rdquo;ºÍ&ldquo;<b>Ö÷»ú</B>&rdquo;¡£</p><a name="entities"> </a><div class="help-header-2">&ldquo;Óû§&rdquo;Ñ¡Ï</div>
+<p>Ìṩ&ldquo;<b>×éÖ¯Ê÷</B>&rdquo;ºÍ&ldquo;<b>²ßÂÔϵͳÐÅÏ¢¿â</B>&rdquo;Á½¸ö×ÓÑ¡Ï¡£Ê¹ÓÃ&ldquo;<b>×éÖ¯Ê÷</B>&rdquo;Ñ¡Ïä¯ÀÀ×éÖ¯Ê÷¡£</p><a name="parpath"></a><div class="help-header-3">ÆðԴ·¾¶</div>
+<p>&ldquo;<b>×éÖ¯Ê÷</B>&rdquo;Ñ¡ÏµÄ¶¥²¿ÊÇÆðԴ·¾¶£¬¸Ã¿Ø¼þÏÔʾµ±Ç°ÊµÌåµÄ·¾¶¡£Ã¿¸ö·¾¶µã¶¼ÊÇÒ»¸öÁ´½Ó£¬Ò»¸öÁ´½Ó´ú±íÒ»¸öʵÌ壻×îºóÒ»¸öÁ´½Ó³ýÍ⣬¸ÃÁ´½ÓÏÔʾΪÆÕͨÎÄ×Ö£¬±íʾµ±Ç°ÊµÌ塣ҪʹÓÃÆðԴ·¾¶½øÐÐä¯ÀÀ£¬Çëµ¥»÷Á´½Ó¡£´Ë²Ù×÷½«£º<ul><li>¸üР[ä¯ÀÀ] ´°¸ñ£¬ÒÔʹÆðԴ·¾¶Ö¸Ïò±»µ¥»÷µÄʵÌ壬²¢ÇÒʹä¯ÀÀ±í¸ñº¬ÓиÃʵÌåµÄ×ÓʵÌå¡£</li>
+ <li>ʹÓÃÓë¸ÃʵÌåÏà¹ØÁªµÄÅäÖòßÂÔÊý¾Ý¸üР[ÄÚÈÝ] ´°¸ñ¡£</li>
+</ul>[ä¯ÀÀ] ´°¸ñºÍ [ÄÚÈÝ] ´°¸ñÔÚÕû¸öÓ¦ÓóÌÐòµÄ²Ù×÷Öж¼ÊÇͬ²½µÄ£¬ÒÔÌṩÏàͬµÄÊý¾ÝÊÓͼ¡£</p><a name="navtable"></a><div class="help-header-3">ä¯ÀÀ±í¸ñ</div>
+<p>ä¯ÀÀ±í¸ñλÓÚÆðԴ·¾¶µÄÏ·½£¬ÆäÖÐÁгöÁ˵±Ç°ÊµÌåµÄ×ÓʵÌå¡£&ldquo;Ãû³Æ&rdquo;Áк¬Óе±Ç°ÊµÌåµÄËùÓÐ×ÓʵÌåµÄÃû³Æ¡£&ldquo;ÀàÐÍ&rdquo;ÁÐÏÔʾʵÌåµÄÀàÐÍ¡£&ldquo;²Ù×÷&rdquo;Áк¬ÓÐÿÐеÄ&ldquo;<b>²é¿´</B>&rdquo;Á´½Ó¡£</p>
+<p>Òª¶¨Î»µ½Ä³¸öʵÌ壬Çëµ¥»÷ÁгöµÄÏàÓ¦Ãû³Æ£¬´Ë²Ù×÷½«£º<ul><li>ʹѡ¶¨×ÓʵÌå³ÉΪµ±Ç°ÊµÌå¡£</li>
+ <li>¸üР[ä¯ÀÀ] ´°¸ñ£¬ÒÔʹÆðԴ·¾¶Ö¸Ïòеĵ±Ç°ÊµÌ壬²¢ÇÒʹä¯ÀÀ±í¸ñº¬ÓиÃʵÌåµÄ×ÓʵÌå¡£</li>
+ <li>ʹÓÃÓë¸ÃʵÌåÏà¹ØÁªµÄÅäÖòßÂÔ¸üР[ÄÚÈÝ] ´°¸ñ¡£</li>
+</ul></p>ʵÌåµÄÀàÐÍ¿ÉÒÔÊÇ&ldquo;×éÖ¯&rdquo;¡¢&ldquo;Óû§&rdquo;»ò&ldquo;½ÇÉ«&rdquo;¡£</p>
+<p>Òª²é¿´ÁгöµÄʵÌåµÄϸ½Ú£¬Çëµ¥»÷&ldquo;<b>²é¿´</B>&rdquo;Á´½Ó¡£´Ë²Ù×÷½«£º<ul><li>Ñ¡¶¨Ðеı³¾°ÑÕÉ«¸ÄΪÀ¶É«¡£</li>
+ <li>ʹÓÃÓëÑ¡¶¨ÊµÌåÏà¹ØÁªµÄÊý¾Ý¸üР[ÄÚÈÝ] ´°¸ñ¡£</li>
+</ul>À¶É«±³¾°µÄÐбê¼ÇµÄÊÇÆäÊý¾Ýµ±Ç°ÏÔʾÔÚ [ÄÚÈÝ] ´°¸ñÖеÄʵÌå¡£</p>
+<p>ä¯ÀÀ±í¸ñµÄ²Ù×÷À¸Öк¬ÓÐ&ldquo;<b>¹ýÂËÆ÷</B>&rdquo;ÏÂÀ­Ê½²Ëµ¥ºÍ&ldquo;<b>¸ß¼¶¹ýÂËÆ÷</b>&rdquo;ͼ±ê¡£µ±±í¸ñ°üº¬µÄÏ¹ýÊ®¸öʱ£¬½«ÏÔʾ&ldquo;<b>·ÖÒ³/¹ö¶¯ÏÔʾËùÓÐÊý¾Ý</b>&rdquo;ͼ±ê£¬¸Ãͼ±êÓÃÓÚ¸ü¸Ä±í¸ñÏîµÄÊÓͼ¡£</p>
+<p>&ldquo;<b>¹ýÂËÆ÷</b>&rdquo;ÏÂÀ­Ê½²Ëµ¥ÓÃÓÚÑ¡ÔñÒªÏÔʾÔÚä¯ÀÀ±í¸ñÖеÄʵÌåÀàÐÍ¡£Ëüº¬ÓÐÒÔÏÂÏ<ul><li>&ldquo;ËùÓÐÏî&rdquo;½«ÔÚä¯ÀÀ±í¸ñÖÐÏÔʾËùÓÐÀàÐ͵ÄʵÌå¡£</li>
+ <li>&ldquo;×éÖ¯&rdquo;½öÔÚä¯ÀÀ±í¸ñÖÐÏÔʾÀàÐÍΪ&ldquo;×éÖ¯&rdquo;µÄʵÌå¡£</li>
+ <li>&ldquo;Óû§&rdquo;½öÔÚä¯ÀÀ±í¸ñÖÐÏÔʾÀàÐÍΪ&ldquo;Óû§&rdquo;µÄʵÌå¡£</li>
+ <li>&ldquo;½ÇÉ«&rdquo;½öÔÚä¯ÀÀ±í¸ñÖÐÏÔʾÀàÐÍΪ&ldquo;½ÇÉ«&rdquo;µÄʵÌå¡£</li>
+</ul></p><a name="adfilter"></a><div class="help-header-3">¸ß¼¶¹ýÂË</div>
+<p>µ¥»÷ä¯ÀÀ±í¸ñÖеÄ&ldquo;<b>¸ß¼¶¹ýÂËÆ÷</B>&rdquo;ͼ±êÒÔ´ò¿ª [¸ß¼¶¹ýÂËÆ÷] ¶Ô»°¿ò¡£</P>
+<p>ÔÚ&ldquo;<b>ÀàÐÍ</b>&rdquo;ÇøÓòÖУ¬±ê¼ÇÒª¹ýÂ˵ÄʵÌåÀàÐÍ¡£Òª½øÐиü¾ßÌåµÄ¹ýÂË£¬ÇëÔÚ&ldquo;<b>Ãû³Æ</b>&rdquo;ÎÄ×Ö×Ö¶ÎÖÐÊäÈëÒª¹ýÂ˵ÄÃû³Æ¡£È»ºóµ¥»÷¶Ô»°¿òµ×²¿µÄ&ldquo;<b>¹ýÂË</B>&rdquo;°´Å¥ÒÔÖ´ÐйýÂË¡£</p><a name="search"></a><div class="help-header-3">ËÑË÷</div>
+<p>Òª´ò¿ª&ldquo;ËÑÑ°&rdquo;´°¿Ú£¬Çëµ¥»÷ä¯ÀÀ±í¸ñÉÏ·½µÄ&ldquo;<b>ËÑÑ°</b>&rdquo;°´Å¥¡£&ldquo;ËÑÑ°&rdquo;´°¿ÚÖк¬Óб¨Í·¡¢×ó²àµÄ²ÎÊýÇøÓòÒÔ¼°ÓÒ²àµÄ½á¹ûÇøÓò¡£&ldquo;ËÑÑ°&rdquo;´°¿Ú¿ÉÓÃÓÚÔÚ×éÖ¯Ê÷ÖеݹéËÑË÷Ìض¨ÊµÌåÀàÐͺÍʵÌåÃû³Æ¡£Èç¹ûÔÚÖ÷´°¿ÚµÄ [ä¯ÀÀ] ´°¸ñÖе¥»÷&ldquo;<b>ËÑÑ°</b>&rdquo;°´Å¥Ê±£¬&ldquo;ËÑÑ°&rdquo;´°¿ÚÒÑ°µÖдò¿ª£¬Ôò&ldquo;ËÑÑ°&rdquo;´°¿Ú½«³ÉΪ×îÇ°¶ËµÄ´°¿Ú¡£&ldquo;ËÑÑ°&rdquo;´°¿ÚµÄµ±Ç°ÊµÌ壨&ldquo;ËÑÑ°&rdquo;´°¿ÚµÄ²ÎÊýÇøÓòÖеÄÆðԴ·¾¶ÏÔʾµÄʵÌ壩½«¸üС£ÆäËûËùÓвÎÊýºÍ½á¹ûÇøÓòµÄÄÚÈݲ»±ä¡£</p>
+<p>²ÎÊýÇøÓòµÄ¶¥¶ËÏÔʾÓÐÆðԴ·¾¶£¬ÆðԴ·¾¶ÏÔʾµ±Ç°ÊµÌåµÄ·¾¶¡£²ÎÊýÇøÓòµÄʹÓÃÔÚ<a class="help-link" href="#parpath">ÆðԴ·¾¶</a>Ò»½Ú½øÐнéÉÜ¡£</p>
+<p>ÒªËÑË÷Ìض¨ÊµÌåÀàÐÍ£¬ÇëÔÚÆðԴ·¾¶Ï·½µÄÏÂÀ­Ê½ÁбíÖÐÑ¡Ôñ¸ÃÀàÐÍ¡£Áù¸öÑ¡Ïî·Ö±ðÊÇ&ldquo;È«²¿ËÑÑ°&rdquo;¡¢&ldquo;ËÑÑ°×éÖ¯&rdquo;¡¢&ldquo;ËÑÑ°Óû§&rdquo;¡¢&ldquo;ËÑÑ°½ÇÉ«&rdquo;¡¢&ldquo;ËÑÑ°Óò&rdquo;ºÍ&ldquo;ËÑÑ°Ö÷»ú&rdquo;¡£</p>
+<p>Òª½øÒ»²½ËõСËÑË÷·¶Î§£¬ÇëʹÓÃÏÂÀ­Ê½ÁбíÅԱߵÄÎı¾¿ò¡£Ëü¿ÉÒÔʹÄúËÑË÷µ½Óë´Ë×Ö¶ÎÖÐÊäÈëµÄËÑË÷×Ö·û´®Æ¥ÅäµÄʵÌåÃû³Æ¡£Í¨¹ýÑ¡Ôñij¸ö<b>Æðʼµã</b>µ¥Ñ¡°´Å¥£¬¿ÉÒÔÖ¸¶¨´ÓÊ÷ÖеÄÄĸöµã¿ªÊ¼ËÑË÷¡£¿ÉÒÔÑ¡Ôñ´Óµ±Ç°Î»ÖÿªÊ¼ËÑË÷»ò´ÓÊ÷µÄ¶¥¶Ë¿ªÊ¼ËÑË÷¡£Ä¬ÈÏÖµÊÇ´Óµ±Ç°Î»ÖÿªÊ¼ËÑË÷¡£Î»ÖÃÓÉËüÃǵÄÃû³Æ±íʾ¡£µ¥»÷ÆðԴ·¾¶ÖеÄÈκη¾¶µã¶¼»á½«ËÑË÷µÄµ±Ç°Î»Öøĵ½Ñ¡¶¨ÊµÌ壬µ«²»»á¸ü¸Ä&ldquo;ä¯ÀÀ´°¸ñ&rdquo;µÄÊÓͼ·¶Î§¡£</p>
+<p>´Ó&ldquo;ÿ¸öÒ³ÃæÉÏÏÔʾµÄ½á¹ûÊý&rdquo;ÏÂÀ­Ê½ÁбíÖÐÑ¡ÔñÒªÏÔʾµÄ½á¹ûÊý¡£</p>
+<p>ËÑË÷´°¸ñÖеÄËùÓÐËÑË÷×ֶζ¼»á½«ËÑË÷×Ö·û´®ÖÐÈÎÒâλÖõÄÐǺÅ&ldquo;*&rdquo;ʶ±ðΪͨÅä·û¡£ÐǺűíʾÈÎÒâ¸öÈÎÒâ×Ö·û¡£Èç¹ûÖ¸¶¨Á˶à¸öËÑË÷Ìõ¼þ£¬ÔòÒªÐÂÔöµ½½á¹û±í¸ñÖеÄʵÌå±ØÐëÂú×ãËùÓÐËÑË÷Ìõ¼þ¡£ËÑË÷²»Çø·Ö´óСд¡£</p>
+<p>ÒªÖ´ÐÐËÑË÷£¬Çëµ¥»÷&ldquo;<b>ËÑÑ°</b>&rdquo;°´Å¥¡£¸Ã²Ù×÷½«Ê¹Óú¬ÓÐËÑË÷½á¹ûµÄ±í¸ñ¸üнá¹ûÇøÓò¡£</p>
+<p>ÒªÖØÉèÒ³ÃæÖµ£¬Çëµ¥»÷&ldquo;<b>ÖØÉè</b>&rdquo;°´Å¥¡£¸Ã²Ù×÷½«Ê¹ÓÃĬÈÏÖµ¸üвÎÊýÇøÓò¡£ËùÓÐÎı¾¿ò½«±»Çå¿Õ£¬ËùÓÐÏÂÀ­Ê½ÁбíºÍµ¥Ñ¡°´Å¥×éÖеĵÚÒ»¸öÖµ½«±»Ñ¡ÖС£</p>
+<p>µ±½¨Á¢&ldquo;ËÑÑ°&rdquo;´°¿Úʱ£¬½á¹ûÇøÓòº¬ÓÐÒ»¸ö¿Õ°×Ò³Ãæ¡£Ö´ÐÐËÑË÷ºó£¬½«ÏÔʾ½á¹û±í¸ñ¡£½á¹û±í¸ñº¬ÓÐÈýÁУº&ldquo;Ãû³Æ&rdquo;¡¢&ldquo;ÀàÐÍ&rdquo;ºÍ&ldquo;·¾¶&rdquo;¡£</p>
+<p>Òª²é¿´½á¹û£¬Çëµ¥»÷&ldquo;Ãû³Æ&rdquo;ÁÐÖÐÏàÓ¦µÄÃû³Æ¡£´Ë²Ù×÷½«£º<ul><li>ʹÖ÷´°¿Ú³ÉΪǰ¶Ë´°¿Ú¡£</li>
+ <li>¸üÐÂÖ÷´°¿ÚµÄ [ä¯ÀÀ] ´°¸ñ£¬ÒÔʹÓÉ&ldquo;Ãû³Æ&rdquo;Á´½ÓËù±íʾµÄʵÌå³ÉΪä¯ÀÀ±í¸ñÖоßÓÐÀ¶É«±³¾°µÄÏî¡£</li>
+ <li>ʹÓÃÓë¸ÃʵÌåÏà¹ØÁªµÄÅäÖòßÂÔ¸üÐÂÖ÷´°¿ÚµÄÄÚÈÝÇøÓò¡£</li>
+ </UL>
+</p>
+<p>&ldquo;ÀàÐÍ&rdquo;ÁÐÏÔʾʵÌåµÄÀàÐÍ¡£ÊµÌåµÄÀàÐÍ¿ÉÒÔÊÇ&ldquo;×éÖ¯&rdquo;¡¢&ldquo;Óû§&rdquo;»ò&ldquo;½ÇÉ«&rdquo;¡£</p>
+<p>&ldquo;·¾¶&rdquo;Áк¬Óе½ÊµÌåµÄ·¾¶¡£¸Ã·¾¶ÊÇÏà¶ÔÓÚËÑË÷ÆðʼµãµÄ·¾¶¡£</p>
+<p>Èç¹ûËÑË÷ÀàÐÍÊÇ&ldquo;Óû§&rdquo;£¬²ÎÊýÇøÓò»áÏÔʾ²»Í¬µÄÎı¾¿òÀ´ÈÝÄÉÓû§µÄÌØÕ÷£º&ldquo;Óû§ ID&rdquo;¡¢&ldquo;Ãû×Ö&rdquo;ºÍ&ldquo;ÐÕÊÏ&rdquo;¡£ÔÚ½á¹ûÇøÓòÖУ¬&ldquo;Ãû³Æ&rdquo;ÁеÄÓҲཫÏÔʾ¸½¼ÓµÄ&ldquo;Óû§ ID&rdquo;ÁУ¬ÆäÖк¬ÓÐÓû§ ID¡£Èç¹û²ÎÊýÇøÓòÖеÄ&ldquo;Óû§ ID&rdquo;Îı¾¿òº¬ÓÐÒ»¸ö»ò¶à¸ö×Ö·û£¬ÔòÖ÷ÅÅÐòÁÐΪ&ldquo;Óû§ ID&rdquo;ÁС£·ñÔò£¬Ö÷ÅÅÐòÁÐΪ&ldquo;Ãû³Æ&rdquo;ÁС£</p><a name="hoststab"> </a><div class="help-header-2">&ldquo;Ö÷»ú&rdquo;Ñ¡Ï</div>
+<p>&ldquo;<b>Ö÷»ú</B>&rdquo;Ñ¡Ïº¬ÓÐÁ½¸ö×ÓÑ¡Ï£¬·Ö±ðΪ&ldquo;<b>ÓòÊ÷</B>&rdquo;ºÍ&ldquo;<b>²ßÂÔϵͳÐÅÏ¢¿â</B>&rdquo;¡£</p><a name="domtree"></a><div class="help-header-3">&ldquo;ÓòÊ÷&rdquo;Ñ¡Ï</div>
+<p>&ldquo;ÓòÊ÷&rdquo;ÏÔʾÓû§Ê¹ÓõÄÓ²¼þµÄÅäÖÃÉèÖá£</P>
+<p>ä¯ÀÀ&ldquo;ÓòÊ÷&rdquo;Óëä¯ÀÀ&ldquo;×éÖ¯Ê÷&rdquo;µÄ·½Ê½Ïàͬ¡£Èç¹ûÐèÒª¸ü¶àÐÅÏ¢£¬Çë²ÎÔÄ<a href="#entities">&ldquo;Óû§&rdquo;Ñ¡Ï</A>Ò»½Ú¡£<a name="actionbar"></a><div class="help-header-3">²Ù×÷À¸</div>
+<p>ä¯ÀÀ±í¸ñÖеÄ&ldquo;<b>¹ýÂËÆ÷</B>&rdquo;ÏÂÀ­Ê½²Ëµ¥º¬ÓÐËÄÏ<ul><li>&ldquo;ËùÓÐÏî&rdquo;- ÏÔʾËùÓÐÀàÐ͵ÄʵÌå</li>
+ <li>&ldquo;Óò&rdquo;- ÏÔʾÀàÐÍΪ&ldquo;Óò&rdquo;µÄʵÌå</li>
+ <li>&ldquo;Ö÷»ú&rdquo;- ÏÔʾÀàÐÍΪ&ldquo;Ö÷»ú&rdquo;µÄʵÌå</li>
+</ul>
+</p><a name="adfilterhosts"></a><div class="help-header-3">¸ß¼¶¹ýÂË</div>
+<p>&ldquo;ÓòÊ÷&rdquo;µÄ&ldquo;¸ß¼¶¹ýÂËÆ÷&rdquo;Óë&ldquo;×éÖ¯Ê÷&rdquo;µÄ&ldquo;¸ß¼¶¹ýÂËÆ÷&rdquo;µÄ¹¤×÷·½Ê½Ïàͬ£¨Çë²ÎÔÄÇ°ÃæµÄ<a href="#adfilter">¸ß¼¶¹ýÂË</a>Ò»½Ú£©¡£&ldquo;ÓòÊ÷&rdquo;µÄ&ldquo;¸ß¼¶¹ýÂËÆ÷&rdquo;ÌṩÁË&ldquo;Óò&rdquo;ºÍ&ldquo;Ö÷»ú&rdquo;ʵÌåÀàÐÍÓÃÓÚ´ÓÖнøÐйýÂË¡£</p><a name="searchhosts"></a><div class="help-header-3">ËÑË÷</div>
+<p>µ±µ¥»÷&ldquo;<b>ÓòÊ÷</b>&rdquo;Ñ¡ÏÖеÄ&ldquo;<b>ËÑÑ°</b>&rdquo;°´Å¥Ê±£¬½«ÏÔʾ&ldquo;ÓòËÑÑ°&rdquo;¡£&ldquo;ÓòËÑÑ°&rdquo;µÄ¹¤×÷·½Ê½ÓëÔÚ&ldquo;×éÖ¯Ê÷&rdquo;ÖнøÐÐËÑË÷µÄ·½Ê½Ïàͬ£¨Çë²ÎÔÄ<a href="#">ÉÏÎÄ</a>£©£¬µ«&ldquo;Æðʼµã&rdquo;×Ö¶ÎÉèÖÃΪ&ldquo;Ó²¼þ&rdquo;¡£</p>
+
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">·µ»ØÒ³Ê×</a></div><a name="psptab"> </a><div class="help-header-2">²ßÂÔϵͳÐÅÏ¢¿â</div>
+<p>&ldquo;<b>Óû§</B>&rdquo;Ñ¡ÏºÍ&ldquo;<b>Ö÷»ú</B>&rdquo;Ñ¡ÏÖоù°üº¬&ldquo;<b>²ßÂÔϵͳÐÅÏ¢¿â</b>&rdquo;Ñ¡Ï¡£</P>
+<p>²ßÂÔϵͳÐÅÏ¢¿âÊÇÓû§²ßÂÔ×é»òÖ÷»ú²ßÂÔ×éµÄÈÝÆ÷¡£²ßÂÔ×é±»×éÖ¯³ÉÒ»¸ö¾­¹ýÅÅÐòµÄÁÐ±í¡£Ë³ÐòÓÉÓÅÏȼ¶¶¨Òå¡£</p><a name="psptable"></a><div class="help-header-3">²ßÂÔ×é±í¸ñ</div>
+<P>²ßÂÔ×é±í¸ñλÓÚÒ³Ã涥¶Ë£¬ÆäÖÐÁгöÁ˸÷¸ö²ßÂÔ×é¡£¸Ã±í¸ñº¬ÓÐÈýÁУºÑ¡ÔñÁС¢&ldquo;Ãû³Æ&rdquo;ÁкÍ&ldquo;ÓÅÏȼ¶&rdquo;ÁС£</P>
+<P>Ñ¡ÔñÁÐÓÃÓÚ±ê¼ÇÒª²ÉÓÃ&ldquo;<b>²ßÂÔ×é²Ù×÷</b>&rdquo;ÏÂÀ­Ê½²Ëµ¥ÖÐÁгöµÄ²Ù×÷µÄÐС£</P>
+<P>Òª¶¨Î»µ½Ä³¸ö²ßÂÔ×飬Çëµ¥»÷ÆäÃû³Æ¡£´Ë²Ù×÷½«£º</P>
+<UL>
+ <li>±»µ¥»÷µÄÐеı³¾°ÑÕÉ«¸ÄΪÀ¶É«¡£</li>
+ <li>ʹÓÃÓëÑ¡¶¨²ßÂÔÏà¹ØÁªµÄÊý¾Ý¸üР[ÄÚÈÝ] ´°¸ñ¡£</li>
+</ul>
+<p>&ldquo;ÓÅÏȼ¶&rdquo;Áк¬ÓвßÂÔ×éµÄÓÅÏȼ¶¡£µ±¹ÜÀíÔ±½«¶à¸ö²ßÂÔ×éÓëʵÌåÏà¹ØÁªÊ±£¬½«¸ù¾Ý´ËÓÅÏȼ¶¶¨Òå²ßÂÔ×éµÄºÏ²¢Ë³Ðò¡£</p>
+<P>À¶É«±³¾°µÄÐбê¼ÇµÄÊÇÆäÊý¾Ýµ±Ç°ÏÔʾÔÚ [ÄÚÈÝ] ´°¸ñÖеIJßÂÔ×飬¼´±»²é¿´µÄ²ßÂÔ×é¡£</P><a name="pspactions"></a><div class="help-header-3">²ßÂÔ×é²Ù×÷À¸</div>
+<P>&ldquo;<b>²ßÂÔ×é²Ù×÷</B>&rdquo;ÏÂÀ­Ê½²Ëµ¥º¬ÓÐÒÔϲÙ×÷£¬´ÓÉϵ½ÏÂÒÀ´ÎÏÔʾΪ£º</P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <THEAD>
+ <TR VALIGN=TOP>
+ <TH WIDTH="11%">
+ <P>Ãû³Æ</P>
+ </TH>
+ <TH WIDTH="89%">
+ <P>²Ù×÷</P>
+ </TH>
+ </TR>
+ </THEAD>
+ <TBODY>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+ <P>ÐÂÔö</P>
+ </TD>
+ <TD WIDTH="89%">
+ <P>½«´ò¿ª¶Ô»°¿ò´°¿Ú£¬Óû§ÔÚ´Ë´¦ÊäÈë²ßÂÔ×éµÄΨһÃû³Æ¡£µ¥»÷&ldquo;È·¶¨&rdquo;ºó£¬½«Ìí¼Ó¸Ã²ßÂÔ×飬²¢¸üР[ä¯ÀÀ] ´°¸ñÒÔ·´Ó³´Ë¸ü¸Ä¡£</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="11%">
+ <P>ɾ³ý</P>
+ </td>
+ <TD WIDTH="89%">
+ <P>½«´ò¿ªµ¯³öʽ´°¿Ú£¬ÆäÖÐÏÔʾÓÃÓÚÈ·ÈϲßÂÔ×éɾ³ý²Ù×÷µÄ¾¯¸æÏûÏ¢¡£Èç¹ûÓû§µ¥»÷&ldquo;È·¶¨&rdquo;£¬½«É¾³ý²ßÂÔ×飬²¢¸üР[ä¯ÀÀ] ´°¸ñÒÔ·´Ó³´Ë¸ü¸Ä¡£</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>ÖØÃüÃû</p>
+ </td>
+ <td width="89%">
+ <p>½«´ò¿ª¶Ô»°¿ò´°¿Ú£¬Óû§ÊäÈë²ßÂÔ×éеÄΨһµÄÃû³Æ£¬½«ÖØÃüÃû¸Ã²ßÂÔ×é²¢¸üР[ä¯ÀÀ] ´°¸ñÒÔ·´Ó³´Ë¸ü¸Ä¡£</p>
+ </td>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>±à¼­ÓÅÏȼ¶</p>
+ </td>
+ <td width="89%">
+ <p>½«´ò¿ª¶Ô»°¿ò´°¿Ú£¬ÆäÖк¬ÓÐÓÃÓÚ¸ü¸ÄÓÅÏȼ¶µÄÁбí¿ò¡£</p>
+ </td>
+ </tr>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+ <P>µ¼³ö</P>
+ </TD>
+ <TD WIDTH="89%">
+ <P>½«´ò¿ª¶Ô»°¿ò´°¿Ú¡£Óû§ÊäÈëÑ¡¶¨²ßÂÔ×齫ҪÊä³öµ½µÄÄ¿±ê·¾¶¡£</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>µ¼Èë</p>
+ </td>
+ <td width="89%">
+ <p>½«´ò¿ª¶Ô»°¿ò´°¿Ú¡£Óû§Ñ¡ÔñÒªÊäÈëµÄ²ßÂÔ×é¡£µ¥»÷&ldquo;È·¶¨&rdquo;£¬½«¼ÓÈë¸Ã²ßÂÔ×é²¢¸üР[ä¯ÀÀ] ´°¸ñÒÔ·´Ó³´Ë¸ü¸Ä¡£</p>
+ </td>
+ </tr>
+ </TBODY>
+</TABLE>
+
+<p><a name="psppriorities"></a><div class="help-header-3">²ßÂÔ×éÓÅÏȼ¶</div></p>
+<p>ÓÐÁ˲ßÂÔ×éÓÅÏȼ¶µÄ¸ÅÄ¹ÜÀíÔ±¾Í¿ÉÒÔ¶¨ÒåºÏ²¢·Ö²ãµÄ˳Ðò¡£Èç¹ûΪʵÌåÖ¸¶¨Á˶à¸ö²ßÂÔ×飬Ôںϲ¢¹ý³ÌÖлáʹÓòßÂÔ×éÓÅÏȼ¶¡£ÔÚ´ËÀýÖУ¬ÊµÌåµÄ²ã´Î½á¹¹²»×ãÒÔÈ·¶¨ºÏ²¢²ßÂÔ×éµÄ˳Ðò¡£¶øͨ¹ýΪ²ßÂÔ×éÖ¸¶¨ÓÅÏȼ¶Ôò¿ÉÒÔ½â¾ö´ËÎÊÌâ¡£</p>
+<p>Òª´ò¿ª²ßÂÔ×éÓÅÏȼ¶¶Ô»°¿ò£¬Çë´Ó&ldquo;<b>²ßÂÔ×é²Ù×÷</b>&rdquo;ÏÂÀ­Ê½²Ëµ¥ÖÐÑ¡Ôñ&ldquo;<b>±à¼­ÓÅÏȼ¶</b>&rdquo;¡£ÒªÌá¸ß»ò½µµÍij¸ö²ßÂÔ×éµÄÓÅÏȼ¶£º</p>
+<ol>
+ <li>´ÓÁбíÖÐÑ¡Ôñ²ßÂÔ×é</li>
+ <li>µ¥»÷&ldquo;<b>ÏòÉÏÒƶ¯</b>&rdquo;»ò&ldquo;<b>ÏòÏÂÒƶ¯</b>&rdquo;°´Å¥ÒÔÌá¸ß/½µµÍÓÅÏȼ¶</li>
+</ol>
+
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">·µ»ØÒ³Ê×</a></div><a name="content"> </a><div class="help-header-1">[ÄÚÈÝ] ´°¸ñ</div>
+<p>[ÄÚÈÝ] ´°¸ñÏÔʾÓë [ä¯ÀÀ] Ãæ°åÖÐÑ¡¶¨µÄʵÌå»ò²ßÂÔ×éÏà¹ØÁªµÄÊý¾Ý¡£Êý¾ÝÒÔÑ¡ÏµÄÐÎʽ½øÐзÖ×é¡£[ä¯ÀÀ] Ãæ°åÖеÄÑ¡Ôñ½«¾ö¶¨ [ÄÚÈÝ] Ãæ°åÖÐÏÔʾµÄÑ¡ÏµÄ±àºÅºÍÀàÐÍ¡£&ldquo;<b>²ßÂÔ</b>&rdquo;Ñ¡ÏÊÇĬÈϵĻ״̬µÄÑ¡Ï¡£Èç¹ûÔÚ [ä¯ÀÀ] Ãæ°åÖиü¸ÄÁËÑ¡Ôñ£¬Ôòµ±Ç°Ê¹ÓõÄÑ¡Ï½«¼ÌÐø±£³Ö»î¶¯×´Ì¬£¨Ç°ÌáÊÇËù×÷µÄÑ¡ÔñÌṩ¸ÃÑ¡Ï£©¡£·ñÔò£¬&ldquo;<b>²ßÂÔ</b>&rdquo;Ñ¡Ï½«³ÉΪ»î¶¯×´Ì¬µÄÑ¡Ï¡£µ±Ñ¡ÏÔٴγÉΪ»î¶¯×´Ì¬µÄÑ¡Ïʱ£¬½«»Ö¸´ÆäÄÚ²¿×´Ì¬£¨ÆðԴ·¾¶ºÍÅÅÐò˳Ðò£©¡£</p><a name="policies"> </a><div class="help-header-2">&ldquo;²ßÂÔ&rdquo;Ñ¡Ï</div>
+<p>ʹÓÃ&ldquo;<b>²ßÂÔ</B>&rdquo;Ñ¡Ïä¯ÀÀÏÔʾÓÐ×Ó×é»òÅäÖÃÉèÖ㨻òÁ½ÕßͬʱÏÔʾ£© µÄÅäÖòßÂÔÊ÷¡£</p>
+<p>ÿ¸ö²ßÂÔÒ³Ã涼ÓÐÁ½¸ö°´Å¥£º<ul><li><b>½¨Á¢±¨±í</b>£ºÈç¹ûÐèÒª¸ü¶àÐÅÏ¢£¬Çë²ÎÔÄ<a href="#reporting">±¨±í</a>Ò»½Ú¡£</li>
+ <li><b>Çå³ýÉ趨</b>£º´Ë°´Å¥ÓÃÓڵݹéɾ³ýµ±Ç°Îª±»²é¿´ÊµÌåÏÔʾµÄ×Ó×éϵÄËùÓÐÅäÖÃÊý¾Ý¡£</li>
+</ul>
+</P>
+<p>ÅäÖòßÂÔÊ÷ÖеÄÿ¸ö¸ùÌõÄ¿¾ù±íʾһ¸öÓ¦ÓóÌÐò£¬ÀýÈç&ldquo;StarSuite 7&rdquo;¡£Ó¦ÓóÌÐòϵÄÊ÷ÓÃÓÚ×éÖ¯ÊôÓÚ¸ÃÓ¦ÓóÌÐòµÄÅäÖòßÂÔ¡£ÅäÖòßÂÔ¿ÉÒÔλÓÚÅäÖòßÂÔÊ÷ÖеÄÈκÎλÖá£Èç¹ûÅäÖòßÂÔ²»ÊÇÅäÖòßÂÔÊ÷ÖеÄÊ÷Ò¶£¬ÔòÐèÒªÔÚÅäÖòßÂÔÊ÷ÖеÄÒ»¸öµ±Ç°Î»ÖÃÏÔʾ²ßÂÔ±í¸ñºÍ¸ÃÅäÖòßÂÔ¡£</p><a name="caparpath"> </a><div class="help-header-3">ÆðԴ·¾¶</div>
+<p>ÆðԴ·¾¶ÏÔʾÔÚÑ¡ÏÏÂÒ³ÃæµÄ¶¥²¿¡£ËüÏÔʾÅäÖòßÂÔÊ÷Öеĵ±Ç°Î»Öá£ËüµÄ¹¤×÷·½Ê½Óë [ä¯ÀÀ] Ãæ°åÖеÄÆðԴ·¾¶Ïàͬ£¨Çë²ÎÔÄÇ°ÃæµÄ<a class="help-link" href="#parpath">ÆðԴ·¾¶</a>Ò»½Ú£©¡£</p><a name="subgroupstable"> </a><div class="help-header-3">×Ó×é±í¸ñ</div>
+<P>×Ó×é±í¸ñλÓÚÆðԴ·¾¶µÄÏ·½¡£¸Ã±í¸ñÁгöÅäÖòßÂÔÊ÷Öе±Ç°Î»ÖõÄ×Ó×é¡£Ëü°üº¬Á½ÁУº&ldquo;Ãû³Æ&rdquo;ºÍ&ldquo;×¢½â&rdquo;¡£</P>
+<P>&ldquo;Ãû³Æ&rdquo;Áк¬ÓÐÅäÖòßÂÔÊ÷Öе±Ç°Î»ÖõÄËùÓÐ×Ó×éµÄÃû³Æ¡£Ãû³ÆÒÔÁ´½ÓÐÎʽÏÔʾ¡£Òªä¯ÀÀÅäÖòßÂÔÊ÷£¬Çëµ¥»÷Ãû³ÆÁ´½Ó¡£´Ë²Ù×÷½«£º</P>
+<UL>
+ <li>¸üР[ÄÚÈÝ] Ãæ°å£¬ÒÔʹÆðԴ·¾¶Ö¸ÏòÅäÖòßÂÔÊ÷ÖеÄÐÂλÖá£</li>
+ <li>¸üР[ÄÚÈÝ] Ãæ°å£¬ÒÔÏÔʾ²ßÂÔ±í¸ñ»ò²ßÂÔ¡£</LI>
+</UL>
+<P>ÕâÖÖä¯ÀÀ±»³ÆΪ&ldquo;Öð²ã&rdquo;ÐÍä¯ÀÀ¡£</P>
+<P>&ldquo;×¢½â&rdquo;Áк¬ÓÐ×Ó×éµÄ¼òҪ˵Ã÷¡£</P><A NAME="capolicies"></A><div class="help-header-3">²ßÂÔ</div>
+<P>Èç¹ûÓÐЧÅäÖòßÂÔÊý¾Ý¶Ôµ±Ç°ÊµÌåºÍµ±Ç°ÅäÖòßÂÔµÄ×éºÏ¿ÉÓã¬Ôò [ÄÚÈÝ] Ãæ°åÖеÄ&ldquo;²ßÂÔ&rdquo;Ñ¡Ï½«ÏÔʾ¸ÃÊý¾Ý¡£</p>
+<p>Êý¾ÝÏÔʾÔÚ±í¸ñÖС£±í¸ñ°üº¬ËÄÁУºº¬ÓÐÑ¡Ôñͼ±êµÄÑ¡ÔñÁС¢&ldquo;״̬&rdquo;ÁС¢&ldquo;Ãû³Æ&rdquo;ÁкÍ&ldquo;Öµ&rdquo;ÁС£±í¸ñÉϵIJÙ×÷À¸ÓÐÒ»¸öÏÂÀ­Ê½²Ù×÷²Ëµ¥¡£</p>
+<p>ҪѡÔñÔªËØ£¬ÇëÑ¡ÖÐËüÇ°ÃæµÄ¸´Ñ¡¿ò¡£ÏÖÔÚ¼´¿É¶ÔÑ¡¶¨ÔªËØÖ´ÐвÙ×÷À¸ÖÐÏÂÀ­Ê½²Ù×÷²Ëµ¥ÖеIJÙ×÷¡£Ï±í˵Ã÷ÁËËùÓвÙ×÷£º</p>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P><B>²Ù×÷</B></P>
+ </TD>
+ <TD WIDTH="83%">
+ <P><B>˵Ã÷</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>±£»¤</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>½«Ñ¡¶¨µÄÔªËØÉèÖÃΪÊܱ£»¤¡£</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>δÊܱ£»¤</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>ɾ³ý¶ÔÑ¡¶¨ÔªËصı£»¤¡£</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>²ÉÓÃĬÈÏÖµ</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>ʹÓòßÂÔÎĵµÑùʽÖеÄÓ²±àÂëĬÈÏÊý¾Ý¡£</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>Çå³ý</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>ɾ³ý´æ´¢ÔÚÔªËØÖеÄÊý¾Ý¡£</P>
+ </TD>
+ </TR>
+
+</TABLE>
+<p>ÔªËØÃû³ÆµÄ×ó²àÓÐÁ½¸öͼ±ê£¬ÓÃÓÚÏÔʾ¸ÃÔªËصÄ״̬¡£Ï±í¸ÅÀ¨ÁËÕâЩͼ±ê¼°Æ书ÄÜ£º</P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><B>ͼ±ê</B></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P><B>º¬Òå</B></P>
+ </TD>
+ <TD WIDTH="32%">
+ <P><B>˵Ã÷</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_set_here.png" NAME="DefinedHere" ALT="Defined Here" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>´Ëͼ±ê˵Ã÷ÔÚ×éÖ¯Ê÷µÄ´Ë²ãÉèÖÃÁËÔªËصÄÖµ¡£</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_set_above.png" NAME="DefinedLayered" ALT="Defined Layered" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>´ËÁ´½ÓÐÎʽµÄͼ±ê˵Ã÷ÔÚ×éÖ¯£¨»òÓò£©Ê÷µÄ¸ü¸ß²ãÉèÖÃÁËÔªËصÄÖµ¡£Óû§¿´µ½µÄÖµÊÇ×éÖ¯ÖзֲãºÏ²¢»òʵÌå²ãºÏ²¢µÄ½á¹û¡£</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>µ±µ¥»÷¸Ãͼ±êʱ£¬½«¶¨Î»µ½ÉèÖÃÖµµÄλÖá£</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_protected_here.png" NAME="ProtectedHere" ALT="Protected Here" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>´Ëͼ±ê˵Ã÷ÔÚ×éÖ¯£¨»òÓò£©Ê÷µÄ´Ë²ãÉèÖÃÁËÔªËصı£»¤¡£±£»¤ÔÚ×éÖ¯ºÍÅäÖòßÂÔÊ÷Öлᱻ¼Ì³Ð¡£</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_protected_above.png" NAME="ProtectedLayered" ALT="Protected Layered" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>´ËÁ´½ÓÐÎʽµÄͼ±ê˵Ã÷ÔÚ×éÖ¯£¨»òÓò£©Ê÷µÄ¸ü¸ß²ãÉèÖÃÁËÔªËصı£»¤¡£´ËÔªËØ»òÏîµÄ±£»¤ÊÇ×éÖ¯ÖзֲãºÏ²¢»òʵÌå²ãºÏ²¢µÄ½á¹û¡£</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>µ¥»÷´Ëͼ±ê»á½«Óû§¶¨Î»µ½ÉèÖñ£»¤µÄλÖá£</P>
+ </TD>
+ </TR>
+</TABLE>
+<p>ͨ¹ý¸ü¸Ä&ldquo;Öµ&rdquo;ÁÐÖеÄÖµ¿ÉÒÔ¸ü¸ÄÊý¾ÝÖµ¡£ÖµºÍ״̬µÄ¸ü¸Ä¶¼±ØÐë½øÐдæÅÌ¡£´æÅ̲Ù×÷ͨ¹ýµ¥»÷&ldquo;<b>´æÅÌ</b>&rdquo;°´Å¥À´Íê³É¡£</p><a name="casets"> </a><div class="help-header-3">¼¯ºÏ</div>
+<p>¼¯ºÏÊÇÊôÐԵĶ¯Ì¬¼¯¡£¿ÉÒÔÔÚ¼¯ºÏÖÐÐÂÔöºÍɾ³ýÔªËØ¡£</p>
+<p>ÒªÏò¼¯ºÏÌí¼ÓÔªËØ£º<ol><li>µ¥»÷&ldquo;<b>н¨</b>&rdquo;°´Å¥¡£</li>
+ <li>½«´ò¿ªÒ»¸ö¶Ô»°¿ò£¬¹©ÄúÔÚÆäÖÐÊäÈëÐÂÔªËصÄÃû³Æ¡£½«ÔÚ¼¯ºÏÖÐÌí¼Ó¸ÃÔªËØ£¬²¢¸üÐÂÖ÷´°¿Ú¡£</li>
+ <li>ÔÚÖ÷´°¿ÚÖпÉÒԱ༭¸ÃÐÂÔªËØ¡£</li>
+</ol>
+<p>Òª´Ó¼¯ºÏÖÐɾ³ýÔªËØ£¬ÇëÑ¡Ôñ¸ÃÔªËØ£¬È»ºóµ¥»÷&ldquo;<b>ɾ³ý</B>&rdquo;°´Å¥¡£</p>
+<p>Çë×¢Ò⣬¼¯ºÏÖпÉÒÔº¬Óм¯ºÏ£¬ºóÕßÒÔÁ´½ÓÐÎʽ±íʾ¡£µ¥»÷Á´½Ó½«¶¨Î»µ½¸Ã¼¯ºÏ£¬È»ºó¿ÉÒÔÔÚ¶¨Î»µ½µÄλÖöÔÆä½øÐб༭¡£</p><a name="policysets"> </a><div class="help-header-2">&ldquo;²ßÂÔ×é&rdquo;Ñ¡Ï</div>
+<p>&ldquo;²ßÂÔ×é&rdquo;Ò³ÃæʹÄú¿ÉÒÔΪѡ¶¨ÊµÌåÐÂÔö»òɾ³ý²ßÂÔ×é¡£</p>
+<p>ÐÂÔö×ó²à&ldquo;<b>¿ÉÓÃ</b>&rdquo;ÁбíÖÐÁгöµÄ²ßÂÔ×飺</p>
+<ol>
+ <li>´ÓÁбíÖÐÑ¡Ôñ²ßÂÔ×é</li>
+ <li>µ¥»÷&ldquo;<b>Ìí¼Ó</b>°´Å¥&rdquo;½«Ñ¡¶¨²ßÂÔ×éÐÂÔöµ½ÓÒ²àµÄ&ldquo;<b>Ñ¡ÖÐ</B>&rdquo;ÁбíÖС£</li>
+ <li>µ¥»÷&ldquo;<b>´æÅÌ</b>&rdquo;´æ´¢¸ÃÐÂÖ¸¶¨¡£</LI>
+</ol><a name="caentities"> </a><div class="help-header-2">&ldquo;ÊÜÍÐÕß&rdquo;Ñ¡Ï</div>
+<p>Èç¹ûÔÚ [ä¯ÀÀ] Ãæ°åµÄ&ldquo;²ßÂÔϵͳÐÅÏ¢¿â&rdquo;ÖÐÑ¡ÔñÁ˲ßÂÔ×飬[ÄÚÈÝ] Ãæ°å½«º¬ÓÐ&ldquo;<b>ÊÜÍÐÕß</b>&rdquo;Ñ¡ÏҳÃæ¡£&ldquo;ÊÜÍÐÕß&rdquo;Ò³ÃæÁгöÁËÑ¡¶¨²ßÂÔ×é±»Ö¸¶¨µ½µÄËùÓÐʵÌå¡£</p>
+<p>&ldquo;ÊÜÍÐÕß&rdquo;Ñ¡ÏҳÃæÖпÉÖ´ÐеIJÙ×÷ÓУº<ul><li>&ldquo;<b>ɾ³ý</B>&rdquo;½«ÖжÏÑ¡¶¨ÊµÌåÓë [ä¯ÀÀ] Ãæ°åÖÐÑ¡¶¨µÄ²ßÂÔ×éÖ®¼äµÄ¹ØÁª¡£</li>
+ <li>µ¥»÷&ldquo;Ãû³Æ&rdquo;ÁÐÖеÄʵÌ彫ˢР[ä¯ÀÀ] Ãæ°å£¬´Ó¶øʹ±»µ¥»÷µÄʵÌå³ÉΪ [ä¯ÀÀ] Ãæ°åÖоßÓÐÀ¶É«±³¾°µÄʵÌå¡£</li>
+</ul>
+</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">·µ»ØÒ³Ê×</a></div><a name="roles"> </a><div class="help-header-2">&ldquo;½ÇÉ«&rdquo;Ñ¡Ï</div>
+<p>Èç¹ûÔÚ [ä¯ÀÀ] Ãæ°åÖÐÑ¡ÔñÁË&ldquo;Óû§&rdquo;ÀàÐ͵ÄʵÌ壬²¢ÇÒ¸ÃÓû§ÖÁÉÙÊÇÒ»¸ö½ÇÉ«µÄ³ÉÔ±£¬Ôò [ÄÚÈÝ] Ãæ°å½«º¬ÓÐ&ldquo;<b>½ÇÉ«</B>&rdquo;Ñ¡ÏҳÃæ¡£&ldquo;<b>½ÇÉ«</B>&rdquo;Ò³ÃæÁгöÁËÑ¡¶¨Óû§ËùÊôµÄËùÓнÇÉ«¡£</p>
+<p>´ËÒ³Ã溬ÓÐ&ldquo;Ãû³Æ&rdquo;ºÍ&ldquo;·¾¶&rdquo;Á½ÁС£&ldquo;Ãû³Æ&rdquo;º¬ÓнÇÉ«µÄÃû³Æ£»&ldquo;·¾¶&rdquo;º¬ÓнÇÉ«µÄ¾ø¶Ô·¾¶¡£</p><a name="users"> </a><div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">·µ»ØÒ³Ê×</a></div><a name="reporting"> </a><div class="help-header-1">±¨±í</div>
+<p>±¨±íÊÇËùÓк¬ÓÐÊý¾ÝµÄÅäÖÃÉèÖõÄÖ»¶ÁÊÓͼ¡£Í¨¹ýµ¥»÷&ldquo;<b>½¨Á¢±¨±í</B>&rdquo;°´Å¥´¥·¢±¨±í¡£½«ÏÔʾ [ÅäÖñ¨±í] ¶Ô»°¿ò¡£</p>
+<p>[ÅäÖñ¨±í] ¶Ô»°¿òÓÃÓڱ༭£º<ul><li>ÒªÉæ¼°µÄÊ÷£¨×éÖ¯ºÍ/»òÓòÊ÷£©£¨<b>ÓÃÓÚ±¨±í</B>£©</li>
+ <li>Éú³É±¨±íÖÐÏÔʾµÄÁУ¨¿ÉÒÔ½ûÓÃ&ldquo;<b>״̬·¾¶</b>&rdquo;ºÍ&ldquo;<b>˵Ã÷</B>&rdquo;£©¡£</li>
+</ul>
+<p>½øÐб༭ºó£¬µ¥»÷±¨±í½«´ò¿ªÑ¡¶¨Êý¾ÝµÄÖ»¶ÁÊÓͼ¡£</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0">·µ»ØÒ³Ê×</a></div>
+
+</body>
+</html>
diff --git a/webconsole/html/zh_CN/helpNav.html b/webconsole/html/zh_CN/helpNav.html
new file mode 100644
index 0000000..37fdf59
--- /dev/null
+++ b/webconsole/html/zh_CN/helpNav.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+ <title>APOC Manager - °ïÖúÄÚÈÝ</title>
+ <meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+ <meta http-equiv="Content-Type" content="text/html; charset=GB2312"><!-- Empty script so IE5.0 Windows will draw table and button borders --><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"></script></HEAD>
+ <BODY>
+ <table border="0">
+ <tr>
+ <td><div class="help-header-3"><span class="help-header-3">Ŀ¼</span></div>
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#concepts" target="contentFrame">±³¾°ºÍ¸ÅÄî</a></li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#dataStructures" target="contentFrame">Êý¾Ý½á¹¹</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#SecDataManagement" target="contentFrame">°²È«ºÍÊý¾Ý¹ÜÀí</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#GenConfigSettings" target="contentFrame">ÅäÖÃÉèÖõÄÉú³É</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#BCAssociation" target="contentFrame">¹ØÁª</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#BCPolicyGroups" target="contentFrame">²ßÂÔ×é</A></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#ui" target="contentFrame">°æʽºÍÐÐΪ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#login" target="contentFrame">怬</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#masthead" target="contentFrame">[±¨Í·] ´°¸ñ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#navigation" target="contentFrame">[ä¯ÀÀ] ´°¸ñ</a></li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#entities" target="contentFrame">&ldquo;Óû§&rdquo;Ñ¡Ï</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#parpath" target="contentFrame">ÆðԴ·¾¶</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#navtable" target="contentFrame">ä¯ÀÀ±í¸ñ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#adfilter" target="contentFrame">¸ß¼¶¹ýÂË</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#search" target="contentFrame">ËÑË÷</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#hoststab" target="contentFrame">&ldquo;Ö÷»ú&rdquo;Ñ¡Ï</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#domtree" target="contentFrame">ÓòÊ÷</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#actionbar" target="contentFrame">²Ù×÷À¸</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#adfilterhosts" target="contentFrame">¸ß¼¶¹ýÂË</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#searchhosts" target="contentFrame">ËÑË÷</a></li>
+ </UL>
+ <li><a class="help-toc-link" href="helpContent.html#psptab" target="contentFrame">²ßÂÔϵͳÐÅÏ¢¿â</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#psptable" target="contentFrame">²ßÂÔ×é±í¸ñ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#pspactions" target="contentFrame">²ßÂÔ×é²Ù×÷À¸</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#psppriorities" target="contentFrame">²ßÂÔ×éÓÅÏȼ¶</a></li>
+ </ul>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#content" target="contentFrame">[ÄÚÈÝ] ´°¸ñ</a></li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#policies" target="contentFrame">&ldquo;²ßÂÔ&rdquo;Ñ¡Ï</a></li>
+ <ul type="circle"><li><a class="help-toc-link" href="helpContent.html#caparpath" target="contentFrame">ÆðԴ·¾¶</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#subgroupstable" target="contentFrame">×Ó×é±í¸ñ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#capolicies" target="contentFrame">²ßÂÔ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#casets" target="contentFrame">¼¯ºÏ</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#policysets" target="contentFrame">&ldquo;²ßÂÔ×é&rdquo;Ñ¡Ï</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#caentities" target="contentFrame">&ldquo;ÊÜÍÐÕß&rdquo;Ñ¡Ï</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#roles" target="contentFrame">&ldquo;½ÇÉ«&rdquo;Ñ¡Ï</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#reporting" target="contentFrame">±¨±í</a></li>
+ </ul>
+ </td>
+ </tr>
+ </table>
+ </BODY>
+</HTML>
diff --git a/webconsole/html/zh_CN/helpToolbar.html b/webconsole/html/zh_CN/helpToolbar.html
new file mode 100644
index 0000000..ca5c3f4
--- /dev/null
+++ b/webconsole/html/zh_CN/helpToolbar.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+<title>APOC Manager - &ldquo;°ïÖú&rdquo;ͼ±êÀ¸</title>
+<meta name="Copyright" content="°æȨËùÓÐ &copy; 2003 Sun Microsystems, Inc.¡£±£ÁôËùÓÐȨÀû¡£">
+<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ </HEAD>
+ <BODY>
+ <table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><img src="/apoc/images/dot.gif" width="1" height="15" alt=""/></td>
+ <td align="right" nowrap="nowrap" valign="bottom"><div
+class="TtlBtnDiv">
+<input name="Masthead.CloseButton" type="submit" class="Btn1" value="¹Ø±Õ"
+title="µ¥»÷ÒԹرÕ&ldquo;°ïÖú&rdquo;´°¿Ú" onclick="javascript: parent.parent.close();
+return false;" onmouseover="javascript: if (this.disabled==0)
+this.className='Btn1Hov'" onmouseout="javascript: if (this.disabled==0) this.className='Btn1'"
+on blur="javascript: if (this.disabled==0) this.className='Btn1'"
+onfocus="javascript: if (this.disabled==0) this.className='Btn1Hov'" />
+ </div></td>
+ </tr>
+ </TABLE>
+</body>
diff --git a/webconsole/html/zh_TW/Makefile.am b/webconsole/html/zh_TW/Makefile.am
new file mode 100644
index 0000000..a177693
--- /dev/null
+++ b/webconsole/html/zh_TW/Makefile.am
@@ -0,0 +1,10 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = help
+
+zh_TWdir = ${htmldir}/zh_TW
+zh_TW_DATA =helpNav.html \
+ helpContent.html \
+ help.html \
+ helpToolbar.html \ No newline at end of file
diff --git a/webconsole/html/zh_TW/help.html b/webconsole/html/zh_TW/help.html
new file mode 100644
index 0000000..3e5c6c4
--- /dev/null
+++ b/webconsole/html/zh_TW/help.html
@@ -0,0 +1,74 @@
+<html>
+ <head>
+ <title>Help - StarOffice Configuration Manager</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ </head>
+<script language="JavaScript">
+<!--
+
+var sPkgName = " "
+var sAnchorName = " "
+var sAnchorCon = " "
+var sAnchorNav = " "
+var sHelpLocale = " "
+if (window.anchor != null) {
+ sAnchorName = anchor;
+}
+if (window.top.opener.top.content.document.ContentAreaForm!=null) {
+ sAnchorName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.Anchor'].value;
+ sPkgName =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.PkgName'].value;
+ sHelpLocale =
+window.top.opener.top.content.document.ContentAreaForm['ContentArea.HelpLocale'].value;
+ if (sHelpLocale=="nolocalizedhelp")
+ sHelpLocale="_en_US";
+}
+if (sAnchorName=="hoststab" || sAnchorName=="psptab" || sAnchorName=="entities" ||
+sAnchorName=="policies" || sAnchorName=="policysets" || sAnchorName=="caentities" ||
+sAnchorName=="roles" || sAnchorName=="")
+{
+ document.write('<frameset cols="30%, 70%" border="1" framespacing="0"> ');
+
+ document.write(' <frame name="navFrame"');
+ document.write(' title="Help Navigation Area"');
+ document.write(' id="nav"');
+ document.write(' src="helpNav.html">');
+
+ document.write(' <frameset rows="10%, 90%" border="1" framespacing="0">');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="contentFrame"');
+ document.write(' title="Help Content Area"');
+ document.write(' id="content"');
+ document.write(' src="helpContent.html#'+sAnchorName+'">');
+ document.write(' <\/frameset>');
+ document.write('<\/frameset>');
+
+} else {
+ // The correct package name is not available yet
+ document.write('<frameset rows="10%, 90%" border="0" framespacing="0"> ');
+ document.write(' <frame name="toolbarFrame"');
+ document.write(' title="Help Content Area Toolbar"');
+ document.write(' id="toolbar"');
+ document.write(' scrolling="no"');
+ document.write(' src="helpToolbar.html">');
+ document.write(' <frame name="templateContent"');
+ document.write(' title="Help Template"');
+ document.write(' id="temphelp"');
+ document.write(' src="../../packages/'+sPkgName+'/web/'+sAnchorName+sHelpLocale+'.html">');
+ document.write('<\/frameset>');
+}
+
+
+//-->
+
+</script>
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ </body>
+ </noframes>
+</html>
diff --git a/webconsole/html/zh_TW/help/JavaHelpSearch/DOCS b/webconsole/html/zh_TW/help/JavaHelpSearch/DOCS
new file mode 100644
index 0000000..d14d5e9
--- /dev/null
+++ b/webconsole/html/zh_TW/help/JavaHelpSearch/DOCS
Binary files differ
diff --git a/webconsole/html/zh_TW/help/JavaHelpSearch/DOCS.TAB b/webconsole/html/zh_TW/help/JavaHelpSearch/DOCS.TAB
new file mode 100644
index 0000000..f9ca448
--- /dev/null
+++ b/webconsole/html/zh_TW/help/JavaHelpSearch/DOCS.TAB
@@ -0,0 +1,4 @@
+eÿÿÿÝÿÿÝÿÿÿÿÿÿÿÿÿÿÙÿý—ÿÿÿÿÿÿÿÿý—ÿÿÿÿÿÿÿÿý—ý—ÿÿÿÿý—ÿ÷_ÿÿÿÿÿÿÿÿeeÿÿeÿÿeý—ÿÿÿÿÿÿÿÿÿÿÿÿý—ÿÿeý—ÿÿÿÿÿÿÿö_ÿÿÿÿÿÿÿÿÿÿÿÿÿeÿÿÿÿÿÿÿÿÿÿÿÿeÿÿÿeeÿeÿö_ö_Ùÿ÷_ÿÿÿÿÿÿÿÿÿÿÿÙw_ÿÿÿÿÿÿeöV_eÿÙÿÿÿÿÿÿÿý—ÿÿÿÿ@zÊêª0ºª3þ*ªª¨Òªª0º0ªª®*ªèâŽ(£‹êªªª0ª£"ª®0¡¡I¡Ár†…Š«¨Ò««ëªªº¿ë¨Ò«¿èÂã
+ªŽ/ªª0ªªªªªª¾ë¨Ò£
+«Ì*ªªº«ªªªªªªªªªªÍ,«1Šó ÿÍ/ÿÿÌ/ÿÿÿÿÿó ÿÿÿÿ4¿ÿÿÿÿÌ/ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿó ÿÿÿÿÿÿÿÿÿüÂÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2/ÿÿÿÿÿüÂÿÿÿÿÿÿÿÿÿÿ` \ No newline at end of file
diff --git a/webconsole/html/zh_TW/help/JavaHelpSearch/Makefile.am b/webconsole/html/zh_TW/help/JavaHelpSearch/Makefile.am
new file mode 100644
index 0000000..d7ca414
--- /dev/null
+++ b/webconsole/html/zh_TW/help/JavaHelpSearch/Makefile.am
@@ -0,0 +1,11 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+
+JavaHelpSearchdir = ${htmldir}/zh_TW/help/JavaHelpSearch
+JavaHelpSearch_DATA =DOCS \
+ POSITIONS \
+ OFFSETS \
+ SCHEMA \
+ DOCS.TAB \
+ TMAP \ No newline at end of file
diff --git a/webconsole/html/zh_TW/help/JavaHelpSearch/OFFSETS b/webconsole/html/zh_TW/help/JavaHelpSearch/OFFSETS
new file mode 100644
index 0000000..a763bb8
--- /dev/null
+++ b/webconsole/html/zh_TW/help/JavaHelpSearch/OFFSETS
Binary files differ
diff --git a/webconsole/html/zh_TW/help/JavaHelpSearch/POSITIONS b/webconsole/html/zh_TW/help/JavaHelpSearch/POSITIONS
new file mode 100644
index 0000000..fcb843d
--- /dev/null
+++ b/webconsole/html/zh_TW/help/JavaHelpSearch/POSITIONS
Binary files differ
diff --git a/webconsole/html/zh_TW/help/JavaHelpSearch/SCHEMA b/webconsole/html/zh_TW/help/JavaHelpSearch/SCHEMA
new file mode 100644
index 0000000..454f4ac
--- /dev/null
+++ b/webconsole/html/zh_TW/help/JavaHelpSearch/SCHEMA
@@ -0,0 +1,2 @@
+JavaSearch 1.0
+TMAP bs=2048 rt=1 fl=-1 id1=719 id2=1
diff --git a/webconsole/html/zh_TW/help/JavaHelpSearch/TMAP b/webconsole/html/zh_TW/help/JavaHelpSearch/TMAP
new file mode 100644
index 0000000..58650ef
--- /dev/null
+++ b/webconsole/html/zh_TW/help/JavaHelpSearch/TMAP
Binary files differ
diff --git a/webconsole/html/zh_TW/help/Makefile.am b/webconsole/html/zh_TW/help/Makefile.am
new file mode 100644
index 0000000..c1fdc0d
--- /dev/null
+++ b/webconsole/html/zh_TW/help/Makefile.am
@@ -0,0 +1,55 @@
+NULL =
+wcdir = $(APOC_WCROOT)
+htmldir = ${wcdir}/html
+SUBDIRS = JavaHelpSearch
+
+helpdir = ${htmldir}/zh_TW/help
+help_DATA =gbgdh.html \
+ map.jhm \
+ toc.xml \
+ gbgpu.html \
+ gbzci.html \
+ gbgow.html \
+ gbgqh.html \
+ gbgcn.html \
+ gbgqu.html \
+ gbgqm.html \
+ gbgda.html \
+ gbgpe.html \
+ app.hs \
+ gbgcr.html \
+ gbgpa.html \
+ gbgqt.html \
+ gbgpm.html \
+ gbgpp.html \
+ gbgqe.html \
+ gbgoz.html \
+ p1.html \
+ gbgcg.html \
+ gbgqa.html \
+ gbgpt.html \
+ copyright.html \
+ gbgdc.html \
+ gbgot.html \
+ gbgcm.html \
+ gbgni.html \
+ gbgca.html \
+ gbgpr.html \
+ gbgec.html \
+ gbgce.html \
+ empty.html \
+ gbgpn.html \
+ gbgps.html \
+ gbgeb.html \
+ gbgqf.html \
+ background.html \
+ gbgkr.html \
+ gbgoy.html \
+ gbgcd.html \
+ gbgpj.html \
+ index.xml \
+ gbgpw.html \
+ gbzbc.html \
+ gbgou.html \
+ gbgqj.html \
+ gbgpb.html \ No newline at end of file
diff --git a/webconsole/html/zh_TW/help/app.hs b/webconsole/html/zh_TW/help/app.hs
new file mode 100644
index 0000000..fc91e74
--- /dev/null
+++ b/webconsole/html/zh_TW/help/app.hs
@@ -0,0 +1,12 @@
+<?xml version='1.0' encoding='UTF-8'?><!-- ident "%Z%%M% %I% %E% SMI" --><!DOCTYPE helpset PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version 1.0//EN" "helpset_1_0.dtd">
+<helpset version="1.0" xml:lang="zh_TW">
+<title>about_vman</title>
+<maps> <homeID></homeID> <mapref location="map.jhm"/>
+</maps>
+<view> <name>TOC</name> <label>���e</label> <type>javax.help.TOCView</type> <data>toc.xml</data>
+</view>
+<view> <name>Index</name> <label>�d�</label> <type>javax.help.IndexView</type> <data>index.xml</data>
+</view>
+<view> <name>Search</name> <label>�j�M</label> <type>javax.help.SearchView</type> <data engine="com.sun.java.help.search.DefaultSearchEngine">JavaHelpSearch</data>
+</view>
+</helpset>
diff --git a/webconsole/html/zh_TW/help/background.html b/webconsole/html/zh_TW/help/background.html
new file mode 100644
index 0000000..05b522d
--- /dev/null
+++ b/webconsole/html/zh_TW/help/background.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+
+
+<title>About the Configuration Manager</title>
+<script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+<meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<A NAME="BACKGROUND"></A><h2>Configuration Manager Help</h2>
+
+<p>Welcome to the Sun Java&#8482; Desktop System Configuration Manager Help pages.</p>
+
+<p>Using the Configuration Manager, administrators can assign
+profiles to individual users or organisational units stored in a central
+configuration storage such as an existing corporate LDAP server. The
+configuration settings defined in these profiles are then applied on behalf of
+the users to the applications running on the Sun Java Desktop System such as the
+Gnome desktop, Mozilla, StarOffice and Gnome applications like Evolution.</p>
+
+<p>To get help for a specific part of the Configuration Manager,
+click on one of the links on the left.</p>
+
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/copyright.html b/webconsole/html/zh_TW/help/copyright.html
new file mode 100644
index 0000000..2a2d36d
--- /dev/null
+++ b/webconsole/html/zh_TW/help/copyright.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<p>Part No: 819-3617</p><p></p>Sun Microsystems, Inc. <p><br>4150 Network Circle<br>Santa Clara, CA 95054 <br>U.S.A.</p><p>Copyright 2006, Sun Microsystems, Inc.</p><p>Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual
+property rights may include one or more U.S. patents or pending patent applications in the U.S. and in other countries.</p>
+<p>U.S. Government Rights &#8211; Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements.</p>
+<p>This distribution may include materials developed by third parties.</p>
+<p>Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively
+licensed through X/Open Company, Ltd.</p>
+<p>Sun, Sun Microsystems, the Sun logo,
+the Solaris logo, the Java Coffee Cup logo, docs.sun.com,
+Java, and
+Solaris are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S.
+and other countries. All SPARC trademarks are used under license and are trademarks
+or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+Products bearing SPARC trademarks are based upon an architecture developed by Sun
+Microsystems, Inc. </p>
+<p>The OPEN LOOK and Sun&#153; Graphical User Interface was developed by Sun Microsystems, Inc. for
+its users and licensees. Sun acknowledges the pioneering efforts of Xerox in researching
+and developing the concept of visual or graphical user interfaces for the computer
+industry. Sun holds a non-exclusive license from Xerox to the Xerox Graphical User
+Interface, which license also covers Sun's licensees who implement OPEN LOOK GUIs
+and otherwise comply with Sun's written license agreements.</p>
+<p>Products covered by and information contained in this publication are controlled by U.S. Export Control
+laws and may be subject to the export or import laws in other countries. Nuclear,
+missile, chemical or biological weapons or nuclear maritime end uses or end users,
+whether direct or indirect, are strictly prohibited. Export or reexport to countries
+subject to U.S. embargo or to entities identified on U.S. export exclusion lists,
+including, but not limited to, the denied persons and specially designated nationals
+lists is strictly prohibited.</p>
+<p>DOCUMENTATION IS PROVIDED &#8220;AS IS&#8221; AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
+IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT,
+ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.</p>
+<p></p>
+<p>Sun Microsystems, Inc. d&#233;tient les droits de propri&#233;t&#233;
+intellectuelle relatifs &#224; la technologie incorpor&#233;e dans
+le produit qui est
+d&#233;crit dans ce document. En particulier, et ce sans limitation,
+ces droits de
+propri&#233;t&#233; intellectuelle peuvent inclure un ou plusieurs
+brevets am&#233;ricains ou des
+applications de brevet en attente aux Etats-Unis et dans d'autres
+pays.</p>
+<p>Cette distribution peut comprendre des composants
+d&#233;velopp&#233;s par des tierces personnes.</p>
+<p>Certaines composants de ce produit peuvent &#234;tre
+d&#233;riv&#233;es du logiciel Berkeley BSD, licenci&#233;s par
+l'Universit&#233; de
+Californie. UNIX est une marque d&#233;pos&#233;e aux Etats-Unis et
+dans d'autres pays; elle est
+licenci&#233;e exclusivement par X/Open Company, Ltd. </p>
+<p>Sun, Sun Microsystems, le logo Sun, le logo Solaris, le logo Java
+Coffee Cup, docs.sun.com,
+ Java et Solaris sont des
+marques de fabrique ou des marques d&#233;pos&#233;es
+de Sun Microsystems, Inc. aux Etats-Unis et dans d'autres pays. Toutes
+les marques
+SPARC sont utilis&#233;es sous licence et sont des marques de fabrique
+ou des
+marques d&#233;pos&#233;es de SPARC International, Inc. aux
+Etats-Unis et dans
+d'autres pays. Les produits portant les marques SPARC sont bas&#233;s
+sur une
+architecture d&#233;velopp&#233;e par Sun Microsystems, Inc.</p>
+<p>L'interface d'utilisation graphique OPEN LOOK et
+Sun&#153; a &#233;t&#233;
+d&#233;velopp&#233;e par Sun Microsystems, Inc. pour ses
+utilisateurs et
+licenci&#233;s. Sun reconna&#238;t les efforts de pionniers de Xerox
+pour la
+recherche et le d&#233;veloppement du concept des interfaces
+d'utilisation
+visuelle ou graphique pour l'industrie de l'informatique. Sun
+d&#233;tient une licence non exclusive de Xerox sur
+l'interface d'utilisation graphique Xerox, cette licence couvrant
+&#233;galement les
+licenci&#233;s de Sun qui mettent en place l'interface d'utilisation
+graphique OPEN LOOK et
+qui, en outre, se conforment aux licences &#233;crites de Sun.</p>
+<p>Les produits qui font l'objet de cette publication et les
+informations qu'il contient sont r&#233;gis par la legislation
+am&#233;ricaine en mati&#232;re de contr&#244;le des exportations et peuvent &#234;tre soumis au droit
+d'autres pays dans le domaine des exportations et importations. Les utilisations finales, ou
+utilisateurs finaux, pour des armes nucl&#233;aires, des missiles, des armes
+chimiques ou biologiques ou pour le nucl&#233;aire maritime, directement ou
+indirectement, sont strictement interdites. Les exportations ou r&#233;exportations vers
+des pays sous embargo des Etats-Unis, ou vers des entit&#233;s figurant sur les
+listes d'exclusion d'exportation am&#233;ricaines, y compris, mais de mani&#232;re non
+exclusive, la liste de personnes qui font objet d'un ordre de ne pas participer, d'une fa&#231;on
+directe ou
+indirecte, aux exportations des produits ou des services qui sont
+r&#233;gis par la
+legislation am&#233;ricaine en mati&#232;re de contr&#244;le des
+exportations et la
+liste de ressortissants sp&#233;cifiquement design&#233;s, sont
+rigoureusement interdites.</p>
+<p>LA DOCUMENTATION EST FOURNIE "EN L'ETAT" ET TOUTES AUTRES CONDITIONS,
+DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENT EXCLUES,
+DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT
+TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A L'APTITUDE A UNE
+UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFACON. </p>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/empty.html b/webconsole/html/zh_TW/help/empty.html
new file mode 100644
index 0000000..2741c71
--- /dev/null
+++ b/webconsole/html/zh_TW/help/empty.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+-->
+<title>«Øºc¤¤</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+<script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2004 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="BACKGROUND"></A><h2>©|¥¼´£¨Ñ¥DÃD</h2>
+<p>©|¥¼´£¨Ñ©Ò¿ï¥DÃD¤§»¡©ú¡C­Y³y¦¨¥ô¦ó¤£«K¡A²`·P©êºp¡C</p>
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgca.html b/webconsole/html/zh_TW/help/gbgca.html
new file mode 100644
index 0000000..bb879f8
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgca.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>1.Sun Desktop Manager 1.0.1 »¡©ú</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgca"></A><b>²Ä 1 ³¹</b><h1>Sun Desktop Manager 1.0.1 »¡©ú</h1>
+<p>Åwªï¨Ï¥Î Sun Desktop Manager »¡©ú­¶­±¡C­Y­n¨ú±o Desktop Manager ¤§¯S©w³¡¤Àªº»¡©ú¡A½Ð«ö¤@¤U¥ª°¼ªº³sµ²¤§¤@¡C¥»½u¤W»¡©ú´£¨Ñ Desktop Manager ¥\¯à¤Î¥Îªk¤§¬ÛÃö¸ê°T¡C</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgcd.html b/webconsole/html/zh_TW/help/gbgcd.html
new file mode 100644
index 0000000..2277dbb
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgcd.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>³]©wÀÉ &#8212; ¥þ³¡</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcd"></A><h2>³]©wÀÉ &#8212; ¥þ³¡</h2>
+<p>[³]©wÀÉ &#8212; ¥þ³¡] ­¶­±·|Åã¥Ü©Ò¦³¥i¥Îªº³]©wÀÉ¡A¥]§t¥¼«ü©wµ¹¤¸¯Àªº³]©wÀÉ¡C³]©wÀÉ·|Åã¥Ü¦b¨â­Óªí®æ¤¤¡A¨ä¤¤¤@­Ó¬°ºô°ì³]©wÀÉ¡A¥t¤@­Ó«h¬O²Õ´³]©wÀÉ¡C</p>
+<p>³]©wÀɪí®æ¥iÅý±z°õ¦æ¤U¦C°Ê§@¡G</p>
+<ul><li><p><A HREF="gbgcr.html#gbgcr">«Ø¥ß·sªº³]©wÀÉ</A></p>
+</li>
+<li><p><A HREF="gbgpe.html#gbgpe">§R°£³]©wÀÉ</A></p>
+</li>
+<li><p><A HREF="gbgpu.html#gbgpu">­«·s©R¦W³]©wÀÉ</A></p>
+</li>
+<li><p><A HREF="gbgow.html#gbgow">½Æ»s»P²¾°Ê³]©wÀÉ</A></p>
+</li>
+<li><p><A HREF="gbgpj.html#gbgpj">¶×¤J³]©wÀÉ</A></p>
+</li>
+<li><p><A HREF="gbgou.html#gbgou">¶×¥X³]©wÀÉ</A></p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgce.html b/webconsole/html/zh_TW/help/gbgce.html
new file mode 100644
index 0000000..b8d597d
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgce.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¤¶²Ð</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgce"></A><h2>¤¶²Ð</h2>
+<p>Desktop Manager ¤u¨ã´£¨Ñ®à­±À³¥Îµ{¦¡¤§°t¸m³]©w (ºÙ¬°<b>³]©wÀÉ</b>) ªº¶°¤¤ºÞ²z¡CDesktop Manager ¥iÅý±zÀ˵ø¨Ã«ü©w¦h­Ó³]©wÀɵ¹¤@­Ó²Õ´¶¥¼h©Î¤@­Óºô°ì¶¥¼hªº¦h­Ó¤¸¯À¡C·í¨Ï¥ÎªÌ±Ò°Ê Desktop Manager ©ÒºÞ²zªº®à­±¶¥¬q§@·~©ÎÀ³¥Îµ{¦¡®É¡A§Y·|®M¥Î³o¨Ç³]©wÀÉ¡C¥¦·|Â^¨ú»P¨Ï¥ÎªÌ©Î»P°õ¦æ¸ÓÀ³¥Îµ{¦¡ªº¥D¾÷¬ÛÃöªº©Ò¦³³]©wÀÉ¡A¦P®É¨ä³]©w¤]·|»PÀ³¥Îµ{¦¡ªº¥»¾÷¹w³]­È©M¨Ï¥ÎªÌªº¦Û­q³]©w¶i¦æ¾ã¦X¡C³]©wÀÉ¥i¥Î¥H´£¨ÑÀ³¥Îµ{¦¡ªº¤@²Õ¶°¤¤ºÞ²zªº¹w³]­È¡A©Î¥Î¥H°õ¦æ¥²­n³]©w¡C</p>
+<p>À³¼ô±xªº¦rµü¡G</p>
+<ul><li><p><b>°t¸mÀx¦s®w</b>¡G²Õ´©Mºô°ì¾ðª¬µ²ºc®e¾¹¡A¨ä¤¤·|Àx¦s³]©wÀÉ¡C</p>
+</li>
+<li><p><b>ºô°ì</b>¡Gºô°ì¾ðª¬µ²ºc¤¤ªº¤¸¯À¡Cªí¥Ü¹q¸£ºô¸ô¤¤ªº¤@­Ó½d³ò¡C¥i¯à¥]§tºô°ì©M¥D¾÷¡C</p>
+</li>
+<li><p><b>¤¸¯À</b>¡G¥i¥H«ü©wµ¹°t¸m¸ê®ÆªºÅ޿誫¥ó¡C¨Ï¥ÎªÌ¡B¨¤¦â/¸s²Õ©M²Õ´§¡¬° Desktop Manager ªº¹êÅé½d¨Ò¡C</p>
+</li>
+<li><p><b>LDAP</b>¡G²©ö«¬¥Ø¿ý¦s¨ú¨ó©w¡CLDAP ¬°³z¹L TCP/IP °õ¦æªº¥Ø¿ýªA°È¨ó©w¡CRFC 1777¡u²©ö«¬¥Ø¿ý¦s¨ú¨ó©w¡v¤¤©w¸q¤F LDAP ªº¸Ô²Ó¸ê°T¡C</p>
+</li>
+<li><p><b>²Õ´</b>¡G²Õ´¾ðª¬µ²ºc¤¤ªº¤¸¯À¡Cªí¥Ü²Õ´©Î¤l²Õ´¡F¨Ò¦p¡A¹q¸Ü«ÈªA¤¤¤ß¡C¥i¯à¥]§t²Õ´¡B¨Ï¥ÎªÌ©Î¨¤¦â¡C</p>
+</li>
+<li><p><b>³]©wÀÉ</b>¡G°t¸m³]©wªº¨ã¦W®e¾¹¡CÀx¦s¦b°t¸mÀx¦s®w¤¤¡A¨Ã¥B¥i¥H«ü©wµ¹¤¸¯À¡C</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgcg.html b/webconsole/html/zh_TW/help/gbgcg.html
new file mode 100644
index 0000000..27e71ec
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgcg.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¤@¯ë¯S©Ê</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcg"></A><h3>¤@¯ë¯S©Ê</h3>
+<p>[¤@¯ë¯S©Ê] ­¶­±¥iÅý±z«ü©w»P³]©wÀɬÛÃöªº¤@¯ë¸ê°T¡C¦¹­¶­±¬° [³]©wÀɽs¿è¾¹] µøµ¡ªº¹w³]À˵ø­¶­±¡C</p>
+<p><hr size="1" noshade><p><b>³Æµù &#8211; </b>·í¨Ï¥ÎªÌ«ö¤@¤U [·s¼W] «ö¶s«Ø¥ß·s³]©wÀɮɡA§Y·|¥X²{ [³]©wÀɽs¿è¾¹]¡C</p>
+<hr size="1" noshade></p><p>½Ð°Ñ¾\<A HREF="gbgpb.html#gbgpb">«ü©w³]©wÀɪº¤@¯ë¯S©Ê</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgcm.html b/webconsole/html/zh_TW/help/gbgcm.html
new file mode 100644
index 0000000..134752f
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgcm.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÂsÄý°Ï°ì</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcm"></A><h3>ÂsÄý°Ï°ì</h3>
+<p>ÂsÄý¾ðª¬µ²ºc¥i¥Î¥HÂsÄý²Õ´©Mºô°ì¾ðª¬µ²ºc¡A¥H¿ï¨ú¤¸¯À¡C¾ðª¬µ²ºc·|¤Ï¬M¤¸¯Àªº¶¥¼h¡C¦pªG¸`ÂI¦³¤l¸`ÂI¡A·|©ó¸`ÂI¦WºÙªº¥ª°¼Åã¥Ü¤@­ÓÂŦâ¤T¨¤§Î¡C«ö¤@¤UÂŦâ¤T¨¤§Î¡A§Y¥i®i¶}¸Ó¸`ÂI¨ÃÅã¥Ü¤@¨Ç¤l¸`ÂI¡C</p>
+<p><hr size="1" noshade><p><b>³Æµù &#8211; </b>¨Ì¹w³]¡A¨C­Ó®i¶}ªº¸`ÂI¥u¯àÅã¥Ü 10 ­Ó¤l¸`ÂI¡C¦pªG¦³ 10 ­Ó¥H¤Wªº¤l¸`ÂI¡A²Ä 11 ­Ó¡u¸`ÂI¡v¤£·|ªí¥Ü¬°¤¸¯À¡A¦Ó·|ªí¥Ü¬°ÁÙ¦³¥¼Åã¥Üªº¦h­Ó¸`ÂI¡G¡u... ¦³¨Ç¤¸¯À¥¼Åã¥Ü¡v¡C«ö¤@¤U¦¹¡u¸`ÂI¡v·|¶}±Ò [´M§ä] ¥\¯à¡C</p>
+<hr size="1" noshade></p><p>­Y­n¿ï¨ú¬Y¤@¤¸¯À¡A½ÐÂsÄý¾ðª¬µ²ºc¨Ã«ö¤@¤U·Q­nªº¤¸¯À¡C¿ï¨ú¤¸¯À¤§«á¡A¸Ó¤¸¯À·|¤Ï¥ÕÅã¥Ü¡A¥B¤º®e°Ï°ì·|Åã¥Ü¸Ó¤¸¯Àªº«ü©w©MÄ~©Ó³]©wÀÉ¡C</p>
+<p>ÂsÄý¤]´£¨Ñ»¼°j·j´M (½Ð°Ñ¾\<A HREF="gbgpa.html#gbgpa">·j´M¤¸¯À</A>) ©M«D»¼°j´M§ä (½Ð°Ñ¾\<A HREF="gbgqt.html#gbgqt">¨Ï¥Î´M§ä¥\¯à</A>)¡A¥H¦b¾ðª¬µ²ºc¶¥¼h¤¤§ä¨ì¤¸¯À¡C«ö¤@¤U [·j´M] «ö¶s¶}±Ò [·j´M] µøµ¡¡C</p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgcn.html b/webconsole/html/zh_TW/help/gbgcn.html
new file mode 100644
index 0000000..75b3475
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgcn.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>«Ø¥ß·sªº°t¸mÀx¦s®w</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcn"></A><h4>«Ø¥ß·sªº°t¸mÀx¦s®w</h4>
+<p>°t¸mÀx¦s®w¬O²Õ´¶¥¼h¸ê°T¥H¤Î¨C­Ó¤¸¯Àªº³]©wÀÉ©M«ü©w¸ê®ÆÀx¦s¤§©Ò¦b¡C</p>
+<h5>¨BÆJ</h5><ol><li><p><b>¦b [°t¸mÀx¦s®w] ªí®æ¤¤«ö¤@¤U [·s¼W] «ö¶s</b></p><p>·|ÀH§Y¶}±Ò [·s¼W°t¸mÀx¦s®wºëÆF]¡C¸ÓºëÆF¥i¥Î¥H«Ø¥ß»P Desktop Manager ·f°t¨Ï¥Îªº°t¸mÀx¦s®w¡C</p>
+</li>
+<li><p><b>¦b [Àx¦s®w¦WºÙ] Äæ¦ì¤¤¡AÁä¤J·s°t¸mÀx¦s®wªº¦WºÙ¡AµM«á«ö [¤U¤@¨B]¡C</b></p></li>
+<li><p><b>±q [Àx¦s®wÃþ«¬] ²M³æ¤¤¿ï¨úÀx¦s®wÃþ«¬¡C</b></p><p>¸ÓºëÆF¥i¥Î¥H°t¸m¤TºØÀx¦s®wÃþ«¬¡G</p>
+<ul><li><p>LDAP «¬¡R¶¥¼h±q LDAP ¨ú±o¡A¥B©Ò¦³¸ê®ÆÀx¦s¦b LDAP ¤¤¡C</p>
+</li>
+<li><p>Àɮ׫¬¡G¶¥¼h±qÀɮרú±o¡A¥B©Ò¦³¸ê®ÆÀx¦s¦b¥Ø¿ý©MÀɮפ¤¡C</p>
+</li>
+<li><p>²V¦X«¬¡G¶¥¼h±q LDAP ¨ú±o¡A¦ý¬O©Ò¦³¸ê®ÆÀx¦s¦b¥Ø¿ý©MÀɮפ¤¡C</p>
+</li>
+</ul>
+</li>
+<li><p><b>½Ð«ö [¤U¤@¨B] «ö¶s¡C</b></p></li>
+<li><p><b>¿é¤J±z·Q¬°¦¹Àx¦s®w°t¸mªº LDAP ¦øªA¾¹¤§¸Ô²Ó¸ê°T¡C</b></p><p>¦øªA¾¹°õ¦æªº¥D¾÷¦WºÙ©M³s±µ°ð¬°¥²­n¸ê°T¡C±z¤]¥i¥H¿ï¾Ü¬O§_­n¨Ï¥Î SSL ³s½u¦Ü¦¹¦øªA¾¹¡C</p>
+</li>
+<li><p><b>«e­z¨BÆJ©Ò°µªº¿ï¾Ü·|¼vÅT«áÄò¨BÆJªº¤º®e¡C</b><b>¿í´`ºëÆF©Ò´£¨Ñªº«ü¥Ü¶i¦æ¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgcr.html b/webconsole/html/zh_TW/help/gbgcr.html
new file mode 100644
index 0000000..5dd958f
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgcr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>«Ø¥ß·sªº³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgcr"></A><h3>«Ø¥ß·sªº³]©wÀÉ</h3>
+<h5>¨BÆJ</h5><ol><li><p><b>¦b·Q­nªº²Õ´©Îºô°ì³]©wÀɪí®æ¤¤«ö¤@¤U [·s¼W] «ö¶s¡C</b></p><p>·|ÀH§Y¶}±Ò [³]©wÀɽs¿è¾¹ºëÆF]¡C</p>
+</li>
+<li><p><b>¿í´`ºëÆF©Ò´£¨Ñªº«ü¥Ü¶i¦æ¡C</b></p><p>¦p»Ý¨Ï¥Î [³]©wÀɽs¿è¾¹] «Ø¥ß·sªº³]©wÀɤ§¸Ô²Ó¸ê°T¡A½Ð°Ñ¾\½u¤W»¡©úªº<A HREF="gbgec.html#gbgec">³]©wÀɽs¿è¾¹</A>¤@¸`¡C</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgda.html b/webconsole/html/zh_TW/help/gbgda.html
new file mode 100644
index 0000000..aa6b260
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgda.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>³]©wºK­n</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgda"></A><h3>³]©wºK­n</h3>
+<p>[³]©wºK­n] ¬O¥]§t©Ò¿ï³]©wÀɤ§¸ê®Æªº©Ò¦³°t¸m³]©w¤§°ßŪÀ˵ø¡C</p>
+<p>[³]©wºK­n] ­¶­±¥]§t [³]©wºK­n] ªí®æ¡C¦¹ªí®æ·|¥H¤À²Õ¬°¤£¦PºØÃþªº¤è¦¡¡AÅã¥Ü¥]§t¥Ø«e³]©wÀɸê®Æªº°t¸m³]©w¡Cªí®æ¨ã¦³¤U¦CÄæ¦ì¡G</p>
+<p></p>
+<ul><li><p>¦WºÙ¡G³]©w¦WºÙ</p>
+</li>
+<li><p>¼Æ­È¡G³]©w­È</p>
+</li>
+<li><p>ª¬ºA¡Jª¬ºAÄæ¥]§t¡u¤w¦b &lt;profileName> ¤¤©w¸q¡v¤§Ãþ«¬ªº¶µ¥Ø¡A&lt;profileName> ³sµ²¥i±N [³]©wÀɽs¿è¾¹] ­¶­±¤Á´«¦¨ [°t¸m³]©w] ­¶­±¡A¨Ã¤Þ¾É±z¦Ü¦¹³]©wÀɤºªº¬Y­Ó³]©w¡C</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgdc.html b/webconsole/html/zh_TW/help/gbgdc.html
new file mode 100644
index 0000000..dcffb37
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgdc.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>³]©wÀÉ &#8212; ¾ðª¬µ²ºcÀ˵ø</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgdc"></A><h2>³]©wÀÉ &#8212; ¾ðª¬µ²ºcÀ˵ø</h2>
+<p>[³]©wÀÉ &#8212; ¾ðª¬µ²ºcÀ˵ø] ­¶­±·|Åã¥Ü¥Ø«e«ü©wµ¹¬Y­Ó¤¸¯Àªº©Ò¦³¥i¥Î³]©wÀÉ¡C­¶­±ªº¥ª°¼¬OÂsÄý°Ï°ì¡A±z¥i©ó¦¹ÂsÄý¾ðª¬µ²ºc¶¥¼h¥H´M§ä³]©wÀÉ¡C­¶­±ªº¥k°¼¬O¤º®e°Ï°ì¡AÅã¥ÜÂsÄý°Ï°ì¤¤¥ô¦ó©Ò¿ïªº³]©wÀɤ§¬ÛÃö¸ê°T¡C</p>
+<p>¥t½Ð°Ñ¾\¡G<A HREF="gbgcm.html#gbgcm">ÂsÄý°Ï°ì</A>©M<A HREF="gbgoy.html#gbgoy">¤º®e°Ï°ì</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgdh.html b/webconsole/html/zh_TW/help/gbgdh.html
new file mode 100644
index 0000000..5b81700
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgdh.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¶i¶¥¿ï¶µ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgdh"></A><h3>¶i¶¥¿ï¶µ</h3>
+<p>[¶i¶¥¿ï¶µ] ­¶­±¥iÅý±z«ü©w¥Ø«e³]©wÀɪº¶i¶¥¿ï¶µ¡C¦¹­¶­±¦³¨â­Ó¥D­n¿ï¶µ¡G</p>
+<ul><li><p>¾A¥Î¨Ó·½¡G¥iÅý±z±N³]©wÀɲ¾°Ê¨ì²Õ´©Îºô°ì¾ðª¬µ²ºc¤¤¤£¦PªºÀx¦s¦ì¸m¡C³z¹L²¾°ÊÀx¦s¦ì¸m¡A±z¤]·|Åܧó³]©wÀÉ¥i¥H«ü©w©Î®M¥Îªº¤@²Õ¤¸¯À¡C³o¬O¦]¬°³]©wÀÉ¥u¯à«ü©wµ¹¨äÀx¦s¦ì¸m©Ò¦bªº¤¸¯À¡A©Î«ü©wµ¹¨äÀx¦s¦ì¸m©Ò¦b¤¸¯À¤§¤Uªº¤l¾ðª¬µ²ºc¤¤ªº¤¸¯À¡C</p>
+<hr size="1" noshade><p><IMG ALT="ª`·N" src="graphics/caution.gif"> <b>ª`·N &#8211; </b>½Ð¤ÅÅܧó¡u¾A¥Î¨Ó·½¡v°Ñ¼Æ¡A¨Ï¨ä²£¥Íªº°t¸m¹H¤Ï¤W­z³W«h¡C¨Ò¦p¡A³oºØ±¡ªp·|µo¥Í¦b±z±N¾ðª¬µ²ºc¶¥¼h¤¤ªº³]©wÀɦV¤U²¾ªº®É­Ô¡A²¾°Ê³]©wÀɤ§«á¡A³s½u³]©wÀÉ»P³]©wÀÉÀx¦s¦ì¸m¤Uªº¤¸¯À¤§²{¦³«ü©w¡A·|±N³]©wÀɳs½u¨ì¬Û¦Pªº¤¸¯À¡C¤£¹L¡A²{¦b¸Ó¤¸¯À¦ì¦b³]©wÀÉÀx¦s¦ì¸m¤W¤è¡C¦pªG±z¹Á¸Õ³o»ò°µ¡A°Ê§@·|¨ú®ø¡A¥B·|Åã¥Ü¤@«hĵ§i°T®§¡C</p><hr size="1" noshade></li>
+<li><p>¦X¨Ö¶¶§Ç¡G«ü©wÀx¦s©ó¬Û¦P¤¸¯Àªº©Ò¦³³]©wÀɤ§¦X¨Ö¶¶§Ç¡C</p>
+<p>¥Ñ©ó³æ¤@¤¸¯À¥i¥H«ü©w¦h­Ó³]©wÀÉ¡A¥B¦h­Ó³]©wÀÉ¥i©w¸q¬Û¦Pªº³]©w¡A¦]¦¹¥²¶·©w¸q³æ¤@¤¸¯Àªº³]©wÀɤ§¦X¨Ö¶¶§Ç¡C¦p¦¹¥i¸Ñ¨M¦P¤@¤¸¯À«ü©w¨â­Ó¥H¤Wªº³]©wÀɮɡA©w¸q¦P¤@ºØ³]©wªº½Ä¬ð¡C</p>
+<p>­º¥ý¨Ï¥ÎÀx¦s¦ì¸m¨Ó¨M©w¦X¨Ö¶¶§Ç¡C³]©wÀÉÀx¦s¦b¦ì¸m±µªñ¾ðª¬µ²ºcªº®Ú¤§¤¸¯À·|¥ý¦X¨Ö¡C¦]¦¹¡A¨ä¦¸·|¦X¨ÖÀx¦s¦b¾ðª¬µ²ºc¶¥¼h¤¤¦ì¸m¸û²`ªº³]©wÀÉ¡C¤§«á¦X¨Öªº³]©wÀɤ§³]©w·|Âмg¤§«e¦X¨Öªº³]©wÀɤ§³]©w¡C</p>
+</li>
+</ul>
+<p>½Ð°Ñ¾\<A HREF="gbgqu.html#gbgqu">ÅܧóÀ³¥Îµ{¦¡¨Ó·½¦ì¸m</A>¡B<A HREF="gbgqe.html#gbgqe">«ü©w³]©wÀɦX¨Ö¶¶§Ç</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgeb.html b/webconsole/html/zh_TW/help/gbgeb.html
new file mode 100644
index 0000000..a3d2d7c
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgeb.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>°t¸m³]©w</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgeb"></A><h3>°t¸m³]©w</h3>
+<p>[°t¸m³]©w] ­¶­±¥iÅý±zÀ˵ø¨Ã½s¿è©Ò¿ï³]©wÀɤ¤Àx¦sªº°t¸m³]©w¡C</p>
+<p>½Ð°Ñ¾\<A HREF="gbgot.html#gbgot">À˵ø»P½s¿è³]©wÀɪº°t¸m³]©w</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgec.html b/webconsole/html/zh_TW/help/gbgec.html
new file mode 100644
index 0000000..f1ad874
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgec.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>³]©wÀɽs¿è¾¹</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgec"></A><h2>³]©wÀɽs¿è¾¹</h2>
+<p>[³]©wÀɽs¿è¾¹] ¥i¥Î¥H«Ø¥ß·sªº³]©wÀÉ©M½s¿è²{¦³ªº³]©wÀÉ¡C±z¤]¥i¥HÀ˵ø¥Ø«e©Ò¿ï³]©wÀɤ§²{¦³ªº³]©w©M¿ï¶µ¡C</p>
+<p>±z¥i¥H¦b [³]©wÀÉ &#8212; ¾ðª¬µ²ºcÀ˵ø] ¤º®e°Ï°ì©Î [³]©wÀÉ &#8212; ¥þ³¡] ­¶­±ªº¨ä¤¤¤@­Óªí®æ¤¤«ö¤@¤U³]©wÀɪº¦WºÙ¡A¥H¶}±Ò [³]©wÀɽs¿è¾¹]¡C</p>
+<p><hr size="1" noshade><p><b>´£¥Ü &#8211; </b>­Y­n«Ø¥ß·sªº³]©wÀÉ¡A½Ð°Ñ¾\<A HREF="gbgni.html#gbgni">«Ø¥ß·sªº³]©wÀÉ</A>¡C</p>
+<hr size="1" noshade></p><p>[³]©wÀɽs¿è¾¹] ¥]§t¤U¦C¼ÐÅÒ­¶¡G</p>
+<ul><li><p><A HREF="gbgcg.html#gbgcg">¤@¯ë¯S©Ê</A></p>
+</li>
+<li><p><A HREF="gbgeb.html#gbgeb">°t¸m³]©w</A></p>
+</li>
+<li><p><A HREF="gbgkr.html#gbgkr">«ü©wªº¤¸¯À</A></p>
+</li>
+<li><p><A HREF="gbgda.html#gbgda">³]©wºK­n</A></p>
+</li>
+<li><p><A HREF="gbgdh.html#gbgdh">¶i¶¥¿ï¶µ</A></p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgkr.html b/webconsole/html/zh_TW/help/gbgkr.html
new file mode 100644
index 0000000..62a9a0f
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgkr.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>«ü©wªº¤¸¯À</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgkr"></A><h3>«ü©wªº¤¸¯À</h3>
+<p>[«ü©wªº¤¸¯À] ­¶­±·|¦C¥X«ü©wµ¹¥Ø«e³]©wÀɪº¤¸¯À¡A¨Ã¥iÅý±z«ü©w©Î¨ú®ø«ü©w¤¸¯À¡C</p>
+<p>¥Ø«e³]©wÀɪº¤¸¯À·|Åã¥Ü¦b [«ü©wªº¤¸¯À] ªí®æ¤¤¡A¨Ã¥]§t¤U¦C¸ê°T¡G</p>
+<ul><li><p>¦WºÙ¡G«ü©wµ¹¥Ø«e³]©wÀɪº¤¸¯À¦WºÙ¡C</p>
+</li>
+<li><p>¸ô®|¡G«ü©wµ¹¥Ø«e³]©wÀɪº¤¸¯À¦ì¸m¡C</p>
+</li>
+</ul>
+<p>½Ð°Ñ¾\<A HREF="gbgpm.html#gbgpm">±N¤¸¯À«ü©wµ¹³]©wÀÉ</A>¡B<A HREF="gbgpp.html#gbgpp">±q³]©wÀɨú®ø«ü©w¤¸¯À</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgni.html b/webconsole/html/zh_TW/help/gbgni.html
new file mode 100644
index 0000000..8fd3fce
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgni.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>«Ø¥ß·sªº³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgni"></A><h4>«Ø¥ß·sªº³]©wÀÉ</h4>
+<h5>¨BÆJ</h5><ol><li><p><b>«ö¤@¤U [·s¼W] «ö¶s¡C</b></p><p>·|ÀH§Y¶}±Ò [³]©wÀɽs¿è¾¹]¡C</p>
+</li>
+<li><p><b>¿í´` [³]©wÀɽs¿è¾¹] ©Ò´£¨Ñªº«ü¥Ü¶i¦æ¡C</b></p><p>¦p»Ý¦p¦ó¨Ï¥Î [³]©wÀɽs¿è¾¹] «Ø¥ß·sªº³]©wÀɤ§¸Ô²Ó¸ê°T¡A½Ð°Ñ¾\½u¤W»¡©úªº<A HREF="gbgec.html#gbgec">³]©wÀɽs¿è¾¹</A>¤@¸`¡C</p>
+<p><hr size="1" noshade><p><b>³Æµù &#8211; </b>«Ø¥ß§¹·sªº³]©wÀɮɡA·|¦Û°Ê±N³]©wÀÉ«ü©wµ¹¥Ø«e¿ï¨úªº¤¸¯À¡C</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgot.html b/webconsole/html/zh_TW/help/gbgot.html
new file mode 100644
index 0000000..0cf4474
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgot.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>À˵ø»P½s¿è³]©wÀɪº°t¸m³]©w</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgot"></A><h4>À˵ø»P½s¿è³]©wÀɪº°t¸m³]©w</h4>
+<h5>¨BÆJ</h5><ol><li><p><b>­Y­nÀ˵ø³]©wÀɪº°t¸m³]©w¡A½Ð±q­¶­±¥k°¼ªººØÃþ²M³æ¤¤ÂsÄý¦Ü³]©w¡C</b></p><p>°t¸m³]©w«ö¶¥¼h²Õ´¬°¤£¦PªººØÃþ¡Aª½±µ¹ïÀ³¨ì StarsSuite&#153;¡BMozilla&#153;¡BEvolution ©Î Gnome µ¥®à­±À³¥Îµ{¦¡ªº°t¸m¿ï¶µ¡C</p>
+</li>
+<li><p><b>«ö¤@¤U·Q­nªº°t¸m³]©w¡C</b></p><p>·|ÀH§Y¥X²{©Ò¿ï¤§³]©wÀɳ]©w¡AÅã¥Ü¸Ó³]©wÀɪº¥i¥Î³]©w¡C¦p¦³¥²­n¡A·|´£¨Ñªþ¥[¤W¤U¤å¸ê°T¡A¨Ò¦p­Ó§O³]©wªº®ÄªG©Î¥i¤¹³\ªº­È½d³ò¡C</p>
+<p><hr size="1" noshade><p><b>³Æµù &#8211; </b>­Y©Ò¿ï¨úªº¬OºØÃþ¦Ó¤£¬O°t¸m³]©w¡A§Y·|¥X²{¤@­Óªí®æ¡A¦C¥X¸ÓºØÃþªº³]©w©Î¤lºØÃþ¡C</p>
+<hr size="1" noshade></p></li>
+<li><p><b>°w¹ï¨C­Ó°t¸m³]©w¡A±z¥i¥H«ü©w¤@­Ó¨ãÅ骺­È¡A©ÎªÌ¤£©w¸q³]©w¡C</b></p><p>¦pªG¤£©w¸q³]©w¡A³]©wÀɪº³]©w±N¤£·|¼vÅTÀ³¥Îµ{¦¡¡A¸ÓÀ³¥Îµ{¦¡·|¨Ï¥Î¨ä¥X¼t¤º«Øªº¹w³]­È¡C¤@¯ë»¡¨Ó¡A[³]©wÀɽs¿è¾¹] ·|³z¹Lªþ¥[»¡©ú¤å¦r¡A©ÎªÌ (¦pªG¥i¯à) ª½±µ³z¹L³]©w¿ï¶µ²M³æ¤¤ªº°O¸¹¡A¦C¥X¤Î¨Ï¥Î¹w³]­È¡C</p>
+<p><hr size="1" noshade><p><b>³Æµù &#8211; </b>ÁA¸Ñ¦h­Ó³]©wÀÉ¥i¯à·|¼vÅT¦P¤@¦ì¨Ï¥ÎªÌ¬O«Ü­«­nªº¨Æ¡C¨Ò¦p¡A±z¥i¥H¬°¯S©w²Õ´«Ø¥ß¨ã¦³³]©wªº³]©wÀÉ¡C³o¨Ç³]©w·|¦Û°Ê´£¨Ñµ¹¦¹²Õ´ªº©Ò¦³¨Ï¥ÎªÌ¡C¦P²z¡A±z¥i¥H¨Ï¥Î¤l²Õ´ªº°t¸m³]©w¡A¥H©w¸qªþ¥[³]©wÀÉ¡C³o¨Ç³]©w·|Âмg¤÷²Õ´ªº³]©w¡A¨Ò¦p¡A©w¸q¤l²Õ´¤§¤£¦Pªº¥N²z¦øªA¾¹³]©w¡A¦ý¬O¨ä¥L³]©w«hºû«ù¤£ÅÜ¡C¯S©w¨Ï¥ÎªÌªº¦³®Ä³]©w·|±µµÛ¦¨¬°¦X¨Öµ{§Çªºµ²ªG¡A¦¹¦X¨Öµ{§Ç¥]§t©Ò¦³«ü©wµ¹²Õ´¡B¤l²Õ´ªº³]©wÀÉ¡A¥H¤Î¥i¯àÁÙ¥]¬A«ü©wµ¹¨Ï¥ÎªÌªº³]©wÀÉ¡C</p>
+<hr size="1" noshade></p><p><hr size="1" noshade><p><b>´£¥Ü &#8211; </b>¦b¬Y¨Ç±¡ªp¤U¡A±z¥i¯à·Q±±¨î¦¹¦X¨Öµ{§Ç¡A¨Ã±j¨î°õ¦æ°t¸m³]©w¡A¥ç§YÅý¨ä¥L³]©wÀɤ£¥i¯àÂмg±zªº³]©w¤Î©w¸q¨ä¥L­È¡C[³]©wÀɽs¿è¾¹] ¥i¬°¨C­Ó³]©w«ü©w·Q­nªº¦X¨Ö¹B§@¤è¦¡¡C¹w³]¬O¨ä¥L¡u³]©wÀÉ¥iÂмg¡v³]©w¡C¨ú®ø¿ï¨ú¦¹¿ï¶µ·|±j¨î°õ¦æ³]©w¡A¥B¨ä¥L³]©wÀɵLªk¦AÂмg±zªº­È¡C</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgou.html b/webconsole/html/zh_TW/help/gbgou.html
new file mode 100644
index 0000000..11ad187
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgou.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¶×¤J³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgou"></A><h3>¶×¤J³]©wÀÉ</h3>
+<h5>¨BÆJ</h5><ol><li><p><b>¿ï¨ú¹ïÀ³¨ì·Q­n¶×¥Xªº³]©wÀɤ§®Ö¨ú¤è¶ô¡C</b></p></li>
+<li><p><b>±q°Ê§@²M³æ¤¤¿ï¾Ü [¶×¥X]¡C</b></p><p>·|ÀH§Y¶}±Ò¹ï¸Ü¤è¶ô¡AÅý±z«ü©wÀÉ®×·Q­n¶×¥Xªº¦ì¸m¡C</p>
+</li>
+<li><p><b>¦b¹ï¸Ü¤è¶ô¤¤¿ï¨ú [Àx¦s¦ÜºÏºÐ] ¿ï¶µ¡A¦A«ö¤@¤U [½T©w]¡C</b></p></li>
+<li><p><b>¿ï¾Ü·Q­nÀx¦s¶×¥XªºÀɮפ§¦ì¸m¡A¦A«ö¤@¤U [½T©w]¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgow.html b/webconsole/html/zh_TW/help/gbgow.html
new file mode 100644
index 0000000..f54a849
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgow.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>½Æ»s»P²¾°Ê³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgow"></A><h3>½Æ»s»P²¾°Ê³]©wÀÉ</h3>
+<h5>¨BÆJ</h5><ol><li><p><b>¿ï¨ú¹ïÀ³¨ì·Q­n½Æ»s©Î²¾°Êªº³]©wÀɤ§®Ö¨ú¤è¶ô¡C</b></p></li>
+<li><p><b>±q°Ê§@²M³æ¤¤¿ï¾Ü [½Æ»s»P²¾°Ê]¡C</b></p><p>·|ÀH§Y¥X²{ [½Æ»s»P²¾°Ê] ºëÆF¡C</p>
+</li>
+<li><p><b>¿í´` [½Æ»s»P²¾°Ê] ºëÆF©Ò´£¨Ñªº«ü¥Ü°õ¦æ§@·~¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgoy.html b/webconsole/html/zh_TW/help/gbgoy.html
new file mode 100644
index 0000000..48a7be7
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgoy.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¤º®e°Ï°ì</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgoy"></A><h3>¤º®e°Ï°ì</h3>
+<p>·í±z¿ï¨ú¤¸¯À®É¡A»P¤¸¯À¬ÛÃöªº¸ê°T·|Åã¥Ü¦b [³]©wÀÉ &#8212; ¾ðª¬µ²ºcÀ˵ø] ­¶­±ªº¤º®e°Ï°ì¤¤¡C¤º®e°Ï°ì³Ì¦h¥]§t¤T­Óªí®æ¡G</p>
+<ul><li><p>[«ü©wªº³]©wÀÉ] ªí®æ¡G¤@«ß·|Åã¥Ü¦¹ªí®æ¡C¦¹ªí®æÅã¥Ü«ü©wµ¹¥Ø«e©Ò¿ïªº¤¸¯À¤§³]©wÀÉ¡C¦@¥]§t¤TÄæ¡G¦WºÙ¡B§@ªÌ©M¤W¦¸­×§ï¤é´Á¡C[¤W¦¸­×§ï¤é´Á] Ä檺­È¥u¦³¦b³]©wÀɪº³]©w¦³©ÒÅܧó®É¡A¤~·|Åܧó¡F¦ý¬O¦pªG¬O³]©wÀÉ¥»¨­­«·s©R¦W¡B²¾°Ê©Î­«·s±Æ¦CÀu¥ý¶¶§Ç®É¡A«h¤£·|Åܧó¡C</p>
+<p>[«ü©wªº³]©wÀÉ] ªí®æ¥iÅý±z°õ¦æ¤U¦C°Ê§@¡G</p>
+<ul><li><p><A HREF="gbgni.html#gbgni">«Ø¥ß·sªº³]©wÀÉ</A></p>
+</li>
+<li><p><A HREF="gbgpr.html#gbgpr">§R°£³]©wÀÉ</A></p>
+</li>
+<li><p><A HREF="gbgpn.html#gbgpn">«ü©w³]©wÀÉ</A></p>
+</li>
+<li><p><A HREF="gbgqj.html#gbgqj">¨ú®ø«ü©w³]©wÀÉ</A></p>
+</li>
+<li><p><A HREF="gbgpw.html#gbgpw">­«·s©R¦W³]©wÀÉ</A></p>
+</li>
+<li><p><A HREF="gbgqf.html#gbgqf">½Æ»s»P²¾°Ê³]©wÀÉ</A></p>
+</li>
+<li><p><A HREF="gbgps.html#gbgps">¶×¤J³]©wÀÉ</A></p>
+</li>
+<li><p><A HREF="gbgqh.html#gbgqh">¶×¥X³]©wÀÉ</A></p>
+</li>
+</ul>
+</li>
+<li><p>[Ä~©Óªº³]©wÀÉ] ªí®æ¡G¥u¦³¦b¶¥¼h¤¤©Ò¿ï¤¸¯À¤W¤èªº¥ô¦ó¤¸¯À¦³«ü©wªº³]©wÀɮɡA¤~·|Åã¥Ü¦¹ªí®æ¡Cªí®æ¤¤·|¦C¥X¦¹³]©wÀÉ¡C¨ä¥]§t¨âÄæ¡G¦WºÙ©M«ü©w¥Ø¼Ð¡C[«ü©w¥Ø¼Ð] ·|Åã¥Ü«ü©w¤F¸Ó³]©wÀɤ§¤¸¯Àªº¸ô®|©M¦WºÙ¡C</p>
+</li>
+<li><p>[¨Ï¥ÎªÌ] ©Î [¨¤¦â] ªí®æ¡G¿ï¨ú¡u¨Ï¥ÎªÌ¡v©Î¡u¨¤¦â¡vÃþ«¬ªº¤¸¯À®É¡A§Y·|¥X²{¦¹ªí®æ¡C¦pªG¤¸¯À¬°¦Ü¤Ö¨ã³Æ¤@­Ó¨¤¦â¦¨­ûªº¨Ï¥ÎªÌ¡A«h³o¨Ç¨¤¦â·|Åã¥Ü¦b [¨¤¦â] ªí®æ¤¤¡C¦pªG¤¸¯À¬O¨ã¦³¦h­Ó¦¨­ûªº¨¤¦â¡A«h³o¨Ç¦¨­û·|Åã¥Ü¦b [¨Ï¥ÎªÌ] ªí®æ¤¤¡C</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgoz.html b/webconsole/html/zh_TW/help/gbgoz.html
new file mode 100644
index 0000000..d6c39cc
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgoz.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>À˵ø¦³®Ä³]©w</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgoz"></A><h3>À˵ø¦³®Ä³]©w</h3>
+<p>[¦³®Ä³]©w] ¬O²Õ´¡Bºô°ì©Î¥D¾÷µ¥«ü©wªº¤¸¯À¤§¦³®Ä°t¸m³]©wªº°ßŪÀ˵ø¡C</p>
+<p>¯S©w¨Ï¥ÎªÌªº¦³®Ä³]©w¬O¦X¨Öµ{§Çªºµ²ªG¡A¥]§tÀx¦s¦b¬ÛÃöªº²Õ´¼h¯Å¡B¨¤¦â©M¨Ï¥ÎªÌªº°t¸m³]©w¡C±z¥i¥H¦b¿W¥ßªº [¦³®Ä³]©w] µøµ¡¤¤¡AÅã¥Ü©Ò¿ï¤¸¯Àªº¦X¨Ö°t¸m³]©w¡C¨ä¥iÅý±z»´ÃP¶i¦æÅçÃÒ©M°£¿ù¡C[¦³®Ä³]©w] ³ø§i¤]¥i¥H¦C¦L¤ÎÀx¦s¡A¥H¨ÑÂkÀÉ¡C</p>
+<h5>¨BÆJ</h5><ol><li><p><b>«ö¤@¤U [«ü©wªº³]©wÀÉ] ªí®æ¤¤ªº [¦³®Ä³]©w] «ö¶s¡C</b></p><p>²Ä¤@¦¸¶}±Ò®É¡A·|Åã¥ÜÂsÄý¾ðª¬µ²ºc¤¤©Ò¿ï¤¸¯À¤§¦³®Ä³]©w¡C</p>
+<p>[¦³®Ä³]©w] µøµ¡¥]§t¤U¦C¨â°Ï¬q¡G</p>
+<ul><li><p>¦b [­×§ï¦³®Ä³]©w°Ñ¼Æ] °Ï¬qªº [¨Ï¥Î¤U¦C¾ðª¬µ²ºc¥H«Ø¥ß¦³®Ä³]©w] °Ï°ì¡A¥iÅý±z¿ï¾Ü­n¨Ï¥Îªº¾ðª¬µ²ºc¡C[±qºô°ì¾ðª¬µ²ºc¿ï¨ú¤¸¯À] ¿ï¶µ¥iÅý±z¿ï¾Ü­n²£¥Í [¦³®Ä³]©w] ³ø§iªº¹êÅé¡C¨Ï¥Î [ÂsÄý] «ö¶s¦b²Õ´©Îºô°ì¾ðª¬µ²ºc¤¤¿ï¨ú¤¸¯À¡C</p>
+</li>
+<li><p>[¦³®Ä³]©w] °Ï¬qÅã¥Ü¤U¦C¶µ¥Ø¡G</p>
+<ul><li><p>©Ò¿ï¤¸¯À¦b¶¥¼h¤¤ªº¦ì¸m¥H¤Î¥D¾÷¦WºÙ¡C</p>
+</li>
+<li><p>¥Ø«e¦³®Ä³]©w³ø§i²£¥Íªº®É¶¡»P¤é´Á¡C</p>
+</li>
+<li><p>¦b [¬ÛÃöªº³]©wÀÉ] °Ï¬q¤¤¡A»P²£¥Í¥Ø«e¤¸¯À¤§¦³®Ä³]©w³ø§i¬ÛÃöªº³]©wÀɤ§²M³æ¡C³o¨Ç³]©wÀÉ·|¥H³Ì¬ÛÃö¨ì³ÌµLÃöªº¦X¨Ö¶¶§Ç¦C¥X¡C¨C­Ó³]©wÀɧ¡¬°¶}±Ò³]©wÀɤ§ [³]©wÀɽs¿è¾¹] µøµ¡ªº³sµ²¡C</p>
+</li>
+<li><p>[³]©wºK­n] °Ï°ì·|Åã¥Ü¥Ø«e¦³®Ä³]©w³ø§iªº°t¸m³]©w¡A¨Ã·|¤À²Õ¬°¤£¦PºØÃþ¡C[³]©wºK­n] ¥]§t [¦WºÙ]¡B[­È] ©M [ª¬ºA] Äæ¦ì¡C</p>
+<p>[ª¬ºA] Äæ¥]§t¡u¤w¦b &lt;profileName> ¤¤©w¸q¡v¤§Ãþ«¬ªº¶µ¥Ø¡A&lt;profileName> ³sµ²¥i¶}±Ò¦ì©ó [°t¸m³]©w] ¼ÐÅÒ¤W¸Ó³]©wÀɤ§ [³]©wÀɽs¿è¾¹]¡A¨Ã¾É¤Þ±z¦Ü¦¹³]©wÀɤºªº¬Y­Ó³]©w¡C</p>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li><p><b>±z¥iÂÇ¥ÑÅܧó¥ô¦ó¬ÛÃöªº¦³®Ä³]©w°Ñ¼Æ¡AµM«á«ö¤@¤U [¦³®Ä³]©w] µøµ¡³»ºÝªº [²£¥Í¦³®Ä³]©w] «ö¶s¡A¥H­×§ï²£¥Íªº¦³®Ä³]©w³ø§i¡C</b></p><p>·s³ø§i·|±µµÛÅã¥Ü¦b [¦³®Ä³]©w] µøµ¡¤¤¡C</p>
+</li>
+<li><p><b>­Y­n¦C¦L¦³®Ä³]©w³ø§i¡A½Ð«ö¤@¤U [¦³®Ä³]©w] µøµ¡³»ºÝ©Î©³ºÝªº [¦C¦L] «ö¶s¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgpa.html b/webconsole/html/zh_TW/help/gbgpa.html
new file mode 100644
index 0000000..a2004bc
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgpa.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>·j´M¤¸¯À</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpa"></A><h4>·j´M¤¸¯À</h4>
+<p>[·j´M] ¥\¯à¥iÅý±z¦bºô°ì©Î²Õ´¶¥¼h¤¤»¼°j¦a·j´M¤¸¯À¡C¥¦¤£¥u·|·j´M¤¸¯Àªºª½±µ¤l¨t¡AÁÙ·|·j´M©Ò¦³ªº¤l¨t¡C­Y¥u­n·j´M¤¸¯Àªºª½±µ¤l¨t¡A½Ð¨Ï¥Î [´M§ä] ¥\¯à¡C</p>
+<p>·j´M·|¶}±Ò [·j´M] µøµ¡¡A¸Óµøµ¡ÁÙ¥iÅý±z°õ¦æ§ó¶i¶¥ªº·j´M¡C</p>
+<h5>¨BÆJ</h5><ol><li><p><b>¦b·j´MÄæ¦ì¤¤Áä¤J±z·Q­n·j´Mªº¤¸¯À¤§¦WºÙ©Î³¡¤À¦WºÙ¡C</b></p><p><hr size="1" noshade><p><b>³Æµù &#8211; </b>·j´M¤£°Ï¤À¤j¤p¼g¥B¤£ÄY®æ¡F¨Ò¦p¡A·j´M¦r¦ê¡ubc¡v·|§ä¥X¡uABC¡v©M¡ubcd¡v¡C¬P¸¹ (*) ªí¥Ü·j´M¦r¦ê¤ºªº¦r¤¸¥i¬°¥ô·N¶¶§Ç¡C±z¥i¥H¦b¸Ó¦r¦ê¤¤ªº¥ô¦ó¦ì¸m¨Ï¥Î¦h­Ó¬P¸¹¡CªÅ¥ÕÄæ¦ìµ¥®Ä©ó±a¦³·j´M¦r¦ê * ªºÄæ¦ì¡C</p>
+<hr size="1" noshade></p></li>
+<li><p><b>«ö¤@¤U [·j´M] «ö¶s¡C</b></p><p>[·j´M] µøµ¡¶}±Ò¡C¦b [ÂsÄý] °Ï°ìªº·j´MÄæ¦ìÁä¤Jªº¥ô¦ó¦r¦ê¡A§¡·|±q¸Ó·j´MÄæ¦ì²¾¦Ü [·j´M] µøµ¡ªº·j´MÄæ¦ì¡A¥B·|¦Û°Ê¶}©l·j´M¸Ó¦r¦ê¡C±µµÛ¡A·|¦bµ²ªGªí®æ¤¤Åã¥Ü©Ò¦³µ²ªG¡A¥]§t©Ò¦³§ä¨ìªº¤¸¯À¤§¦WºÙ¡BÃþ«¬©M¸ô®|¡C</p>
+<p><hr size="1" noshade><p><b>³Æµù &#8211; </b>µ²ªG¼Æ¥Ø¤W­­¬° 100¡C</p>
+<hr size="1" noshade></p><p>¦pªG§ä¤£¨ì¥ô¦óµ²ªG¡A©ÎªÌ¦pªG [ÂsÄý] °Ï°ìªº·j´MÄæ¦ì¯d¥Õ¡A«h¥i¥H¦b [·j´M] µøµ¡ªº·j´MÄæ¦ì¤¤Áä¤J¤¸¯Àªº¦WºÙ¡C</p>
+<p><hr size="1" noshade><p><b>´£¥Ü &#8211; </b>¨Ï¥Î¦ì©ó·j´MÄæ¦ì®ÇÃ䪺Ãþ«¬­×¹¢Áä²M³æ¡A·j´M¯S©w¤¸¯ÀÃþ«¬¡A¨Ò¦p¡u·j´Mºô°ì¡v¡C</p>
+<hr size="1" noshade></p></li>
+<li><p><b>¦p¦³¥²­n¡A½Ð«ö¤@¤U [Åã¥Ü¶i¶¥¿ï¶µ] «ö¶s¡A¦b·j´M¤¤¼W¥[¶i¶¥¿ï¶µ¡C</b></p><p>¶i¶¥¿ï¶µ¥]§t¤U¦C¶µ¥Ø¡G</p>
+<ul><li><p>­­¨î¦b¡G±z¥i¥H¨M©w·j´Mºtºâªk­n¥Ñ¦ó¤¸¯À¶}©l¹M¾ú¾ã­Ó¾ðª¬µ²ºc¡C</p>
+</li>
+<li><p>¨C­¶Åã¥Üµ²ªG¼Æ¥Ø¡G¥iÅý±z¨M©wµ²ªGªí®æ¨C­¶©ÒÅã¥Üªºµ²ªG¼Æ¥Ø¡C</p>
+</li>
+</ul>
+</li>
+<li><p><b>¦A«ö¤@¦¸ [·j´M] «ö¶s¡A§Y¥iÀ˵ø·sªº©Î­×§ï¹L«áªº·j´Mµ²ªG¡C</b></p><p><hr size="1" noshade><p><b>³Æµù &#8211; </b>«ö¤@¤U [­«³]] «ö¶s¡A±N©Ò¦³·j´M°Ñ¼ÆÅܦ^¹w³]­È¡A¨Ã²M°£ [·j´M] Äæ¦ì¡C</p>
+<hr size="1" noshade></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgpb.html b/webconsole/html/zh_TW/help/gbgpb.html
new file mode 100644
index 0000000..6169ec8
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgpb.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>«ü©w³]©wÀɪº¤@¯ë¯S©Ê</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpb"></A><h4>«ü©w³]©wÀɪº¤@¯ë¯S©Ê</h4>
+<h5>¨BÆJ</h5><ol><li><p><b>¦b [¦WºÙ] Äæ¦ì¤¤¡AÁä¤J·Q­nªº³]©wÀɦWºÙ¡C</b></p></li>
+<li><p><b>¦b [µùÄÀ] Äæ¦ì¤¤¡A¼W¥[¥ô¦óµùÄÀ¡C</b></p><p>±z¥i¥H±N [µùÄÀ] Äæ¦ì«O¯dªÅ¥Õ¡C</p>
+<p><hr size="1" noshade><p><b>³Æµù &#8211; </b>[§@ªÌ] ©M [¤W¦¸­×§ï¤é´Á] ¬°°ßŪÄæ¦ì¡AµLªk­×§ï¡C[§@ªÌ] Äæ¦ì·|Åã¥Ü³]©wÀɪº§@ªÌ¡A[¤W¦¸­×§ï¤é´Á] Äæ¦ì«h·|Åã¥Ü«e¦¸­×§ïªº¤é´Á©M®É¶¡¡C</p>
+<hr size="1" noshade></p></li>
+<li><p><b>«ö¤@¤U [Àx¦s] «ö¶s¡C</b></p><p>¦pªG¦bÀx¦s¥ô¦ó·s¸ê°T«e´NÃö³¬µøµ¡¡A«h·|¥X²{ĵ§i¹ï¸Ü¤è¶ô¡A´£¥Ü±zÀx¦s³]©w¡C</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgpe.html b/webconsole/html/zh_TW/help/gbgpe.html
new file mode 100644
index 0000000..2520070
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgpe.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>§R°£³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpe"></A><h3>§R°£³]©wÀÉ</h3>
+<h5>¨BÆJ</h5><ol><li><p><b>¿ï¨ú¹ïÀ³¨ì·Q­n§R°£ªº³]©wÀɤ§®Ö¨ú¤è¶ô¡C</b></p></li>
+<li><p><b>«ö¤@¤U [§R°£] «ö¶s¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgpj.html b/webconsole/html/zh_TW/help/gbgpj.html
new file mode 100644
index 0000000..fb4fa86
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgpj.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¶×¤J³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpj"></A><h3>¶×¤J³]©wÀÉ</h3>
+<h5>¨BÆJ</h5><ol><li><p><b>½T©w¤w¨ú®ø¿ï¨ú©Ò¦³ªº®Ö¨ú¤è¶ô¡C</b></p></li>
+<li><p><b>±q°Ê§@²M³æ¤¤¿ï¾Ü [¶×¤J]¡C</b></p><p>·|ÀH§Y¥X²{ [¶×¤J³]©wÀÉ] ¹ï¸Ü¤è¶ô¡C</p>
+</li>
+<li><p><b>¿é¤J·Q­n¶×¤JªºÀɮ׸ô®|¡A©Î«ö¤@¤U [ÂsÄý] «ö¶s¡A±q§@·~¨t²Îªº¹w³]Àɮ׿ï¾Ü¾¹¹ï¸Ü¤è¶ô¤¤¿ï¾Ü¤@­ÓÀɮסC</b></p></li>
+<li><p><b>«ö¤@¤U [¶×¤J] «ö¶s¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgpm.html b/webconsole/html/zh_TW/help/gbgpm.html
new file mode 100644
index 0000000..65b2848
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgpm.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>±N¤¸¯À«ü©wµ¹³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpm"></A><h4>±N¤¸¯À«ü©wµ¹³]©wÀÉ</h4>
+<h5>¨BÆJ</h5><ol><li><p><b>«ö¤@¤U [«ü©w¤¸¯À] «ö¶s¡C</b></p><p>·|ÀH§Y¥X²{¤@­Ó¥]§tÂsÄý¾ðª¬µ²ºcªºµøµ¡¡C</p>
+</li>
+<li><p><b>ÂsÄý¾ðª¬µ²ºc¡A¨Ã¿ï¨ú·Q­nªº¤¸¯À¡C</b></p><p><hr size="1" noshade><p><b>´£¥Ü &#8211; </b>¦pªG¦b¾ðª¬µ²ºc¤¤§ä¤£¨ì·Q­nªº¤¸¯À¡A¥i¥H«ö¤@¤U [·j´M] «ö¶s¶}±Ò [·j´M] µøµ¡¡A¨Ã´M§ä¤¸¯À¡C</p>
+<hr size="1" noshade></p><p>«ü©wµ¹¥Ø«e³]©wÀɪº¤¸¯À·|ÀH§Y¥X²{¦b [«ü©wªº¤¸¯À] ªí®æ¤¤¡C</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgpn.html b/webconsole/html/zh_TW/help/gbgpn.html
new file mode 100644
index 0000000..597458c
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgpn.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>«ü©w³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpn"></A><h4>«ü©w³]©wÀÉ</h4>
+<h5>¨BÆJ</h5><ol><li><p><b>«ö¤@¤U [«ü©w³]©wÀÉ] «ö¶s¡C</b></p><p>·|ÀH§Y¶}±Ò¹ï¸Ü¤è¶ô¡A¦C¥X©Ò¦³¥i¥H«ü©wµ¹©Ò¿ï¤¸¯Àªº¥i¥Î³]©wÀÉ¡C</p>
+<p><hr size="1" noshade><p><b>³Æµù &#8211; </b>¤w¸g«ü©wµ¹©Ò¿ï¤¸¯À¤§³]©wÀÉ¡A¥H¤Î¤£¬OÀx¦s¦b¥Ø«e©Ò¿ï¤¸¯À©Î¨ä¶¥¼h¤§¤Wªº³]©wÀÉ¡A§¡¤£·|¦C¥X¡C</p>
+<hr size="1" noshade></p></li>
+<li><p><b>±q¦C¥Xªº³]©wÀɤ¤¿ï¨ú¤@©Î¦h­Ó¡A¦A«ö¤@¤U [½T©w]¡C</b></p><p>­è«ü©wªº³]©wÀɲ{¦b·|¥X²{¦b [«ü©wªº³]©wÀÉ] ªí®æ¤¤¡C</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgpp.html b/webconsole/html/zh_TW/help/gbgpp.html
new file mode 100644
index 0000000..b09e2a2
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgpp.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>±q³]©wÀɨú®ø«ü©w¤¸¯À</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpp"></A><h4>±q³]©wÀɨú®ø«ü©w¤¸¯À</h4>
+<h5>¨BÆJ</h5><ol><li><p><b>¿ï¨ú¹ïÀ³¨ì·Q­n¨ú®ø«ü©wªº¤¸¯À¤§®Ö¨ú¤è¶ô¡C</b></p></li>
+<li><p><b>«ö¤@¤U [¨ú®ø«ü©w¤¸¯À] «ö¶s¡C</b></p><p>¦p¦¹¸Ó¤¸¯À§Y¤£·|«ü©wµ¹¥Ø«eªº³]©wÀÉ¡A¥B·|±q [«ü©wªº¤¸¯À] ªí®æ¤¤®ø¥¢¡C</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgpr.html b/webconsole/html/zh_TW/help/gbgpr.html
new file mode 100644
index 0000000..81a4398
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgpr.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>§R°£³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpr"></A><h4>§R°£³]©wÀÉ</h4>
+<h5>¨BÆJ</h5><ol><li><p><b>¿ï¨ú¹ïÀ³¨ì·Q­n§R°£ªº³]©wÀɤ§®Ö¨ú¤è¶ô¡C</b></p><p>¿Ã¹õ¤W±N·|Åã¥Ü½T»{¹ï¸Ü¤è¶ô¡C</p>
+<hr size="1" noshade><p><IMG ALT="ª`·N" src="graphics/caution.gif"> <b>ª`·N &ndash; </b>±z¥²¶·ÁA¸Ñ¡A[§R°£] §@·~·|²¾°£©Ò¦³«ü©w¡AµM«á§¹¥þ§R°£³]©wÀÉ¡C±zµLªkÂ^¨ú³]©wÀÉ¡A¦]¬°¥¦¤w¸g¤£¦s¦b¡C§R°£³]©wÀÉ·|³y¦¨¥Ø«e¤¸¯À®Çªº¨ä¥L¤¸¯À«ü©w¤]¾D¨ì²¾°£¡C­Y¥u­n±q¤@­Ó¤¸¯À²¾°£¤@­Ó³]©wÀÉ«ü©w¡A½Ð¨Ï¥Î [¨ú®ø«ü©w]¡C</p><hr size="1" noshade></li>
+<li><p><b>«ö¤@¤U [§R°£] «ö¶s¡C</b></p></li>
+<li><p><b>­Y¯uªº·Q­n§R°£³]©wÀÉ¡A½Ð¦b½T»{¹ï¸Ü¤è¶ô¤¤«ö¤@¤U [½T©w] «ö¶s¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgps.html b/webconsole/html/zh_TW/help/gbgps.html
new file mode 100644
index 0000000..2664279
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgps.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¶×¤J³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgps"></A><h4>¶×¤J³]©wÀÉ</h4>
+<h5>¨BÆJ</h5><ol><li><p><b>½T©w¤w¨ú®ø¿ï¨ú©Ò¦³ªº®Ö¨ú¤è¶ô¡C</b></p></li>
+<li><p><b>±q°Ê§@²M³æ¤¤¿ï¾Ü [¶×¤J]¡C</b></p><p>·|ÀH§Y¥X²{ [¶×¤J³]©wÀÉ] ¹ï¸Ü¤è¶ô¡C</p>
+</li>
+<li><p><b>¿é¤J·Q­n¶×¤JªºÀɮ׸ô®|¡A©Î«ö¤@¤U [ÂsÄý] «ö¶s¡A±q§@·~¨t²Îªº¹w³]Àɮ׿ï¾Ü¾¹¹ï¸Ü¤è¶ô¤¤¿ï¾Ü¤@­ÓÀɮסC</b></p></li>
+<li><p><b>«ö¤@¤U [¶×¤J] «ö¶s¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgpt.html b/webconsole/html/zh_TW/help/gbgpt.html
new file mode 100644
index 0000000..1a97e01
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgpt.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>°t¸mÀx¦s®wªí®æ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpt"></A><h3>°t¸mÀx¦s®wªí®æ</h3>
+<p>[°t¸mÀx¦s®w] ªí®æ¥]§t¤­Äæ¡G</p>
+<ul><li><p>[¿ï¾Ü] Äæ¥]§t¥i¿ï¨úÀx¦s®wªº®Ö¨ú¤è¶ô</p>
+<p>¸g¥Ñ¿ï¨ú¤@©Î¦h­ÓÀx¦s®w¡A·|±Ò¥Î [²¾°£]¡B[­«·s©R¦W] ©M [¦P¨B¤Æ] ¥\¯à¡C</p>
+<p><hr size="1" noshade><p><b>³Æµù &#8211; </b>¿ï¨úÀx¦s®w·|°±¥Î [·s¼W] «ö¶s¡C</p>
+<hr size="1" noshade></p></li>
+<li><p>¦WºÙ¡G¥]§tÀx¦s®wªº¦WºÙ</p>
+<p>[¦WºÙ] Ä檺¤º®e¬O³sµ²¡C¦pªG±z«ö¤@¤U¨ä¤¤¤@­Ó³sµ²¡A©Ò¿ïÀx¦s®wªº [³]©wÀɽs¿è¾¹] ­¶­±·|´À¥N [°t¸mÀx¦s®w] À˵ø¡C</p>
+</li>
+<li><p>Ãþ«¬¡G¥i¥H¬O¤U¦C¤TºØÃþ«¬¤§¤@¡GLDAP «¬¡BÀɮ׫¬©Î²V¦X«¬</p>
+<ul><li><p>LDAP «¬¡GLDAP «¬Àx¦s®w±q LDAP ¦øªA¾¹Åª¨ú¤½¥qªº²Õ´µ²ºc (¨Ï¥ÎªÌ¡B²Õ´¡B¥D¾÷¡Bºô°ìµ¥)¡A¦A¨Ï¥Î¬Û¦Pªº LDAP ¦øªA¾¹Åª¨ú/¼g¤J°t¸m³]©w¡C</p>
+</li>
+<li><p>Àɮ׫¬¡GÀɮ׫¬Àx¦s®w±qÀɮרt²ÎŪ¨ú¤½¥qªº²Õ´µ²ºc¡A¦A¨Ï¥Î¬Û¦PªºÀɮרt²ÎŪ¨ú/¼g¤J°t¸m³]©w¡C</p>
+</li>
+<li><p>²V¦X«¬¡G²V¦X«¬Àx¦s®w±q LDAP ¦øªA¾¹Åª¨ú¤½¥qªº²Õ´µ²ºc¡AµM«áŪ¨ú/¼g¤J°t¸m³]©w¨ìÀɮרt²Î¤¤¡C</p>
+</li>
+</ul>
+</li>
+<li><p>²Õ´¸ê®Æªº¦ì¸m¡G¦pªG¬OÀɮ׫¬Àx¦s®w¡A«h¬OÀɮסF¦pªG¬O LDAP «¬©Î²V¦X«¬Àx¦s®w¡A«h¬O LDAP URL¡C«ü©w²Õ´¸ê®ÆªºÀx¦s¦ì¸m¡C</p>
+</li>
+<li><p>³]©wÀɸê®Æªº¦ì¸m¡G¦pªG¬OÀɮ׫¬Àx¦s®w¡A«h¬OÀɮסF¦pªG¬O LDAP «¬©Î²V¦X«¬Àx¦s®w¡A«h¬O LDAP URL¡C«ü©w°t¸m³]©wªºÀx¦s¦ì¸m¡C³]©wÀɬO°t¸m³]©wªº¤w©R¦W¶°¦X¡A«ü©wµ¹¨Ï¥ÎªÌ¡B²Õ´¡B¥D¾÷©Mºô°ì¡C</p>
+</li>
+</ul>
+<p>±z¥i¥H¦b [°t¸mÀx¦s®w] ªí®æ¤º°õ¦æ¤U¦C°Ê§@¡G</p>
+<ul><li><p><A HREF="gbgcn.html#gbgcn">·s¼W</A>¡G«Ø¥ß·sªº°t¸mÀx¦s®w</p>
+</li>
+<li><p>²¾°£¡G²¾°£²{¦³ªº°t¸mÀx¦s®w</p>
+</li>
+<li><p>­«·s©R¦W¡G­«·s©R¦W°t¸mÀx¦s®w</p>
+</li>
+<li><p><A HREF="gbgqm.html#gbgqm">¦P¨B¤Æ</A>¡G¦P¨B¤Æ°t¸mÀx¦s®w</p>
+<p>¦¹¥\¯à¥u¦³¦b¿ï¨ú¤@©Î¨â­ÓÀx¦s®w®É¤~·|±Ò¥Î</p>
+</li>
+</ul>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgpu.html b/webconsole/html/zh_TW/help/gbgpu.html
new file mode 100644
index 0000000..6f3c463
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgpu.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>­«·s©R¦W³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpu"></A><h3>­«·s©R¦W³]©wÀÉ</h3>
+<h5>¨BÆJ</h5><ol><li><p><b>¿ï¨ú¹ïÀ³¨ì·Q­n­«·s©R¦Wªº³]©wÀɤ§®Ö¨ú¤è¶ô¡C</b></p></li>
+<li><p><b>±q°Ê§@²M³æ¤¤¿ï¾Ü [­«·s©R¦W]¡C</b></p><p>·|¥X²{¤@­Ó¹ï¸Ü¤è¶ô¡C</p>
+</li>
+<li><p><b>¦b¹ï¸Ü¤è¶ôªº¤å¦rÄæ¦ì¤¤Áä¤J·sªº³]©wÀɦWºÙ¡A¦A«ö¤@¤U [½T©w]¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgpw.html b/webconsole/html/zh_TW/help/gbgpw.html
new file mode 100644
index 0000000..64cc27d
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgpw.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>­«·s©R¦W³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgpw"></A><h4>­«·s©R¦W³]©wÀÉ</h4>
+<h5>¨BÆJ</h5><ol><li><p><b>¿ï¨ú¹ïÀ³¨ì·Q­n­«·s©R¦Wªº³]©wÀɤ§®Ö¨ú¤è¶ô¡C</b></p></li>
+<li><p><b>±q°Ê§@²M³æ¤¤¿ï¾Ü [­«·s©R¦W]¡C</b></p><p>·|ÀH§Y¶}±Ò [­«·s©R¦W] ¹ï¸Ü¤è¶ô¡C</p>
+</li>
+<li><p><b>¦b¹ï¸Ü¤è¶ôªº¤å¦rÄæ¦ì¤¤Áä¤J·sªº³]©wÀɦWºÙ¡A¦A«ö¤@¤U [½T©w]¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgqa.html b/webconsole/html/zh_TW/help/gbgqa.html
new file mode 100644
index 0000000..85e98a7
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgqa.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>°t¸mÀx¦s®wµøµ¡</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqa"></A><h2>°t¸mÀx¦s®wµøµ¡</h2>
+<p>°t¸mÀx¦s®w¤£¶È¬O°t¸mÀ³¥Îµ{¦¡©Ò»Ý¤§°t¸m¸ê®ÆªºÀx¦s¦ì¸m¡A¦P®É¤]¬O²Õ´¶¥¼h¸ê°T»P¦U¤¸¯Àªº³]©wÀÉ©M«ü©w¸ê®Æ¤§Àx¦s¦ì¸m¡C¦b [°t¸mÀx¦s®w] µøµ¡¤¤¡A¤£¶È¥i«Ø¥ß·sªºÀx¦s®w¡AÁÙ¥i¨Ï¥Î¨Ã¦P¨B¤Æ²{¦³ªºÀx¦s®w¡C</p>
+<p>[°t¸mÀx¦s®w] µøµ¡¥Ñ¥D¼ÐÀY©M [°t¸mÀx¦s®w] ²M³æ©Ò²Õ¦¨¡C</p>
+<p>¥D¼ÐÀY´£¨Ñ¼Æ­Ó¤@¯ë³sµ²¡C¥D¼ÐÀYªº¤W¥b³¡¥]§t¤½¥Îµ{¦¡¦C¡A¸Ó¤½¥Îµ{¦¡¦C¥]§t¥|­Ó³sµ² (±q¥ª¦Ü¥k)¡G</p>
+<ul><li><p>[¥D±±¥x] «ö¶s¥i¶}±Ò Java Web Console ±Ò°Ê­¶­±¡C</p>
+</li>
+<li><p>[ª©¥»] «ö¶s¶}±Òªºµøµ¡·|Åã¥Ü¦³Ãö Desktop Manager ªºª©¥»¸ê°T¡C</p>
+</li>
+<li><p>[µn¥X] «ö¶s¥iÅý±z¨Ì§Çµn¥X Java Web Console ©M Configuration Manager¡A±q¦Óªð¦^ [µn¤J] ­¶­±¡C</p>
+</li>
+<li><p>[»¡©ú] «ö¶s¥i¶}±Ò½u¤W»¡©ú­¶­±¡C</p>
+</li>
+</ul>
+<p>¥D¼ÐÀYªº¤U¥b³¡«h¥]§t²£«~¦WºÙ¡B¦øªA¾¹¦WºÙ©M¥Ø«eµn¤JªººÞ²z­û¦WºÙ¡C</p>
+<p>½Ð°Ñ¾\<A HREF="gbgpt.html#gbgpt">°t¸mÀx¦s®wªí®æ</A>¡B<A HREF="gbgcn.html#gbgcn">«Ø¥ß·sªº°t¸mÀx¦s®w</A></p>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgqe.html b/webconsole/html/zh_TW/help/gbgqe.html
new file mode 100644
index 0000000..4088690
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgqe.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>«ü©w³]©wÀɦX¨Ö¶¶§Ç</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqe"></A><h4>«ü©w³]©wÀɦX¨Ö¶¶§Ç</h4>
+<h5>¨BÆJ</h5><ol><li><p><b>¦b [¤w¿ï¨ú] ²M³æ¤¤¿ï¨ú©Ò­nªº³]©wÀÉ¡C</b></p></li>
+<li><p><b>¨Ï¥Î²M³æ¥k°¼ªº«ö¶s¡A¦b²M³æ¤º¤W¤U²¾°Ê³]©wÀÉ¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgqf.html b/webconsole/html/zh_TW/help/gbgqf.html
new file mode 100644
index 0000000..17fb771
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgqf.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>½Æ»s»P²¾°Ê³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqf"></A><h4>½Æ»s»P²¾°Ê³]©wÀÉ</h4>
+<h5>¨BÆJ</h5><ol><li><p><b>¿ï¨ú¹ïÀ³¨ì·Q­n½Æ»s©Î²¾°Êªº³]©wÀɤ§®Ö¨ú¤è¶ô¡C</b></p></li>
+<li><p><b>±q [°Ê§@] ²M³æ¤¤¿ï¾Ü [½Æ»s»P²¾°Ê]¡C</b></p><p>·|ÀH§Y¶}±Ò [½Æ»s»P²¾°Ê] ºëÆF¡C</p>
+</li>
+<li><p><b>¿í´` [½Æ»s»P²¾°Ê] ºëÆF©Ò´£¨Ñªº«ü¥Ü°õ¦æ§@·~¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgqh.html b/webconsole/html/zh_TW/help/gbgqh.html
new file mode 100644
index 0000000..2138237
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgqh.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¶×¥X³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqh"></A><h4>¶×¥X³]©wÀÉ</h4>
+<h5>¨BÆJ</h5><ol><li><p><b>¿ï¨ú¹ïÀ³¨ì·Q­n¶×¥Xªº³]©wÀɤ§®Ö¨ú¤è¶ô¡C</b></p></li>
+<li><p><b>±q [°Ê§@] ²M³æ¤¤¿ï¾Ü [¶×¥X]¡C</b></p><p>·|ÀH§Y¶}±Ò¹ï¸Ü¤è¶ôÅý±z«ü©w¶×¥X¸ÓÀɮתº¥Ø¼Ð¦ì¸m¡C</p>
+</li>
+<li><p><b>¿ï¨ú¹ï¸Ü¤è¶ô¤¤ªº [Àx¦s¨ìºÏºÐ] ¿ï¶µ¡AµM«á«ö¤@¤U [½T©w]¡C</b></p></li>
+<li><p><b>¿ï¾ÜÀx¦s¶×¥XÀɮתº¦ì¸m¡AµM«á«ö¤@¤U [½T©w]¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgqj.html b/webconsole/html/zh_TW/help/gbgqj.html
new file mode 100644
index 0000000..0116d68
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgqj.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¨ú®ø«ü©w³]©wÀÉ</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqj"></A><h4>¨ú®ø«ü©w³]©wÀÉ</h4>
+<h5>¨BÆJ</h5><ol><li><p><b>¿ï¨ú¹ïÀ³¨ì·Q­n¨ú®ø«ü©wªº³]©wÀɤ§®Ö¨ú¤è¶ô¡C</b></p></li>
+<li><p><b>«ö¤@¤U [¨ú®ø«ü©w³]©wÀÉ] «ö¶s¡C</b></p><p>¦p¦¹§Y¤w¨ú®ø«ü©w¦¹³]©wÀÉ¡A¨Ã·|±q [«ü©wªº³]©wÀÉ] ªí®æ¤¤®ø¥¢¡C</p>
+<hr size="1" noshade><p><IMG ALT="ª`·N" src="graphics/caution.gif"> <b>ª`·N &#8211; </b>¦]¬°¨S¦³Äµ§i¹ï¸Ü¤è¶ô¡A©Ò¥H­Y¬O»~«ö¤F [¨ú®ø«ü©w³]©wÀÉ] «ö¶s¡A¥i¨Ï¥Î [«ü©w³]©wÀÉ] ¥\¯à¤ÏÂহ°Ê§@¡C</p><hr size="1" noshade></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgqm.html b/webconsole/html/zh_TW/help/gbgqm.html
new file mode 100644
index 0000000..a0419b9
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgqm.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¦P¨B¤Æ°t¸mÀx¦s®w</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqm"></A><h4>¦P¨B¤Æ°t¸mÀx¦s®w</h4>
+<p>¨Ï¥Î Desktop Manager ¥i¥­¦æºÞ²z¦h¶µ«áºÝ¡C¦¹¥\¯à¥iÅý±z©w¸q¤@­Ó¥Î©ó´ú¸Õªº«áºÝ¡A¤@­Ó´£¨Ñ³Ì²×¥Í²£Àô¹Òªº«áºÝ¡C²{¦b¥i¥ý¦b´ú¸Õ«áºÝ¤¤©w¸q»P­pºâ°t¸mÅܧó¡CµM«á±z¥i±N³¡¤À©Î¾ã­Ó´ú¸Õ«áºÝ»P¥Í²£Àô¹Ò«áºÝ¶i¦æ<b>¦P¨B¤Æ</b>¡A±N©Ò»ÝÅܧ󨳳t¥B¦w¥þ¦a®M¥Î¦Ü¥Í²£¨t²Î¡C¦¹¤èªk¥ç¥i¥Î©ó¥Í²£Àô¹Ò«áºÝªºÂ²©ö³Æ¥÷»P´_­ì¾÷¨î¡C[¦P¨B¤Æ] µøµ¡¥iÅý±z°õ¦æ¦¹¶µ¦P¨B¤Æ¡C</p>
+<p></p>
+<h5>¨BÆJ</h5><ol><li><p><b>¦b [°t¸mÀx¦s®w] µøµ¡¤¤¡A¿ï¨ú­n¦P¨B¤ÆªºÀx¦s®w¡C</b></p><p>·|ÀH§Y¶}±Ò [¦P¨B¤Æ] µøµ¡¡C</p>
+</li>
+<li><p><b>±q [¨Ó·½°t¸mÀx¦s®w] ²M³æ¤¤¿ï¨ú¨Ó·½Àx¦s®w¡C</b></p><p>±z¥iÅܧó·í§@Åܧó¨Ó·½ªº¨Ó·½Àx¦s®w¡C¦¹Àx¦s®w<b>¤£·|</b>Åܧó¡C</p>
+</li>
+<li><p>(¥i¿ï¾Ü) <b>«ö¤@¤U [¨Ó·½°_©lÂI] ®Çªº [Åܧó] «ö¶s¡A¥i­­¨î¨Ó·½Àx¦s®w¡C</b></p><p>¦p¦¹¥i«ü©w®Ú¥Ø¿ý¥H¥~ªº¨ä¥L¤¸¯À§@¬°¦P¨B¤Æªº¨Ó·½°_©lÂI¡C</p>
+<p>·|ÀH§Y¶}±Ò¹ï¸Ü¤è¶ô¡AÅý±zÂsÄý¦Ü©Ò­nªº²Õ´©Îºô°ì¤¸¯À¡C¿ï¨ú¤¸¯À«á¡A·sªº¸ô®|§Y·|¤Ï¬M¦b [¨Ó·½°_©lÂI] ¤¤¡C</p>
+</li>
+<li><p><b>±q [¥Ø¼Ð°t¸mÀx¦s®w] ²M³æ¤¤¿ï¨ú¥Ø¼ÐÀx¦s®w¡C</b></p><p>¥iÅܧó·í§@Åܧó¥Ø¼Ðªº¥Ø¼ÐÀx¦s®w¡C¦¹Àx¦s®w<b>·|</b>Åܧó¡C</p>
+</li>
+<li><p>(¥i¿ï¾Ü) <b>«ö¤@¤U [¥Ø¼Ð°_©lÂI] ®Çªº [Åܧó] «ö¶s¡A¥i­­¨î¥Ø¼ÐÀx¦s®w¡C</b></p><p>¦p¦¹¥i«ü©w®Ú¥Ø¿ý¥H¥~ªº¨ä¥L¤¸¯À§@¬°¦P¨B¤Æªº¥Ø¼Ð¡C</p>
+<p>·|ÀH§Y¶}±Ò¹ï¸Ü¤è¶ô¡AÅý±zÂsÄý¦Ü©Ò­nªº²Õ´©Îºô°ì¤¸¯À¡C¿ï¨ú¤¸¯À«á¡A·sªº¸ô®|§Y·|¤Ï¬M¦b [¥Ø¼Ð°_©lÂI] ¤¤¡C</p>
+</li>
+<li><p><b>«ö¤@¤U [¤ñ¸û] «ö¶s¡C</b></p><p>·|ÀH§Y¶}©l¤ñ¸û³o¨â­Ó¾ðª¬µ²ºc¡A¨Ã±N©Ò¦³®t²§¦C¦bªí®æ¤¤¡C</p>
+</li>
+<li><p><b>¿ï¨ú¤º§t­n¦P¨B¤Æ¤§³]©wÀɪºªí®æ¦C®Çªº®Ö¨ú¤è¶ô¡AµM«á«ö¤@¤U [¦P¨B¤Æ] «ö¶s¡C</b></p><p>¦P¨B¤Æ§¹¦¨®É¡A¥Ø¼ÐÀx¦s®w»P¨Ó·½Àx¦s®w¤¤©Ò¿ï¨úªº³]©wÀÉ·|¬Û²Å¡C</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgqt.html b/webconsole/html/zh_TW/help/gbgqt.html
new file mode 100644
index 0000000..b617612
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgqt.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>¨Ï¥Î´M§ä¥\¯à</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqt"></A><h4>¨Ï¥Î´M§ä¥\¯à</h4>
+<p>´M§ä¥\¯à¥iÅý±z¦b©µ¦ù¤¸¯Àªº<b>ª½±µ</b>¤l¨t¤¤§ä¥X©Ò¦³¦X®æªº¤¸¯À¡C³o»P·j´M¥\¯à¤£¦P¡A¦]¬°·j´M¥\¯à´£¨Ñ¤¸¯Àªº»¼°j·j´M¡C</p>
+<h5>¨BÆJ</h5><ol><li><p><b>«ö¤@¤U [ÂsÄý] ¾ðª¬µ²ºc¤¤ªº [¬Y¨Ç¤¸¯À¥¼Åã¥Ü] ¸`ÂI¡C</b></p><p>·|ÀH§Y¶}±Ò [´M§ä] µøµ¡¡C</p>
+</li>
+<li><p><b>¦b [´M§ä] Äæ¦ì¤¤Áä¤J¦r¦ê©Î³¡¤À¦r¦ê¡C</b></p><p>·j´M¤£·|°Ï¤À¤j¤p¼g¥B¤£ÄY®æ¡F¨Ò¦p¡A·j´M¦r¦ê bc ·|§ä¨ì ABC ©M bcd¡C¬P¸¹ (*) ªí¥Ü·j´M¦r¦ê¤ºªº¦r¤¸¥i¬°¥ô·N¶¶§Ç¡C±z¥i¥H¦b·j´M¦r¦ê¤¤ªº¥ô¦ó¦ì¸m¨Ï¥Î¦h­Ó¬P¸¹¡CªÅ¥ÕÄæ¦ìµ¥®Ä©ó±a¦³·j´M¦r¦ê * ªºÄæ¦ì¡C</p>
+</li>
+<li><p><b>«ö¤@¤U [´M§ä] «ö¶s¡C</b></p><p>·|ÀH§YÅã¥Üµ²ªG²M³æ¡Cµ²ªG¼Æ¤W­­¬° 100¡C</p>
+</li>
+<li><p><b>¦bµ²ªG²M³æ¤¤«ö¤@¤U©Ò­nªº¤¸¯À¡A¥i±N§ä¨ìªº¤¸¯À¼W¥[¦Ü [ÂsÄý] ¾ðª¬µ²ºc¡C</b></p><p>[´M§ä] µøµ¡·|ÀH¤§Ãö³¬¡A¦¹¤¸¯À¥ç·|¼W¥[¦Ü [ÂsÄý] ¾ðª¬µ²ºcªº¤l¸`ÂI²M³æ¤¤¡C</p>
+</li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbgqu.html b/webconsole/html/zh_TW/help/gbgqu.html
new file mode 100644
index 0000000..07bfa0d
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbgqu.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>ÅܧóÀ³¥Îµ{¦¡¨Ó·½¦ì¸m</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbgqu"></A><h4>ÅܧóÀ³¥Îµ{¦¡¨Ó·½¦ì¸m</h4>
+<h5>¨BÆJ</h5><ol><li><p><b>«ö¤@¤U [Åܧó] «ö¶s¡C</b></p><p>·|ÀH§Y¥X²{¤@­Ó¥]§tÂsÄý¾ðª¬µ²ºcªºµøµ¡¡C</p>
+</li>
+<li><p><b>ÂsÄý¾ðª¬µ²ºc¡A¨Ã¿ï¨ú·Q­nªº¤¸¯À¡C</b></p><p><hr size="1" noshade><p><b>´£¥Ü &#8211; </b>¦pªG¦b¾ðª¬µ²ºc¤¤§ä¤£¨ì·Q­nªº¤¸¯À¡A¥i¥H«ö¤@¤U [·j´M] «ö¶s¶}±Ò [·j´M] µøµ¡¡A¨Ã´M§ä¤¸¯À¡C</p>
+<hr size="1" noshade></p></li>
+<li><p><b>«ö¤@¤U [½T©w] «ö¶s¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbzbc.html b/webconsole/html/zh_TW/help/gbzbc.html
new file mode 100644
index 0000000..a92c9b9
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbzbc.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>²¾°£°t¸mÀx¦s®w</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbzbc"></A><h4>²¾°£°t¸mÀx¦s®w</h4><A NAME="indexterm-15"></A><h5>¨BÆJ</h5><ol><li><p><b>¿ï¨ú±z·Q²¾°£¤§°t¸mÀx¦s®wªº¹ïÀ³®Ö¨ú¤è¶ô¡C</b></p></li>
+<li><p><b>«ö¤@¤U [²¾°£] «ö¶s¡C</b></p><p>¿Ã¹õ¤W±N·|Åã¥Ü½T»{¹ï¸Ü¤è¶ô¡C</p>
+</li>
+<li><p><b>¦pªG±z½T©w­n²¾°£¸Ó°t¸mÀx¦s®w¡A½Ð«ö¤@¤U½T»{¹ï¸Ü¤è¶ô¤¤ªº [½T©w] «ö¶s¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/gbzci.html b/webconsole/html/zh_TW/help/gbzci.html
new file mode 100644
index 0000000..52a7d43
--- /dev/null
+++ b/webconsole/html/zh_TW/help/gbzci.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=BIG5"><!-- ident "%Z%%M% %I% %E% SMI" --><title>­«·s©R¦W°t¸mÀx¦s®w</title><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script><meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+<body class="HlpBdy"><A NAME="gbzci"></A><h4>­«·s©R¦W°t¸mÀx¦s®w</h4><A NAME="indexterm-16"></A><h5>¨BÆJ</h5><ol><li><p><b>¿ï¨ú±z·Q­«·s©R¦W¤§°t¸mÀx¦s®wªº¹ïÀ³®Ö¨ú¤è¶ô¡C</b></p></li>
+<li><p><b>«ö¤@¤U [­«·s©R¦W] «ö¶s¡C</b></p><p>·|ÀH§Y¶}±Ò [­«·s©R¦W] ¹ï¸Ü¤è¶ô¡C</p>
+</li>
+<li><p><b>¦b¹ï¸Ü¤è¶ôªº¤å¦rÄæ¦ì¤¤Áä¤J·sªº°t¸mÀx¦s®w¦WºÙ¡A¦A«ö¤@¤U [½T©w]¡C</b></p></li>
+</ol>
+<br />
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/index.xml b/webconsole/html/zh_TW/help/index.xml
new file mode 100644
index 0000000..5353d3a
--- /dev/null
+++ b/webconsole/html/zh_TW/help/index.xml
@@ -0,0 +1,30 @@
+<!-- ident "%Z%%M% %I% %E% SMI" --><?xml version='1.0' encoding='UTF-8'?><!DOCTYPE index PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Index Version 1.0//EN" "index_1_0.dtd">
+<index version="1.0">
+<indexitem target="gbgpn" text="指定設定檔"></indexitem>
+<indexitem target="gbgce" text="é…置儲存庫"><indexitem target="gbgcn" text="新建"></indexitem><indexitem target="gbzbc" text="移除"></indexitem><indexitem target="gbzci" text="é‡æ–°å‘½å"></indexitem><indexitem target="gbgqm" text="åŒæ­¥åŒ–"></indexitem><indexitem text="é¡žåž‹"><indexitem target="gbgpt" text="檔案型"></indexitem><indexitem target="gbgpt" text="æ··åˆåž‹"></indexitem><indexitem target="gbgpt" text="LDAP (簡易目錄存å–å”定)"></indexitem>
+</indexitem>
+<indexitem target="gbgpt" text="檢視詳細資訊"></indexitem>
+</indexitem>
+<indexitem target="gbgni" text="建立設定檔"></indexitem>
+<indexitem target="gbgcn" text="建立儲存庫"></indexitem>
+<indexitem target="gbgpr" text="刪除設定檔"></indexitem>
+<indexitem target="gbgce" text="網域"></indexitem>
+<indexitem target="gbgoz" text="有效設定, 檢視"></indexitem>
+<indexitem target="gbgcm" text="元素樹狀çµæ§‹"></indexitem>
+<indexitem target="gbgce" text="元素"><indexitem target="gbgqt" text="尋找函數"></indexitem><indexitem target="gbgoy" text="相關資訊"></indexitem><indexitem target="gbgpa" text="æœå°‹"></indexitem>
+</indexitem>
+<indexitem target="gbgqh" text="匯出設定檔"></indexitem>
+<indexitem target="gbgps" text="匯入設定檔"></indexitem>
+<indexitem target="gbgpt" text="LDAP (簡易目錄存å–å”定)"></indexitem>
+<indexitem target="gbgqa" text="登出"></indexitem>
+<indexitem target="gbgcm" text="ç€è¦½"></indexitem>
+<indexitem target="gbgce" text="組織"></indexitem>
+<indexitem target="gbgcm" text="設定檔樹狀çµæ§‹"></indexitem>
+<indexitem target="gbgce" text="設定檔"><indexitem target="gbgpn" text="指定"></indexitem><indexitem target="gbgni" text="新建"></indexitem><indexitem target="gbgpr" text="刪除"></indexitem><indexitem target="gbgqh" text="匯出"></indexitem><indexitem target="gbgps" text="匯入"></indexitem><indexitem target="gbgcm" text="ç€è¦½"></indexitem><indexitem target="gbgqj" text="å–消指定"></indexitem>
+</indexitem>
+<indexitem target="gbgqa" text="儲存庫"></indexitem>
+<indexitem target="gbgpa" text="æœå°‹"></indexitem>
+<indexitem target="gbgqm" text="åŒæ­¥åŒ–"></indexitem>
+<indexitem target="gbgcd" text="檢視所有設定檔"></indexitem>
+<indexitem target="gbgdc" text="檢視指定的設定檔"></indexitem>
+</index>
diff --git a/webconsole/html/zh_TW/help/map.jhm b/webconsole/html/zh_TW/help/map.jhm
new file mode 100644
index 0000000..a14c734
--- /dev/null
+++ b/webconsole/html/zh_TW/help/map.jhm
@@ -0,0 +1,46 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- ident "%Z%%M% %I% %E% SMI" -->
+<!DOCTYPE map PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp Map Version 1.0//EN" "map_1_0.dtd">
+<map version="1.0">
+ <mapID target="gbgca" url="gbgca.html"/>
+ <mapID target="gbgce" url="gbgce.html"/>
+ <mapID target="gbgqa" url="gbgqa.html"/>
+ <mapID target="gbgpt" url="gbgpt.html"/>
+ <mapID target="gbgcn" url="gbgcn.html"/>
+ <mapID target="gbzbc" url="gbzbc.html"/>
+ <mapID target="gbzci" url="gbzci.html"/>
+ <mapID target="gbgqm" url="gbgqm.html"/>
+ <mapID target="gbgdc" url="gbgdc.html"/>
+ <mapID target="gbgcm" url="gbgcm.html"/>
+ <mapID target="gbgpa" url="gbgpa.html"/>
+ <mapID target="gbgqt" url="gbgqt.html"/>
+ <mapID target="gbgoy" url="gbgoy.html"/>
+ <mapID target="gbgni" url="gbgni.html"/>
+ <mapID target="gbgpr" url="gbgpr.html"/>
+ <mapID target="gbgpn" url="gbgpn.html"/>
+ <mapID target="gbgqj" url="gbgqj.html"/>
+ <mapID target="gbgpw" url="gbgpw.html"/>
+ <mapID target="gbgqf" url="gbgqf.html"/>
+ <mapID target="gbgps" url="gbgps.html"/>
+ <mapID target="gbgqh" url="gbgqh.html"/>
+ <mapID target="gbgoz" url="gbgoz.html"/>
+ <mapID target="gbgcd" url="gbgcd.html"/>
+ <mapID target="gbgcr" url="gbgcr.html"/>
+ <mapID target="gbgpe" url="gbgpe.html"/>
+ <mapID target="gbgpu" url="gbgpu.html"/>
+ <mapID target="gbgow" url="gbgow.html"/>
+ <mapID target="gbgpj" url="gbgpj.html"/>
+ <mapID target="gbgou" url="gbgou.html"/>
+ <mapID target="gbgec" url="gbgec.html"/>
+ <mapID target="gbgcg" url="gbgcg.html"/>
+ <mapID target="gbgpb" url="gbgpb.html"/>
+ <mapID target="gbgeb" url="gbgeb.html"/>
+ <mapID target="gbgot" url="gbgot.html"/>
+ <mapID target="gbgkr" url="gbgkr.html"/>
+ <mapID target="gbgpm" url="gbgpm.html"/>
+ <mapID target="gbgpp" url="gbgpp.html"/>
+ <mapID target="gbgda" url="gbgda.html"/>
+ <mapID target="gbgdh" url="gbgdh.html"/>
+ <mapID target="gbgqu" url="gbgqu.html"/>
+ <mapID target="gbgqe" url="gbgqe.html"/>
+</map>
diff --git a/webconsole/html/zh_TW/help/p1.html b/webconsole/html/zh_TW/help/p1.html
new file mode 100644
index 0000000..2ffa551
--- /dev/null
+++ b/webconsole/html/zh_TW/help/p1.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><!-- GenHTML@12751-->
+<head>
+ <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">
+ <!-- ident "%Z%%M% %I% %E% SMI" -->
+
+ <title>Java Desktop System Configuration Manager Release 2.0 Online Help
+ </title>
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ <meta name="Copyright" content="Copyright &copy; 2006 by Sun Microsystems, Inc. All Rights Reserved." />
+</head>
+
+<body class="HlpBdy">
+
+<h1>Java Desktop System Configuration Manager Release 2.0 Online Help</h1>
+
+<br />
+
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/help/toc.xml b/webconsole/html/zh_TW/help/toc.xml
new file mode 100644
index 0000000..781e76a
--- /dev/null
+++ b/webconsole/html/zh_TW/help/toc.xml
@@ -0,0 +1,44 @@
+<!-- ident "%Z%%M% %I% %E% SMI" --><?xml version='1.0' encoding='UTF-8'?><!DOCTYPE toc PUBLIC "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version 1.0//EN" "toc_1_0.dtd">
+<toc version="1.0">
+<tocitem target="gbgca" text="Sun Desktop Manager 1.0.1 說明"><tocitem target="gbgce" text="簡介"></tocitem>
+<tocitem target="gbgqa" text="é…置儲存庫視窗"><tocitem target="gbgpt" text="é…置儲存庫表格"><tocitem target="gbgcn" text="建立新的é…置儲存庫"></tocitem>
+<tocitem target="gbzbc" text="移除é…置儲存庫"></tocitem>
+<tocitem target="gbzci" text="é‡æ–°å‘½åé…置儲存庫"></tocitem>
+<tocitem target="gbgqm" text="åŒæ­¥åŒ–é…置儲存庫"></tocitem>
+</tocitem>
+</tocitem>
+<tocitem target="gbgdc" text="é…置檔 &#8212; 樹狀çµæ§‹æª¢è¦–"><tocitem target="gbgcm" text="ç€è¦½å€åŸŸ"><tocitem target="gbgpa" text="æœå°‹å…ƒç´ "></tocitem>
+<tocitem target="gbgqt" text="使用尋找函數"></tocitem>
+</tocitem>
+<tocitem target="gbgoy" text="內容å€åŸŸ"><tocitem target="gbgni" text="建立新的設定檔"></tocitem>
+<tocitem target="gbgpr" text="刪除設定檔"></tocitem>
+<tocitem target="gbgpn" text="指定設定檔"></tocitem>
+<tocitem target="gbgqj" text="å–消指定設定檔"></tocitem>
+<tocitem target="gbgpw" text="é‡æ–°å‘½å設定檔"></tocitem>
+<tocitem target="gbgqf" text="複製和移動設定檔"></tocitem>
+<tocitem target="gbgps" text="匯入設定檔"></tocitem>
+<tocitem target="gbgqh" text="匯出設定檔"></tocitem>
+</tocitem>
+<tocitem target="gbgoz" text="檢視有效設定"></tocitem>
+</tocitem>
+<tocitem target="gbgcd" text="設定檔 &#8212; 全部"><tocitem target="gbgcr" text="建立新的設定檔"></tocitem>
+<tocitem target="gbgpe" text="刪除設定檔"></tocitem>
+<tocitem target="gbgpu" text="é‡æ–°å‘½å設定檔"></tocitem>
+<tocitem target="gbgow" text="複製和移動設定檔"></tocitem>
+<tocitem target="gbgpj" text="匯入設定檔"></tocitem>
+<tocitem target="gbgou" text="匯出設定檔"></tocitem>
+</tocitem>
+<tocitem target="gbgec" text="設定檔編輯器"><tocitem target="gbgcg" text="一般特性"><tocitem target="gbgpb" text="指定設定檔的一般特性"></tocitem>
+</tocitem>
+<tocitem target="gbgeb" text="é…置設定"><tocitem target="gbgot" text="檢視和編輯設定檔的é…置設定"></tocitem>
+</tocitem>
+<tocitem target="gbgkr" text="指定的元素"><tocitem target="gbgpm" text="將元素指定給設定檔"></tocitem>
+<tocitem target="gbgpp" text="å–消指定元素給設定檔"></tocitem>
+</tocitem>
+<tocitem target="gbgda" text="設定摘è¦"></tocitem>
+<tocitem target="gbgdh" text="進階é¸é …"><tocitem target="gbgqu" text="從ä½ç½®è®Šæ›´æ‡‰ç”¨ç¨‹å¼"></tocitem>
+<tocitem target="gbgqe" text="å°‡åˆä½µé †åºæŒ‡å®šçµ¦è¨­å®šæª”"></tocitem>
+</tocitem>
+</tocitem>
+</tocitem>
+</toc>
diff --git a/webconsole/html/zh_TW/helpContent.html b/webconsole/html/zh_TW/helpContent.html
new file mode 100644
index 0000000..70360ad
--- /dev/null
+++ b/webconsole/html/zh_TW/helpContent.html
@@ -0,0 +1,336 @@
+<html>
+<head>
+<title>Sun Java[TM] Desktop System Configuration Manager - »¡©ú¤º®e</title>
+<meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+<meta http-equiv="Content-Type" content="text/html; charset=Big5"><!-- Empty script so IE5.0 Windows will draw table and button borders --><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"></script></head>
+
+<body class="help-body"><a name="top"></a><p><a name="intro"> </a><div class="help-header-1">Configuration Manager »¡©ú</div></p>
+<p>Åwªï¨Ï¥Î Sun Java[TM] Desktop System Configuration Manager »¡©ú­¶­±¡C­Y­n¨ú±o Java Desktop System Configuration Manager ¤§¯S©w³¡¤Àªº»¡©ú¡A½Ð«ö¤@¤U¥ª°¼ªº³sµ²¤§¤@¡C</p>
+<p>¥»»¡©ú¥H·§­z Configuration Manager ¤@¯ë²£«~­I´º©M·§©À¶}©l - <a class="help-link" href="#concepts">­I´º»P·§©À</a>¡CÃö©ó Configuration Manager ¤§¤@¯ë§G§½©M¦æ¬°ªº¸ê°T¥i¦b<a class="help-link" href="#ui">§G§½»P¦æ¬°</a>¤¤§ä¨ì¡C</p>
+<p>¤@¯ë­¶­±«á­±ªº¤º®e¬O¦³Ãö<a class="help-link" href="#masthead"><b>¼ÐÀY</b></a>¡B<a class="help-link" href="#navigation"><b>¾É¯èµ¡®æ</b></a>©M<a class="help-link" href="#content"><b>¤º®eµ¡®æ</b></a>ªº§ó¥[¨ãÅ骺»¡©ú¡C¤]¦³¤@¨ÇÃö©ó<a class="help-link" href="#login">µn¤J</a>©M<a href="#reporting">³ø§i</a>¥\¯àªº­¶­±¡C<p><a name="concepts"> </a><div class="help-header-1">­I´º»P·§©À</div></p>
+<p>Configuration Manager ¥iÅý±z¶°¤¤ºÞ²z°t¸m³]©w¡C±z¥i¥H©ó²Õ´ªº¶¥¼hµ²ºc¤§¤£¦P¼h¦¸¤WÀ˵ø¡B©w¸q©M°õ¦æ°t¸m³]©w¡C»y¸q¤@­Pªº°t¸m³]©w¦b¥»¤å¥ó¨ä¾l³¡¤À¥çºÙ¬°¡u°t¸mµ¦²¤¡v¡C</p>
+<P>Configuration Manager ¥i³B²z¤TºØ¤£¦Pªº¶¥¼h¦¡µ²ºc¡A¥çºÙ¬°¾ð¡C­Y­nÁA¸Ñ Configuration Manager ¨Ï¥ÎªÌ¤¶­±¡AÃѧO¨âºØ¾ð«D±`­«­n¡G</P>
+<p><div class="help-header-2"><a name="dataStructures">¸ê®Æµ²ºc</a></div></p>
+<P>¤@ºØ¾ð¸g¥Ñ°t¸mµ¦²¤§Î¦¨¡A¦]¦¹ºÙ¬°°t¸mµ¦²¤¾ð (°Ñ¨£¹Ï 1 -¡u¾ð¡vªºÂŦⳡ¤À)¡C¦b³\¦h¨ã¦³§ó½ÆÂø°t¸mªºµ{¦¡¤¤ (¦p Mozilla)¡A¨Ï¥ÎªÌ¤w¼ô±x°t¸m³]©wªº¶¥¼h¦¡²Õ´¡C¨å«¬ªº°t¸mµ¦²¤¥]§t¡u/Mozilla/Navigator¡v¡A¨ä°t¸m³]©w¥]§t¡u/Mozilla/Navigator/HomeUrl¡v¡C</P>
+<P>°t¸mµ¦²¤¾ð¥]§t¦b²Ä¤GºØÃþ«¬ªº¾ð¤¤¡A§Y²Õ´¾ð (°Ñ¨£¹Ï 1 -¡u¾ð¡vªº¦Ç¦â³¡¤À)¡C²Õ´¾ðªí¥Ü²Õ´³æ¤¸¤§¶¡ªºÃö«Y¡C©Ò¥H¡u²Õ´¾ð¥]§t°t¸mµ¦²¤¾ð¡v¡C²Õ´¾ð¥i¨Ï¥Î LDAP ¦øªA¾¹ªí¥Ü¡C</P>
+<p>²Ä¤TºØÃþ«¬ªº¾ð¬Oºô°ì¾ð¡Cºô°ì¾ðªí¥ÜµwÅé³æ¤¸¤§¶¡ªºÃö«Y¡C°t¸mµ¦²¤¾ð¥]§t¦bºô°ì¾ð¤¤¡A±q¦Ó²£¥Í¥]§t°t¸mµ¦²¤¾ðªººô°ì¾ð¡Cºô°ì¾ð¥i¨Ï¥Î LDAP ¦øªA¾¹ªí¥Ü¡C</p>
+<p>¨Ï¥Î²Õ´¾ðªº·§©À»P¨Ï¥Îºô°ì¾ðªº·§©À¬Û¦P¡C³o¨âªÌ¤§¶¡ªº¥D­n°Ï§O¦b©ó¡A²Õ´¾ðºûÅ@¨Ï¥ÎªÌ¦Óºô°ì¾ðºûÅ@¥D¾÷¡C¨Ï¥ÎªÌ©M¥D¾÷¦ì©ó³o¨â­Ó¿W¥ßªº¾ð¤¤¡A³o¨Ï±o Configuration Manager ¥i¥H´£¨Ñ°ò©ó¨Ï¥ÎªÌªº°t¸m©M°ò©ó¥D¾÷ªº°t¸m¡C¥Ñ©ó³o¨âºØ¾ð¬Û¦ü¡A¦]¦¹¥»¸`­«ÂI¤¶²Ð²Õ´¾ð¡A¶È¦b²Õ´¾ð»Pºô°ì¾ð¤§¶¡¦s¦b®t²§®É¤~´£¤Îºô°ì¾ð¡C</p>
+<P>¤j«¬¥ø·~¤¤´¶¹M¨Ï¥Î LDAP ¦øªA¾¹¡A¥H³z¹L¶¥¼h¦¡¤èªk¹ï¬M²Õ´¸ê®Æ¡C¦b LDAP ¤¤¡A²Õ´¾ð¤ºªº¨C¤@­Ó¦ì¸m§Y¬°¤@­Ó¹êÅé¡C</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_ldap_v4.png" NAME="Trees" ALT="Trees" ALIGN=LEFT WIDTH=550 HEIGHT=369 BORDER=1> </FONT><P><FONT COLOR="#000000"><A NAME="fig_trees"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">¹Ï 1 &ndash; ¾ð</FONT></FONT></I></FONT></P>
+<p><div class="help-header-2"><a name="SecDataManagement">¦w¥þ©Ê»P¸ê®ÆºÞ²z</a></div></p>
+<p>³oºØ¡u¾ð¤¤¾ð¡v¨Ï¶¥¼h¦¡¦w¥þ©Ê©M¸ê®ÆºÞ²zÅܱo®e©ö¡C³o¥i³z¹L¦b¤@¶©l®É±N¾ã­Ó°t¸mµ¦²¤¾ð¤@¦¸´¡¤J²Õ´¾ðªº®Ú³¡¨Ó¹ê²{¡C¹ï¸Óªì©l°t¸mµ¦²¤¾ðªº°t¸m³]©w©Ò°µªº¯S©w¹êÅéÅܧóÀx¦s¦b¬ÛÀ³ªº¹êÅ餤¡C²¨¥¤§¡A¹Ï 1 ¶È»¡©ú»P¦W¬°¡umarketing¡v©M¡ujclarke¡vªº²Õ´¹êÅéÃöÁpªº°t¸mµ¦²¤¾ð¡C</P>
+<p><div class="help-header-2"><a name="GenConfigSettings">°t¸m³]©wªº²£¥Í</a></div></p>
+<P>¥i³z¹L¦X¨Ö¨ú±o¹êÅ骺°t¸m³]©w¡C»P²Õ´¾ð©Îºô°ì¾ð¤¤ªº¹êÅéÃöÁpªº©Ò¦³°t¸m³]©w§¡ºÙ¬°¼h¡C¦X¨Ö·|¥ý±q®Ú¼h¶}©l¡AµM«á¦X¨Ö¾ð¡Aª½¨ì¹F¨ì©Ò»Ý¹êÅé¡C¦b»P¹êÅéÃöÁpªº¼h¤¤¡A°t¸m³]©w¤¤ªºÅܧó¥Ñ»P¾ð¶¥¼hµ²ºc¤¤¸û©³ºÝªº¹êÅéÃöÁpªº¼h¨ÓÄ~©Ó (°Ñ¨£<A class="help-link" HREF="#fig_merging">¹Ï 2 -¡u¼h¦X¨Ö¡v</a>)¡C¦pªG¯S©wªº¼h©w¸q¥¦¦Û¤vªº³]©w¡A«h©ÒÄ~©Óªº­È¥i³QÂмg¡C</p>
+<P><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_merge.gif" NAME="LayerMerging" ALT="Layer Merging" ALIGN=LEFT WIDTH=550 HEIGHT=520 BORDER=1> </FONT><P><FONT COLOR="#000000"><A NAME="fig_merging"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">¹Ï 2 &ndash; ¼h¦X¨Ö</FONT></FONT></I></FONT></P>
+<p><FONT COLOR="#000000">¦¹Ä~©Ó©Ê¾A¥Î©ó°t¸m³]©w¡A¤]¾A¥Î©ó¦w¥þ©Ê¯S¼x¡G</FONT><FONT COLOR="#000000">¦bªþÄÝ©ó¡uo=marketing¡vªº¼h¤¤¬°¬Y¤@°t¸m³]©w«ü©w¦w¥þ©ÊÄÝ©Ê¡u¨ü«OÅ@¡v¡A·|¨Ï¦¹°t¸m³]©w¦b¾ðªº©Ò¦³«áÄò¼h¤¤§¡¬°°ßŪ (°Ñ¨£<A class="help-link" HREF="#fig_protection">¹Ï 3 -¡u«OÅ@¡v</a>)¡C</FONT></P>
+<P><FONT COLOR="#000000"><FONT COLOR="#000000"><IMG SRC="/apoc/html/images/help_protected_v3.png" NAME="Protection" ALT="Protection" ALIGN=LEFT WIDTH=550 HEIGHT=524 BORDER=1> </FONT></FONT><P><FONT COLOR="#000000"><FONT COLOR="#000000"><A NAME="fig_protection"></A>&nbsp;<I><FONT SIZE=2><FONT COLOR="#000000">¹Ï 3 &ndash; «OÅ@</FONT></FONT></I></FONT></FONT></P>
+<p><div class="help-header-2"><a name="BCAssociating">¨Ï°t¸mµ¦²¤¾ð»P²Õ´¾ð©Îºô°ì¾ðÃöÁp</a></div></p>
+<p>°t¸mµ¦²¤¾ð¥i³z¹L¨âºØ¤£¦Pªº¤è¦¡»P²Õ´¾ðªº¹êÅé³sµ²¡G</P>
+<UL>
+ <li>§@¬°¦Û§Ú¥]§tªº°t¸mµ¦²¤¾ðÀx¦s¦b¹êÅ餤</li>
+ <li>±qµ¦²¤¸s²Õ³sµ²¦Ü¹êÅé</li>
+</UL>
+<p><p><div class="help-header-2"><a name="BCPolicyGroups">µ¦²¤¸s²Õ</a></div></p>
+<P>µ¦²¤¸s²Õ¬O°t¸mµ¦²¤ªº®e¾¹¡A¨C­Óµ¦²¤¸s²Õ³£¨ã¦³»P°t¸mµ¦²¤ÃöÁpªº (°ß¤@) ¦WºÙ¡Cµ¦²¤¸s²Õ¤]¬O°t¸mµ¦²¤¾ðªº®e¾¹¡A¦]¬°°t¸mµ¦²¤±N¨ä°t¸m³]©wÀx¦s¦b°t¸mµ¦²¤¾ð¤¤ (°Ñ¨£<A class="help-link" HREF="#fig_trees">¹Ï 1 &ndash;¡u¾ð¡v</A>)¡Cµ¦²¤¸s²ÕÀx¦s¦bµ¦²¤¨t²Î°T®§®w¤¤¡A³z¹L«Ø¥ß»Pµ¦²¤¸s²Õªº³sµ²¡A©Ò¦³Ãþ«¬ªº¹êÅ駡¥i¨Ï¥Îµ¦²¤¸s²Õ¡C³o¼Ë¥iÀò±o§ó¦hÆF¬¡©Ê¡A¨Ã¥B¤£¨Ì¿à©ó©Ò¨Ï¥Îªº«áºÝ¡Cµ¦²¤¸s²Õªº¥t¤@­ÓÀuÂI¬O¥i¥H¶×¤J©M¶×¥X¡A©ö©óºûÅ@¡C</P>
+<P>ºÞ²z­û¥i«Ø¥ß³æ¿W»y¸q½d³ò¤§°t¸mµ¦²¤ªº¶°¦X¡A¨Ò¦pÀx¦s¦bµ¦²¤¨t²Î°T®§®w¤¤ªº¡uExperts¡v©M¡uNovice¡vµ¦²¤¸s²Õ¡CµM«á«K¥i¦b¾ã­Ó²Õ´¾ð¤¤¨Ï¥Î°t¸mµ¦²¤¡C</P>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> ªð¦^³»³¡</a></div><a name="ui"> </a><div class="help-header-1">§G§½©M¦æ¬°</div>
+<p>Configuration Manager ªº§G§½¥Ñ¤T­Ó°Ï°ì²Õ¦¨¡G¼ÐÀY¡B¾É¯èµ¡®æ©M¤º®eµ¡®æ¡C¼ÐÀY¦ì©ó­¶­±ªº³»ºÝ¡C¥ª¤U°Ï°ì¥]§t¾É¯èµ¡®æ¡C¥k¤U°Ï°ì¬°¤º®eµ¡®æ¡C³oºØÃþ«¬ªº§G§½¥çºÙ¬°¥ª¥kµ¡®æ³]©w¡C¨t²Î·|¶}±Ò³æ¿WªºÂsÄý¾¹µøµ¡Åã¥Ü¨ä¥L¹ï¸Ü¤è¶ô©M»¡©ú¤º®e¡C</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> ªð¦^³»³¡</a></div><a name="login"> </a><div class="help-header-1">µn¤J</div>
+<p>­Y­n¨Ï¥Î Configuration Manager¡A±z¥²¶·µn¤J¦Ü Sun Web Console¡CSun Web Console ¥Î©ó©ñ¸mºÞ²zÀ³¥Îµ{¦¡¡A©Ò¦³³o¨ÇÀ³¥Îµ{¦¡¨ã¦³¤@­Pªº¨Ï¥ÎªÌ¤¶­±¡C¸Ó¥D±±¥xªºÀuÂI¬OºÞ²z­û¤@¦¸©Êµn¤J§Y¥i¨Ï¥Î¥D±±¥x¤¤ªº¥ô¦óÀ³¥Îµ{¦¡¡C¥X©ó¦¹¥Øªº¡ASun Web Console ´£¨Ñ¤F¼Ð·Çªºµn¤J­¶­±¡C</p>
+<p>¦b¼Ð·Çµn¤J­¶­±¤¤¡A±z­nµn¤Jªº¦øªA¾¹Åã¥Ü¦b¥Î©ó¿é¤J¨Ï¥ÎªÌ¦WºÙ©M±K½X¤§¤å¦rÄæ¦ìªº¤W­±¡C</p>
+<p>¦¨¥\µn¤J Web Console «á¡A±z·|¨ì¹F Web Console À³¥Îµ{¦¡±Ò°Ê­¶­±¡C±z¥i±q¸Ó­¶­±¿ï¨ú¡uConfiguration Manager¡vÀ³¥Îµ{¦¡¡A±q¦Ó±Ò°Ê Configuration Manager¡C</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> ªð¦^³»³¡</a></div><a name="masthead"> </a><div class="help-header-1">¼ÐÀY</div>
+<p>¼ÐÀY¤¤¥]§t§¹¾ãªº²£«~¦WºÙ (Sun Java[TM] Desktop System Configuration Manager)¡C¼ÐÀYÁÙ´£¨Ñ¤@¨Ç¤@¯ë³sµ²¡G</p>
+<ul><li><b>[¥D±±¥x]</b> ³sµ²¥iÅý±zªð¦^ Sun Web Console À³¥Îµ{¦¡±Ò°Ê­¶­±¡C</li>
+ <li><b>[ª©¥»]</b> ³sµ²¥i¶}±Òª©¥»µøµ¡¡C</li>
+ <li><b>[µn¥X]</b> ³sµ²¥iÅý±z¨Ì¦¸µn¥X Sun Web Console ©M Configuration Manager¡A±q¦Óªð¦^ [µn¤J] ­¶­±¡C</li>
+ <li><b>[»¡©ú]</b> ³sµ²¥i¶}±Ò³o¨Ç»¡©ú­¶­±¡C</li>
+</ul>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> ªð¦^³»³¡</a></div><a name="navigation"> </a><div class="help-header-1">¾É¯èµ¡®æ</div>
+<p>¾É¯èµ¡®æ¥iÅý±zÂsÄý¥]§t²Õ´¡B¨Ï¥ÎªÌ©M¨¤¦âªº²Õ´¾ð¡A¥H¤Î¥]§tºô°ì©M¥D¾÷ªººô°ì¾ð¡C¥¦ÁÙ¥iÅý±zºÞ²z¬ÛÀ³ªº¨Ï¥ÎªÌ©M¥D¾÷µ¦²¤¨t²Î°T®§®w¤¤ªºµ¦²¤¸s²Õ¡C</p>
+<p>¾É¯èµ¡®æ¤¤¥]§t¨â­Ó³»¼h¼ÐÅÒ¡G<b>[¨Ï¥ÎªÌ]</B> ©M <b>[¥D¾÷]</B>¡C</p><a name="entities"> </a><div class="help-header-2">[¨Ï¥ÎªÌ] ¼ÐÅÒ</div>
+<p>´£¨Ñ¤F¨â­Ó¤l¼ÐÅÒ¡A<b>[²Õ´¾ð]</B> ©M <b>[µ¦²¤¨t²Î°T®§®w]</B>¡C¨Ï¥Î <b>[²Õ´¾ð]</B> ¼ÐÅÒ¥iÂsÄý [²Õ´¾ð]¡C</p><a name="parpath"></a><div class="help-header-3">¨Ó·½¸ô®|</div>
+<p>¦b <b>[²Õ´¾ð]</B> ¼ÐÅÒªº³»ºÝ¬O¨Ó·½¸ô®|¡A¥¦¥iÅã¥Ü¥Ø«e¹êÅ骺¸ô®|¡C°£¤F³Ì«á¤@­Ó³sµ² (Åã¥Ü¬°¤@¯ë¤å¦r¨Ã«ü©w¥Ø«e¹êÅé)¡A¨C­Ó¸ô®|½èÂI§¡¬°ªí¥Ü¹êÅ骺³sµ²¡C­Y­n¨Ï¥Î¨Ó·½¸ô®|¾É¯è¡A½Ð«ö¤@¤U³sµ²¡C³o±N¡G<ul><li>§ó·s¾É¯èµ¡®æ¡A¥H«K¨Ó·½¸ô®|«ü¦V³Q«ö¤@¤Uªº¹êÅé¡A¶i¦Ó¨Ï¾É¯èªí®æ¥]§t¸Ó¹êÅ骺¤l¹êÅé¡C</li>
+ <li>¨Ï¥Î»P¸Ó¹êÅéÃöÁpªº°t¸mµ¦²¤¸ê®Æ§ó·s¤º®eµ¡®æ¡C</li>
+</ul>¾É¯èµ¡®æ»P¤º®eµ¡®æ¦bÀ³¥Îµ{¦¡¤¤¦P¨B¡A¥H´£¨Ñ¸ê®Æªº¦P½èÀ˵ø¡C</p><a name="navtable"></a><div class="help-header-3">¾É¯èªí®æ</div>
+<p>¸Ó¾É¯èªí®æ¦ì©ó¨Ó·½¸ô®|¤§¤U¨Ã¦C¥X¥Ø«e¹êÅ骺¤l¹êÅé¡C[¦WºÙ] Äæ¥]§t¥Ø«e¹êÅ餧©Ò¦³¤l¹êÅ骺¦WºÙ¡C[Ãþ«¬] ÄæÅã¥Ü¹êÅ骺Ãþ«¬¡C[°Ê§@] Äæ¥]§t¨C¦Cªº <b>[À˵ø]</B> ³sµ²¡C</p>
+<p>­Y­n¾É¯è¦Ü¹êÅé¡A½Ð«ö¤@¤U¦C¥Xªº¦WºÙ¡A³o±N¡G<ul><li>¨Ï©Ò¿ï¤l¹êÅ馨¬°¥Ø«e¹êÅé¡C</li>
+ <li>§ó·s¾É¯èµ¡®æ¡A¥H«K¨Ó·½¸ô®|«ü¦V·sªº¥Ø«e¹êÅé¡A¶i¦Ó¨Ï¾É¯èªí®æ¥]§t¸Ó¹êÅ骺¤l¹êÅé¡C</li>
+ <li>¨Ï¥Î»P¸Ó¹êÅéÃöÁpªº°t¸mµ¦²¤§ó·s¤º®eµ¡®æ¡C</li>
+</ul></p>¹êÅéÃþ«¬¥i¬°¡u²Õ´¡v¡B¡u¨Ï¥ÎªÌ¡v©Î¡u¨¤¦â¡v¡C</p>
+<p>­Y­nÀ˵ø¦C¥Xªº¹êÅ骺¸Ô²Ó¸ê°T¡A½Ð«ö¤@¤U <b>[À˵ø]</B> ³sµ²¡C³o±N¡G<ul><li>¨Ï©Ò¿ï¦Cªº­I´º¦â±mÅܧó¬°ÂŦâ¡C</li>
+ <li>¨Ï¥Î»P©Ò¿ï¹êÅéÃöÁpªº¸ê®Æ§ó·s¤º®eµ¡®æ¡C</li>
+</ul>¨ã¦³ÂŦâ­I´ºªº¦C¼Ð¥Ü¸ê®Æ¥Ø«eÅã¥Ü¦b¤º®eµ¡®æ¤¤ªº¹êÅé¡C</p>
+<p>¾É¯èªí®æªº°Ê§@¦C¥]§t <b>[¿z¿ï]</B> ¤U©Ô¦¡¥\¯àªí©M <b>[¶i¶¥¿z¿ï]</b> ¹Ï¥Ü¡C·íªí®æ¥]§tªº¶µ¥Ø¦h©ó¤Q­Ó®É¡A·|Åã¥Ü <b>[¤À­¶/±²°Ê¬d¬Ý©Ò¦³¸ê®Æ]</b> ¹Ï¥Ü¡A¸Ó¹Ï¥Ü¥iÅý±zÅܧóªí®æ¶µ¥ØªºÀ˵ø¡C</p>
+<p><b>[¿z¿ï]</b> ¤U©Ô¦¡¥\¯àªí¥iÅý±z¿ï¾Ü­n¦b¾É¯èªí®æ¤¤Åã¥Üªº¹êÅ骺Ãþ«¬¡C¥¦¥]§t¥H¤U¶µ¥Ø¡G<ul><li>[©Ò¦³¶µ¥Ø] ¦b¾É¯èªí®æ¤¤Åã¥Ü©Ò¦³Ãþ«¬ªº¹êÅé¡C</li>
+ <li>[²Õ´] ¦b¾É¯èªí®æ¤¤¶ÈÅã¥Ü¡u²Õ´¡vÃþ«¬ªº¹êÅé¡C</li>
+ <li>[¨Ï¥ÎªÌ] ¦b¾É¯èªí®æ¤¤¶ÈÅã¥Ü¡u¨Ï¥ÎªÌ¡vÃþ«¬ªº¹êÅé¡C</li>
+ <li>[¨¤¦â] ¦b¾É¯èªí®æ¤¤¶ÈÅã¥Ü¡u¨¤¦â¡vÃþ«¬ªº¹êÅé¡C</li>
+</ul></p><a name="adfilter"></a><div class="help-header-3">¶i¶¥¿z¿ï</div>
+<p>«ö¤@¤U¾É¯èªí®æ¤¤ªº <b>[¶i¶¥¿z¿ï]</B> ¹Ï¥Ü¶}±Ò [¶i¶¥¹LÂo¾¹] ¹ï¸Ü¤è¶ô¡C</P>
+<p>¦b <b>[Ãþ«¬]</b> °Ï¬q¤¤¼Ð¥Ü±z­n¹LÂoªº¹êÅéÃþ«¬¡C­Y­n¶i¦æ§ó¨ãÅ骺¹LÂo¡A½Ð¦b <b>[¦WºÙ]</b> ¤å¦rÄæ¦ì¤¤¿é¤J±z­n¹ï¨ä°õ¦æ¹LÂoªº¦WºÙ¡CµM«á«ö¤@¤U¸Ó¹ï¸Ü¤è¶ô©³³¡ªº <b>[¹LÂo¾¹]</B> «ö¶s°õ¦æ¹LÂo¡C</p><a name="search"></a><div class="help-header-3">·j´M</div>
+<p>­Y­n¶}±Ò [·j´M] µøµ¡¡A½Ð«ö¤@¤U¾É¯èªí®æ¤W­±ªº <b>[·j´M]</b> «ö¶s¡C[·j´M] µøµ¡¥]§t¼ÐÀY¡B¥ª°¼ªº°Ñ¼Æ°Ï°ì©M¥k°¼ªºµ²ªG°Ï°ì¡C[·j´M] µøµ¡¥i¥Î©ó¦b²Õ´¾ð¤¤»¼°j¦a·j´M¬Y¨Ç¹êÅéÃþ«¬©M¹êÅé¦WºÙ¡C·í [·j´M] µøµ¡¦b­I´º³B©ó¶}±Òª¬ºA®É¡A¦pªG«ö¤@¤U¥Dµøµ¡¤§¾É¯èµ¡®æ¤¤ªº <b>[·j´M]</b> «ö¶s¡A«h [·j´M] µøµ¡·|¦¨¬°³Ì¤W­±ªºµøµ¡¡C¨t²Î·|§ó·s [·j´M] µøµ¡ªº¥Ø«e¹êÅé¡A[·j´M] µøµ¡°Ñ¼Æ°Ï°ì¤¤ªº¨Ó·½¸ô®|Åã¥Ü¸Ó¹êÅé¡C©Ò¦³¨ä¥L°Ñ¼Æ©Mµ²ªG°Ï°ìªº¤º®e«h¨S¦³Åܧó¡C</p>
+<p>°Ñ¼Æ°Ï°ì¦b³»ºÝÅã¥Ü¨Ó·½¸ô®|¡A¨Ó·½¸ô®|Åã¥Ü¥Ø«e¹êÅ骺¸ô®|¡C¡u<a class="help-link" href="#parpath">¨Ó·½¸ô®|</a>¡v¤@¸`¤¤´y­z°Ñ¼Æ°Ï°ìªº¨Ï¥Î¡C</p>
+<p>­Y­n·j´M¯S©w¹êÅéÃþ«¬¡A½Ð±q¨Ó·½¸ô®|¤U­±ªº¤U©Ô¦¡²M³æ¤¤¿ï¨ú¸ÓÃþ«¬¡C¤»­Ó¿ï¶µ¬° [·j´M¥þ³¡]¡B[·j´M²Õ´]¡B[·j´M¨Ï¥ÎªÌ]¡B[·j´M¨¤¦â]¡B[·j´Mºô°ì] ©M [·j´M¥D¾÷]¡C</p>
+<p>­Y­n¶i¤@¨B­­¨î·j´M¡A±z¥i¥H¨Ï¥Î¤U©Ô¦¡²M³æ®ÇÃ䪺¤å¦r¤è¶ô¡C³o¥iÅý±z·j´M»P¦¹Äæ¦ì¤¤¿é¤Jªº·j´M¦r¦ê¬Û²Åªº¹êÅé¦WºÙ¡C¿ï¨ú <b>[°_©lÂI]</b> ³æ¿ï«ö¶s¤§¤@¥i«ü©w±q¾ð¤¤·j´Mªº°_©lÂI¡C±z¥i¿ï¨ú±q¥Ø«e¦ì¸m·j´M©Î±q¾ðªº³»ºÝ·j´M¡C¹w³]­È¬°±q¥Ø«e¦ì¸m·j´M¡C¦ì¸m¥Ñ¥¦­Ìªº¦WºÙªí¥Ü¡C«ö¤@¤U¨Ó·½¸ô®|¤¤ªº¥ô¦ó¸ô®|½èÂI§¡·|±N·j´Mªº¥Ø«e¦ì¸mÅܧ󬰩ҿï¹êÅé¡A¦ý¤£·|Åܧó¾É¯è¾¹ªºÀ˵ø½d³ò¡C</p>
+<p>½Ð±q [¨C­¶Åã¥Üµ²ªG¼Æ¥Ø] ¤U©Ô¦¡²M³æ¤¤¿ï¨ú­nÅã¥Üªºµ²ªG¼Æ¥Ø¡C</p>
+<p>·j´Mµ¡®æ¤¤ªº©Ò¦³·j´MÄæ¦ì§¡±µ¨ü¬P¸¹¡u*¡v¦b·j´M¦r¦ê¤¤ªº¥ô¦ó¦ì¸m§@¬°¸U¥Î¦r¤¸¡C¬P¸¹ªí¥Ü¥ô·N¼Æ¶qªº¥ô·N¦r¤¸¡C¦pªG«ü©w¦h­Ó·j´M±ø¥ó¡A¶È·í¹êÅ麡¨¬©Ò¦³·j´M±ø¥ó®É¤~¥i³Q¥[¤Jµ²ªGªí®æ¡C·j´M¤£°Ï¤À¤j¤p¼g¡C</p>
+<p>­Y­n°õ¦æ·j´M¡A½Ð«ö¤@¤U <b>[·j´M]</b> «ö¶s¡A¨Ï¥Î¥]§t·j´Mµ²ªGªºªí®æ§ó·sµ²ªG°Ï°ì¡C</p>
+<p>­Y­n­«³]­¶­±­È¡A½Ð«ö¤@¤U <b>[­«³]]</b> «ö¶s¡A³o·|¨Ï¥Î¹w³]­È§ó·s°Ñ¼Æ°Ï°ì¡C©Ò¦³¤å¦r¤è¶ô§¡¬°ªÅ¡A©Ò¦³¤U©Ô¦¡²M³æ©M³æ¿ï«ö¶s¸s²Õ¤¤ªº²Ä¤@­Ó­È³Q¿ï¨ú¡C</p>
+<p>«Ø¥ß [·j´M] µøµ¡®É¡Aµ²ªG°Ï°ì¬°ªÅ¥Õ­¶­±¡C°õ¦æ·j´M«á¡A·|Åã¥Üµ²ªGªí®æ¡Cµ²ªGªí®æ¥]§t¤TÄæ¡G[¦WºÙ]¡B[Ãþ«¬] ©M [¸ô®|]¡C</p>
+<p>­Y­nÀ˵øµ²ªG¡A½Ð«ö¤@¤U [¦WºÙ] Ä椤¬ÛÀ³ªº¦WºÙ¡C³o±N¡G<ul><li>¨Ï¥Dµøµ¡¦¨¬°³Ì¤W­±ªºµøµ¡¡C</li>
+ <li>§ó·s¥Dµøµ¡ªº¾É¯èµ¡®æ¡A±q¦Ó¨Ï¡u¦WºÙ¡v³sµ²ªí¥Üªº¹êÅé¦b¾É¯èªí®æ¤¤¦¨¬°¨ã¦³ÂŦâ­I´ºªº¶µ¥Ø¡C</li>
+ <li>¨Ï¥Î»P¸Ó¹êÅéÃöÁpªº°t¸mµ¦²¤§ó·s¥Dµøµ¡ªº¤º®e°Ï°ì¡C</li>
+ </UL>
+</p>
+<p>[Ãþ«¬] ÄæÅã¥Ü¹êÅ骺Ãþ«¬¡C¹êÅéÃþ«¬¥i¬°¡u²Õ´¡v¡B¡u¨Ï¥ÎªÌ¡v©Î¡u¨¤¦â¡v¡C</p>
+<p>[¸ô®|] Äæ¥]§t¹êÅ骺¸ô®|¡C¸ô®|¬°¬Û¹ï©ó·j´M°_©lÂIªº¸ô®|¡C</p>
+<p>¦pªG·j´MªºÃþ«¬¬°¡u¨Ï¥ÎªÌ¡v¡A°Ñ¼Æ°Ï°ì·|Åã¥Ü¤£¦Pªº¤å¦r¤è¶ô¥H¥]§t¨Ï¥ÎªÌªº¯S¼x¡G[¨Ï¥ÎªÌ ID]¡B[¦W¦r] ©M [©m¤ó]¡C¦bµ²ªG°Ï°ì¤¤¡A¥]§t¨Ï¥ÎªÌ ID ªºªþ¥[ [¨Ï¥ÎªÌ ID] Äæ·|Åã¥Ü¦b [¦WºÙ] Ä檺¥k°¼¡C¦pªG°Ñ¼Æ°Ï°ì¤¤ªº [¨Ï¥ÎªÌ ID] ¤å¦r¤è¶ô¥]§t¦Ü¤Ö¤@­Ó¦r¤¸¡A«h¥D±Æ§ÇÄæ¬O [¨Ï¥ÎªÌ ID] Äæ¡C§_«h¡A¥D±Æ§ÇÄæ¬O [¦WºÙ] Äæ¡C</p><a name="hoststab"> </a><div class="help-header-2">[¥D¾÷] ¼ÐÅÒ</div>
+<p><b>[¥D¾÷]</B> ¼ÐÅÒ¥]§t¨â­Ó¤À§O¦W¬° <b>[ºô°ì¾ð]</B> ©M <b>[µ¦²¤¨t²Î°T®§®w]</B> ªº¤l¼ÐÅÒ¡C</p><a name="domtree"></a><div class="help-header-3">[ºô°ì¾ð] ¼ÐÅÒ</div>
+<p>[ºô°ì¾ð] Åã¥Ü¨Ï¥ÎªÌ¥¿¦b¨Ï¥Î¤§µwÅ骺°t¸m³]©w¡C</P>
+<p>¦b [ºô°ì¾ð] ¤¤¾É¯èªº¤è¦¡»P¦b [²Õ´¾ð] ¤¤¾É¯èªº¤è¦¡¬Û¦P¡A½Ð°Ñ¾\¡u<a href="#entities">[¨Ï¥ÎªÌ] ¼ÐÅÒ</A>¡v¤@¸`¥H¨ú±o§ó¦h¸Ô²Ó¸ê°T¡C<a name="actionbar"></a><div class="help-header-3">°Ê§@¦C</div>
+<p>¾É¯èªí®æ¤¤ªº <b>[¿z¿ï]</B> ¤U©Ô¦¡¥\¯àªí¥]§t¥|­Ó¶µ¥Ø¡G<ul><li>[©Ò¦³¶µ¥Ø] - Åã¥Ü©Ò¦³Ãþ«¬ªº¹êÅé</li>
+ <li>[ºô°ì] - Åã¥Üºô°ìÃþ«¬ªº¹êÅé</li>
+ <li>[¥D¾÷] - Åã¥Ü¥D¾÷Ãþ«¬ªº¹êÅé</li>
+</ul>
+</p><a name="adfilterhosts"></a><div class="help-header-3">¶i¶¥¿z¿ï</div>
+<p>[ºô°ì¾ð] ªº¶i¶¥¹LÂo¾¹»P [²Õ´¾ð] ªº¶i¶¥¹LÂo¾¹¤u§@¤è¦¡¬Û¦P (½Ð°Ñ¾\¤W¤@¤p¸`¡u<a href="#adfilter">¶i¶¥¿z¿ï</a>¡v)¡Cºô°ì¾ðªº¶i¶¥¿z¿ï´£¨Ñ­n±q¨ä¤¤¿z¿ïªº¡uºô°ì¡v©M¡u¥D¾÷¡v¹êÅéÃþ«¬¡C</p><a name="searchhosts"></a><div class="help-header-3">·j´M</div>
+<p>¦pªG±z«ö¤@¤U <b>[ºô°ì¾ð]</b> ¼ÐÅÒ¤¤ªº <b>[·j´M]</b> «ö¶s¡A·|Åã¥Üºô°ì·j´M¡Cºô°ì·j´M»P [²Õ´¾ð] ¤¤ªº·j´M¤è¦¡¬Û¦P (½Ð°Ñ¾\<a href="#">¥H¤W</a>)¡A¦ý [°_©lÂI] Äæ¦ì³]©w¬°¡uµwÅé¡v¡C</p>
+
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> ªð¦^³»³¡</a></div><a name="psptab"> </a><div class="help-header-2">µ¦²¤¨t²Î°T®§®w</div>
+<p><b>[µ¦²¤¨t²Î°T®§®w]</b> ¼ÐÅÒ¦ì©ó <b>[¨Ï¥ÎªÌ]</B> ¼ÐÅÒ©M <b>[¥D¾÷]</B> ¼ÐÅÒ¤§¤U¡C</P>
+<p>µ¦²¤¨t²Î°T®§®w¬J¬O¨Ï¥ÎªÌµ¦²¤¸s²Õªº®e¾¹¡A¤]¬O¥D¾÷µ¦²¤¸s²Õªº®e¾¹¡Cµ¦²¤¸s²Õ¦b¦³¦¸§Çªº²M³æ¤¤²Õ´¡C¶¶§Ç¥ÑÀu¥ý¶¶§Ç©w¸q¡C</p><a name="psptable"></a><div class="help-header-3">µ¦²¤¸s²Õªí®æ</div>
+<P>µ¦²¤¸s²Õªí®æ¦ì©ó­¶­±³»ºÝ¨Ã¦C¥Xµ¦²¤¸s²Õ¡C¸Óªí®æ¥]§t¤TÄæ¡G¿ï¨úÄæ¡B[¦WºÙ] Äæ©M [Àu¥ý¶¶§Ç] Äæ¡C</P>
+<P>¿ï¨úÄæ¥Î©ó¼Ð¥Ü <b>[µ¦²¤¸s²Õ°Ê§@]</b> ¤U©Ô¦¡¥\¯àªí¤¤¦C¥Xªº°Ê§@©Ò¾A¥Îªº¦C¡C</P>
+<P>­Y­n¾É¯è¦Üµ¦²¤¸s²Õ¡A½Ð«ö¤@¤U¥¦ªº¦WºÙ¡C³o±N¡G</P>
+<UL>
+ <li>¨Ï©Ò«ö¦Cªº­I´ºÃC¦âÅܧó¬°ÂŦâ¡C</li>
+ <li>¨Ï¥Î»P©Ò¿ïµ¦²¤ÃöÁpªº¸ê®Æ§ó·s¤º®eµ¡®æ¡C</li>
+</ul>
+<p>[Àu¥ý¶¶§Ç] Äæ¥]§tµ¦²¤¸s²ÕªºÀu¥ý¶¶§Ç¡C¦pªGºÞ²z­û±N¦h­Óµ¦²¤¸s²Õ»P¹êÅéÃöÁp¡A«hÀu¥ý¶¶§Ç¥Î©ó©w¸qµ¦²¤¸s²Õªº¦X¨Ö¦¸§Ç¡C</p>
+<P>¨ã¦³ÂŦâ­I´ºªº¦C¼Ð¥Ü¥Ø«e¦b¤º®eµ¡®æ¤¤À˵ø¨ä¸ê®Æªºµ¦²¤¸s²Õ¡A§Y©ÒÀ˵øªºµ¦²¤¸s²Õ¡C</P><a name="pspactions"></a><div class="help-header-3">µ¦²¤¸s²Õ°Ê§@¦C</div>
+<P><b>[µ¦²¤¸s²Õ°Ê§@]</B> ¤U©Ô¦¡¥\¯àªí¥]§t¥H¤U°Ê§@¡A³o¨Ç°Ê§@±q¤W¨ì¤UÅã¥Ü¡G</P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <THEAD>
+ <TR VALIGN=TOP>
+ <TH WIDTH="11%">
+ <P>¦WºÙ</P>
+ </TH>
+ <TH WIDTH="89%">
+ <P>°Ê§@</P>
+ </TH>
+ </TR>
+ </THEAD>
+ <TBODY>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+ <P>·s«Ø</P>
+ </TD>
+ <TD WIDTH="89%">
+ <P>¶}±Ò¹ï¸Ü¤è¶ôµøµ¡¡A¨Ï¥ÎªÌ¥i¦b¨ä¤¤¿é¤Jµ¦²¤¸s²Õªº (°ß¤@) ¦WºÙ¡C«ö¤@¤U [½T©w] «á¡Aµ¦²¤¸s²Õ³Q·s¼W¡C¾É¯èµ¡®æ±N§ó·s¡A¥H¤Ï¬MÅܧó¡C</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="11%">
+ <P>§R°£</P>
+ </td>
+ <TD WIDTH="89%">
+ <P>¶}±Ò§Y²{¦¡µøµ¡¡A¨ÃÅã¥Ü­n¨D½T»{µ¦²¤¸s²Õ§R°£ªºÄµ§i°T®§¡C¦pªG¨Ï¥ÎªÌ«ö¤@¤U [½T©w]¡A«h§R°£µ¦²¤¸s²Õ¡C¾É¯èµ¡®æ±N§ó·s¡A¥H¤Ï¬MÅܧó¡C</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>­«·s©R¦W</p>
+ </td>
+ <td width="89%">
+ <p>¶}±Ò¹ï¸Ü¤è¶ôµøµ¡¡A¨Ï¥ÎªÌ¿é¤Jµ¦²¤¸s²Õªº·sªº (°ß¤@) ¦WºÙ¡A«h­«·s©R¦Wµ¦²¤¸s²Õ¡A¨Ã¥B¾É¯èµ¡®æ±N§ó·s¡A¥H¤Ï¬MÅܧó¡C</p>
+ </td>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>½s¿èÀu¥ý¶¶§Ç</p>
+ </td>
+ <td width="89%">
+ <p>¶}±Ò¥]§tÅܧóÀu¥ý¶¶§Ç¤§²M³æ¤è¶ôªº¹ï¸Ü¤è¶ôµøµ¡¡C</p>
+ </td>
+ </tr>
+ <TR VALIGN=TOP>
+ <TD WIDTH="11%">
+ <P>¶×¥X</P>
+ </TD>
+ <TD WIDTH="89%">
+ <P>¶}±Ò¹ï¸Ü¤è¶ôµøµ¡¡C¨Ï¥ÎªÌ¿é¤J­n±N©Ò¿ïµ¦²¤¸s²Õ¶×¥X¦Üªº¥Ø¼Ð¸ô®|¡C</P>
+ </TD>
+ </tr>
+ <tr valign=TOP>
+ <td width="11%">
+ <p>¶×¤J</p>
+ </td>
+ <td width="89%">
+ <p>¶}±Ò¹ï¸Ü¤è¶ôµøµ¡¡C¨Ï¥ÎªÌ¿ï¨ú­n¶×¤Jªºµ¦²¤¸s²Õ¡C«ö¤@¤U [½T©w] «á¡A±N·s¼W¸Óµ¦²¤¸s²Õ¡A¨Ã¥B¾É¯èµ¡®æ±N§ó·s¡A¥H¤Ï¬MÅܧó¡C</p>
+ </td>
+ </tr>
+ </TBODY>
+</TABLE>
+
+<p><a name="psppriorities"></a><div class="help-header-3">µ¦²¤¸s²ÕÀu¥ý¶¶§Ç</div></p>
+<p>µ¦²¤¸s²ÕÀu¥ý¶¶§Çªº·§©À¥iÅýºÞ²z­û©w¸q¦X¨Ö¼hªº¦¸§Ç¡C¦pªG¹êÅé³Q«ü©w¤F¦h­Óµ¦²¤¸s²Õ¡A«h¦X¨Ö¹Lµ{¤¤·|¨Ï¥Îµ¦²¤¸s²ÕÀu¥ý¶¶§Ç¡C³oºØ±¡ªp¤U¡A¹êÅ骺¶¥¼hµ²ºc¤£¨¬¥H½T©w¦X¨Öµ¦²¤¸s²Õªº¶¶§Ç¡C³z¹L«ü©wµ¦²¤¸s²ÕªºÀu¥ý¶¶§Ç¥i¸Ñ¨M¦¹°ÝÃD¡C</p>
+<p>­Y­n¶}±Ò [µ¦²¤¸s²ÕÀu¥ý¶¶§Ç] ¹ï¸Ü¤è¶ô¡A½Ð±q <b>[µ¦²¤¸s²Õ°Ê§@]</b> ¤U©Ô¦¡¥\¯àªí¤¤¿ï¨ú <b>[½s¿èÀu¥ý¶¶§Ç]</b>¡C­Y­n´£°ª©Î­°§Cµ¦²¤¸s²ÕªºÀu¥ý¶¶§Ç¡G</p>
+<ol>
+ <li>½Ð±q²M³æ¤¤¿ï¨úµ¦²¤¸s²Õ</li>
+ <li>«ö¤@¤U <b>[¤W²¾]</b> ©Î <b>[¤U²¾]</b> «ö¶s¨Ó´£°ª/­°§CÀu¥ý¶¶§Ç</li>
+</ol>
+
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> ªð¦^³»³¡</a></div><a name="content"> </a><div class="help-header-1">¤º®eµ¡®æ</div>
+<p>¤º®eµ¡®æ·|Åã¥Ü»P©Ò¿ï¹êÅé©Î¾É¯èµ¡®æ¤¤ªºµ¦²¤¸s²ÕÃöÁpªº¸ê®Æ¡C¸ê®Æ¥H¼ÐÅÒ¶i¦æ¤À²Õ¡C¾É¯èµ¡®æ¤¤ªº¿ï¨ú½T©w¤º®eµ¡®æ¤¤©ÒÅã¥Ü¼ÐÅÒªº¼Æ¶q©MÃþ«¬¡C<b>[µ¦²¤]</b> ¼ÐÅÒ¬°¹w³]§@¥Î¤¤¼ÐÅÒ¡C¦pªG¾É¯èµ¡®æ¤¤ªº¿ï¨úÅܧó¡A«h¥u­n¿ï¨úªº¬O¥Ø«e§@¥Î¤¤¼ÐÅÒ¡A¸Ó¼ÐÅÒ·|«O«ù¬°§@¥Î¤¤¡C§_«h¡A<b>[µ¦²¤]</b> ¼ÐÅÒ·|Åܬ°§@¥Î¤¤¼ÐÅÒ¡C·í¼ÐÅÒ¦A¦¸Åܬ°§@¥Î¤¤®É¡A¼ÐÅÒªº¤º³¡ª¬ºA (¨Ó·½¸ô®|©M±Æ§Ç¦¸§Ç) ·|³Q«ì´_¡C</p><a name="policies"> </a><div class="help-header-2">[µ¦²¤] ¼ÐÅÒ</div>
+<p>¨Ï¥Î <b>[µ¦²¤]</B> ¼ÐÅҾɯè°t¸mµ¦²¤¾ð¡A°t¸mµ¦²¤¾ð¥i¤À§OÅã¥Ü¤l¸s²Õ©M°t¸m³]©w¡A©Î¦P®ÉÅã¥Ü¤l¸s²Õ©M°t¸m³]©w¡C</p>
+<p>¨C­Óµ¦²¤­¶­±§¡¦³¨â­Ó«ö¶s¡G<ul><li><b>[«Ø¥ß³ø§i]</b>¡G½Ð°Ñ¾\¡u<a href="#reporting">³ø§i</a>¡v¤@¸`¥H¨ú±o¸Ô²Ó¸ê°T¡C</li>
+ <li><b>[²M°£³]©w]</b>¡G¦¹«ö¶s¥i»¼Âk§R°£¥Ø«e¬°©ÒÀ˵ø¹êÅéÅã¥Üªº¤l¸s²Õ¤U­±ªº©Ò¦³°t¸m¸ê®Æ¡C</li>
+</ul>
+</P>
+<p>°t¸mµ¦²¤¾ð¤¤ªº¨C­Ó®Ú¶µ¥Ø§¡ªí¥Ü¤@­ÓÀ³¥Îµ{¦¡¡A¨Ò¦p¡uStarSuite 7¡v¡CÀ³¥Îµ{¦¡¤U­±ªº¾ð²Õ´±qÄÝ©ó¸ÓÀ³¥Îµ{¦¡ªº°t¸mµ¦²¤¡C°t¸mµ¦²¤¥i¦ì©ó°t¸mµ¦²¤¾ð¤¤ªº¥ô¦ó¦ì¸m¡C¦pªG°t¸mµ¦²¤¤£¬O°t¸mµ¦²¤¾ðªº¸­¡A«h»Ý­n¬°°t¸mµ¦²¤¾ð¤¤ªº¬Y¤@¥Ø«e¦ì¸mÅã¥Üµ¦²¤ªí®æ¥H¤Î°t¸mµ¦²¤¡C</p><a name="caparpath"> </a><div class="help-header-3">¨Ó·½¸ô®|</div>
+<p>¨Ó·½¸ô®|Åã¥Ü¦b¼ÐÅÒ¤U­±­¶­±ªº³»ºÝ¡C¥¦Åã¥Ü¥Ø«e¦b°t¸mµ¦²¤¾ð¤¤ªº¦ì¸m¡C¥¦ªº¹B§@¤è¦¡»P¾É¯èµ¡®æ¤¤ªº¨Ó·½¸ô®|¬Û¦P (½Ð°Ñ¾\¤W¤@¤p¸`<a class="help-link" href="#parpath">¡u¨Ó·½¸ô®|¡v</a>)¡C</p><a name="subgroupstable"> </a><div class="help-header-3">¤l¸s²Õªí®æ</div>
+<P>¤l¸s²Õªí®æ¦ì©ó¨Ó·½¸ô®|ªº¤U­±¡C¸Óªí®æ¦C¥X°t¸mµ¦²¤¾ð¤¤¥Ø«e¦ì¸mªº¤l¸s²Õ¡C¥¦¥]§t¨âÄæ¡G[¦WºÙ] ©M [µùÄÀ]¡C</P>
+<P>[¦WºÙ] Äæ¥]§t°t¸mµ¦²¤¾ð¤¤¥Ø«e¦ì¸mªº©Ò¦³¤l¸s²Õªº¦WºÙ¡C¦WºÙÅã¥Ü¬°³sµ²¡C­Y­n¦b°t¸mµ¦²¤¾ð¤¤¾É¯è¡A½Ð«ö¤@¤U¦WºÙ³sµ²¡C³o±N¡G</P>
+<UL>
+ <li>§ó·s¤º®eµ¡®æ¡A¥H«K¨Ó·½¸ô®|«ü¦V°t¸mµ¦²¤¾ð¤¤ªº·s¦ì¸m¡C</li>
+ <li>§ó·s¤º®eµ¡®æ¡A¥H«KÅã¥Üµ¦²¤ªí®æ©Îµ¦²¤¡C</LI>
+</UL>
+<P>³oºØ¾É¯èºÙ¬°¡u³v¼hÅã¥Ü¡vÃþ«¬ªº¾É¯è¡C</P>
+<P>[µùÄÀ] Äæ¥]§t¤l¸s²ÕªºÂ²µu´y­z¡C</P><A NAME="capolicies"></A><div class="help-header-3">µ¦²¤</div>
+<P>¦pªG¦³®Äªº°t¸mµ¦²¤¸ê®Æ¥i¥Î©ó¥Ø«e¹êÅé»P¥Ø«e°t¸mµ¦²¤ªº²Õ¦X¡A«h¤º®eµ¡®æ¤¤ªº [µ¦²¤] ¼ÐÅÒÅã¥Ü³o¨Ç¸ê®Æ¡C</p>
+<p>¸ê®Æ¥Hªí®æªí¥Ü¡C¸Óªí®æ¦³¥|Äæ¡C¥]§t¿ï¨ú¹Ï¥Üªº¿ï¨úÄæ¡B[ª¬ºA] Äæ¡B[¦WºÙ] Äæ©M [­È] Äæ¡Cªí®æ¤Wªº°Ê§@¦C¨ã¦³¤U©Ô¦¡°Ê§@¥\¯àªí</p>
+<p>­Y­n¿ï¨ú¤¸¯À¡A½Ð¤Ä¿ï¥¦«e­±ªº®Ö¨ú¤è¶ô¡C²{¦b¥i¹ï©Ò¿ï¤¸¯À°õ¦æ°Ê§@¦C¤¤¤U©Ô¦¡°Ê§@¥\¯àªí¤¤ªº°Ê§@¡C¥H¤Uªí®æ´y­z©Ò¦³°Ê§@¡G</p>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P><B>°Ê§@</B></P>
+ </TD>
+ <TD WIDTH="83%">
+ <P><B>§@·~</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>«OÅ@</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>³]©w©Ò¿ï¤¸¯À¨ü«OÅ@¡C</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>¸Ñ°£«OÅ@</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>²¾°£©Ò¿ï¤¸¯Àªº«OÅ@¡C</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>®M¥Î¹w³]</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>¨Ï¥Îµ¦²¤½d¥»¤¤ªºµ{§Ç¤º©w¹w³]¸ê®Æ¡C</P>
+ </TD>
+ </TR>
+ <TR VALIGN="TOP">
+ <TD WIDTH="17%">
+ <P>²M°£</P>
+ </TD>
+ <TD WIDTH="83%">
+ <P>§R°£Àx¦s¦b¤¸¯À¤¤ªº¸ê®Æ¡C</P>
+ </TD>
+ </TR>
+
+</TABLE>
+<p>¦b¤¸¯À¦WºÙªº¥ª°¼¡A¨â­Ó¹Ï¥ÜÅã¥Ü¸Ó¤¸¯Àªºª¬ºA¡C¥H¤Uªí®æ·§­z¹Ï¥Ü¤Î¨ä¥\¯à¡G</P>
+<TABLE WIDTH="100%" BORDER=1 CELLPADDING=4 CELLSPACING=0>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><B>¹Ï¥Ü</B></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P><B>§t¸q</B></P>
+ </TD>
+ <TD WIDTH="32%">
+ <P><B>§@·~</B></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_set_here.png" NAME="DefinedHere" ALT="Defined Here" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>¦¹¹Ï¥Ü»¡©ú¦b²Õ´¾ðªº¥»¼h¦¸¤W³]©w¤¸¯Àªº­È¡C</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_set_above.png" NAME="DefinedLayered" ALT="Defined Layered" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>¦¹¹Ï¥Ü¤]¬O³sµ²¡A¥¦»¡©ú¦b²Õ´ (©Îºô°ì) ¾ðªº¸û°ª¼h¦¸¤W³]©w¤§¤¸¯Àªº­È¡C¨Ï¥ÎªÌ¬Ý¨ìªº­È¬O¦b²Õ´¤º³¡¼h¦X¨Ö©Î¹êÅé¼h¦¸¦X¨Öªºµ²ªG¡C</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>¦pªG«ö¤@¤U¦¹¹Ï¥Ü¡A¥¦¥iÅý±z¾É¯è¦Ü³]©w­Èªº¦ì¸m¡C</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_protected_here.png" NAME="ProtectedHere" ALT="Protected Here" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>¦¹¹Ï¥Ü»¡©ú¦b²Õ´ (©Îºô°ì) ¾ðªº¥»¼h¦¸¤W³]©w¤¸¯Àªº«OÅ@¡C«OÅ@¥i¦b²Õ´¾ð©M°t¸mµ¦²¤¾ð¤¤Ä~©Ó¡C</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>-</P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH="4%">
+ <P><IMG SRC="/apoc/images/icon_protected_above.png" NAME="ProtectedLayered" ALT="Protected Layered" ALIGN=BOTTOM WIDTH=22 HEIGHT=22 BORDER=0></P>
+ </TD>
+ <TD WIDTH="64%">
+ <P>¦¹¹Ï¥Ü¤]¬O³sµ²¡A¥¦»¡©ú¦b²Õ´ (©Îºô°ì) ¾ðªº¸û°ª¼h¦¸¤W³]©w¤¸¯Àªº«OÅ@¡C¦¹¤¸¯À©Î¶µ¥Øªº«OÅ@¬O¦b²Õ´¤º³¡¼h¦X¨Ö©Î¹êÅé¼h¦¸¦X¨Öªºµ²ªG¡C</P>
+ </TD>
+ <TD WIDTH="32%">
+ <P>«ö¤@¤U¦¹¹Ï¥Ü¥iÅý¨Ï¥ÎªÌ¾É¯è¦Ü³]©w«OÅ@ªº¦ì¸m¡C</P>
+ </TD>
+ </TR>
+</TABLE>
+<p>³z¹LÅܧó [­È] Ä椤ªº­È¥iÅܧó¸ê®Æ­È¡C¨t²Î¥²¶·Àx¦s­ÈªºÅܧó¥H¤Îª¬ºAªºÅܧó¡C«ö¤@¤U <b>[Àx¦s]</b> «ö¶s¥i§¹¦¨Àx¦s¡C</p><a name="casets"> </a><div class="help-header-3">³]©w</div>
+<p>³]©w¬°Äݩʪº°ÊºA¶°¦X¡C±z¥i¥H¦b³]©w¤¤·s¼W©M²¾°£¤¸¯À¡C</p>
+<p>­Y­n¦V³]©w·s¼W¤¸¯À¡G<ol><li>½Ð«ö¤@¤U <b>[·s¼W]</b> «ö¶s¡C</li>
+ <li>¨t²ÎÅã¥Ü¹ï¸Ü¤è¶ô¡A¥iÅý±z¿é¤J·s¤¸¯Àªº¦WºÙ¡CµM«á·s¼W¸Ó¤¸¯À¡A¨Ã¥B¥Dµøµ¡±N§ó·s¡C</li>
+ <li>¥i¦b¥Dµøµ¡¤¤½s¿è·s¤¸¯À</li>
+</ol>
+<p>­Y­n§R°£³]©w¤¤ªº¤¸¯À¡A½Ð¿ï¨ú¤¸¯À¨Ã«ö¤@¤U <b>[§R°£]</B> «ö¶s¡C</p>
+<p>½Ðª`·N¡A³]©w¥i¥]§t³]©w¡A¥¦­Ìªí¥Ü¬°³sµ²¡C«ö¤@¤U³sµ²Åý±z¾É¯è¦Ü³]©w¡A¥B¥i¦b¸Ó³B½s¿è³]©w</p><a name="policysets"> </a><div class="help-header-2">[µ¦²¤¸s²Õ] ¼ÐÅÒ</div>
+<p>¦¹ [µ¦²¤¸s²Õ] ­¶­±¥iÅý±z¦b©Ò¿ï¹êÅ餤·s¼W©M²¾°£µ¦²¤¸s²Õ¡C</p>
+<p>­Y­n·s¼W¥ª°¼ <b>[¥i¥Î]</b> ²M³æ¤¤¦C¥Xªºµ¦²¤¸s²Õ¡G</p>
+<ol>
+ <li>½Ð±q²M³æ¤¤¿ï¨úµ¦²¤¸s²Õ</li>
+ <li>«ö¤@¤U <b>[·s¼W]</b> «ö¶s±N©Ò¿ïµ¦²¤¸s²Õ·s¼W¦Ü¥k°¼ªº <b>[¤w¿ï¨ú]</B> ²M³æ¤¤¡C</li>
+ <li>«ö¤@¤U <b>[Àx¦s]</b> ¥HÀx¦s·sªº«ü©w¡C</LI>
+</ol><a name="caentities"> </a><div class="help-header-2">[³Q«ü©w¹êÅé] ¼ÐÅÒ</div>
+<p>¦pªG¦b¾É¯èµ¡®æªº [µ¦²¤¨t²Î°T®§®w] ¤¤¿ï¨ú¤Fµ¦²¤¸s²Õ¡A¤º®eµ¡®æ·|¥]§t <b>[³Q«ü©w¹êÅé]</b> ¼ÐÅÒ­¶­±¡C[³Q«ü©w¹êÅé] ­¶­±¦C¥X¤F©Ò¿ïµ¦²¤¸s²Õ³Q«ü©w¦Üªº©Ò¦³¹êÅé¡C</p>
+<p>[³Q«ü©w¹êÅé] ¼ÐÅÒ­¶­±¤W¥i°õ¦æªº°Ê§@¦p¤U¡G<ul><li><b>[²¾°£]</B> ¤¤Â_©Ò¿ï¹êÅé»P¾É¯èµ¡®æ¤¤©Ò¿ïµ¦²¤¸s²Õ¤§¶¡ªºÃöÁp¡C</li>
+ <li>«ö¤@¤U [¦WºÙ] Ä椤ªº¹êÅé·|§ó·s¾É¯èµ¡®æ¡A±q¦ÓÅý³Q«ö¤@¤Uªº¹êÅ馨¬°¾É¯èµ¡®æ¤¤¨ã¦³ÂŦâ­I´ºªº¹êÅé¡C</li>
+</ul>
+</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> ªð¦^³»³¡</a></div><a name="roles"> </a><div class="help-header-2">[¨¤¦â] ¼ÐÅÒ</div>
+<p>¦pªG¦b¾É¯èµ¡®æ¤¤¿ï¨ú¤F¡u¨Ï¥ÎªÌ¡vÃþ«¬ªº¹êÅé¡A¥B¸Ó¨Ï¥ÎªÌ¦Ü¤Ö±qÄÝ©ó¤@­Ó¨¤¦â¡A«h¤º®eµ¡®æ¥]§t <b>[¨¤¦â]</B> ¼ÐÅÒ­¶­±¡C<b>[¨¤¦â]</B> ­¶­±¦C¥X©Ò¿ï¨Ï¥ÎªÌ±qÄݩ󪺩Ҧ³¨¤¦â¡C</p>
+<p>¦¹­¶­±¦³ [¦WºÙ] ©M [¸ô®|] ¨âÄæ¡C[¦WºÙ] ¥]§t¨¤¦âªº¦WºÙ¡A[¸ô®|] ¥]§t¨¤¦âªºµ´¹ï¸ô®|¡C</p><a name="users"> </a><div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> ªð¦^³»³¡</a></div><a name="reporting"> </a><div class="help-header-1">³ø§i</div>
+<p>³ø§i¬°¥]§t¸ê®Æ¤§©Ò¦³°t¸m³]©wªº°ßŪÀ˵ø¡C³z¹L«ö¤@¤U <b>[«Ø¥ß³ø§i]</B> «ö¶s¥i±Ò°Ê³ø§i¡CµM«áÅã¥Ü [°t¸m³ø§i] ¹ï¸Ü¤è¶ô¡C</p>
+<p>¦¹ [°t¸m³ø§i] ¹ï¸Ü¤è¶ô¥iÅý±z¦Û­q¡G<ul><li>­n¦Ò¶q­þ­Ó¾ð (²Õ´¾ð©M/©Îºô°ì¾ð) (<b>[¥Î©ó³ø§i]</B>)</li>
+ <li>­n¦b²£¥Íªº³ø§i¤¤Åã¥Ü­þ¨ÇÄæ (<b>[ª¬ºA¸ô®|]</b> ©M <b>[´y­z]</B> ¥i³Q°±¥Î)¡C</li>
+</ul>
+<p>¦Û­q«á¡A«ö¤@¤U³ø§i·|¶}±Ò©Ò¿ï¸ê®Æªº°ßŪÀ˵ø¡C</p>
+<div align="right"><a href="#top" class="help-return-link"> <img src="/com_sun_web_ui/images/href/to_top.gif" alt="Jump to Top of Page" width="11" height="10" hspace="4" border="0"> ªð¦^³»³¡</a></div>
+
+</body>
+</html>
diff --git a/webconsole/html/zh_TW/helpNav.html b/webconsole/html/zh_TW/helpNav.html
new file mode 100644
index 0000000..daa853c
--- /dev/null
+++ b/webconsole/html/zh_TW/helpNav.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+ <title>APOC Manager - »¡©ú¤º®e</title>
+ <meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+ <meta http-equiv="Content-Type" content="text/html; charset=Big5"><!-- Empty script so IE5.0 Windows will draw table and button borders --><script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script> <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script> <script type="text/javascript"></script></HEAD>
+ <BODY>
+ <table border="0">
+ <tr>
+ <td><div class="help-header-3"><span class="help-header-3">¥Ø¿ý</span></div>
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#concepts" target="contentFrame">­I´º»P·§©À</a></li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#dataStructures" target="contentFrame">¸ê®Æµ²ºc</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#SecDataManagement" target="contentFrame">¦w¥þ©Ê»P¸ê®ÆºÞ²z</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#GenConfigSettings" target="contentFrame">°t¸m³]©wªº²£¥Í</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#BCAssociation" target="contentFrame">ÃöÁp</A></li>
+ <li><a class="help-toc-link" href="helpContent.html#BCPolicyGroups" target="contentFrame">µ¦²¤¸s²Õ</A></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#ui" target="contentFrame">§G§½©M¦æ¬°</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#login" target="contentFrame">µn¤J</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#masthead" target="contentFrame">¼ÐÀYµ¡®æ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#navigation" target="contentFrame">¾É¯èµ¡®æ</a></li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#entities" target="contentFrame">[¨Ï¥ÎªÌ] ¼ÐÅÒ</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#parpath" target="contentFrame">¨Ó·½¸ô®|</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#navtable" target="contentFrame">¾É¯èªí®æ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#adfilter" target="contentFrame">¶i¶¥¿z¿ï</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#search" target="contentFrame">·j´M</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#hoststab" target="contentFrame">[¥D¾÷] ¼ÐÅÒ</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#domtree" target="contentFrame">ºô°ì¾ð</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#actionbar" target="contentFrame">°Ê§@¦C</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#adfilterhosts" target="contentFrame">¶i¶¥¿z¿ï</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#searchhosts" target="contentFrame">·j´M</a></li>
+ </UL>
+ <li><a class="help-toc-link" href="helpContent.html#psptab" target="contentFrame">µ¦²¤¨t²Î°T®§®w</a></li>
+ <ul type="circle">
+ <li><a class="help-toc-link" href="helpContent.html#psptable" target="contentFrame">µ¦²¤¸s²Õªí®æ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#pspactions" target="contentFrame">µ¦²¤¸s²Õ°Ê§@¦C</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#psppriorities" target="contentFrame">µ¦²¤¸s²ÕÀu¥ý¶¶§Ç</a></li>
+ </ul>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#content" target="contentFrame">¤º®eµ¡®æ</a></li>
+ <ul>
+ <li><a class="help-toc-link" href="helpContent.html#policies" target="contentFrame">[µ¦²¤] ¼ÐÅÒ</a></li>
+ <ul type="circle"><li><a class="help-toc-link" href="helpContent.html#caparpath" target="contentFrame">¨Ó·½¸ô®|</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#subgroupstable" target="contentFrame">¤l¸s²Õªí®æ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#capolicies" target="contentFrame">µ¦²¤</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#casets" target="contentFrame">³]©w</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#policysets" target="contentFrame">[µ¦²¤¸s²Õ] ¼ÐÅÒ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#caentities" target="contentFrame">[³Q«ü©w¹êÅé] ¼ÐÅÒ</a></li>
+ <li><a class="help-toc-link" href="helpContent.html#roles" target="contentFrame">[¨¤¦â] ¼ÐÅÒ</a></li>
+ </ul>
+ <li><a class="help-toc-link" href="helpContent.html#reporting" target="contentFrame">³ø§i</a></li>
+ </ul>
+ </td>
+ </tr>
+ </table>
+ </BODY>
+</HTML>
diff --git a/webconsole/html/zh_TW/helpToolbar.html b/webconsole/html/zh_TW/helpToolbar.html
new file mode 100644
index 0000000..b0a166d
--- /dev/null
+++ b/webconsole/html/zh_TW/helpToolbar.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+<title>APOC Manager - »¡©ú¤u¨ã¦C</title>
+<meta name="Copyright" content="Copyright (c) 2003 by Sun Microsystems, Inc.¡Cª©Åv©Ò¦³¡C">
+<meta http-equiv="Content-Type" content="text/html; charset=BIG5">
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ </HEAD>
+ <BODY>
+ <table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><img src="/apoc/images/dot.gif" width="1" height="15" alt=""/></td>
+ <td align="right" nowrap="nowrap" valign="bottom"><div
+class="TtlBtnDiv">
+<input name="Masthead.CloseButton" type="submit" class="Btn1" value="Ãö³¬"
+title="«ö¤@¤U¥HÃö³¬ [»¡©ú] µøµ¡" onclick="javascript: parent.parent.close();
+return false;" onmouseover="javascript: if (this.disabled==0)
+this.className='Btn1Hov'" onmouseout="javascript: if (this.disabled==0) this.className='Btn1'"
+on blur="javascript: if (this.disabled==0) this.className='Btn1'"
+onfocus="javascript: if (this.disabled==0) this.className='Btn1Hov'" />
+ </div></td>
+ </tr>
+ </TABLE>
+</body>
diff --git a/webconsole/images/apocname.gif b/webconsole/images/apocname.gif
new file mode 100644
index 0000000..beed944
--- /dev/null
+++ b/webconsole/images/apocname.gif
Binary files differ
diff --git a/webconsole/images/apocname.png b/webconsole/images/apocname.png
new file mode 100644
index 0000000..325f50d
--- /dev/null
+++ b/webconsole/images/apocname.png
Binary files differ
diff --git a/webconsole/images/apoctitle.gif b/webconsole/images/apoctitle.gif
new file mode 100644
index 0000000..58da73e
--- /dev/null
+++ b/webconsole/images/apoctitle.gif
Binary files differ
diff --git a/webconsole/images/appIcon.gif b/webconsole/images/appIcon.gif
new file mode 100644
index 0000000..26b538a
--- /dev/null
+++ b/webconsole/images/appIcon.gif
Binary files differ
diff --git a/webconsole/images/arrow.gif b/webconsole/images/arrow.gif
new file mode 100644
index 0000000..a62ac8f
--- /dev/null
+++ b/webconsole/images/arrow.gif
Binary files differ
diff --git a/webconsole/images/colors.png b/webconsole/images/colors.png
new file mode 100644
index 0000000..064e4eb
--- /dev/null
+++ b/webconsole/images/colors.png
Binary files differ
diff --git a/webconsole/images/console_logo.gif b/webconsole/images/console_logo.gif
new file mode 100644
index 0000000..742d121
--- /dev/null
+++ b/webconsole/images/console_logo.gif
Binary files differ
diff --git a/webconsole/images/cross.gif b/webconsole/images/cross.gif
new file mode 100644
index 0000000..d850a8d
--- /dev/null
+++ b/webconsole/images/cross.gif
Binary files differ
diff --git a/webconsole/images/cursor.gif b/webconsole/images/cursor.gif
new file mode 100644
index 0000000..6443940
--- /dev/null
+++ b/webconsole/images/cursor.gif
Binary files differ
diff --git a/webconsole/images/decrease.png b/webconsole/images/decrease.png
new file mode 100644
index 0000000..f9eb0c1
--- /dev/null
+++ b/webconsole/images/decrease.png
Binary files differ
diff --git a/webconsole/images/domain.png b/webconsole/images/domain.png
new file mode 100644
index 0000000..7b52e3a
--- /dev/null
+++ b/webconsole/images/domain.png
Binary files differ
diff --git a/webconsole/images/domainAssigned.png b/webconsole/images/domainAssigned.png
new file mode 100644
index 0000000..923c89f
--- /dev/null
+++ b/webconsole/images/domainAssigned.png
Binary files differ
diff --git a/webconsole/images/host.png b/webconsole/images/host.png
new file mode 100644
index 0000000..fb2e82d
--- /dev/null
+++ b/webconsole/images/host.png
Binary files differ
diff --git a/webconsole/images/hostAssigned.png b/webconsole/images/hostAssigned.png
new file mode 100644
index 0000000..5736baa
--- /dev/null
+++ b/webconsole/images/hostAssigned.png
Binary files differ
diff --git a/webconsole/images/icon_empty.png b/webconsole/images/icon_empty.png
new file mode 100644
index 0000000..b5b45e6
--- /dev/null
+++ b/webconsole/images/icon_empty.png
Binary files differ
diff --git a/webconsole/images/icon_protected_above.png b/webconsole/images/icon_protected_above.png
new file mode 100644
index 0000000..e3b3af9
--- /dev/null
+++ b/webconsole/images/icon_protected_above.png
Binary files differ
diff --git a/webconsole/images/icon_protected_here.png b/webconsole/images/icon_protected_here.png
new file mode 100644
index 0000000..4549ec6
--- /dev/null
+++ b/webconsole/images/icon_protected_here.png
Binary files differ
diff --git a/webconsole/images/icon_set_above.png b/webconsole/images/icon_set_above.png
new file mode 100644
index 0000000..96a257d
--- /dev/null
+++ b/webconsole/images/icon_set_above.png
Binary files differ
diff --git a/webconsole/images/icon_set_here.png b/webconsole/images/icon_set_here.png
new file mode 100644
index 0000000..185a7d9
--- /dev/null
+++ b/webconsole/images/icon_set_here.png
Binary files differ
diff --git a/webconsole/images/increase.png b/webconsole/images/increase.png
new file mode 100644
index 0000000..bd7244d
--- /dev/null
+++ b/webconsole/images/increase.png
Binary files differ
diff --git a/webconsole/images/increase_decrease.png b/webconsole/images/increase_decrease.png
new file mode 100644
index 0000000..b50b99d
--- /dev/null
+++ b/webconsole/images/increase_decrease.png
Binary files differ
diff --git a/webconsole/images/org.png b/webconsole/images/org.png
new file mode 100644
index 0000000..3b21636
--- /dev/null
+++ b/webconsole/images/org.png
Binary files differ
diff --git a/webconsole/images/orgAssigned.png b/webconsole/images/orgAssigned.png
new file mode 100644
index 0000000..6704142
--- /dev/null
+++ b/webconsole/images/orgAssigned.png
Binary files differ
diff --git a/webconsole/images/popuptitle.gif b/webconsole/images/popuptitle.gif
new file mode 100644
index 0000000..c93b6e5
--- /dev/null
+++ b/webconsole/images/popuptitle.gif
Binary files differ
diff --git a/webconsole/images/popuptitle.png b/webconsole/images/popuptitle.png
new file mode 100644
index 0000000..38d1986
--- /dev/null
+++ b/webconsole/images/popuptitle.png
Binary files differ
diff --git a/webconsole/images/role.png b/webconsole/images/role.png
new file mode 100644
index 0000000..3de3154
--- /dev/null
+++ b/webconsole/images/role.png
Binary files differ
diff --git a/webconsole/images/roleAssigned.png b/webconsole/images/roleAssigned.png
new file mode 100644
index 0000000..27d9176
--- /dev/null
+++ b/webconsole/images/roleAssigned.png
Binary files differ
diff --git a/webconsole/images/search.gif b/webconsole/images/search.gif
new file mode 100644
index 0000000..b79bcdd
--- /dev/null
+++ b/webconsole/images/search.gif
Binary files differ
diff --git a/webconsole/images/server.gif b/webconsole/images/server.gif
new file mode 100644
index 0000000..a63d138
--- /dev/null
+++ b/webconsole/images/server.gif
Binary files differ
diff --git a/webconsole/images/user.png b/webconsole/images/user.png
new file mode 100644
index 0000000..6c7cb35
--- /dev/null
+++ b/webconsole/images/user.png
Binary files differ
diff --git a/webconsole/images/userAssigned.png b/webconsole/images/userAssigned.png
new file mode 100644
index 0000000..acf1ccb
--- /dev/null
+++ b/webconsole/images/userAssigned.png
Binary files differ
diff --git a/webconsole/images/x.png b/webconsole/images/x.png
new file mode 100644
index 0000000..64fcac7
--- /dev/null
+++ b/webconsole/images/x.png
Binary files differ
diff --git a/webconsole/js/EditColor.js b/webconsole/js/EditColor.js
new file mode 100644
index 0000000..db85ac8
--- /dev/null
+++ b/webconsole/js/EditColor.js
@@ -0,0 +1,575 @@
+//
+// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+//
+// Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+//
+// The contents of this file are subject to the terms of either
+// the GNU General Public License Version 2 only ("GPL") or
+// the Common Development and Distribution License("CDDL")
+// (collectively, the "License"). You may not use this file
+// except in compliance with the License. You can obtain a copy
+// of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+// License for the specific language governing permissions and
+// limitations under the License. When distributing the software,
+// include this License Header Notice in each file and include
+// the License file at /legal/license.txt. If applicable, add the
+// following below the License Header, with the fields enclosed
+// by brackets [] replaced by your own identifying information:
+// "Portions Copyrighted [year] [name of copyright owner]"
+//
+// Contributor(s):
+//
+// If you wish your version of this file to be governed by
+// only the CDDL or only the GPL Version 2, indicate your
+// decision by adding "[Contributor] elects to include this
+// software in this distribution under the [CDDL or GPL
+// Version 2] license." If you don't indicate a single choice
+// of license, a recipient has the option to distribute your
+// version of this file under either the CDDL, the GPL Version
+// 2 or to extend the choice of license to its licensees as
+// provided above. However, if you add GPL Version 2 code and
+// therefore, elected the GPL Version 2 license, then the
+// option applies only if the new code is made subject to such
+// option by the copyright holder.
+//
+
+// Masthead location
+ var theMasthead = self.opener.parent.parent.parent.opener;
+ var contentForm = self.opener.document.Form;
+ var notSet = self.opener.localizedNotSet;
+// Old Color and Current Color
+ var data = new Array();
+ params=window.location.search;
+ params=params.substr(1);
+ var pairs = params.split("&");
+ for (var i=0;i<pairs.length;i++) {
+ var nameVal = pairs[i].split("=");
+ var name = nameVal[0];
+ var value = nameVal[1];
+ data[name] = value;
+ }
+
+ oldcol = decodeURI(data["OrgColor"]);
+ if ((oldcol == null) || (oldcol=="undefined") || (oldcol=="") || (oldcol==notSet)){
+ oldcol="ffffff";
+ }
+ property = data["Prop"];
+ if (data["Prop"] == null){
+ property = self.opener.parent.masthead.editColorProp;
+ } else {
+ if (property=="undefined" || property=="") {
+ property="";
+ }
+ theMasthead.editColorProp=property;
+ }
+ currentName = decodeURI(data["Name"]);
+ if (data["Name"] == null || currentName=="undefined"){
+ currentName = theMasthead.currentName;
+ } else {
+ if ((currentName=="undefined")
+ || (currentName=="")
+ || (currentName==notSet)) {
+ currentName="";
+ }
+ theMasthead.currentName=currentName;
+ }
+ origName=currentName;
+ curcol=oldcol;
+ // Predefined Colors Cursor
+ cursorImg=new Image ();
+ cursorImg.src="/apoc/images/cursor.gif";
+ blankImg=new Image ();
+ blankImg.src="/com_sun_web_ui/images/other/dot.gif";
+ xImg=new Image ();
+ xImg.src="/apoc/images/x.png";
+ // this is so that if a new color is added the cursor will point to the new
+ // color on refresh
+ var cursorPos = 0;
+ if ((theMasthead.cursorPos=="") ||
+ (theMasthead.cursorPos==null)) {
+ cursorPos=0;
+ } else {
+ cursorPos=theMasthead.cursorPos;
+ theMasthead.cursorPos="";
+ }
+
+ // Other Stuff
+ hexchars="0123456789abcdef";
+ currgb=[fromhex(curcol.substr(0,2)),fromhex(curcol.substr(2,2)),fromhex(curcol.substr(4,2))];
+ curhsl=RGBtoHSL(currgb[0],currgb[1],currgb[2]);
+ // Funktions
+
+ function fromhex(inval) {
+ out=0;
+ for (a=inval.length-1;a>=0;a--) {
+ var aChar = inval.charAt(a);
+ aChar = aChar.toLowerCase();
+ out+=Math.pow(16,inval.length-a-1)*hexchars.indexOf(aChar);
+ }
+ return out;
+ }
+
+ function tohex(inval) {
+ out=hexchars.charAt(inval/16);
+ out+=hexchars.charAt(inval%16);
+ return out;
+ }
+
+
+ function setCursor(what) {
+ var alt = document.getElementById("imgCol"+cursorPos).alt;
+ if (alt == "" || alt == "undefined") {
+ document.getElementById("imgCol"+cursorPos).src=xImg.src;
+ } else {
+ document.getElementById("imgCol"+cursorPos).src=blankImg.src;
+ }
+ cursorPos=what;
+ document.getElementById("imgCol"+cursorPos).src=cursorImg.src;
+ }
+
+ function setName(pos) {
+ var alt = document.getElementById("imgCol"+pos).alt;
+ if(alt == "undefined") {
+ alt="";
+ }
+ document.getElementById("EditColor.NameValue").value=alt;
+ }
+
+ function updateName() {
+ document.getElementById("EditColor.NameValue").value=currentName;
+ }
+
+ function setInitialCursorPos() {
+ for (i=0; i<96; i++) {
+ var eachCol = document.getElementById("defCol"+i).bgColor;
+ col = "#"+curcol;
+ if (eachCol==col) {
+ setCursor(i);
+ break;
+ }
+ }
+ }
+
+ function update() {
+ var bgColor = "#"+curcol;
+ document.getElementById("thecell").bgColor=bgColor;
+ document.getElementById("EditColor.RedValue").value=currgb[0];
+ document.getElementById("EditColor.GreenValue").value=currgb[1];
+ document.getElementById("EditColor.BlueValue").value=currgb[2];
+ document.getElementById("EditColor.HtmlValue").value=curcol;
+ document.getElementById("EditColor.HueValue").value=curhsl[0];
+ document.getElementById("EditColor.SatValue").value=curhsl[1];
+ document.getElementById("EditColor.LumValue").value=curhsl[2];
+ setCursor(cursorPos);
+
+ // set the cross on the colorpic
+ var cross=document.getElementById("cross").style;
+ var cp=document.getElementById("colorpic");
+ xd=0;yd=0;lr=cp;
+ while(lr!=null) {xd+=lr.offsetLeft; yd+=lr.offsetTop; lr=lr.offsetParent;}
+ cross.top=((yd-9+128)-(127*(curhsl[1]/255)))+"px";
+ cross.left=((xd-9)+(127*(curhsl[0]/255)))+"px";
+ // update slider pointer
+ var sa=document.getElementById("sliderarrow").style;
+ var sp=document.getElementById("slider");
+ xd=0;yd=0;lr=sp;
+ while(lr!=null) {xd+=lr.offsetLeft; yd+=lr.offsetTop; lr=lr.offsetParent;}
+ sa.top=yd+"px";
+ // minus 4 from the result cause the location is for the left
+ // side of the image and not the pointer bit
+ sa.left=(xd+Math.round((127*(255-curhsl[2]))/255)+-4)+"px"
+ // update slider colors
+ for (i=0;i<128;i++) {
+ rgb=HSLtoRGB(curhsl[0],curhsl[1],255-255*i/127);
+ var hex = "#"+(tohex(rgb[0])+tohex(rgb[1])+tohex(rgb[2]));
+ document.getElementById("sc"+(i+1)).bgColor=hex;
+ }
+ }
+
+ function HSLtoRGB (h,s,l) {
+ if (s == 0) return [l,l,l] // achromatic
+ h=h*360/255;s/=255;l/=255;
+ if (l <= 0.5) rm2 = l + l * s;
+ else rm2 = l + s - l * s;
+ rm1 = 2.0 * l - rm2;
+ return [ToRGB1(rm1, rm2, h + 120.0),ToRGB1(rm1, rm2, h),ToRGB1(rm1, rm2, h - 120.0)];
+ }
+
+ function ToRGB1(rm1,rm2,rh) {
+ if (rh > 360.0) rh -= 360.0;
+ else if (rh < 0.0) rh += 360.0;
+ if (rh < 60.0) rm1 = rm1 + (rm2 - rm1) * rh / 60.0;
+ else if (rh < 180.0) rm1 = rm2;
+ else if (rh < 240.0) rm1 = rm1 + (rm2 - rm1) * (240.0 - rh) / 60.0;
+ return Math.round(rm1 * 255);
+ }
+
+ function RGBtoHSL (r,g,b) {
+ min = Math.min(r,Math.min(g,b));
+ max = Math.max(r,Math.max(g,b));
+ // l
+ l = Math.round((max+min)/2);
+ // achromatic ?
+ if(max==min) {h=160;s=0;}
+ else {
+ // s
+ if (l<128) s=Math.round(255*(max-min)/(max+min));
+ else s=Math.round(255*(max-min)/(510-max-min));
+ // h
+ if (r==max) h=(g-b)/(max-min);
+ else if (g==max) h=2+(b-r)/(max-min);
+ else h=4+(r-g)/(max-min);
+ h*=60;
+ if (h<0) h+=360;
+ h=Math.round(h*255/360);
+ }
+ return [h,s,l];
+ }
+
+ function setCol(value) {
+ value=value.toLowerCase();
+ if (value.length!=6) value=curcol;
+ for (a=0;a<6;a++)
+ if (hexchars.indexOf(value.charAt(a))==-1) {
+ value=curcol;break;
+ }
+ curcol=value;
+ currgb=[fromhex(curcol.substr(0,2)),fromhex(curcol.substr(2,2)),fromhex(curcol.substr(4,2))];
+ curhsl=RGBtoHSL(currgb[0],currgb[1],currgb[2]);
+ update();
+ }
+
+ function setRGB(r,g,b) {
+ if (r>255||r<0||g>255||g<0||b>255||b<0) {r=currgb[0];g=currgb[1];b=currgb[2];}
+ currgb=[r,g,b];
+ curcol=tohex(r)+tohex(g)+tohex(b);
+ curhsl=RGBtoHSL(r,g,b);
+ update();
+ }
+
+ function setHSL(h,s,l) {
+ if (h>255||h<0||s>255||s<0||l>255||l<0) {h=curhsl[0];s=curhsl[1];l=curhsl[2];}
+ curhsl=[h,s,l];
+ currgb=HSLtoRGB(h,s,l);
+ curcol=tohex(currgb[0])+tohex(currgb[1])+tohex(currgb[2]);
+ update();
+ }
+
+ function setFromRGB () {
+ r=document.getElementById("EditColor.RedValue").value;
+ g=document.getElementById("EditColor.GreenValue").value;
+ b=document.getElementById("EditColor.BlueValue").value;
+ if (r>255||r<0||g>255||g<0||b>255||b<0) {setRGB(currgb[0],currgb[1],currgb[2]);return;}
+ setRGB(r,g,b);
+ }
+
+ function setFromHTML () {
+ inval=document.getElementById("EditColor.HtmlValue").value.toLowerCase();
+ if (inval.length!=6) {setCol(curcol);return;}
+ for (a=0;a<6;a++)
+ if (hexchars.indexOf(inval.charAt(a))==-1) {
+ setCol(curcol);return;
+ }
+ setCol(inval);
+ }
+
+ function setFromHSL () {
+ h=document.getElementById("EditColor.HueValue").value;
+ s=document.getElementById("EditColor.SatValue").value;
+ l=document.getElementById("EditColor.LumValue").value;
+ if (h>255||h<0||s>255||s<0||l>255||l<0) {setHSL(curhsl[0],curhsl[1],curhsl[2]);return;}
+ setHSL(h,s,l);
+ }
+
+ function setFromImage (event) {
+ document.getElementById("EditColor.NameValue").value="";
+ var x=event.offsetX;
+ var y=event.offsetY;
+ if (x == undefined) {
+ xd=0;yd=0;lr=document.getElementById("colorpic");
+ while(lr!=null) {xd+=lr.offsetLeft; yd+=lr.offsetTop; lr=lr.offsetParent;}
+ x=event.pageX-xd;
+ y=event.pageY-yd;
+ }
+ setHSL(Math.round(x*255/127),Math.round(255-y*255/127),curhsl[2]);
+ }
+
+ function setFromSlider (event) {
+ xd=0;lr=document.getElementById("slider");
+ while(lr!=null) {xd+=lr.offsetLeft; lr=lr.offsetParent;}
+ x=event.clientX-xd;
+ setHSL(curhsl[0],curhsl[1],Math.round(255-x*255/127));
+ }
+
+ function applyColorChange() {
+ colorNames=new Array();
+ colorColors=new Array();
+ backendNames=new Array();
+ backendColors=new Array();
+
+ j=0
+ for (i=0;i<paletteLength;i++){
+ name = new String(paletteNames[i]);
+ if (name!="") {
+ colorNames[j]=name;
+ colorColors[j]=paletteColors[i];
+ j++;
+ }
+ backendNames[i]=name;
+ backendColors[i]=paletteColors[i];
+
+ }
+
+ document.getElementById('hiddenvalues').value=backendColors.toString();
+ document.getElementById('hiddennames').value=backendNames.toString();
+
+
+ // #b5056344# sorting the names hex values have to match the
+ // sort of the names
+ lookupHex = new Array();
+ for (i=0;i<colorNames.length;i++){
+ lookupHex[colorNames[i]] = colorColors[i];
+ }
+
+ colorNames.sort();
+ for (i=0;i<colorNames.length;i++){
+ colorColors[i] = lookupHex[colorNames[i]];
+ }
+ self.opener.updateColorChoosers(colorNames, colorColors, localizedNoName);
+
+ return true;
+ }
+
+ function addButton() {
+ // Get the current color and the name
+ var htmlcode = document.getElementById('EditColor.HtmlValue').value;
+ var name = document.getElementById("EditColor.NameValue").value;
+ // bugfix #b5039693# set these immediately as they take a while to
+ // update in IE
+ document.getElementById('imgCol'+cursorPos).src=blankImg.src;
+ document.getElementById('defCol'+cursorPos).bgcolor="#"+htmlcode;
+ // Save the name and color as variables so they can be gotten for
+ // the page refresh
+ theMasthead.originalColor=htmlcode;
+ theMasthead.currentName=name;
+ if (name=="") {
+ name=htmlcode;
+ }
+ for(i=paletteLength; i < cursorPos; i++) {
+ paletteColors[i]="";
+ paletteNames[i]="";
+ }
+ paletteColors[cursorPos]='#'+htmlcode;
+ paletteNames[cursorPos]=name;
+ if (cursorPos>=paletteLength)
+ paletteLength=cursorPos+1;
+ updatePalette();
+ setCursor(cursorPos);
+ theMasthead.cursorPos=cursorPos;
+ }
+
+ function replaceButton() {
+ var htmlcode = document.getElementById('EditColor.HtmlValue').value;
+ var name = document.getElementById("EditColor.NameValue").value;
+ // Save the name and color as variables so they can be gotten for
+ // the page refresh
+ theMasthead.originalColor=htmlcode;
+ theMasthead.currentName=name;
+ if (name=="") {
+ name=htmlcode;
+ }
+ paletteColors[cursorPos]='#'+htmlcode;
+ paletteNames[cursorPos]=name;
+ updatePalette();
+ setCursor(cursorPos);
+ theMasthead.cursorPos=cursorPos;
+ }
+
+ function removeButton() {
+ theMasthead.originalColor=document.getElementById('EditColor.HtmlValue').value;
+ var alt = document.getElementById("imgCol"+cursorPos).alt;
+ if (alt == ""){
+ alert(removeText);
+ } else {
+ var colorToRemove = document.getElementById("defCol"+cursorPos).bgColor;
+ paletteLength=paletteLength-1;
+ var paletteRemovedColors=new Array(paletteLength);
+ var paletteRemovedNames=new Array(paletteLength);
+ for (i=0;i<paletteLength;i++){
+ if (i<cursorPos){
+ paletteRemovedColors[i]=paletteColors[i];
+ paletteRemovedNames[i]=paletteNames[i];
+ } else if (i>=cursorPos){
+ paletteRemovedColors[i]=paletteColors[i+1];
+ paletteRemovedNames[i]=paletteNames[i+1];
+ }
+ }
+ paletteColors=paletteRemovedColors;
+ paletteNames=paletteRemovedNames;
+ updatePalette();
+ setCursor(cursorPos);
+ setCurrentColorTo(cursorPos);
+ }
+ return false;
+ }
+
+ function restoreOrigColorButton() {
+ // Sets the original color (saved in the oldcol variable) to be the
+ // current color.
+ theMasthead.currentName=origName;
+ setCol(oldcol);
+ }
+
+ function restoreButton() {
+ var colorNames = ["lightsalmon","salmon","redlight","red",
+ "darkred","redbrown","redblack","black","lightlemon",
+ "lemon","yellowlight","yellow","darkyellow","yellowbrown",
+ "yellowblack","nearlyblack","lightlime","lime","greenlight",
+ "green","darkgreen","greenbrown","greenblack","lightestblack",
+ "lightbabyblue","babyblue","brightbluelight","brightblue",
+ "darkbrightblue","brightbluebrown","brightblueblack",
+ "darkgrey","lightpurpleblue","purpleblue","bluelight",
+ "blue","darkblue","bluebrown","blueblack","lightgrey",
+ "lightbabypink","babypink","pinklight","pink","darkpink",
+ "pinkbrown","pinkblack","white"];
+ var colorNamesNoName = [localizedNoName,"lightsalmon","salmon","redlight","red",
+ "darkred","redbrown","redblack","black","lightlemon",
+ "lemon","yellowlight","yellow","darkyellow","yellowbrown",
+ "yellowblack","nearlyblack","lightlime","lime","greenlight",
+ "green","darkgreen","greenbrown","greenblack","lightestblack",
+ "lightbabyblue","babyblue","brightbluelight","brightblue",
+ "darkbrightblue","brightbluebrown","brightblueblack",
+ "darkgrey","lightpurpleblue","purpleblue","bluelight",
+ "blue","darkblue","bluebrown","blueblack","lightgrey",
+ "lightbabypink","babypink","pinklight","pink","darkpink",
+ "pinkbrown","pinkblack","white"];
+ var colorValues = ["#ffc0c0","#ff8080","#ff4040","#ff0000","#c00000",
+ "#800000","#400000","#000000","#ffffc0","#ffff80","#ffff40",
+ "#ffff00","#c0c000","#808000","#404000","#202020","#c0ffc0",
+ "#80ff80","#40ff40","#00ff00","#00c000","#008000","#004000",
+ "#404040","#c0ffff","#80ffff","#40ffff","#00ffff","#00c0c0",
+ "#008080","#004040","#808080","#c0c0ff","#8080ff","#4040ff",
+ "#0000ff","#0000c0","#000080","#000040","#c0c0c0","#ffc0ff",
+ "#ff80ff","#ff40ff","#ff00ff","#c000c0","#800080","#400040",
+ "#ffffff"];
+ paletteNames=colorNames;
+ paletteColors=colorValues;
+ paletteLength=48;
+ document.getElementById('hiddenvalues').value=paletteColors.toString();
+ document.getElementById('hiddennames').value=paletteNames.toString();
+ updatePalette();
+ theMasthead.currentName="";
+ theMasthead.originalColor=document.getElementById('EditColor.HtmlValue').value;
+ }
+
+
+ function updatePalette(){
+ //Remove trailing empty values
+ var runner = paletteLength-1;
+
+ while (paletteNames[runner] == "") {
+ runner--;
+ }
+ paletteNames.length = runner+1;
+ paletteColors.length = runner+1;
+ paletteLength = runner+1;
+ for (i=0;i<paletteLength;i++){
+ if(paletteNames[i] == "undefined") {
+ paletteNames[i] = "";
+ }
+ elementTD = document.getElementById("defCol"+i);
+ elementImg = document.getElementById("imgCol"+i);
+ elementImg.alt=paletteNames[i];
+ if ((elementImg.alt=="")){
+ elementImg.alt="";
+ elementTD.bgColor='#ffffff';
+ elementImg.src=xImg.src;
+ elementTD.title="";
+ } else {
+ elementImg.src=blankImg.src;
+ elementTD.bgColor=paletteColors[i];
+ elementTD.title=paletteNames[i];
+ }
+ for (j=paletteLength; j<96; j ++) {
+ elementTD = document.getElementById("defCol"+j);
+ elementImg = document.getElementById("imgCol"+j);
+ elementTD.bgColor='#ffffff';
+ elementImg.src=xImg.src;
+ elementImg.alt="";
+ elementTD.title="";
+ }
+ }
+ }
+
+
+ function incrementColor(toIncrement) {
+ document.getElementById("EditColor.NameValue").value="";
+ if (toIncrement == "Red"){
+ setRGB(parseInt(currgb[0]) + 1 + "", currgb[1], currgb[2]);
+ } else if (toIncrement == "Green") {
+ setRGB(currgb[0], parseInt(currgb[1]) + 1 + "", currgb[2]);
+ } else if (toIncrement == "Blue") {
+ setRGB(currgb[0], currgb[1], parseInt(currgb[2]) + 1 + "");
+ } else if (toIncrement == "Hue") {
+ setHSL(parseInt(curhsl[0]) + 1 + "", curhsl[1], curhsl[2]);
+ } else if (toIncrement == "Saturation") {
+ setHSL(curhsl[0], parseInt(curhsl[1]) + 1 + "", curhsl[2]);
+ } else if (toIncrement == "Luminance") {
+ setHSL(curhsl[0], curhsl[1], parseInt(curhsl[2]) + 1 + "");
+ }
+ }
+
+ function decrementColor(toDecrement) {
+ document.getElementById("EditColor.NameValue").value="";
+ if (toDecrement == "Red"){
+ setRGB(currgb[0]-1, currgb[1], currgb[2]);
+ } else if (toDecrement == "Green") {
+ setRGB(currgb[0], currgb[1]-1, currgb[2]);
+ } else if (toDecrement == "Blue") {
+ setRGB(currgb[0], currgb[1], currgb[2]-1);
+ } else if (toDecrement == "Hue") {
+ setHSL(curhsl[0]-1, curhsl[1], curhsl[2]);
+ } else if (toDecrement == "Saturation") {
+ setHSL(curhsl[0], curhsl[1]-1, curhsl[2]);
+ } else if (toDecrement == "Luminance") {
+ setHSL(curhsl[0], curhsl[1], curhsl[2]-1);
+ }
+ }
+
+ function setCurrentColorTo(tileNumber) {
+ tileColor=document.getElementById('defCol'+tileNumber).bgColor;
+ tileColor=tileColor.substring(1);
+ setCol(tileColor);
+ setCursor(tileNumber);
+ setName(tileNumber);
+ }
+
+
+ function setCurrentColorTo(tileNumber) {
+ tileColor=document.getElementById('defCol'+tileNumber).bgColor;
+ tileColor=tileColor.substring(1);
+ setCol(tileColor);
+ setCursor(tileNumber);
+ setName(tileNumber);
+ }
+
+ function isColorNameUnique() {
+ // Get the current color and the name
+ var htmlcode = document.getElementById('EditColor.HtmlValue').value;
+ var name = document.getElementById("EditColor.NameValue").value;
+ var nameIsUnique = true;
+ if (name=="") {
+ name=htmlcode;
+ }
+ if (name == localizedNoName) {
+ nameIsUnique = false;
+ }
+ for (i=0; i < paletteNames.length; i++) {
+ if (name == paletteNames[i]) {
+ nameIsUnique = false;
+ break;
+ }
+ }
+ return nameIsUnique;
+ }
+
diff --git a/webconsole/js/MainWindow.js b/webconsole/js/MainWindow.js
new file mode 100644
index 0000000..915b900
--- /dev/null
+++ b/webconsole/js/MainWindow.js
@@ -0,0 +1,376 @@
+//
+// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+//
+// Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+//
+// The contents of this file are subject to the terms of either
+// the GNU General Public License Version 2 only ("GPL") or
+// the Common Development and Distribution License("CDDL")
+// (collectively, the "License"). You may not use this file
+// except in compliance with the License. You can obtain a copy
+// of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+// License for the specific language governing permissions and
+// limitations under the License. When distributing the software,
+// include this License Header Notice in each file and include
+// the License file at /legal/license.txt. If applicable, add the
+// following below the License Header, with the fields enclosed
+// by brackets [] replaced by your own identifying information:
+// "Portions Copyrighted [year] [name of copyright owner]"
+//
+// Contributor(s):
+//
+// If you wish your version of this file to be governed by
+// only the CDDL or only the GPL Version 2, indicate your
+// decision by adding "[Contributor] elects to include this
+// software in this distribution under the [CDDL or GPL
+// Version 2] license." If you don't indicate a single choice
+// of license, a recipient has the option to distribute your
+// version of this file under either the CDDL, the GPL Version
+// 2 or to extend the choice of license to its licensees as
+// provided above. However, if you add GPL Version 2 code and
+// therefore, elected the GPL Version 2 license, then the
+// option applies only if the new code is made subject to such
+// option by the copyright holder.
+//
+
+var m_bAllowSubmit = true;
+var m_sFormAction = "";
+var m_sSearchText = "";
+var submitSearchInterval = null;
+
+function allowSubmit(bIsAllowed) {
+ m_bAllowSubmit=bIsAllowed
+}
+
+function isSubmitAllowed() {
+ var bAllowSubmit=m_bAllowSubmit;
+ m_bAllowSubmit=true;
+ return bAllowSubmit;
+}
+
+//function setFormAction(sFormAction) {
+// m_sFormAction = sFormAction;
+// document.forms[0].action=m_sFormAction;
+//}
+
+//function changeAction() {
+//alert("changeAction");
+// if (m_sFormAction.length>0) {
+// document.forms[0].action=m_sFormAction;
+// } else {
+// var nQueryIndex = document.forms[0].action.indexOf('?');
+// if (nQueryIndex>-1) {
+// document.forms[0].action=document.forms[0].action.substring(0,nQueryIndex);
+// }
+// }
+//alert(document.forms[0].action);
+//}
+
+function handleSearchSelection(sHref) {
+ if (parent.opener != null) {
+ parent.opener.focus();
+ parent.opener.entitySearchCallback(sHref);
+ if (parent.opener.name != "navigation") {
+ top.window.close();
+ }
+ } else if (top.m_OpenerTop != null){
+ if (top.m_OpenerTop.navigation != null && top.m_OpenerTop.navigation.entitySearchCallback) {
+ top.m_OpenerTop.focus();
+ top.m_OpenerTop.navigation.entitySearchCallback(sHref);
+ } else {
+ alert(SearchTargetAlert);
+ }
+ } else {
+ alert(SearchTargetAlert);
+ }
+}
+
+function extractByDelimiters(sLeftDelimiter, sRightDelimiter, sString)
+{
+ var nLeftDelimiter = 0;
+ var nLeftDelimiterLength = 0;
+ var nRightDelimiter = sString.length+1;
+
+ if ( (sLeftDelimiter!=null) && (sLeftDelimiter.length>0) ) {
+ nLeftDelimiterLength = sLeftDelimiter.length;
+ nLeftDelimiter = sString.indexOf(sLeftDelimiter);
+ if (nLeftDelimiter<0) {
+ nLeftDelimiter=0;
+ }
+ }
+
+ if ( (sRightDelimiter!=null) && (sRightDelimiter.length>0) ) {
+ nRightDelimiter = sString.indexOf(sRightDelimiter, nLeftDelimiter+nLeftDelimiterLength);
+ if (nRightDelimiter<nLeftDelimiter) {
+ nRightDelimiter=sString.length+1;
+ }
+ }
+
+ return sString.substring(nLeftDelimiter+nLeftDelimiterLength, nRightDelimiter);
+}
+
+function getSelectedLink(documentPara) {
+ return getSelectedLinkWithFilter(documentPara, ".");
+}
+
+function getNextCheckboxPos(documentPara, filterPara, checkboxOptionPos) {
+ checkboxOptionPos++;
+ while (documentPara.forms[0].elements[checkboxOptionPos]!=null) {
+ if ( (documentPara.forms[0].elements[checkboxOptionPos].name.indexOf("SelectionCheckbox")!=-1) &&
+ (documentPara.forms[0].elements[checkboxOptionPos].name.indexOf("jato_boolean")==-1) &&
+ (documentPara.forms[0].elements[checkboxOptionPos].name.indexOf(filterPara)!=-1) ) {
+ break;
+ }
+ checkboxOptionPos++;
+ }
+ return checkboxOptionPos;
+}
+
+function getSelectedLinkWithFilter(documentPara, filterPara) {
+ var viewLinkPos = 0;
+ var checkboxOptionPos = 0;
+ var selectedLink = null;
+
+ // set viewLinkPos to 1st View link (same row as 1st option box)
+ while (documentPara.links[viewLinkPos]!=null) {
+ if ( (documentPara.links[viewLinkPos].href.indexOf(".NameHref")!=-1) &&
+ (documentPara.links[viewLinkPos].href.indexOf(filterPara)!=-1) ){
+ break;
+ }
+ viewLinkPos++;
+ }
+
+ // set checkboxOptionPos to 1st option box link (same row as 1st view link)
+ checkboxOptionPos = getNextCheckboxPos(documentPara, filterPara, checkboxOptionPos);
+
+ // walk through all option boxes and ViewLinks in paralel
+ while (documentPara.forms[0].elements[checkboxOptionPos]!=null) {
+ if (documentPara.forms[0].elements[checkboxOptionPos].checked==true) {
+ selectedLink = documentPara.links[viewLinkPos];
+ break;
+ }
+ checkboxOptionPos = getNextCheckboxPos(documentPara, filterPara, checkboxOptionPos);
+ viewLinkPos++;
+ }
+ return selectedLink;
+}
+
+function getSelectedIds(documentPara, filterPara) {
+ var viewLinkPos = 0;
+ var checkboxOptionPos = 0;
+ var selectedLink = null;
+ var selectedIds = "";
+
+ // set viewLinkPos to 1st View link (same row as 1st option box)
+ while (documentPara.links[viewLinkPos]!=null) {
+ if ( (documentPara.links[viewLinkPos].href.indexOf(".NameHref")!=-1) &&
+ (documentPara.links[viewLinkPos].href.indexOf(filterPara)!=-1) ){
+ break;
+ }
+ viewLinkPos++;
+ }
+
+ // set checkboxOptionPos to 1st option box link (same row as 1st view link)
+ checkboxOptionPos = getNextCheckboxPos(documentPara, filterPara, checkboxOptionPos);
+
+ // walk through all option boxes and ViewLinks in paralel
+ while (documentPara.forms[0].elements[checkboxOptionPos]!=null) {
+ if (documentPara.forms[0].elements[checkboxOptionPos].checked==true) {
+ // due to a bug in Lockhart jsessionids are sometimes inserted
+ // they are removed here to not irritate the extract logic
+ selectedLink = documentPara.links[viewLinkPos].href;
+ nJsessionPos = selectedLink.indexOf("jsessionid");
+ if (nJsessionPos>0) {
+ nSemiPos = selectedLink.indexOf(";");
+ nQuestPos= selectedLink.indexOf("?");
+ selectedLink = selectedLink.substring(0, nSemiPos) +
+ selectedLink.substring(nQuestPos, selectedLink.length);
+ }
+ selectedLink = extractByDelimiters("=", "&", selectedLink);
+ if (selectedIds.length==0) {
+ selectedIds = selectedLink;
+ }
+ else {
+ selectedIds = selectedIds + " " + selectedLink;
+ }
+ }
+ checkboxOptionPos = getNextCheckboxPos(documentPara, filterPara, checkboxOptionPos);
+ viewLinkPos++;
+ }
+
+ return selectedIds;
+}
+
+function openWindow(openerWindow, openedWindow, windowHref, windowName, height, width, bGoldenMean) {
+
+ if (windowHref.charAt(windowHref.length-1)!="&") {
+ if (windowHref.indexOf("?")>-1) {
+ windowHref=windowHref+"&";
+ } else {
+ windowHref=windowHref+"?";
+ }
+ }
+ windowHref=windowHref+"com_sun_web_ui_popup=true&";
+
+ if ( (openedWindow != null) && (openedWindow.closed==false) ) {
+ openedWindow.location.href=windowHref;
+ } else {
+ if (windowName==null) {
+ windowName = "a"+Math.ceil(Math.random()*1000000000).toString();
+ }
+ if (height<=1) {
+ height = screen.height*height;
+ }
+ if (width<=1) {
+ width = screen.width*width;
+ }
+ var topPos = 0;
+ var leftPos = (screen.width-width)/2;
+ if (bGoldenMean) {
+ topPos = (screen.height-(screen.height/1.618))-(height/2);
+ } else {
+ topPos = (screen.height-height)/2;
+ }
+ if (openerWindow==null) {
+ openerWindow=window;
+ }
+ openedWindow = openerWindow.open(windowHref, windowName, 'height='+height+',width='+width+',top='+topPos+',left='+leftPos+',scrollbars,resizable');
+ }
+ openedWindow.focus();
+
+ return openedWindow;
+}
+
+function openProfileEditorWindow(docOrLink) {
+
+ var selectedLink = docOrLink;
+
+ if (String(docOrLink).indexOf("object")>-1) {
+ selectedLink = getSelectedLink(docOrLink);
+ }
+
+ var selectedName = extractByDelimiters("=", "&", selectedLink.href);
+
+ openWindow(window, null, '/apoc/manager/ProfileWindowFrameset?ProfileWindowFrameset.SelectedProfile='+selectedName, 'ProfileEditorWindow', 600, 1200);
+}
+
+
+function openProfileEditorWindowAtSection(docOrLink) {
+
+ var selectedLink = docOrLink;
+
+ if (String(docOrLink).indexOf("object")>-1) {
+ selectedLink = getSelectedLink(docOrLink);
+ }
+
+ var selectedName = extractByDelimiters("=", "%5C%7C", selectedLink.href);
+ var category = extractByDelimiters("%5C%7C", "&", selectedLink.href);
+ if (window.top.name == 'ProfileEditorWindow') {
+ window.top.location = '/apoc/manager/ProfileWindowFrameset?ProfileWindowFrameset.SelectedProfile='+selectedName+'&PolicySettingsContent.CategoryHref='+category+'&SelectedEditorTab=1';
+ } else {
+ var win = openWindow(window, null, '/apoc/manager/ProfileWindowFrameset?ProfileWindowFrameset.SelectedProfile='+selectedName+'&PolicySettingsContent.CategoryHref='+category+'&SelectedEditorTab=1', 'ProfileEditorWindow', 600, 1200);
+ }
+}
+
+function closePopups() {
+ if (top.m_SearchWindow != null) {
+ top.m_SearchWindow.close();
+ }
+ if (top.m_ReportWindow != null) {
+ top.m_ReportWindow.close();
+ }
+ if (top.m_ProfileWindow != null) {
+ top.m_ProfileWindow.close();
+ }
+ if (top.m_BrowseTreeWindow != null) {
+ top.m_BrowseTreeWindow.close();
+ }
+ if (top.m_SearchWindowBrowseTreeWindow != null) {
+ top.m_SearchWindowBrowseTreeWindow.close();
+ }
+ if (top.m_ImportWindow != null) {
+ top.m_ImportWindow.close();
+ }
+ if (top.m_AssignWindow != null) {
+ top.m_AssignWindow.close();
+ }
+ if (top.m_SyncWindow != null) {
+ top.m_SyncWindow.close();
+ }
+ if (top.m_ChooserWindow != null) {
+ top.m_ChooserWindow.close();
+ }
+ if (top.m_ColorChooserWindow != null) {
+ top.m_ColorChooserWindow.close();
+ }
+ if (top.m_ContextLoginWindow != null) {
+ top.m_ContextLoginWindow.close();
+ }
+ if (top.m_CopyMoveContextLoginWindow != null) {
+ top.m_CopyMoveContextLoginWindow.close();
+ }
+ if (top.m_ProfileSearchWindow != null) {
+ top.m_ProfileSearchWindow.close();
+ }
+ if (top.m_CopyMoveWindow != null) {
+ top.m_CopyMoveWindow.close();
+ }
+ if (top.m_ContextWizardWindow != null) {
+ top.m_ContextWizardWindow.close();
+ }
+}
+
+function openSearchWindow(sContext, sSearchText, sRestrictedEntity, sRestrictedEntityType) {
+
+ var bLoad = true;
+ if ( (top.m_SearchWindow!=null) && (top.m_SearchWindow.closed==false) ) {
+ top.m_SearchWindow.focus();
+ var sContext2 = top.m_SearchWindow.top.parameters.document.forms[0]['EntitiesSearchParameter.ContextHidden'].value;
+ bLoad = (sContext!=sContext2);
+ }
+
+
+ if (bLoad) {
+ top.m_ParamsLoaded=false;
+ top.m_ResultsLoaded=false;
+ top.m_ButtonsLoaded=false;
+ var encodedRestrictedEntity = encodeURIComponent(sRestrictedEntity);
+ var encodedRestrictedEntityType = encodeURIComponent(sRestrictedEntityType);
+ top.m_SearchWindow=openWindow(window, null, '/apoc/manager/EntitiesSearchIndex?EntitesSearchIndex.ButtonSearchHref=a&ContextId='+sContext+'&RestrictedEntity='+encodedRestrictedEntity+'&RestrictedEntityType='+encodedRestrictedEntityType, 'searchWindow', 0.9, 700);
+ top.m_SearchWindow.focus();
+ top.m_SearchWindow.m_CurrentOpener=window;
+ }
+
+ if (sSearchText!=null && sSearchText.length>0) {
+ m_sSearchText = sSearchText;
+ submitSearchInterval = setInterval(submitSearchWindow, 250);
+ }
+}
+
+function submitSearchWindow() {
+ if ( (top.m_ParamsLoaded==true) &&
+ (top.m_ResultsLoaded==true) &&
+ (top.m_ButtonsLoaded==true) ) {
+ clearInterval(submitSearchInterval);
+ top.m_SearchWindow.top.parameters.document.forms[0]['EntitiesSearchParameter.SearchText'].value=m_sSearchText;
+ top.m_SearchWindow.top.parameters.document.forms[0]['EntitiesSearchParameter.SearchButton'].disabled='';
+ top.m_SearchWindow.top.parameters.document.forms[0]['EntitiesSearchParameter.SearchButton'].click();
+ }
+}
+
+function taskButtonClick(taskButtonName) {
+ var thisForm = document.forms[0];
+ var elementRunner = 0;
+ if (thisForm != null) {
+ while (thisForm.elements[elementRunner]!=null) {
+ if (thisForm.elements[elementRunner].name.indexOf("."+taskButtonName)!=-1) {
+ break;
+ }
+ }
+ }
+ if (thisForm.elements[elementRunner].disabled==false) {
+ thisForm.elements[elementRunner].click();
+ }
+ return false;
+}
+
diff --git a/webconsole/js/ProfileWindow.js b/webconsole/js/ProfileWindow.js
new file mode 100644
index 0000000..d01caa7
--- /dev/null
+++ b/webconsole/js/ProfileWindow.js
@@ -0,0 +1,946 @@
+//
+// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+//
+// Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+//
+// The contents of this file are subject to the terms of either
+// the GNU General Public License Version 2 only ("GPL") or
+// the Common Development and Distribution License("CDDL")
+// (collectively, the "License"). You may not use this file
+// except in compliance with the License. You can obtain a copy
+// of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+// License for the specific language governing permissions and
+// limitations under the License. When distributing the software,
+// include this License Header Notice in each file and include
+// the License file at /legal/license.txt. If applicable, add the
+// following below the License Header, with the fields enclosed
+// by brackets [] replaced by your own identifying information:
+// "Portions Copyrighted [year] [name of copyright owner]"
+//
+// Contributor(s):
+//
+// If you wish your version of this file to be governed by
+// only the CDDL or only the GPL Version 2, indicate your
+// decision by adding "[Contributor] elects to include this
+// software in this distribution under the [CDDL or GPL
+// Version 2] license." If you don't indicate a single choice
+// of license, a recipient has the option to distribute your
+// version of this file under either the CDDL, the GPL Version
+// 2 or to extend the choice of license to its licensees as
+// provided above. However, if you add GPL Version 2 code and
+// therefore, elected the GPL Version 2 license, then the
+// option applies only if the new code is made subject to such
+// option by the copyright holder.
+//
+
+function submitCurrentSelection(hrefTag) {
+ var newLocation = hrefTag.href.substring(hrefTag.href.indexOf('=')+1, hrefTag.href.length);
+ window.location ="../manager/PolicySettingsContent?PolicySettingsContent.CategoryHref=" + newLocation;
+ return false;
+}
+
+
+function closeWindow() {
+ if (unstoredChanges() == true) {
+ var agree = confirm(getButtonsFrame().alert1);
+ if (agree != true) {
+ closeEditorAndRefresh()
+ return false;
+ }
+ }
+ closeEditorAndRefresh()
+}
+
+function closeEditorAndRefresh() {
+ refreshMainWindow();
+ if (window.parent != null) {
+ if (window.parent.parent != null) {
+ if (window.parent.parent.parent != null) {
+ window.parent.parent.parent.close();
+ }
+ window.parent.parent.close();
+ }
+ window.parent.close();
+ }
+ window.close();
+}
+
+function closeEditorWindow() {
+ if (document.getElementById("isNewProfile") != null && document.getElementById("isNewProfile").value == "true") {
+ return true;
+ } else if (unstoredChanges() == true) {
+ var agree = confirm(getButtonsFrame().alert1);
+ if (agree != true) {
+ closeEditorAndRefresh()
+ return false;
+ } else {
+ updateDisabledFields();
+ return true;
+ }
+ } else {
+ closeEditorAndRefresh();
+ return false;
+ }
+}
+
+function triggerCloseButton() {
+ var doc = getContentDocument();
+ doc.getElementById("CloseEditorButton").click();
+}
+
+function getContentForm() {
+ var form = null;
+ if (window.parent.frames[1].name == 'content') {
+ form = window.parent.content.con.contents.document.Form;
+ }
+ if (window.parent.frames[1].name == 'con') {
+ form = window.parent.con.contents.document.Form;
+ }
+ if (form == null) {
+ form = document.ProfileForm;
+ }
+ if (form == null) {
+ form = window.parent.frames['contents'].document.ProfileForm;
+ }
+ if (form == null) {
+ form = document.Form;
+ }
+ if (form == null) {
+ form = window.parent.frames['contents'].document.Form;
+ }
+ return form;
+}
+
+
+function getButtonsForm() {
+ var form = document.ButtonsForm;
+ if (form == null) {
+ form = window.parent.frames['buttons'].document.ButtonsForm;
+ }
+ return form;
+}
+
+function getContentDocument() {
+ var form = null;
+ var frame = self;
+ if (window.parent.frames[1].name == 'content') {
+ form = window.parent.content.cown.contents.document.Form;
+ frame = window.parent.content.cown.contents.document;
+ }
+ if (window.parent.frames[1].name == 'con') {
+ form = window.parent.con.contents.document.Form;
+ frame = window.parent.con.contents.document;
+ }
+ if (form == null) {
+ form = document.ProfileForm;
+ frame = document;
+ }
+ if (form == null) {
+ form = window.parent.frames['contents'].document.ProfileForm;
+ frame = window.parent.frames['contents'].document;
+ }
+ if (form == null) {
+ form = document.Form;
+ frame = document;
+ }
+ if (form == null) {
+ form = window.parent.frames['contents'].document.Form;
+ frame = window.parent.frames['contents'].document;
+ }
+ return frame;
+}
+
+function getButtonsFrame() {
+ var form = document.ButtonsForm;
+ var frame = self;
+ if (form == null) {
+ if (window.parent.frames['buttons'] != null) {
+ form = window.parent.frames['buttons'].document.ButtonsForm;
+ frame = window.parent.frames['buttons'];
+ }
+ }
+ if (form == null) {
+ if (window.parent.frames['content'].frames['con'] != null) {
+ form = window.parent.frames['content'].frames['con'].frames['buttons'].document.ButtonsForm;
+ frame = window.parent.frames['content'].frames['con'].frames['buttons'];
+ }
+ }
+ if (form == null) {
+ if (window.parent.parent.frames['content'].frames['con'] != null) {
+ form = window.parent.parent.frames['content'].frames['con'].frames['buttons'].document.ButtonsForm;
+ frame = window.parent.parent.frames['content'].frames['con'].frames['buttons'];
+ }
+ }
+ return frame;
+}
+
+
+function openTemplateHelp() {
+ var windowHref = '/apoc/manager/TemplateHelpWindow';
+ var openedWindow = null;
+ var openerWindow = window;
+ var windowName = 'TemplateHelpWindow';
+ var height = 600;
+ var width = 0.6;
+ var bGoldenMean = true;
+
+ if (windowHref.charAt(windowHref.length-1)!="&") {
+ if (windowHref.indexOf("?")>-1) {
+ windowHref=windowHref+"&";
+ } else {
+ windowHref=windowHref+"?";
+ }
+ }
+ windowHref=windowHref+"com_sun_web_ui_popup=true&";
+
+ if ( (openedWindow != null) && (openedWindow.closed==false) ) {
+ openedWindow.location.href=windowHref;
+ } else {
+ if (windowName==null) {
+ windowName = "a"+Math.ceil(Math.random()*1000000000).toString();
+ }
+ if (height<=1) {
+ height = screen.height*height;
+ }
+ if (width<=1) {
+ width = screen.width*width;
+ }
+ var topPos = 0;
+ var leftPos = (screen.width-width)/2;
+ if (bGoldenMean) {
+ topPos = (screen.height-(screen.height/1.618))-(height/2);
+ } else {
+ topPos = (screen.height-height)/2;
+ }
+ if (openerWindow==null) {
+ openerWindow=window;
+ }
+ openedWindow = openerWindow.open(windowHref, windowName, 'height='+height+',width='+width+',top='+topPos+',left='+leftPos+',scrollbars,resizable');
+ }
+ openedWindow.focus();
+}
+
+function getPagePath() {
+ return self.opener.getContentDocument().getElementById("HelpPage").value
+}
+
+function saveChanges() {
+ getContentForm().submit();
+}
+
+function switchToTab(index) {
+ if (unstoredChanges() == true) {
+ var agree = confirm(getButtonsFrame().alert2);
+ if (agree == true) {
+ updateDisabledFields();
+ saveChanges();
+ return true;
+ } else {
+ parent.location.href='../manager/ProfileWindowFrameset?SelectedEditorTab='+index+'&com_sun_web_ui_popup=true&';
+ return true;
+ }
+ } else {
+ parent.location.href='../manager/ProfileWindowFrameset?SelectedEditorTab='+index+'&com_sun_web_ui_popup=true&';
+ return true;
+ }
+}
+
+function displayCategory(link, selectedCategory) {
+ var currentCategory = document.getElementById("CurrentCategory").value;
+ if (selectedCategory.indexOf("#") != -1) {
+ selectedCategory = selectedCategory.substring(0, selectedCategory.indexOf("#"));
+ var anchor = selectedCategory.substring(selectedCategory.indexOf("#"), selectedCategory.length);
+ if (currentCategory == selectedCategory) {
+ return true;
+ }
+ } else {
+ if (currentCategory == selectedCategory) {
+ return true;
+ }
+ }
+
+ if (unstoredChanges() == true) {
+ var agree = confirm(getButtonsFrame().alert3);
+ if (agree == true) {
+ var sHref = link.href;
+ if (sHref.indexOf("&isSaveRequired=") != -1) {
+ sHref = sHref.substring(0, sHref.indexOf("&isSaveRequired="));
+ }
+ sHref = sHref + "&isSaveRequired=true";
+ link.href = sHref;
+ updateDisabledFields();
+ saveChanges();
+ }
+ }
+ return true;
+}
+
+function enableSaveButton(form) {
+ var elements = form.elements
+ for(var i=0; i < elements.length; i++) {
+ if (elements[i].name.indexOf('SaveButton') != -1) {
+ var button = elements[i];
+ button.disabled='';
+ button.className='Btn1';
+ break;
+ }
+ }
+}
+
+function disableSaveButton(form) {
+ var elements = form.elements
+ for(var i=0; i < elements.length; i++) {
+ if (elements[i].name.indexOf('SaveButton') != -1) {
+ var button = elements[i];
+ button.disabled=true;
+ button.className='Btn1Dis';
+ break;
+ }
+ }
+}
+
+function unstoredChanges() {
+ var needsSave = false;
+ var elements = getContentForm().elements
+ for(var i=0; i < elements.length; i++) {
+ if (elements[i].name.indexOf('SaveButton') != -1) {
+ var button = elements[i];
+ if (button.disabled == '') {
+ needsSave = true;
+ }
+ break;
+ }
+ }
+ return needsSave;
+}
+
+
+function enableSaveButtons() {
+ enableSaveButton(getContentForm());
+ enableSaveButton(getButtonsForm());
+}
+
+function disableSaveButtons() {
+ disableSaveButton(getContentForm());
+ disableSaveButton(getButtonsForm());
+}
+
+function updateButtonsArea() {
+ window.parent.frames['buttons'].location = '../manager/PolicySettingsButtons';
+}
+
+function getSelectedSetName(doc, filterPara) {
+ var viewLinkPos = 0;
+ var checkboxOptionPos = 0;
+ var selectedLink = null;
+
+ // set viewLinkPos to 1st View link (same row as 1st option box)
+
+ while (doc.links[viewLinkPos]!=null) {
+ if ( (doc.links[viewLinkPos].href.indexOf(".SubPageHref")!=-1) &&
+ (doc.links[viewLinkPos].href.indexOf(filterPara)!=-1) ){
+ break;
+ }
+ viewLinkPos++;
+ }
+ // set checkboxOptionPos to 1st option box link (same row as 1st view link)
+ checkboxOptionPos = getNextCheckboxPos(doc, filterPara, checkboxOptionPos);
+
+ // walk through all option boxes and ViewLinks in paralel
+ while (doc.forms[0].elements[checkboxOptionPos]!=null) {
+ if (doc.forms[0].elements[checkboxOptionPos].checked==true) {
+ selectedLink = doc.links[viewLinkPos];
+ break;
+ }
+ checkboxOptionPos = getNextCheckboxPos(doc, filterPara, checkboxOptionPos);
+ viewLinkPos++;
+ }
+
+ return selectedLink;
+}
+
+function requestSetPropertyName(buttonTag, alertText, isReplace, document) {
+ var defaultValue = "";
+ if (isReplace=="true") {
+ defaultValue = getSelectedSetName(document, ".").text;
+ }
+ if (unstoredChanges() == true) {
+ var agree = confirm(getButtonsFrame().alert4);
+ if (agree == true) {
+ var f=getContentForm();
+ f.elements['SaveAllPage'].value = "true";
+
+ var returnValue = prompt(alertText, defaultValue);
+ if (returnValue=='' || returnValue==null) return false;
+ var doReplace = 0;
+ for (i = 0; i < returnValue.length; i++) {
+ if (returnValue[i] == '<') {
+ doReplace++;
+ }
+ }
+ if (doReplace != 0) {
+ for(i=0;i<doReplace;i++) {
+ returnValue = returnValue.replace("<", " ");
+ }
+ }
+ f.elements['UserInput'].value = returnValue;
+ updateDisabledFields();
+ return true;
+ } else {
+ var f=getContentForm();
+ f.elements['SaveAllPage'].value = "false";
+ var returnValue = prompt(alertText, defaultValue);
+ if (returnValue=='' || returnValue==null) return false;
+ var doReplace = 0;
+ for (i = 0; i < returnValue.length; i++) {
+ if (returnValue[i] == '<') {
+ doReplace++;
+ }
+ }
+ if (doReplace != 0) {
+ for(i=0;i<doReplace;i++) {
+ returnValue = returnValue.replace("<", " ");
+ }
+ }
+ f.elements['UserInput'].value = returnValue;
+ updateDisabledFields();
+ return true;
+ }
+ } else {
+ var returnValue = prompt(alertText, defaultValue);
+ if (returnValue=='' || returnValue==null) return false;
+ var f=getContentForm();
+ var doReplace = 0;
+ for (i = 0; i < returnValue.length; i++) {
+ if (returnValue[i] == '<') {
+ doReplace++;
+ }
+ }
+ if (doReplace != 0) {
+ for(i=0;i<doReplace;i++) {
+ returnValue = returnValue.replace("<", " ");
+ }
+ }
+ f.elements['UserInput'].value = returnValue;
+ updateDisabledFields();
+ return true;
+ }
+}
+
+function extractSectionName(elementName) {
+ var section = elementName;
+ var pos = section.indexOf('.PoliciesSectionTiledView');
+ if (pos == -1) {
+ pos = section.lastIndexOf('.');
+ }
+ section = section.substring(0, pos);
+ section = section.substring(section.lastIndexOf('.')+1, section.length);
+ return section
+}
+
+function setTargetAnchor(elementName) {
+ var form = document.Form;
+ var pos = form.action.lastIndexOf('#');
+ if (pos != -1) {
+ form.action = form.action.substring(0, pos);
+ }
+ form.action=form.action + '#' + extractSectionName(elementName);
+}
+
+function addRequestParameter(name, value) {
+ var form = document.Form;
+ form.action=form.action + '?' + name + '=' + value + '&';
+}
+
+function sendStatusAreaRequest(name, value) {
+ window.parent.frames['buttons'].location = '../manager/PolicySettingsButtons' + '?' + name + '=' + value + '&';
+}
+
+function toggleDisabledState(sectionName) {
+ var enableButton = 'PolicySettingsContent.PolicyTemplateContent.'+ sectionName + '.EnableButton';
+ var disableButton = 'PolicySettingsContent.PolicyTemplateContent.'+ sectionName + '.DisableButton';
+ var actionMenu = 'PolicySettingsContent.PolicyTemplateContent.'+ sectionName + '.ActionMenu';
+ var elementName = 'PolicySettingsContent.PolicyTemplateContent.' + sectionName + '.PoliciesSectionTable.SelectionCheckbox';
+ var form = document.Form;
+ var disabled = true;
+
+ for (i = 0; i < form.elements.length; i++) {
+ var e = form.elements[i];
+
+ if ((e.name.indexOf(elementName) != -1) &&
+ (e.name.indexOf('jato_boolean') == -1)) {
+ if (e.checked) {
+ disabled = false;
+ break;
+ }
+ }
+ }
+
+ // Toggle action button disabled state.
+ ccSetDropDownMenuOptionDisabled(actionMenu, "Form", disabled, 0);
+ ccSetDropDownMenuOptionDisabled(actionMenu, "Form", disabled, 1);
+ ccSetDropDownMenuOptionDisabled(actionMenu, "Form", disabled, 2);
+ ccSetDropDownMenuOptionDisabled(actionMenu, "Form", disabled, 3);
+ ccSetDropDownMenuOptionDisabled(actionMenu, "Form", disabled, 4);
+ ccSetButtonDisabled(enableButton, "Form", disabled);
+ ccSetButtonDisabled(disableButton, "Form", disabled);
+}
+
+function updateSaveStatus(element) {
+ var contentForm = getContentForm();
+ var currentValues = updateValues(false);
+ var originalValues = contentForm['PolicySettingsContent.OriginalValues'].value;
+ if (currentValues != originalValues) {
+ setTargetAnchor(element);
+ enableSaveButtons();
+ } else {
+ disableSaveButtons();
+ }
+}
+
+function updateGeneralSettingsSaveStatus() {
+ var currentNameValue = document.getElementById("psLbl1").value;
+ var currentCommentValue = document.getElementById("psLbl2").value;
+ var originalNameValue = document.getElementById("originalName").value;
+ var originalCommentValue = document.getElementById("originalComment").value;
+ var allCurrentValues = currentNameValue + ";" + currentCommentValue;
+ var allOriginalValues = originalNameValue + ";" + originalCommentValue;
+ if (allCurrentValues != allOriginalValues) {
+ enableSaveButtons();
+ } else {
+ disableSaveButtons();
+ }
+ document.getElementById("isNewProfile").value = "false";
+}
+
+function updateValues(isOriginalLoad) {
+ var prefix1 = "PolicySettingsContent.PolicyTemplateContent." ;
+ var prefix2 = ".PoliciesSectionTiledView[" ;
+ var prefix3 = "].PropertyValue" ;
+ var enforcedPrefix = ".Enforced";
+
+ var valueList = "" ;
+ var contentForm = getContentForm();
+ for(var i = 0; i < contentForm.elements.length; i++) {
+ var element = contentForm.elements[i] ;
+ if((element.name.indexOf(prefix1) == 0)
+ && (element.name.indexOf(prefix2) != -1)
+ && (element.name.indexOf(prefix3) == element.name.length-prefix3.length)) {
+ var value = element.value ;
+
+ // Need to handle checkboxes differently since checkbox.value always returns true,
+ // its necessary to check the .checked value of a checkbox
+ if(element.type == "checkbox" && element.checked != true) {
+ value = "false" ;
+ }
+
+ // Need to deal with radiobuttons individually and see if they are checked
+ // and only add them to the list if they are checked
+ if(element.type == "radio") {
+ if(element.checked == true) {
+ value = element.value ;
+ valueList = valueList + value + "|";
+ }
+ } else {
+ valueList = valueList + value + "|" ;
+ }
+ } else if (element.name.indexOf(enforcedPrefix) == element.name.length-enforcedPrefix.length) {
+ if(element.checked != true) {
+ value = "false" ;
+ } else {
+ value = "true" ;
+ }
+ valueList = valueList + value + "|" ;
+ }
+ }
+ if (isOriginalLoad) {
+ contentForm['PolicySettingsContent.OriginalValues'].value = valueList ;
+ }
+ return valueList;
+}
+
+function isSaveNecessary() {
+ var wnd = window.parent.frames['buttons'];
+ var form = wnd.document.Form;
+ var saveButton = form.elements['SettingsButtons.SaveButton'];
+ if (saveButton.disabled == false) {
+ var answer = confirm("Sie haben mehrere Aenderungen auf dieser Seite gemacht.\nMoechten Sie diese Aenderungen jetzt speichern?");
+ if (answer == true) {
+ window.document.Form.submit();
+ return true;
+ }
+ }
+ return false;
+}
+
+function requestUserInput(buttonTag) {
+ var returnValue = prompt(getButtonsFrame().alert5,'');
+ if (returnValue=='' || returnValue==null) return false;
+ var f=document.Form;
+ f.elements['UserInput'].value = returnValue;
+ return true;
+}
+
+function addNewListItem(valueFieldId) {
+ if (requestUserInput(null) != true) return;
+ var f = document.Form;
+ var separator = f.elements['Separator' + valueFieldId].value;
+ var newEntry = f.elements['UserInput'].value
+ var selection = f.elements['List' + valueFieldId];
+ if (!(selection.options[0].value == localizedNotSet)) {
+ for(var i = selection.length; i > 0; i--) {
+ selection[i] = new Option(selection.options[i-1].value, selection.options[i-1].value);
+ }
+ }
+ selection[0] = new Option(newEntry, newEntry);
+ selection.selectedIndex = 0;
+
+ var hidden = f.elements[valueFieldId];
+ var buffer = newEntry;
+ var text = hidden.value;
+ if (text.length > 0) {
+ if (!(text == localizedNotSet)) {
+ buffer = buffer + separator + text;
+ }
+ }
+ hidden.value = buffer;
+ updateSaveStatus(hidden.name);
+ toggleOverwriteCheckboxFromId(valueFieldId);
+}
+
+
+function removeListItem(valueFieldId) {
+ var f=document.Form;
+ var selection = f.elements['List' + valueFieldId];
+ var separator = f.elements['Separator' + valueFieldId].value;
+ if (selection.selectedIndex != -1) {
+ var hidden = f.elements[valueFieldId];
+ for(var i=0; i < selection.length; i++) {
+ if (selection[i].selected == true) {
+ selection[i] = null;
+ i = i - 1;
+ }
+ }
+ selection.selectedIndex = -1;
+ var buffer = '';
+ for(var i = 0; i < selection.length; i++) {
+ buffer = buffer + selection.options[i].value;
+ if (i < selection.length -1) {
+ buffer = buffer + separator;
+ }
+ }
+ hidden.value = buffer;
+ updateSaveStatus(hidden.name);
+ toggleOverwriteCheckboxFromId(valueFieldId);
+ if (selection.length == 0) clearList(valueFieldId);
+ }
+}
+
+function clearList(valueFieldId) {
+ var f=document.Form;
+ var selection = f.elements['List' + valueFieldId];
+ var hidden = f.elements[valueFieldId];
+ for(var i=0; i < selection.length; i++) {
+ selection[i] = null;
+ i = i - 1;
+ }
+ selection.selectedIndex = -1;
+ var buffer = localizedNotSet;
+ selection[0] = new Option(buffer, buffer);
+ hidden.value = buffer;
+ updateSaveStatus(hidden.name);
+ toggleOverwriteCheckboxFromId(valueFieldId);
+}
+
+function setCurrentCategory(catName) {
+ var hiddenCat = window.parent.parent.frames.tree.document.getElementById("CurrentCategory");
+ var hiddenCatValue = hiddenCat.value;
+ if (hiddenCatValue.indexOf("#") == -1) {
+ hiddenCat.value = catName;
+ } else {
+ var mainCat = hiddenCatValue.substring(0, hiddenCatValue.indexOf("#"));
+ if (catName != mainCat) {
+ hiddenCat.value = catName;
+ }
+ }
+}
+
+function refreshNavigationTree() {
+ window.parent.parent.frames.tree.document.TreeForm.submit();
+}
+
+function refreshSettingsArea() {
+ window.parent.frames['con'].location = '../manager/PolicySettingsFrameset';
+}
+
+function refreshMainWindow() {
+
+ var topWindow = top.m_OpenerTop;
+ if (topWindow.content != null ) {
+ topWindow.content.document.forms[0].submit();
+ } else if (topWindow.document.forms[0] != null && topWindow.document.forms[0].name == "OnePaneForm") {
+ topWindow.document.forms[0].submit();
+ }
+}
+
+function jumpTo(anchor) {
+ if (window.parent.frames['con'] != null) {
+ window.parent.frames['con'].frames['contents'].location.hash=anchor;
+ } else {
+ window.location.hash=anchor;
+ }
+}
+
+function resetField(clearButton) {
+ var f = document.Form;
+ var fieldId = clearButton.name;
+ fieldId = fieldId.substring(0, fieldId.length - 5);
+ f.elements[fieldId].value = localizedNotSet;
+ updateSaveStatus(fieldId);
+ toggleOverwriteCheckboxFromId(fieldId);
+}
+
+function setDefaultFieldValue(id, value) {
+ var f = document.Form;
+ f.elements[id].value = value;
+ updateSaveStatus(id);
+ toggleOverwriteCheckboxFromId(id);
+}
+
+function setListToDefault(listName, defaultValue, listSeparator) {
+ var values = defaultValue.split(listSeparator);
+ var contentForm = getContentForm();
+ contentForm[listName].value = defaultValue;
+ var listSetting = contentForm['List'+ listName];
+ if (listSetting.options != null) {
+ listSetting.options.length = 0;
+ }
+ for(var i = 0; i < values.length; i++) {
+ listSetting.options[i] = new Option(values[i], values[i]);
+ }
+ updateSaveStatus(listName);
+ toggleOverwriteCheckboxFromId(listName);
+}
+
+function updateDisabledFields() {
+ var prefix1 = "PolicySettingsContent.PolicyTemplateContent." ;
+ var prefix1Length = prefix1.length ;
+ var prefix2 = ".PoliciesSectionTiledView[" ;
+ var prefix2Length = prefix2.length ;
+ var prefix3 = "].PropertyValue" ;
+ var disabledValues = "" ;
+ var contentForm = getContentForm();
+ for(var i = 0; i < contentForm.elements.length; i++) {
+ var element = contentForm.elements[i] ;
+
+ if(element.disabled == true) {
+ if((element.name.indexOf(prefix2) != -1) && (element.name.indexOf(prefix3) != -1)) {
+ var sectionName = element.name.substring(prefix1Length, element.name.indexOf(prefix2)) ;
+ var index = element.name.substring(prefix1Length + sectionName.length + prefix2Length, element.name.indexOf(prefix3)) ;
+ var value = element.value ;
+
+ // Need to handle checkboxes differently since checkbox.value always returns true,
+ // its necessary to check the .checked value of a checkbox
+ if(element.type == "checkbox" && element.checked != true) {
+ value = "false" ;
+ }
+
+ // Need to deal with radiobuttons individually and see if they are checked
+ if(element.type == "radio") {
+ if(element.checked == true) {
+ value = element.value ;
+ disabledValues = disabledValues + sectionName + "|" + index + "|" + value + "|" ;
+ }
+ } else {
+ disabledValues = disabledValues + sectionName + "|" + index + "|" + value + "|" ;
+ }
+ }
+ }
+ }
+ if (contentForm['PolicySettingsContent.DisabledFieldsValues'] != null) {
+ contentForm['PolicySettingsContent.DisabledFieldsValues'].value = disabledValues ;
+ }
+}
+
+//******** BEGIN Color Chooser Functions
+var colorFieldName = null ;
+
+function setColorChooserName(buttonName) {
+ var cutStringPoint = buttonName.lastIndexOf(".");
+ colorFieldName = buttonName.substring(0, cutStringPoint).concat(".ColorNameDropDown") ;
+ return true ;
+}
+
+function getColorChooserName() {
+ return colorFieldName ;
+}
+
+
+function updateColorChoosers(colorNames, colorValues, localizedNoName) {
+ var colorNamesLength = 0;
+ var contentDocForm = document.Form ;
+
+ //Runs through all elements in content area and checks if they are colorchoosers buttons
+ //then uses the colorchooser button name to create the drop-down menu name
+ for(var i=0; i < contentDocForm.elements.length; i++) {
+ if(contentDocForm.elements[i].name.search("ColorNameDropDown") != -1) {
+ var dropDownMenuName = contentDocForm.elements[i].name;
+ var selectedColorIndex = contentDocForm[dropDownMenuName].selectedIndex;
+ var selectedColorName = contentDocForm[dropDownMenuName].options[selectedColorIndex].text;
+ //Adds default options to drop-down menu
+ contentDocForm[dropDownMenuName].options[0] = new Option(localizedNotSet, localizedNotSet);
+ contentDocForm[dropDownMenuName].options[1] = new Option(localizedNoName, "");
+ if(selectedColorName==contentDocForm[dropDownMenuName].options[0].text) {
+ selectedColorIndex = 0 ;
+ }
+ if(selectedColorName==contentDocForm[dropDownMenuName].options[1].text) {
+ selectedColorIndex = 1 ;
+ }
+ for(var j=0; j < colorNames.length; j++){
+ contentDocForm[dropDownMenuName].options[j+2] = new Option(colorNames[j], colorValues[j]);
+ if(selectedColorName==contentDocForm[dropDownMenuName].options[j+2].text) {
+ selectedColorIndex = j+2 ;
+ }
+ }
+ //Resets the selected index to its correct value after adding option
+ contentDocForm[dropDownMenuName].options[selectedColorIndex].selected=true;
+ contentDocForm[dropDownMenuName].options.length=colorNames.length + 2;
+ }
+ }
+}
+
+
+function setFromDropDown(prop) {
+ var dropdown = document.getElementById("colorNameDropDown"+prop);
+ var index = dropdown.selectedIndex;
+ var value = dropdown.options[index].value;
+ document.getElementById("newColor"+prop).value=value;
+ document.getElementById("colorsquare"+prop).style.backgroundColor=value;
+ document.Form.elements[unescape(prop)].onchange();
+}
+
+function checkValidHexValue(field, qualName){
+ var hex = document.Form.elements[field].value;
+ if (hex == localizedNotSet) {
+ updateColorChooserExtras(qualName, localizedNotSet);
+ } else {
+ var hexNoHash;
+ var cutStringPoint = field.lastIndexOf(".");
+ var origValueField = field.substring(0, cutStringPoint).concat(".OriginalValue") ;
+ var origValue = document.Form.elements[origValueField].value;
+
+ if (hex.substring(0,1)=="#") {
+ hexNoHash = hex.substring(1);
+ } else {
+ hexNoHash = hex;
+ if (hex.length != 0) {
+ hex = "#" + hex;
+ document.Form.elements[field].value = hex;
+ }
+ }
+ if (hexNoHash.length != 6 && hexNoHash.length != 0){
+ alert(invalidHex);
+ document.Form.elements[field].value=origValue;
+ hex=origValue;
+ } else {
+ hexNoHash = hexNoHash.toLowerCase();
+ hexchars="0123456789abcdef";
+ out=0;
+ for (a=hexNoHash.length-1;a>=0;a--) {
+ var aChar = hexNoHash.charAt(a);
+ aChar = aChar.toLowerCase();
+ index = hexchars.indexOf(aChar);
+ if (index==-1)
+ out = -1;
+ }
+ if (out==-1) {
+ alert(invalidHex);
+ document.Form.elements[field].value=origValue;
+ hex=origValue;
+ }
+ }
+ updateColorChooserExtras(qualName, hex)
+ }
+}
+
+function updateColorChooserExtras(qualName, hexValue) {
+ if (hexValue == localizedNotSet) {
+ document.getElementById("colorNameDropDown"+qualName).selectedIndex=0;
+ document.getElementById("colorsquare"+qualName).style.backgroundColor="";
+ } else {
+ document.getElementById("colorsquare"+qualName).style.backgroundColor=hexValue;
+ var dropDown = document.getElementById("colorNameDropDown"+qualName);
+ document.getElementById("colorNameDropDown"+qualName).selectedIndex=1;
+ for(i=0; i < dropDown.length; i++) {
+ if(hexValue.toLowerCase() == dropDown.options[i].value) {
+ document.getElementById("colorNameDropDown"+qualName).selectedIndex=i;
+ break;
+ }
+ }
+ }
+ toggleOverwriteCheckbox(document.getElementById("newColor" + qualName));
+}
+
+//************* END Color Chooser Functions
+
+//************* START Chooser Functions
+var chooserName = null ;
+var chooserID = null ;
+
+function setChooserName(buttonName) {
+ chooserName = buttonName ;
+ return true ;
+}
+
+
+function setChooserID(id) {
+ chooserID = id;
+ return true ;
+}
+
+
+function getChooserID() {
+ return chooserID ;
+}
+
+function getChooserName() {
+ return chooserName ;
+}
+
+function updateChoosers(optionsArray) {
+ var f = document.Form ;
+ var cutStringPoint = chooserName.lastIndexOf(".") ;
+ chooserBtnName = chooserName.substring(cutStringPoint + 1, chooserName.length) ;
+ //Runs through all elements in content area and checks if they are chooser buttons of
+ //of the correct type(i.e of the type that clicked the 'Edit' button) -
+ //then uses the chooser button name to create the drop-down menu name
+ for(var i=0; i < f.elements.length; i++) {
+ cutStringPoint = f.elements[i].name.lastIndexOf(".") ;
+ elementName = f.elements[i].name.substring(cutStringPoint + 1, f.elements[i].name.length) ;
+ if(elementName == chooserBtnName) {
+ var cutStringPoint = f.elements[i].name.lastIndexOf(".");
+ var dropDownMenuName = f.elements[i].name.substring(0, cutStringPoint).concat(".PropertyValue") ;
+ var selectedListIndex = f[dropDownMenuName].selectedIndex ;
+ var selectedListName = f[dropDownMenuName].options[selectedListIndex].text ;
+ f[dropDownMenuName].options.length = 0 ;
+ //Adds new options to drop-down menu
+ for(var j=0; j < optionsArray.length; j++){
+ f[dropDownMenuName].options[j] = new Option(optionsArray[j], optionsArray[j]) ;
+ if(selectedListName.match(f[dropDownMenuName].options[j].text)) {
+ selectedListIndex = j ;
+ }
+ }
+ //Resets the selected index to its correct value after adding option
+ f[dropDownMenuName].options[selectedListIndex].selected=true;
+ }
+ }
+}
+
+function compareCaseInsensitive(a, b) {
+ var anew = a.toLowerCase();
+ var bnew = b.toLowerCase();
+ if (anew < bnew) return -1;
+ if (anew > bnew) return 1;
+ return 0;
+//************* END Chooser Functions
+}
diff --git a/webconsole/jsp/Alert.jsp b/webconsole/jsp/Alert.jsp
new file mode 100644
index 0000000..ea70a9f
--- /dev/null
+++ b/webconsole/jsp/Alert.jsp
@@ -0,0 +1,75 @@
+<%@ page info="Alert" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.AlertViewBean">
+
+ <cc:header pageTitle="APOC.navigation.area" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle">
+
+ <cc:form name="testForm" method="post">
+
+ <cc:pagetitle name="AlertTitle"
+ pageTitleText="APOC.pageerror.title"
+ showPageTitleSeparator="true"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="false"
+ bundleID="apocBundle">
+
+ <div class="ConMgn">
+ <cc:alert name="Alert" bundleID="apocBundle"/>
+
+ <BR>
+
+ <cc:text name="TraceHint" defaultValue="APOC.pageerror.comment" bundleID="apocBundle"/>
+ </div>
+
+<!--
+<cc:text name="StackTrace"/>
+-->
+
+ </cc:pagetitle>
+
+ </cc:form>
+
+ </cc:header>
+
+</jato:useViewBean>
diff --git a/webconsole/jsp/ContentAreaPoliciesSet.xml b/webconsole/jsp/ContentAreaPoliciesSet.xml
new file mode 100644
index 0000000..4c8a927
--- /dev/null
+++ b/webconsole/jsp/ContentAreaPoliciesSet.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+<table>
+ <actions>
+ <cc name="NewButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="dynamic" value="true" />
+ </cc>
+ <cc name="DeleteButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="dynamic" value="true" />
+ </cc>
+ <cc name="RenameButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="dynamic" value="true" />
+ </cc>
+ </actions>
+ <column name="NameColumn" rowheader="true" sortname="PropertyName" extrahtml="width='180px' nowrap='nowrap'">
+ <cc name="SubPageHref" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="onClick" value="javascript:return(submitCurrentSelection(this));"/>
+ <attribute name="SubmitFormData" value="true"/>
+ <cc name="PropertyName" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag"/>
+ </cc>
+ </column>
+</table>
diff --git a/webconsole/jsp/ContentAreaPoliciesSimpleSet.xml b/webconsole/jsp/ContentAreaPoliciesSimpleSet.xml
new file mode 100644
index 0000000..136050a
--- /dev/null
+++ b/webconsole/jsp/ContentAreaPoliciesSimpleSet.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+<table>
+ <actions>
+ <cc name="NewButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ </cc>
+ <cc name="DeleteButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag"/>
+ </actions>
+ <column name="NameColumn" rowheader="true" sortname="PropertyName" extrahtml="width='180px' nowrap='nowrap'">
+ <cc name="PropertyName" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag"/>
+ </column>
+</table>
diff --git a/webconsole/jsp/EditColor.jsp b/webconsole/jsp/EditColor.jsp
new file mode 100644
index 0000000..5494fb4
--- /dev/null
+++ b/webconsole/jsp/EditColor.jsp
@@ -0,0 +1,321 @@
+<%@ page info="EditColor" language="java" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+<%@taglib uri="/WEB-INF/apoc.tld" prefix="apoc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.EditColorViewBean">
+
+<!-- Header -->
+ <cc:header pageTitle="APOC.setcolor.title" copyrightYear="2003" baseName="com.sun.apoc.manager.resource.apoc_manager" bundleID="apocBundle" isPopup="true" onLoad="setCursor(cursorPos);setCol(curcol);updateName();setInitialCursorPos();">
+ <cc:stylesheet />
+
+ <script type="text/javascript" src="/apoc/js/EditColor.js"></script>
+ <script type="text/javascript">
+ <!--
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_BrowseTreeWindow= top;
+ }
+ // -->
+ </script>
+ <cc:form name="EditColorForm" method="post" defaultCommandChild="SetColorButton">
+
+ <!-- Masthead -->
+ <cc:secondarymasthead name="SecondaryMH" bundleID="apocBundle" />
+
+ <!-- Page Title (Edit Color) -->
+ <cc:pagetitle name="PageTitle" bundleID="apocBundle" pageTitleHelpMessage="APOC.setcolor.introtext" pageTitleText="APOC.setcolor.title" showPageTitleSeparator="true" showPageButtonsTop="false" showPageButtonsBottom="true">
+
+ <!-- Layout Table with three columns -->
+ <div class="MstDivUsr">
+ <table align="center" cellpadding="0" cellspacing="0" border="0" title="" width="97%">
+ <tr>
+ <td valign="top" align="left" width="128">
+ <table cellpadding="0" cellspacing="6" border="0" width="100%" title="">
+ <!-- Original Color heading and sample -->
+ <tr>
+ <td>
+ <cc:label name="OriginalHeading" bundleID="apocBundle" defaultValue="APOC.setcolor.original.heading" elementId='bgorgcolor' />
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="<cc:text name='BgOrgColor' bundleID='apocBundle' defaultValue='#ffffff' />" height="30" width="128">
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="<cc:text name='AltBgOrgColor' />" width="128" height="10" border="0" onMouseOver="window.status=this.alt;return true;" onMouseOut="window.status=''" id="bgorgcolor" />
+ </td>
+ </tr>
+ <!-- Restore Original Color button -->
+ <tr>
+ <td>
+ <table cellpadding="0" cellspacing="0" border="0" width="100%" title="">
+ <tr>
+ <td>
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="" width="1" height="6" border="0" />
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ <cc:button name="RestoreOrigColorButton" bundleID="apocBundle" type="secondary" defaultValue="APOC.setcolor.remove.button" onClick="restoreOrigColorButton();return false;" tabIndex="1" />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <!-- Color Wheel -->
+ <tr>
+ <td class="TblTdHdr" align="left">
+ <span class="LblLev2Txt">
+ <cc:label name="WheelHeading" bundleID="apocBundle" defaultValue="APOC.setcolor.wheel.heading" />
+ </span>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img id="colorpic" src="/apoc/images/colors.png" alt="<cc:text name='AltWheel' />" width="128" height="128" border="0" onClick="setFromImage(event);" onMouseDown="setFromImage(event);" onDragOver="setFromImage(event);" onMouseOver="window.status=this.alt;return true;" onMouseOut="window.status=''" />
+ </td>
+ </tr>
+ <!-- Luminance Adjuster -->
+ <tr>
+ <td>
+ <table border=0 cellspacing=0 cellpadding=0 width=128 height=14 id="slider" summary="<cc:text name='SummarySlider' />" onClick="setFromSlider(event);" onMouseDown="setFromSlider(event);" onDragOver="setFromSlider(event);">
+ <tr>
+ <tr>
+ <td>
+ <img src="/com_sun_web_ui/images/other/dot.gif" height="5" alt="" />
+ </td>
+ </tr>
+ <td>
+ <table border=0 cellspacing=0 cellpadding=0 width=128 height=14>
+ <tr>
+ <script type="text/javascript">
+ for (i=0;i<128;i++)
+ document.write(
+ "<td id=\"sc"+(i+1)+"\" height=\"14\" width=\"1\"></td>"
+ );
+ </script>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td valign="top" align="center">
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="" width="15" height="1" border="0" />
+ </td>
+ <td valign="top" align="center">
+ <table cellpadding="0" cellspacing="6" border="0" width="100%" title="">
+ <!-- Current Color heading and sample -->
+ <tr>
+ <td>
+ <cc:label name="ColorHeading" bundleID="apocBundle" defaultValue="APOC.setcolor.color.heading" elementId="colorheading" />
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor="<cc:text name='BgColor' bundleID='apocBundle' />" height="30" width="170" id="thecell">
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="<cc:text name='AltBgColor' />" width="170" height="30" border="0" onMouseOver="window.status=this.alt;return true;" onMouseOut="window.status=''" id="colorheading" />
+ </td>
+ </tr>
+ <!-- Name, RGB, HSL and Hex entry fields -->
+ <tr>
+ <td>
+ <table cellpadding="0" cellspacing="5" border="0" width="100%" title="">
+ <tr>
+ <td colspan=3>
+ <table cellpadding="0" cellspacing="2" border="0" width="100%">
+ <tr>
+ <td align="left">
+ <cc:label name="NameLabel" bundleID="apocBundle" defaultValue="APOC.navigation.name.label" elementName="NameValue" />
+ </td>
+ <td align="right">
+ <cc:textfield name="NameValue" tabIndex="2" />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td width="45%" align="right">
+ <apoc:spinProperty name="Red" defaultValue="APOC.setcolor.red.heading" upTitle="APOC.setcolor.red.increase" upAction="incrementColor('Red')" downTitle="APOC.setcolor.red.decrease" downAction="decrementColor('Red')" size="3" tabIndex="3" onChange="setFromRGB()" />
+ </td>
+ <td width="10%" align="right"></td>
+ <td width="45%" align="right">
+ <apoc:spinProperty name="Hue" defaultValue="APOC.setcolor.hue.heading" upTitle="APOC.setcolor.hue.increase" upAction="incrementColor('Hue')" downTitle="APOC.setcolor.hue.decrease" downAction="decrementColor('Hue')" size="3" tabIndex="12" onChange="setFromHSL()" />
+ </td>
+ </tr>
+ <tr>
+ <td width="45%" align="right">
+ <apoc:spinProperty name="Green" defaultValue="APOC.setcolor.green.heading" upTitle="APOC.setcolor.green.increase" upAction="incrementColor('Green')" downTitle="APOC.setcolor.green.decrease" downAction="decrementColor('Green')" size="3" tabIndex="6" onChange="setFromRGB()" />
+ </td>
+ <td width="10%" align="right"></td>
+ <td width="45%" align="right">
+ <apoc:spinProperty name="Sat" defaultValue="APOC.setcolor.sat.heading" upTitle="APOC.setcolor.sat.increase" upAction="incrementColor('Saturation')" downTitle="APOC.setcolor.sat.decrease" downAction="decrementColor('Saturation')" size="3" tabIndex="15" onChange="setFromHSL()" />
+ </td>
+ </tr>
+ <tr>
+ <td width="45%" align="right">
+ <apoc:spinProperty name="Blue" defaultValue="APOC.setcolor.blue.heading" upTitle="APOC.setcolor.blue.increase" upAction="incrementColor('Blue')" downTitle="APOC.setcolor.blue.decrease" downAction="decrementColor('Blue')" size="3" tabIndex="9" onChange="setFromRGB()" />
+ </td>
+ <td width="10%" align="right"></td>
+ <td width="45%" align="right">
+ <apoc:spinProperty name="Lum" defaultValue="APOC.setcolor.lum.heading" upTitle="APOC.setcolor.lum.increase" upAction="incrementColor('Luminance')" downTitle="APOC.setcolor.lum.decrease" downAction="decrementColor('Luminance')" size="3" tabIndex="18" onChange="setFromHSL()" />
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <table cellpadding="0" cellspacing="0" border="0" width="100%">
+ <tr>
+ <td align="left">
+ <cc:label name="HtmlLabel" bundleID="apocBundle" defaultValue="APOC.setcolor.html.heading" elementName="HtmlValue" />
+ </td>
+ <td align="right">
+ <cc:textfield name="HtmlValue" onChange="setFromHTML()" tabIndex="21" />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <!-- Add and Replace buttons -->
+ <tr>
+ <td align="left">
+ <cc:button name="AddButton" bundleID="apocBundle" type="secondary" defaultValue="APOC.setcolor.add.button" onClick="javascript:if (document.getElementById('imgCol'+cursorPos).alt=='') { if(isColorNameUnique()) { addButton(); } else { alert(duplicateNameText); } } else { alert(cantAddText); } return false;" tabIndex="22" />
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ <cc:button name="ReplaceButton" bundleID="apocBundle" type="secondary" defaultValue="APOC.setcolor.replace.button" onClick="javascript:if (cursorPos>paletteLength-1) { alert(replaceText); } else { replaceButton(); } return false;" tabIndex="22"></cc:button>
+ </td>
+ </tr>
+ </tr>
+ </table>
+ </td>
+ <td valign="top" align="center">
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="" width="25" height="1" border="0" />
+ </td>
+ <td valign="top" align="left" width="128">
+ <table cellpadding="0" cellspacing="6" border="0" title="" width="100%">
+ <!-- Color Palette -->
+ <tr>
+ <td>
+ <cc:label name="PaletteHeading" bundleID="apocBundle" defaultValue="APOC.setcolor.palette.heading" elementId="paletteheading" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <!-- Custom Colors -->
+ <table border=1 cellpadding=0 cellspacing=0>
+ <jato:tiledView name="PaletteRowTiledView">
+ <tr height=14>
+ <jato:tiledView name="PaletteTDTiledView">
+ <td height=14 width=14 bgcolor="<cc:text name='PresetColor' />" id="defCol<cc:text name='PresetColorNo' />" title="<cc:text name='PresetColorName' />">
+ <a href="javascript:tileNumber=<cc:text name='PresetColorNo' />;setCurrentColorTo(tileNumber);">
+ <img src="<cc:text name='Image' />" width=14 height=14 border=0 id="imgCol<cc:text name='PresetColorNo' />" alt="<cc:text name='PresetColorName' />" onmouseover="window.status=this.alt;return true;" onmouseout="window.status='';return true;"></a>
+ </td>
+ </jato:tiledView>
+ </tr>
+ </jato:tiledView>
+ </table>
+ </td>
+ </tr>
+ <!-- Delete and Restore colors buttons -->
+ <tr>
+ <td align="left">
+ <cc:button name="RemoveButton" bundleID="apocBundle" type="secondary" defaultValue="APOC.setcolor.remove.button" onClick="javascript:removeButton();return false;" tabIndex="24" />
+ </td>
+ </tr>
+ <tr>
+ <td align="left">
+ <cc:button name="RestoreButton" bundleID="apocBundle" type="secondary" defaultValue="APOC.setcolor.restore.button" onClick="javascript: if (confirm(questionText)) { restoreButton(); } return false;" tabIndex="25" />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </cc:pagetitle>
+
+ <script type="text/javascript">
+ <!--
+ // Set string for confirm question up so it can be used later
+ questionText="<cc:text name='RestoreConfirm' />";
+ replaceText="<cc:text name='ReplaceAlert' />";
+ cantAddText="<cc:text name='AddAlert' />";
+ removeText="<cc:text name='RemoveAlert' />";
+ duplicateNameText="<cc:text name='NameAlert' />";
+ //Set the localized string for no color name
+ var localizedNoName = "<cc:text name='LocalizedNoName' />";
+ // Let the two palette arrays only represent what is seen on screen on the palette
+ paletteColors = new Array(96);
+ paletteNames = new Array(96);
+ paletteLength = 96;
+ for (i=0;i<96;i++){
+ elementTD = document.getElementById("defCol"+i);
+ elementImg = document.getElementById("imgCol"+i);
+ elementBgColor = elementTD.bgColor;
+ elementName = elementImg.alt;
+ paletteNames[i] = elementName;
+ paletteColors[i] = elementBgColor;
+
+ if (elementName!="" && paletteLength!=96)
+ paletteLength = 96;
+ if (elementName=="" && paletteLength==96)
+ paletteLength = i;
+ }
+ //-->
+ </script>
+
+ <cc:hidden name="HiddenValues" elementId="hiddenvalues" />
+ <cc:hidden name="HiddenNames" elementId="hiddennames" />
+ </cc:form>
+ <img id="cross" src="/apoc/images/cross.gif" style="position:absolute; left:0px; top:0px" alt="">
+ <img id="sliderarrow" src="/apoc/images/arrow.gif" style="position:absolute; left:0px top:0px" alt="">
+
+ </cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/EditColorPageTitle.xml b/webconsole/jsp/EditColorPageTitle.xml
new file mode 100644
index 0000000..5f50d58
--- /dev/null
+++ b/webconsole/jsp/EditColorPageTitle.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="SetColorButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="default"/>
+ <attribute name="onClick" value="javascript: applyColorChange();return true;"/>
+ </cc>
+ <cc name="CloseButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="primary"/>
+ </cc>
+ </pagebuttons>
+</pagetitle>
diff --git a/webconsole/jsp/EditList.jsp b/webconsole/jsp/EditList.jsp
new file mode 100644
index 0000000..31a3913
--- /dev/null
+++ b/webconsole/jsp/EditList.jsp
@@ -0,0 +1,351 @@
+<%@page info="Edit List Dialog" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.EditListViewBean">
+
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<cc:i18nbundle id="apocBundle" baseName="com.sun.apoc.manager.resource.apoc_manager" />
+<html>
+ <head>
+ <title><cc:text name="WindowTitle" /></title>
+ <meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ </head>
+
+ <body class="DefBdy">
+
+
+ <script type="text/javascript">
+ <!--
+ var theMasthead = self.opener.parent.parent.parent.opener;
+ var protectedText="<cc:text name='ProtectedAlert' />";
+ var selectedText="<cc:text name='SelectedAlert' />";
+ var LIST_WIDTH_MAINTAINER='<cc:text name="ListWidthMaintainer" />';
+ var SYSTEM_ADDED_FLAG='<cc:text name="SystemAddedFlag" />';
+ var UNDEFINED_VALUE="<cc:text name='UndefinedValue' />";
+
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ChooserWindow= top;
+ }
+
+
+ function updateContentArea() {
+ var l = document.ChooserForm['EditList.List'] ;
+ var optionsArray = new Array() ;
+ var elements = "" ;
+ var states = "" ;
+
+ //Add the UNDEFINED_VALUE option at start
+ optionsArray[0] = UNDEFINED_VALUE;
+ //Create array of options from the existing edit list (minus the last
+ //element which is the width maintainer string
+ for(var n=0; n < l.length - 1; n++) {
+ var lastIndex = l.options[n].text.length ;
+ var last4Chars = l.options[n].text.slice(lastIndex-4, lastIndex) ;
+ //Remove the system-added tag from the font name if its there
+ if(last4Chars.indexOf(SYSTEM_ADDED_FLAG) == 0) {
+ optionsArray[n+1] = l.options[n].text.slice(0, lastIndex-4) ;
+ elements = elements.concat(optionsArray[n+1].concat(";")) ;
+ states = states.concat("true;") ;
+ }
+ else {
+ optionsArray[n+1] = l.options[n].text;
+ elements = elements.concat(optionsArray[n+1].concat(";"));
+ states = states.concat("false;") ;
+ }
+ }
+ self.opener.updateChoosers(optionsArray) ;
+
+ document.getElementById("hiddenelements").value = elements ;
+ document.getElementById("hiddenstates").value = states ;
+ }
+
+ function updateAfterAdd() {
+ var l = document.ChooserForm['EditList.List'] ;
+ var t = document.ChooserForm['EditList.AddTextField'] ;
+ var addedValueIndex = 0 ;
+
+ if(t.value.length == 0) {
+ return;
+ }
+
+ var optionsArray = new Array() ;
+
+ //Create array of options from the existing edit list (minus the last
+ //element which is the width maintainer string
+ for(var n=0; n < l.length - 1; n++) {
+ optionsArray[n] = l.options[n].text;
+ //If the value is already in the list then highlight it in the list and exit
+ if((l.options[n].value == t.value) || (l.options[n].value == t.value.concat(SYSTEM_ADDED_FLAG))) {
+ l.options[n].selected = true
+ return;
+ }
+ }
+ optionsArray[optionsArray.length] = t.value ;
+ optionsArray.sort(compareCaseInsensitive) ;
+
+ //Create a new options array from the sorted optionsArray and assign it
+ //to the edit list
+ for(var m=0; m < optionsArray.length ; m++) {
+ l.options[m] = new Option(optionsArray[m], optionsArray[m]) ;
+ if(optionsArray[m] == t.value) {
+ addedValueIndex = m ;
+ }
+ }
+
+ l.options[l.length] = new Option(LIST_WIDTH_MAINTAINER, LIST_WIDTH_MAINTAINER) ;
+ t.value = "" ;
+ l.focus() ;
+ l.options[addedValueIndex].selected = true ;
+ }
+
+
+ function updateAfterRemove() {
+ var l = document.ChooserForm['EditList.List'] ;
+ var indexToRemove = l.selectedIndex ;
+
+ l.options[indexToRemove] = null ;
+ }
+
+
+ function updateAfterRestore(chooserDefaults) {
+ var l = document.ChooserForm['EditList.List'] ;
+ //Get defaults string and split it into array - the last element of this
+ //array will be empty since the Defaults string ends in the separator ";"
+ var defaults = chooserDefaults.split(";") ;
+ l.options.length = 0 ;
+
+ //Create a new options array from the default values and assign it
+ //to the edit list
+ for(var n=0; n < defaults.length - 1; n++) {
+ l.options[n] = new Option(defaults[n], defaults[n]) ;
+ }
+
+ l.options[l.length] = new Option(LIST_WIDTH_MAINTAINER, LIST_WIDTH_MAINTAINER) ;
+ }
+
+ function isRemoveAllowed() {
+ var indexToRemove = document.ChooserForm['EditList.List'].selectedIndex ;
+ var indexOfLastElement = document.ChooserForm['EditList.List'].length -1 ;
+ //Ensure that a value has been selected, that it is not the constant list
+ //width maintainer string and that it is neither a selected or protected value for this
+ //page before attempting to remove any values
+
+ if(indexToRemove == -1) {
+ return false ;
+ }
+ else if(indexToRemove == indexOfLastElement) {
+ return false ;
+ }
+ else if(isElementProtected(indexToRemove)) {
+ alert(protectedText) ;
+ return false ;
+ }
+ else if(isElementSelected(indexToRemove)) {
+ alert(selectedText) ;
+ return false ;
+ }
+ return true ;
+ }
+
+
+ function isElementProtected(index) {
+ var selectedElement = document.ChooserForm['EditList.List'].options[index].text ;
+ var protectedElementString = self.opener.document.getElementById("protectedChoosers").value ;
+ var protectedElementsArray = protectedElementString.split(";") ;
+ var protectedTypeString = self.opener.document.getElementById("protectedChoosersType").value ;
+ var protectedTypeArray = protectedTypeString.split(";") ;
+ var currentChooserID = self.opener.getChooserID() ;
+ var filteredArray = new Array() ;
+
+
+ //Remove system added flag from the selected element if present
+ var lastIndex = selectedElement.length ;
+ var last4Chars = selectedElement.slice(lastIndex-4, lastIndex) ;
+ if(last4Chars.indexOf(SYSTEM_ADDED_FLAG) == 0) {
+ selectedElement = selectedElement.slice(0, lastIndex-4) ;
+ }
+
+ for(var i = 0; i < protectedTypeArray.length; i++) {
+ if(protectedTypeArray[i] == currentChooserID) {
+ filteredArray.push(protectedElementsArray[i]) ;
+ }
+ }
+
+ for(var i = 0; i < filteredArray.length; i++) {
+ var str = filteredArray[i] ;
+ if((str.length != 0) && (selectedElement == str)) {
+ return true
+ }
+ }
+ return false
+ }
+
+ function isElementSelected(index) {
+ var selectedElement = document.ChooserForm['EditList.List'].options[index].text ;
+ var f = self.opener.document.Form ;
+ var clickedChooserName = self.opener.getChooserName() ;
+ var cutStringPoint = clickedChooserName.lastIndexOf(".") ;
+ var chooserBtnName = clickedChooserName.substring(cutStringPoint + 1, clickedChooserName.length) ;
+
+ //Remove system added flag from the selected element if present
+ var lastIndex = selectedElement.length ;
+ var last4Chars = selectedElement.slice(lastIndex-4, lastIndex) ;
+ if(last4Chars.indexOf(SYSTEM_ADDED_FLAG) == 0) {
+ selectedElement = selectedElement.slice(0, lastIndex-4) ;
+ }
+
+ //Runs through all elements in content area and checks if they are chooser buttons of
+ //of the correct type(i.e of the type that clicked the 'Edit' button) -
+ //then uses the chooser button name to create the drop-down menu name
+ for(var i=0; i < f.elements.length; i++) {
+ cutStringPoint = f.elements[i].name.lastIndexOf(".") ;
+ elementName = f.elements[i].name.substring(cutStringPoint + 1, f.elements[i].name.length) ;
+ if(elementName == chooserBtnName) {
+ var cutStringPoint = f.elements[i].name.lastIndexOf(".");
+ var dropDownMenuName = f.elements[i].name.substring(0, cutStringPoint).concat(".PropertyValue") ;
+ var selectedListIndex = f[dropDownMenuName].selectedIndex ;
+ var selectedListName = f[dropDownMenuName].options[selectedListIndex].text ;
+ if(selectedElement == selectedListName) {
+ return true ;
+ }
+ }
+ }
+ return false ;
+ }
+
+
+ function compareCaseInsensitive(a, b) {
+ var anew = a.toLowerCase();
+ var bnew = b.toLowerCase();
+ if (anew < bnew) return -1;
+ if (anew > bnew) return 1;
+ return 0;
+ }
+
+
+ //-->
+ </script>
+
+
+
+ <cc:form name="ChooserForm" method="post" defaultCommandChild="OKButton">
+
+ <cc:secondarymasthead name="SecondaryMH" bundleID="apocBundle" />
+
+ <cc:pagetitle name="EditListTitle"
+ pageTitleHelpMessage="APOC.page.chooser.list.help"
+ showPageTitleSeparator="true"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="true"
+ bundleID="apocBundle">
+
+ <br>
+
+ <table title="" border="0" cellpadding="5" cellspacing="0" align="center">
+ <tr>
+ <td colspan="2">
+ <cc:textfield name="AddTextField"
+ bundleID="apocBundle"
+ dynamic="true"
+ size="25"
+ />
+ &nbsp;&nbsp;
+ <cc:button name="AddButton"
+ bundleID="apocBundle"
+ defaultValue="APOC.chooser.add"
+ type="primaryMini"
+ onClick="updateAfterAdd() ;return false;"
+ />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <cc:selectablelist name="List"
+ bundleID="apocBundle" title="List"
+ dynamic="true"
+ multiple="false"
+ size="5"
+ />
+ </td>
+ <td>
+ <cc:button name="RemoveButton"
+ bundleID="apocBundle"
+ defaultValue="APOC.policies.delete.button"
+ type="secondaryMini"
+ onClick="javascript:if(isRemoveAllowed())
+ updateAfterRemove();
+ return false;"
+ />
+ </td>
+ </tr>
+ </table>
+ <br>
+ <table title="" border="0" cellpadding="5" cellspacing="0" align="center">
+ <tr>
+ <td>
+ <cc:text name="StaticText" bundleID="apocBundle" defaultValue="APOC.chooser.system_added" />
+ </td>
+ </tr>
+ </table>
+ </cc:pagetitle>
+ <cc:hidden name="HiddenElements" elementId="hiddenelements" />
+ <cc:hidden name="HiddenStates" elementId="hiddenstates" />
+ <cc:hidden name="HiddenChooserDataPath" elementId="hiddendatapath" />
+ <input type="hidden" name="EditList.PageTitle.com_sun_web_ui_popup" value="true"/>
+ <input type="hidden" name="com_sun_web_ui_popup" value="true" />
+ </cc:form>
+</body>
+</html>
+</jato:useViewBean>
+
diff --git a/webconsole/jsp/EditListTitle.xml b/webconsole/jsp/EditListTitle.xml
new file mode 100644
index 0000000..4161fc8
--- /dev/null
+++ b/webconsole/jsp/EditListTitle.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="OKButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.button.OK"/>
+ <attribute name="type" value="default"/>
+ <attribute name="onClick" value="javascript:updateContentArea(); return true;"/>
+ </cc>
+ <cc name="RestoreDefaultsButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.setcolor.restore.button"/>
+ <attribute name="type" value="secondary"/>
+ </cc>
+ <cc name="CancelButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.button.cancel"/>
+ <attribute name="type" value="secondary"/>
+ <attribute name="onClick" value="javascript:top.window.close(); return false;"/>
+ </cc>
+ </pagebuttons>
+</pagetitle> \ No newline at end of file
diff --git a/webconsole/jsp/EntityContent.jsp b/webconsole/jsp/EntityContent.jsp
new file mode 100644
index 0000000..9004068
--- /dev/null
+++ b/webconsole/jsp/EntityContent.jsp
@@ -0,0 +1,328 @@
+<%@ page info="Content Area" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.EntityContentViewBean">
+
+<cc:header pageTitle="APOC.masthead.altText" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle">
+
+<script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+<script type="text/javascript">
+<!--
+
+ function submitNew(name, comment, location) {
+ document.EntityContentForm['EntityContent.NewName'].value=name;
+ document.EntityContentForm['EntityContent.NewComment'].value=comment;
+ document.EntityContentForm['EntityContent.NewLocation'].value=location;
+ setFormAction('../manager/EntityContent?EntityContent.AssignedTableView.ActionMenuHref=7&amp;');
+ document.EntityContentForm.submit();
+ }
+
+ function handleSelection(selectTag) {
+ var f=document.EntityContentForm;
+ if (f != null) {
+
+ var command = document.forms[0]['EntityContent.CommandHidden'];
+ var commandParam = document.forms[0]['EntityContent.CommandParametersHidden'];
+ command.value = "";
+ commandParam.value = "";
+ var selectedCommand = selectTag.options[selectTag.selectedIndex].value;
+
+ if (selectedCommand==1) {
+ //rename
+ var groupName = getSelectedLink(document).text;
+ groupName = prompt('<cc:text name="RenameMessage" bundleID="apocBundle" defaultValue="APOC.pool.renameMessage"/>', unescape(groupName));
+
+ if (groupName!=null) {
+ command.value = selectedCommand+'';
+ commandParam.value = getSelectedIds(document, "AssignedTableView") + " " + groupName;
+ }
+ }
+ else if (selectedCommand==2) {
+ //copy and move
+ var selectedProfiles = getSelectedIds(document, "AssignedTableView");
+ var profile = "";
+ if (selectedProfiles.indexOf(" ")>-1) {
+ profile = selectedProfiles.substring(0, selectedProfiles.indexOf(" "));
+ } else {
+ profile = selectedProfiles;
+ }
+
+ document.forms[0]['EntityContent.AssignedTableView.SelectedProfile'].value=profile;
+ document.forms[0]['EntityContent.AssignedTableView.copyMoveWizardWindow'].click();
+ }
+ else if (selectedCommand==5){
+ //import
+ top.masthead.ImportWindow = openWindow(window, null, '/apoc/manager/ProfilesImport?ProfilesImport.ImportGroup=EntityContentView', 'importWindow', 360, 500, true);
+ }
+ else if (selectedCommand==6){
+ //export
+ var profileId = getSelectedLink(document).href;
+ profileId = extractByDelimiters("=", "&", profileId);
+ command.value = selectedCommand;
+ commandParam.value = profileId;
+
+ var checkboxRunner = 0;
+ while (document.forms[0].elements[checkboxRunner]!=null) {
+ if ( (document.forms[0].elements[checkboxRunner].name.indexOf("SelectionCheckbox")!=-1) &&
+ (document.forms[0].elements[checkboxRunner].name.indexOf("jato_boolean") == -1) &&
+ (document.forms[0].elements[checkboxRunner].checked==true) ) {
+ document.forms[0].elements[checkboxRunner].checked=false;
+ break;
+ }
+ checkboxRunner++;
+ }
+ }
+
+ if (command.value.length>0) {
+ var a=document.EntityContentForm.elements[selectTag.name];
+ for (i=0; i<a.length; i++) {
+ a[i].selectedIndex=selectTag.selectedIndex;
+ }
+ f.action='../manager/EntityContent?EntityContent.AssignedTableView.ActionMenuHref=a';
+ f.submit();
+ }
+
+ if (selectTag.options!=null) {
+ selectTag.options.selectedIndex=0;
+ }
+ toggleMenu();
+ f.action = "../manager/EntityContent";
+ command.value = "";
+ commandParam.value = "";
+ }
+ }
+
+ function toggleMenu() {
+ var nElementRunner=0;
+ var nElements=0;
+ var nCheckedElements=0;
+ var assignButton = "EntityContent.AssignedTableView.AssignButton";
+ var unassignButton = "EntityContent.AssignedTableView.UnassignButton";
+ var newButton = "EntityContent.AssignedTableView.NewButton";
+ var deleteButton = "EntityContent.AssignedTableView.DeleteButton";
+ var actionMenu = "EntityContent.AssignedTableView.ActionMenu";
+ var wizBtn = document.forms[0]['EntityContent.AssignedTableView.copyMoveWizardWindow'];
+
+ while (document.EntityContentForm.elements[nElementRunner]!=null) {
+ if ((document.EntityContentForm.elements[nElementRunner].name.indexOf("SelectionCheckbox")!=-1) &&
+ (document.EntityContentForm.elements[nElementRunner].name.indexOf("jato_boolean") == -1)) {
+ nElements++;
+ if (document.EntityContentForm.elements[nElementRunner].checked==true) {
+ nCheckedElements++;
+ }
+ }
+ nElementRunner++;
+ }
+
+ var bIsReadOnly = <cc:text name="JSReadOnly"/>;
+
+ // enable "assign" button if no is selected
+ ccSetButtonDisabled(assignButton, "EntityContentForm", (bIsReadOnly||(nCheckedElements!=0)));
+
+ // enable "unassign" button if at least one profile is selected
+ ccSetButtonDisabled(unassignButton, "EntityContentForm", (bIsReadOnly||(nCheckedElements==0)));
+
+ // enable "new" button if no profile is selected
+ ccSetButtonDisabled(newButton, "EntityContentForm", (bIsReadOnly||(nCheckedElements!=0)));
+
+ // enable "delete" button if at least one profile is selected
+ ccSetButtonDisabled(deleteButton, "EntityContentForm", (bIsReadOnly||(nCheckedElements==0)));
+
+ if (wizBtn.disabled == true) {
+ ccSetDropDownMenuOptionDisabled(actionMenu, "EntityContentForm", true, 2)
+ } else {
+ // enable "copymove" action menu item if exactly one profile is selected
+ ccSetDropDownMenuOptionDisabled(actionMenu, "EntityContentForm", (nCheckedElements!=1), 2)
+ }
+
+ // enable "rename" action menu item if exactly one profile is selected
+ ccSetDropDownMenuOptionDisabled(actionMenu, "EntityContentForm", (bIsReadOnly||(nCheckedElements!=1)), 1);
+
+ // enable "export" action menu item if exactly one profile is selected
+ ccSetDropDownMenuOptionDisabled(actionMenu, "EntityContentForm", (nCheckedElements!=1), 4);
+
+ // enable "import" action menu item if no profile is selected
+ ccSetDropDownMenuOptionDisabled(actionMenu, "EntityContentForm", (bIsReadOnly||(nCheckedElements!=0)), 3);
+
+ }
+ // -->
+</script>
+
+<a name="top" id="top"/>
+
+<cc:form name="EntityContentForm" method="post" onSubmit='javascript:return isSubmitAllowed();' defaultCommandChild='DefaultHref'>
+
+ <%--
+ This is a workaround for IE 6:
+ using <BR> or equivalents will create a gray area instead of a invisible vertical space
+ --%>
+ <table><tr><td>
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="10" width="1" />
+ </td></tr></table>
+
+ <jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+ </jato:content>
+
+ <cc:pagetitle name="AssignedTitle"
+ pageTitleText="APOC.pool.sets"
+ showPageTitleSeparator="true"
+ pageTitleHelpMessage="APOC.profile.page.title"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="false"
+ bundleID="apocBundle">
+ </cc>
+
+ <br>
+ <div class="content-layout">
+ <cc:button name="ResultButton"
+ bundleID="apocBundle"
+ type="secondary"
+ title="APOC.pool.report_button.help"
+ defaultValue="APOC.profileassi.showResults"
+ onClick="javascript:allowSubmit(false); openWindow(window, null, '/apoc/manager/ShowResultsFrameset', 'reportWindow', 0.9, 900);" />
+ </div>
+ <br>
+
+ <jato:containerView name="AssignedTableView">
+
+ <cc:actiontable name="AssignedTable"
+ bundleID="apocBundle"
+ title="APOC.policysets.title"
+ summary="APOC.pool.tableSummary"
+ empty="APOC.profileassi.table.empty"
+ selectionType="multiple"
+ selectionJavascript="setTimeout('toggleMenu()', 0)"
+ showAdvancedSortIcon="false"
+ showLowerActions="false"
+ showPaginationControls="false"
+ showPaginationIcon="false"
+ showSelectionIcons="true"
+ showSelectionSortIcon="false"
+ maxRows="10"
+ page="1" />
+
+ <script type="text/javascript">
+ <!--
+ <cc:text name="ConditionalOpenEditor" defaultValue="" />
+ // -->
+ </script>
+ <cc:wizardwindow name="copyMoveWizardWindow" bundleID="apocBundle" defaultValue="invisible"
+ extraHtml="style='width:0; visibility:hidden; background-image:none; background:#FFF; color:#FFF; padding:0px; margin:0px; border-style:none;'"
+ onMouseOver="return true" onMouseOut="return true" onBlur="return true" onFocus="return true"/>
+ <cc:hidden name="SelectedProfile" defaultValue="" />
+ </jato:containerView>
+
+ <jato:content name="AssignedAboveView">
+
+ <br><br>
+
+ <jato:containerView name="AssignedAboveTableView">
+
+ <cc:actiontable name="AssignedAboveTable"
+ bundleID="apocBundle"
+ title="APOC.profile.inherited.table"
+ selectionType="no select"
+ showAdvancedSortIcon="false"
+ showLowerActions="false"
+ showPaginationControls="false"
+ showPaginationIcon="false"
+ showSelectionIcons="false"
+ showSelectionSortIcon="false"
+ maxRows="10"
+ page="1" />
+
+ </jato:containerView>
+
+ </jato:content>
+
+ <jato:content name="ConditionalMemberTable">
+
+ <br><br>
+
+ <jato:containerView name="MemberTableView">
+
+ <cc:actiontable name="MemberTable"
+ bundleID="apocBundle"
+ selectionType="no select"
+ showAdvancedSortIcon="false"
+ showLowerActions="false"
+ showPaginationControls="false"
+ showPaginationIcon="false"
+ showSelectionIcons="false"
+ showSelectionSortIcon="false"
+ maxRows="10"
+ page="1" />
+
+ </jato:containerView>
+
+ </jato:content>
+
+ </cc:pagetitle>
+ <cc:hidden name="NewName" defaultValue="a" />
+ <cc:hidden name="NewComment" defaultValue="a" />
+ <cc:hidden name="NewLocation" defaultValue="a" />
+ <cc:hidden name="CommandHidden" defaultValue="" />
+ <cc:hidden name="CommandParametersHidden" defaultValue="" />
+
+<script type="text/javascript">
+<!--
+ setTimeout('toggleMenu()', 0);
+ <cc:text name="NavigationConditionalImageSwap" defaultValue="" />
+// -->
+
+</script>
+
+ <cc:hidden name="Anchor"/>
+ <cc:hidden name="HelpLocale"/>
+
+</cc:form>
+</cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/Makefile.am b/webconsole/jsp/Makefile.am
new file mode 100644
index 0000000..aec21da
--- /dev/null
+++ b/webconsole/jsp/Makefile.am
@@ -0,0 +1,172 @@
+wcdir=$(APOC_WCROOT)
+jspdir=${wcdir}/jsp
+
+jsp_DATA = \
+ Masthead.jsp \
+ Task.jsp \
+ EditList.jsp \
+ ContentAreaPoliciesSet.xml \
+ EditListTitle.xml \
+ EntityContent.jsp \
+ Threepane.jsp \
+ TemplateHelpTitle.xml \
+ ContentAreaPoliciesSimpleSet.xml \
+ Welcome.jsp \
+ TemplateHelp.jsp \
+ EditColor.jsp \
+ TemplateHelpMasthead.jsp \
+ EditColorPageTitle.xml \
+ Onepane.jsp \
+ Alert.jsp \
+ UploadFile.jsp
+
+syncdir=${jspdir}/sync
+sync_DATA = \
+ sync/Table.xml \
+ sync/Result.jsp \
+ sync/LoginSheet.xml \
+ sync/Contexts.xml \
+ sync/Login.jsp \
+ sync/Index.jsp \
+ sync/Buttons.jsp
+
+settingsdir=${jspdir}/settings
+settings_DATA = \
+ settings/Buttons.jsp \
+ settings/ContentPageTitle.xml \
+ settings/Frameset.jsp \
+ settings/Content.jsp \
+ settings/ContentAreaPoliciesSection.xml
+
+profilesdir=${jspdir}/profiles
+profiles_DATA = \
+ profiles/SearchTable.xml \
+ profiles/SearchParameter.jsp \
+ profiles/EditPriorities.jsp \
+ profiles/SearchParameter.xml \
+ profiles/GeneralSettingsPropertySheet.xml \
+ profiles/ImportTitle.xml \
+ profiles/Applicability.jsp \
+ profiles/LoginTitle.xml \
+ profiles/ApplicabilityTitle.xml \
+ profiles/SettingsSummary.jsp \
+ profiles/SearchResult.jsp \
+ profiles/Import.jsp \
+ profiles/SearchButtons.jsp \
+ profiles/GeneralSettingsPageTitle.xml \
+ profiles/GeneralSettings.jsp \
+ profiles/CopyMoveWizard1.jsp \
+ profiles/ApplicabilitySheet.xml \
+ profiles/LoginSheet.xml \
+ profiles/EditPrioritiesTitle.xml \
+ profiles/AssignTable.xml \
+ profiles/AssigneesTable.xml \
+ profiles/AssigneesPageTitle.xml \
+ profiles/PoliciesFrameset.jsp \
+ profiles/Assign.jsp \
+ profiles/SearchIndex.jsp \
+ profiles/Available.jsp \
+ profiles/AssignedAboveTable.xml \
+ profiles/SettingsSummaryPageTitle.xml \
+ profiles/AssignedTable.xml \
+ profiles/CopyMoveWizardOverview.jsp \
+ profiles/NewTitle.xml \
+ profiles/AdvancedOptionsPropertySheet.xml \
+ profiles/AssignTitle.xml \
+ profiles/AvailableTable.xml \
+ profiles/Assignees.jsp \
+ profiles/New.jsp \
+ profiles/PrioritizationTable.xml \
+ profiles/CopyMoveWizard5.jsp \
+ profiles/CopyMoveWizard2.jsp \
+ profiles/ProfileWindowFrameset.jsp \
+ profiles/ProfileWindow.jsp \
+ profiles/Login.jsp \
+ profiles/CopyMoveWizard3.jsp \
+ profiles/AdvancedOptionsPageTitle.xml \
+ profiles/CopyMoveWizard4.jsp \
+ profiles/NewSheet.xml \
+ profiles/AdvancedOptions.jsp
+
+reportdir=${jspdir}/report
+report_DATA = \
+ report/ShowResults.jsp \
+ report/ShowResultsButtons.jsp \
+ report/ShowResultsFrameset.jsp \
+ report/ElementsInvolvedTable.xml \
+ report/ShowResultsPageTitle.xml
+
+entitiesdir=${jspdir}/entities
+entities_DATA = \
+ entities/BrowseTreeTitle.xml \
+ entities/FindResult.jsp \
+ entities/BrowseTree.jsp \
+ entities/SearchResult.jsp \
+ entities/BrowseTreeMasthead.jsp \
+ entities/SearchTable.xml \
+ entities/SearchWindowBrowseTree.jsp \
+ entities/BrowseTreeBase.jsp \
+ entities/FindIndex.jsp \
+ entities/SearchParameter.jsp \
+ entities/SearchParameter.xml \
+ entities/BrowseTreeIndex.jsp \
+ entities/Navigation.jsp \
+ entities/SearchTableUser.xml \
+ entities/SearchButtons.jsp \
+ entities/ProfileTable.xml \
+ entities/SearchTitle.xml \
+ entities/FindParameter.jsp \
+ entities/SearchWindowBrowseTreeBase.jsp \
+ entities/FindParameter.xml \
+ entities/SearchWindowBrowseTreeMasthead.jsp \
+ entities/SearchWindowBrowseTreeIndex.jsp \
+ entities/SearchIndex.jsp \
+ entities/MemberTable.xml \
+ entities/SearchResultTitle.xml \
+ entities/FindTable.xml \
+ entities/SearchParameterAdvanced.xml \
+ entities/FindButtons.jsp
+
+categoriesdir=${jspdir}/categories
+categories_DATA = \
+ categories/PolicyCategories.jsp \
+ categories/Navigation.xml
+
+contextsdir=${jspdir}/contexts
+contexts_DATA = \
+ contexts/ManagerTitle.xml \
+ contexts/Wizard7.jsp \
+ contexts/LoginTitle.xml \
+ contexts/Wizard9.jsp \
+ contexts/Wizard12.jsp \
+ contexts/Wizard15.jsp \
+ contexts/Login.jsp \
+ contexts/Wizard8.jsp \
+ contexts/Wizard1.jsp \
+ contexts/Wizard6.jsp \
+ contexts/LoginSheet.xml \
+ contexts/Wizard14.jsp \
+ contexts/Wizard13.jsp \
+ contexts/ContextDetailsTable.xml \
+ contexts/Wizard19.jsp \
+ contexts/Wizard10.jsp \
+ contexts/Wizard17.jsp \
+ contexts/Wizard5.jsp \
+ contexts/Wizard2.jsp \
+ contexts/Wizard16.jsp \
+ contexts/Wizard11.jsp \
+ contexts/ManagerTable.xml \
+ contexts/Wizard18.jsp \
+ contexts/Wizard3.jsp \
+ contexts/Wizard4.jsp
+
+remotedir=${jspdir}/remote
+remote_DATA = \
+ remote/RemoteDesktopViewer.jsp \
+ remote/RemoteDesktopViewerPageTitle.xml \
+ remote/RemoteDesktopMasthead.jsp \
+ remote/RemoteDesktopNavigationTree.jsp \
+ remote/RemoteDesktopViewerFrameset.jsp \
+ remote/RemoteDesktopPageTitle.xml \
+ remote/RemoteDesktopFrameset.jsp \
+ remote/RemoteDesktopButtons.jsp
diff --git a/webconsole/jsp/Masthead.jsp b/webconsole/jsp/Masthead.jsp
new file mode 100644
index 0000000..0e7a287
--- /dev/null
+++ b/webconsole/jsp/Masthead.jsp
@@ -0,0 +1,62 @@
+<%@ page info="Masthead" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.MastheadViewBean">
+
+<!-- Header -->
+<cc:header pageTitle="APOC.frame.masthead" copyrightYear="2002"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle">
+
+<script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+<cc:form name='MastheadForm' method='post' defaultCommandChild='DefaultHref'>
+
+ <cc:primarymasthead name="Masthead" bundleID="apocBundle"/>
+
+ <cc:breadcrumbs name="ContextPath" useGrayBg="true" bundleID="apocBundle"/>
+ <table cellpadding="0" cellspacing="0" width="100%" border="0" bgcolor="#D2D9E1"><tr><td>
+ <cc:spacer name="vertSpace" height="10"/></td></tr></table>
+ <cc:tabs name="ThreepaneTabs" bundleID="apocBundle"/>
+
+</cc:form>
+
+</cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/Onepane.jsp b/webconsole/jsp/Onepane.jsp
new file mode 100644
index 0000000..e998333
--- /dev/null
+++ b/webconsole/jsp/Onepane.jsp
@@ -0,0 +1,75 @@
+<%@page info="Root Onepane" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.OnepaneViewBean">
+
+<%-- Header --%>
+<cc:header pageTitle="APOC.masthead.altText" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle">
+
+<script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+<a name="top" id="top"/>
+
+<cc:form name="OnepaneForm" method="post" onSubmit='javascript:return isSubmitAllowed();' defaultCommandChild='DefaultHref'>
+
+ <cc:primarymasthead name="Masthead" bundleID="apocBundle"/>
+
+ <cc:breadcrumbs name="ContextPath" useGrayBg="true" bundleID="apocBundle"/>
+ <table cellpadding="0" cellspacing="0" width="100%" border="0" bgcolor="#D2D9E1"><tr><td>
+ <cc:spacer name="vertSpace" height="10"/></td></tr></table>
+
+ <jato:containerView name="OnepanePageletView">
+
+ <cc:tabs name="OnepaneTabs" bundleID="apocBundle"/>
+
+ <jato:content name="TabSelection"/>
+
+ </jato:containerView>
+
+ <cc:hidden name="Anchor"/>
+ <cc:hidden name="HelpLocale"/>
+
+</cc:form>
+</cc:header>
+
+</jato:useViewBean>
+
diff --git a/webconsole/jsp/Task.jsp b/webconsole/jsp/Task.jsp
new file mode 100644
index 0000000..e9562a1
--- /dev/null
+++ b/webconsole/jsp/Task.jsp
@@ -0,0 +1,213 @@
+<%@ page info="Available" language="java" %>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:pagelet>
+ <jato:containerView name="Task">
+
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+ <script type="text/javascript">
+ <!--
+ var sProfileEditorTab = "";
+
+ function openSyncWindow() {
+ openWindow(window, null, '/apoc/manager/SyncLogin?SyncLogin.LeftContext=<cc:text name="CurrentContext"/>&SyncLogin.RightContext=<cc:text name="CurrentContext"/>', 'SyncWindow', 0.8, 0.5);
+ }
+
+ function openProfileSearchWindow() {
+ openWindow(window, null, '/apoc/manager/ProfilesSearchIndex', 'searchProfileWindow', 800, 500);
+ }
+
+ function profileSearchCallback(sProfileId) {
+ openWindow(window, null, '/apoc/manager/ProfileWindowFrameset?ProfileWindowFrameset.SelectedProfile='+sProfileId+'&SelectedEditorTab='+sProfileEditorTab, 'ProfileEditorWindow', 600, 0.9);
+ }
+
+ function applicabilityCallback(sApplicability) {
+ openWindow(window, null, '/apoc/manager/ProfileWindowFrameset?ProfileWindowFrameset.SelectedProfile='+sApplicability, 'ProfileEditorWindow', 600, 0.9);
+ }
+ // -->
+ </script>
+
+ <%--
+ This is a workaround for IE 6:
+ using <BR> or equivalents will create a gray area instead of a invisible vertical space
+ --%>
+ <table><tr><td>
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="10" width="1" />
+ </td></tr></table>
+
+ <jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+ </jato:content>
+
+ <cc:pagetitle name="TaskTitle"
+ pageTitleText="Tasks"
+ showPageTitleSeparator="true"
+ pageTitleHelpMessage="This tab page lists common tasks."
+ showPageButtonsTop="false"
+ showPageButtonsBottom="false"
+ bundleID="apocBundle">
+
+ <br>
+
+ <table width='100%' cellpadding='0' cellspacing='0'>
+ <tr>
+ <td width='2%'><br></td>
+ <td width='47%'><br></td>
+ <td width='2%'><br></td>
+ <td width='47%'><br></td>
+ <td width='2%'><br></td>
+ </tr>
+ <tr>
+ <td><br></td>
+ <td valign='top'>
+ <table width='100%' cellpadding='5' cellspacing='0'>
+ <tr>
+ <td bgcolor='#C4CBD1'>
+ <b>Configuration Repositories</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor='#E2E7EA' valign='top'>
+ <cc:href name="AddContext" onClick="javascript:document.forms[0]['Onepane.OnepanePageletView.Task.AddContextButton'].click(); return false;">
+ <cc:text name="AddContextText" bundleID="apocBundle" defaultValue="Create a Configuration Repository"/>
+ </cc:href>
+ <br>
+ To be able to configure your applications you need a place to store your configuration data.<br>
+ This storage is called configuration repository. Use this task button to create a configuration repository.
+ <br><br>
+ <cc:href name="SyncContext" onClick="javascript:openSyncWindow(); return false;">
+ <cc:text name="SyncContextText" bundleID="apocBundle" defaultValue="Synchronize Two Configuration Repositories"/>
+ </cc:href>
+ <br>
+ The synchronization feature allows you to synchronize profiles between two configuration repositories.<br>
+ This feature is especially useful if you test the settings first using a test configuration repository before you apply them to the production environment.<br>
+ Use this button to synchronize two arbitrary configuration repositories.
+ </td>
+ </tr>
+ </table>
+ <br>
+ <table width='100%' cellpadding='5' cellspacing='0'>
+ <tr>
+ <td bgcolor='#C4CBD1'>
+ <b>Verification</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor='#E2E7EA' valign='top'>
+ <cc:href name="ReportEntity" onClick="javascript:openWindow(window, null, '/apoc/manager/ShowResultsFrameset', 'reportWindow', 0.9, 800); return false;">
+ <cc:text name="ReportEntityText" bundleID="apocBundle" defaultValue="Create a Report of an Organization or a Domain"/>
+ </cc:href>
+ <br>
+ This task button opens the report window listing all settings for selected organizations or domains.
+ <br><br>
+ <cc:href name="RemoteDesktop" onClick="javascript:openWindow(window, null, '/apoc/manager/RemoteDesktopFrameset?EntityType=DOMAIN&', 'RemoteDesktopWindow', 350, 500, true); return false;">
+ <cc:text name="RemoteDesktopText" bundleID="apocBundle" defaultValue="Remote Desktop"/>
+ </cc:href>
+ <br>
+ This task allows you to open a graphical console on another machine.
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td><br></td>
+ <td valign='top'>
+ <table width='100%' cellpadding='5' cellspacing='0'>
+ <tr>
+ <td bgcolor='#C4CBD1'>
+ <b>Profiles</b>
+ </td>
+ </tr>
+ <tr>
+ <td bgcolor='#E2E7EA' valign='top'>
+ <cc:href name="CreateProfile" onClick="javascript:openWindow(window, null, '/apoc/manager/ProfilesApplicability', 'ApplicabilityWindow', 300, 500, true); return false;">
+ <cc:text name="AddContextText" bundleID="apocBundle" defaultValue="Create a Profile"/>
+ </cc:href>
+ <br>
+ A profile is a named container for configuration settings. It allows you to group configuration settings.<br>
+ Use this task button to create a profile.
+ <br><br>
+ <cc:href name="EditProfile" onClick="javascript:sProfileEditorTab='1'; openProfileSearchWindow(); return false;">
+ <cc:text name="EditProfileText" bundleID="apocBundle" defaultValue="Edit a Profile"/>
+ </cc:href>
+ <br>
+ This task button opens the profile editor so you can change the configuration settings of a profile.
+ <br><br>
+ <cc:href name="AssignProfile" onClick="javascript:sProfileEditorTab='2'; openProfileSearchWindow(); return false;">
+ <cc:text name="AssignProfileText" bundleID="apocBundle" defaultValue="Edit Assignments of a Profile"/>
+ </cc:href>
+ <br>
+ This task button opens the profile editor so you can change the assignments of a profile.
+ <br><br>
+ <cc:href name="ReportProfile" onClick="javascript:sProfileEditorTab='4'; openProfileSearchWindow(); return false;">
+ <cc:text name="ReportProfileText" bundleID="apocBundle" defaultValue="Display all settings of a profile"/>
+ </cc:href>
+ <br>
+ This task button opens the profile editor listing all settings for the selected profile.
+ <br><br>
+ <cc:href name="CopyProfile" onClick="javascript:document.forms[0]['Onepane.OnepanePageletView.Task.copyMoveWizardWindow'].click(); return false;">
+ <cc:text name="CopyProfileText" bundleID="apocBundle" defaultValue="Copy and Move a Profile"/>
+ </cc:href>
+ <br>
+ This task button opens a wizard which allows you to either copy or move a profile.
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td><br></td>
+ </tr>
+ </table>
+ <cc:wizardwindow name="AddContextButton" bundleID="apocBundle" defaultValue="invisible"
+ extraHtml="style='width:1; visibility:hidden; background-image:none; background:#FFF; color:#FFF; padding:0px; margin:0px; border-style:none;'"
+ onMouseOver="return true" onMouseOut="return true" onBlur="return true" onFocus="return true"/>
+ <cc:wizardwindow name="copyMoveWizardWindow" bundleID="apocBundle" defaultValue="invisible"
+ extraHtml="style='width:1; visibility:hidden; background-image:none; background:#FFF; color:#FFF; padding:0px; margin:0px; border-style:none;'"
+ onMouseOver="return true" onMouseOut="return true" onBlur="return true" onFocus="return true"/>
+ </cc:pagetitle>
+ </jato:containerView>
+</jato:pagelet>
+
diff --git a/webconsole/jsp/TemplateHelp.jsp b/webconsole/jsp/TemplateHelp.jsp
new file mode 100644
index 0000000..cafe17a
--- /dev/null
+++ b/webconsole/jsp/TemplateHelp.jsp
@@ -0,0 +1,67 @@
+<%@page info="Help Window Frameset" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.TemplateHelpWindowViewBean">
+<cc:i18nbundle id="apocBundle" baseName="com.sun.apoc.manager.resource.apoc_manager" />
+<html>
+ <head>
+ <title><cc:text name="WindowTitle" /></title>
+ <script type="text/javascript" src="/apoc/js/ProfileWindow.js"></script>
+ <script type="text/javascript">
+ <!--
+ var contentSrc = getPagePath();
+ document.write('<frameset rows="100, *" border="0" framespacing="2">');
+ document.write('<frame name="masthead" title="Masthead" scrolling="no"');
+ document.write('marginwidth="0" marginheight="0" border="0" framespacing="0"');
+ document.write('noresize src="/apoc/manager/TemplateHelpMasthead"/> ');
+ document.write('<frame name="templateHelpContent" title="TemplateHelpContent"');
+ document.write('scrolling="yes" marginwidth="10" marginheight="10" border="0"');
+ document.write('framespacing="0" src="'+contentSrc+'"/>');
+ document.write('</frameset>');
+ //-->
+ </script>
+ </head>
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ This page needs frame support put I18N here
+ </body>
+ </noframes>
+</html>
+</jato:useViewBean> \ No newline at end of file
diff --git a/webconsole/jsp/TemplateHelpMasthead.jsp b/webconsole/jsp/TemplateHelpMasthead.jsp
new file mode 100644
index 0000000..54f31d6
--- /dev/null
+++ b/webconsole/jsp/TemplateHelpMasthead.jsp
@@ -0,0 +1,62 @@
+<%@ page info="Template Help Masthead" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.TemplateHelpMastheadViewBean">
+<cc:i18nbundle id="apocBundle" baseName="com.sun.apoc.manager.resource.apoc_manager" />
+<cc:header pageTitle="TemplateHelpTitle"
+ copyrightYear="2005"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle">
+
+ <cc:secondarymasthead name="Masthead"
+ src="/apoc/images/popuptitle.gif"
+ alt="APOC.masthead.altText"
+ bundleID="apocBundle"/>
+
+
+ <cc:pagetitle name="TemplateHelpMastheadTitle"
+ bundleID="apocBundle"
+ pageTitleText="APOC.help.windowTitle"
+ pageTitleHelpMessage=""
+ showPageTitleSeparator="true"
+ showPageButtonsTop="true"
+ showPageButtonsBottom="false"/>
+</cc:header>
+</jato:useViewBean> \ No newline at end of file
diff --git a/webconsole/jsp/TemplateHelpTitle.xml b/webconsole/jsp/TemplateHelpTitle.xml
new file mode 100644
index 0000000..32e1880
--- /dev/null
+++ b/webconsole/jsp/TemplateHelpTitle.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="CloseButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.profilewnd.buttons.close"/>
+ <attribute name="title" value="APOC.browse.cancel.help"/>
+ <attribute name="onClick" value="javascript:parent.window.close(); return false;"/>
+ <attribute name="type" value="primary"/>
+ </cc>
+ </pagebuttons>
+</pagetitle> \ No newline at end of file
diff --git a/webconsole/jsp/Threepane.jsp b/webconsole/jsp/Threepane.jsp
new file mode 100644
index 0000000..2de539f
--- /dev/null
+++ b/webconsole/jsp/Threepane.jsp
@@ -0,0 +1,75 @@
+<%@page info="Root Frameset" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.ThreepaneViewBean">
+
+<html>
+ <head>
+ <title><jato:text name="ProdName"/></title>
+ </head>
+
+ <frameset rows="180, *" border="2" framespacing="2">
+
+ <frame name="masthead" title="Masthead" scrolling="no"
+ marginwidth="0" marginheight="0" border="1" framespacing="1"
+ src="/apoc/manager/Masthead" longdesc="<jato:text name='Desc'/>">
+
+ <frameset cols="30%, *" border="2" framespacing="2">
+
+ <frame name="navigation" title="Navigator"
+ scrolling="AUTO" marginwidth="0" marginheight="0" border="1"
+ framespacing="1" src="/apoc/manager/EntitiesNavigation" longdesc="<jato:text name='Desc'/>">
+ <frame name="content" title="Content" scrolling="AUTO"
+ marginwidth="0" marginheight="0" border="1" framespacing="1"
+ src="/apoc/manager/EntityContent" longdesc="<jato:text name='Desc'/>">
+
+ </frameset>
+
+ </frameset>
+
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ <jato:text name="NoFrames" />
+ </body>
+ </noframes>
+
+</html>
+</jato:useViewBean>
+
diff --git a/webconsole/jsp/UploadFile.jsp b/webconsole/jsp/UploadFile.jsp
new file mode 100644
index 0000000..241f507
--- /dev/null
+++ b/webconsole/jsp/UploadFile.jsp
@@ -0,0 +1,150 @@
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<HTML>
+ <HEAD>
+ <title>Install Policy Package from Local File</title>
+ <meta name="Copyright" content="Copyright &copy; 2003 by Sun Microsystems, Inc. All Rights Reserved.">
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <script type="text/javascript" src="/com_sun_web_ui/js/browserVersion.js"></script>
+ <script type="text/javascript" src="/com_sun_web_ui/js/stylesheet.js"></script>
+ <script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+ </HEAD>
+<body class="DefBdy">
+<!-- Secondary Masthead -->
+<table title="" class="MstTbl" width="100%" border="0" cellspacing="0" cellpadding="0">
+<tr>
+ <td><table title="" width="100%" border="0" cellspacing="10" cellpadding="0">
+ <tr>
+ <td width="90%" class="MstTdTtl"><div class="MstDivSecTtl">
+ <img name="PackagesURL.Masthead.ProdNameImage"
+ src="/apoc/images/popuptitle.png" alt="" ></img></div>
+ </td>
+ <td width="1%" class="MstTdLogo">
+ <img name="PackagesURL.Masthead.SunLogoImage"
+ src="/com_sun_web_ui/images/other/corplogo_popup.gif"
+ alt="Logo for Sun Microsystems, Inc." height="30" width="130" ></img>
+ </td>
+ </tr>
+ </table></td>
+</tr>
+</table>
+
+<!-- PageTitle -->
+
+<table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="bottom">
+ <td align="left" nowrap="nowrap" valign="bottom">
+ <div class="TtlTxtDiv">
+ <span class="TtlTxt">Install Policy Package from Local File</span>
+ </div>
+ </td>
+ </tr>
+</table>
+<table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><img src="/com_sun_web_ui/images/other/dot.gif"
+ alt="" border="0" height="2" width="10" /></td>
+ <td class="TtlLin" width="100%">
+ <img src="/com_sun_web_ui/images/other/dot.gif"
+ alt="" border="0" height="2" width="1" /></td>
+ </tr>
+</table>
+<!-- Success / Failure message -->
+<table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><img src="/com_sun_web_ui/images/other/dot.gif"
+ alt="" border="0" height="30" width="1" /></td>
+ </tr>
+ <tr>
+ <td><div class="MstDivUsr">
+ <span class="ChoLblTxt">File upload was: </span>&nbsp;&nbsp;
+ <jsp:useBean id="TheBean" scope="page"
+ class="com.sun.apoc.manager.UploadFileBean" />
+ <% boolean upload = TheBean.doUpload(request);%>
+ <% if (upload == true) { out.print("successful"); }
+ else { out.println("unsuccessful"); }%>
+ </td>
+ </tr>
+</table>
+
+<!-- Form necessary for buttons -->
+<form method="post" name="formForButton">
+<!-- Horizontal line -->
+<table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><img src="/com_sun_web_ui/images/other/dot.gif"
+ alt=""
+ border="0"
+ height="30"
+ width="1" /></td>
+ </tr>
+ <tr>
+ <td><img src="/com_sun_web_ui/images/other/dot.gif"
+ alt=""
+ broder="0"
+ height="2"
+ width="5" /></td>
+ <td class="TtlLin" width="100%"><img
+ src="/com_sun_web_ui/images/other/dot.gif"
+ alt=""
+ border="0"
+ height="2"
+ width="1" /></td>
+ </tr>
+</table>
+<!-- Close Button -->
+<table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td align="right" nowrap="nowrap" valign="bottom">
+ <div class="TtlBtnBtmDiv">
+ <input type="submit" class="Btn1"
+ value="Close"
+ onmouseover="javascript: if (this.disabled==0) this.className='Btn1Hov'"
+ onmouseout="javascript: if (this.disabled==0) this.className='Btn1'"
+ onblur="javascript: if (this.disabled==0) this.className='Btn1'"
+ onfocus="javascript: if (this.disabled==0) this.classname='Btn1Hov'"
+ onclick="var pkg = window.open('../manager/Packages', 'packagesWindow');top.close();"/></div>
+ </td>
+ </tr>
+</table>
+</form>
+</body>
+</html>
+
+
+
diff --git a/webconsole/jsp/Welcome.jsp b/webconsole/jsp/Welcome.jsp
new file mode 100644
index 0000000..75fe107
--- /dev/null
+++ b/webconsole/jsp/Welcome.jsp
@@ -0,0 +1,297 @@
+<%@page info="Root Onepane" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.WelcomeViewBean">
+
+<%-- Header --%>
+<cc:header pageTitle="APOC.masthead.altText" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle">
+
+<script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+<script type="text/javascript">
+<!--
+ params=window.location.search;
+ params=params.substr(1);
+ if (params.indexOf("ClosePopups") != -1) {
+ setTimeout("closePopups() ;",1000);
+ }
+
+ function handleEditButtonRequest() {
+ ccSetButtonDisabled("Welcome.ManagerTableView.wizardWindow", "WelcomeForm", false);
+ var contextName = getSelectedContext(document).text;
+ var f = document.WelcomeForm;
+ var wizardBtn = f["Welcome.ManagerTableView.wizardWindow"];
+ var editBtn = f["Welcome.ManagerTableView.EditButton"];
+ var wizardClick = wizardBtn.onclick;
+ var str = new String(wizardClick);
+ str = str.substring(str.indexOf(":")+1, str.lastIndexOf(";")+1);
+ var wizardClickNew = str.replace("?", "?SelectedContext=" + contextName);
+ // Change window title for edit wizard
+ wizardClickNew = wizardClickNew.replace("APOC.wiz.title", "APOC.wiz.edit.title");
+ wizardBtn.onclick=new Function ("evt", wizardClickNew);
+ ccSetButtonDisabled("Welcome.ManagerTableView.EditButton", "WelcomeForm", true);
+ wizardBtn.click();
+
+ }
+
+ function getSelectedContext(documentPara) {
+ var viewLinkPos = 0;
+ var checkboxOptionPos = 0;
+ var selectedLink = null;
+
+ // set viewLinkPos to 1st View link (same row as 1st option box)
+ while (documentPara.links[viewLinkPos]!=null) {
+ if ( (documentPara.links[viewLinkPos].href.indexOf(".NameHref")!=-1) &&
+ (documentPara.links[viewLinkPos].href.indexOf(".")!=-1) ){
+ break;
+ }
+ viewLinkPos++;
+ }
+
+ // set checkboxOptionPos to 1st option box link (same row as 1st view link)
+ checkboxOptionPos = getNextCheckboxPos(documentPara, ".", checkboxOptionPos);
+
+ // walk through all option boxes and ViewLinks in paralel
+ while (documentPara.forms[0].elements[checkboxOptionPos]!=null) {
+ if (documentPara.forms[0].elements[checkboxOptionPos].checked==true) {
+ selectedLink = documentPara.links[viewLinkPos];
+ break;
+ }
+ checkboxOptionPos = getNextCheckboxPos(documentPara, ".", checkboxOptionPos);
+ viewLinkPos++;
+ }
+ return selectedLink;
+ }
+
+ function getSelectedContextIds(documentPara, filterPara) {
+ var viewLinkPos = 0;
+ var checkboxOptionPos = 0;
+ var selectedLink = null;
+ var selectedIds = "";
+
+ // set viewLinkPos to 1st View link (same row as 1st option box)
+ while (documentPara.links[viewLinkPos]!=null) {
+ if ( (documentPara.links[viewLinkPos].href.indexOf(".NameHref")!=-1) &&
+ (documentPara.links[viewLinkPos].href.indexOf(filterPara)!=-1) ){
+ break;
+ }
+ viewLinkPos++;
+ }
+
+ // set checkboxOptionPos to 1st option box link (same row as 1st view link)
+ checkboxOptionPos = getNextCheckboxPos(documentPara, filterPara, checkboxOptionPos);
+
+ // walk through all option boxes and ViewLinks in paralel
+ while (documentPara.forms[0].elements[checkboxOptionPos]!=null) {
+ if (documentPara.forms[0].elements[checkboxOptionPos].checked==true) {
+ // due to a bug in Lockhart jsessionids are sometimes inserted
+ // they are removed here to not irritate the extract logic
+ selectedLink = documentPara.links[viewLinkPos].href;
+ nJsessionPos = selectedLink.indexOf("jsessionid");
+ if (nJsessionPos>0) {
+ nSemiPos = selectedLink.indexOf(";");
+ nQuestPos= selectedLink.indexOf("?");
+ selectedLink = selectedLink.substring(0, nSemiPos) +
+ selectedLink.substring(nQuestPos, selectedLink.length);
+ }
+ selectedLink = extractByDelimiters("=", "&", selectedLink);
+ if (selectedIds.length==0) {
+ selectedIds = selectedLink;
+ }
+ else {
+ selectedIds = selectedIds + " " + selectedLink;
+ }
+ }
+ checkboxOptionPos = getNextCheckboxPos(documentPara, filterPara, checkboxOptionPos);
+ viewLinkPos++;
+ }
+
+ return selectedIds;
+ }
+
+ function handleSelection(selectedLink) {
+ var willSubmit = false;
+ var f = document.WelcomeForm;
+ if (f != null) {
+ if (selectedLink.name.indexOf("RemoveButton")!=-1) {
+ // remove
+ willSubmit = confirm('<cc:text name="RemoveMessage" bundleID="apocBundle" defaultValue="APOC.pool.removeContextMessage"/>');
+
+ allowSubmit(willSubmit);
+ return willSubmit;
+
+ } else if (selectedLink.name.indexOf("RenameButton")!=-1) {
+ // rename
+ var contextName = getSelectedContext(document).text;
+ contextName = prompt('<cc:text name="RenameMessage" bundleID="apocBundle" defaultValue="APOC.pool.renameContextMessage"/>', unescape(contextName));
+
+ if (contextName!=null) {
+ willSubmit=true;
+ f['Welcome.SelectedContext'].value=contextName;
+ }
+
+ allowSubmit(willSubmit);
+ return willSubmit;
+
+ } else if (selectedLink.name.indexOf("SyncButton")!=-1) {
+ // sync
+ var selectedContexts = getSelectedContextIds(document, "ManagerTableView");
+ var leftContext = "";
+ var rightContext = "";
+ if (selectedContexts.indexOf(" ")>-1) {
+ leftContext = selectedContexts.substring(0, selectedContexts.indexOf(" "));
+ rightContext = selectedContexts.substring(selectedContexts.indexOf(" ")+1, selectedContexts.length);
+ } else {
+ leftContext = selectedContexts;
+ rightContext = selectedContexts;
+ }
+ openWindow(window, null, '/apoc/manager/SyncLogin?SyncLogin.LeftContext='+leftContext+'&SyncLogin.RightContext='+rightContext, 'SyncWindow', 0.8, 0.5);
+
+ allowSubmit(willSubmit)
+ return willSubmit;
+
+ }
+ }
+ }
+
+ function toggleMenu() {
+ var nElementRunner=0;
+ var nElements=0;
+ var nCheckedElements=0;
+ var deleteButton = "Welcome.ManagerTableView.RemoveButton";
+ var renameButton = "Welcome.ManagerTableView.RenameButton";
+ var syncButton = "Welcome.ManagerTableView.SyncButton";
+ var editButton = "Welcome.ManagerTableView.EditButton";
+ while (document.WelcomeForm.elements[nElementRunner]!=null) {
+ if ( (document.WelcomeForm.elements[nElementRunner].name.indexOf("SelectionCheckbox")!=-1) &&
+ (document.WelcomeForm.elements[nElementRunner].name.indexOf("jato_boolean") == -1)) {
+ nElements++;
+ if (document.WelcomeForm.elements[nElementRunner].checked==true) {
+ nCheckedElements++;
+ }
+ }
+ nElementRunner++;
+ }
+
+ // enable "delete" button if at least one profile is selected
+ ccSetButtonDisabled(deleteButton, "WelcomeForm", (nCheckedElements==0));
+
+ // enable "rename" button if exactly one profile is selected
+ ccSetButtonDisabled(renameButton, "WelcomeForm", (nCheckedElements!=1));
+
+ // enable "edit" button if exactly one profile is selected
+ ccSetButtonDisabled(editButton, "WelcomeForm", (nCheckedElements!=1));
+
+ // enable "sync" button item if one or two profiles are selected
+ ccSetButtonDisabled(syncButton, "WelcomeForm", ((nCheckedElements!=1) && (nCheckedElements!=2)));
+ }
+
+
+// -->
+</script>
+
+<a name="top" id="top"/>
+
+<cc:form name="WelcomeForm" method="post" onSubmit="javascript:return isSubmitAllowed();">
+
+ <cc:primarymasthead name="Masthead" bundleID="apocBundle"/>
+
+ <jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+ </jato:content>
+
+ <cc:pagetitle name="ManagerTitle"
+ bundleID="apocBundle"
+ pageTitleText="APOC.contexts.title"
+ pageTitleHelpMessage="APOC.contexts.help"
+ showPageTitleSeparator="true"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="true">
+
+ <br>
+
+
+ <jato:containerView name="ManagerTableView">
+
+ <cc:actiontable name="ContextTable"
+ bundleID="apocBundle"
+ title="APOC.contexts.table.title"
+ summary="APOC.contexts.table.summary"
+ empty="APOC.contexts.table.empty"
+ selectionType="multiple"
+ selectionJavascript="setTimeout('toggleMenu()', 0)"
+ showAdvancedSortIcon="false"
+ showLowerActions="false"
+ showPaginationControls="false"
+ showPaginationIcon="false"
+ showSelectionIcons="true"
+ showSelectionSortIcon="false"
+ maxRows="10"
+ page="1" />
+
+ <cc:hidden name="WizardLaunched"/>
+ </jato:containerView>
+ <br>
+ <br>
+ </cc:pagetitle>
+ <cc:hidden name="Anchor"/>
+ <cc:hidden name="HelpLocale"/>
+ <cc:hidden name="SelectedContext"/>
+
+</cc:form>
+
+<script type="text/javascript">
+<!--
+ setTimeout('toggleMenu()', 0);
+// -->
+</script>
+
+</cc:header>
+
+</jato:useViewBean>
diff --git a/webconsole/jsp/categories/Navigation.xml b/webconsole/jsp/categories/Navigation.xml
new file mode 100644
index 0000000..adfeed8
--- /dev/null
+++ b/webconsole/jsp/categories/Navigation.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+<table>
+ <column name="NameColumn" rowheader="true" sortname="CategoryName" extrahtml="width='180px'">
+ <cc name="CategoryHref" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="SubmitFormData" value="true" />
+ <cc name="CategoryName" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag"/>
+ </cc>
+ </column>
+ <column name="DescriptionColumn" rowheader="true">
+ <cc name="CategoryDescription" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag"/>
+ </column>
+</table>
diff --git a/webconsole/jsp/categories/PolicyCategories.jsp b/webconsole/jsp/categories/PolicyCategories.jsp
new file mode 100644
index 0000000..5e62871
--- /dev/null
+++ b/webconsole/jsp/categories/PolicyCategories.jsp
@@ -0,0 +1,64 @@
+<%@page info="Profile Window Frameset" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.ProfileWindowSettingsTreeViewBean">
+
+<!-- Define the resource bundle, html, head, meta, stylesheet and body tags -->
+<cc:header pageTitle="Tree" copyrightYear="2004" styleClass="TreBdy"
+ baseName="com.sun.apoc.manager.resource.apoc_manager" bundleID="apocBundle"
+ preserveScroll="true" isPopup="true">
+
+<script type="text/javascript" src="/apoc/js/ProfileWindow.js"></script>
+<script type="text/javascript">
+ <cc:text name="RefreshContentScript"/>
+ <cc:text name="JumpToScript"/>
+</script>
+
+<cc:form name="TreeForm" method="post" defaultCommandChild="RefreshButton">
+ <cc:dtree name="Tree" bundleID="apocBundle"/>
+ <cc:hidden name="CurrentCategory" defaultValue="" elementId="CurrentCategory" />
+ <cc:hidden name="TurnerClicked" defaultValue="" elementId="TurnerClicked" />
+</cc:form>
+</cc:header>
+</jato:useViewBean>
+
+
+
+
diff --git a/webconsole/jsp/contexts/ContextDetailsTable.xml b/webconsole/jsp/contexts/ContextDetailsTable.xml
new file mode 100644
index 0000000..e3755fe
--- /dev/null
+++ b/webconsole/jsp/contexts/ContextDetailsTable.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <column name="PropertyColumn" extrahtml="nowrap='nowrap'">
+ <cc name="PropertyText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+ <column name="ValueColumn" extrahtml="nowrap='nowrap'">
+ <cc name="ValueText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+</table>
diff --git a/webconsole/jsp/contexts/Login.jsp b/webconsole/jsp/contexts/Login.jsp
new file mode 100644
index 0000000..02c873e
--- /dev/null
+++ b/webconsole/jsp/contexts/Login.jsp
@@ -0,0 +1,89 @@
+<%@page info="Root Onepane" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.ContextsLoginViewBean">
+
+<%-- Header --%>
+<cc:header pageTitle="Configuration Repositories - Login" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ onLoad="javascript:document.forms[0]['ContextsLogin.UsernameText'].focus(); return true"
+ >
+
+
+<a name="top" id="top"/>
+
+<cc:primarymasthead name="Masthead" bundleID="apocBundle"/>
+
+<cc:form name="ContextLoginForm" method="post" defaultCommandChild="LoginButton">
+
+ <jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+ </jato:content>
+
+ <cc:pagetitle name="ContextLoginTitle"
+ pageTitleText="APOC.contexts.login.title"
+ pageTitleHelpMessage="APOC.contexts.login.help"
+ showPageTitleSeparator="true"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="true"
+ bundleID="apocBundle">
+
+ <cc:propertysheet name="ContextLoginSheet"
+ bundleID="apocBundle"
+ showJumpLinks="false"/>
+
+ </cc:pagetitle>
+
+ <cc:hidden name="SelectedContext"/>
+
+</cc:form>
+
+</cc:header>
+
+</jato:useViewBean>
+
diff --git a/webconsole/jsp/contexts/LoginSheet.xml b/webconsole/jsp/contexts/LoginSheet.xml
new file mode 100644
index 0000000..67c29f1
--- /dev/null
+++ b/webconsole/jsp/contexts/LoginSheet.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE propertysheet SYSTEM "tags/dtd/propertysheet.dtd">
+
+<propertysheet>
+ <section name="login" defaultValue=" ">
+ <property>
+ <label name="ContextLabel" defaultValue="APOC.contexts.login.context"/>
+ <cc name="ContextText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag"/>
+ </property>
+ <property>
+ <label name="UsernameLabel" defaultValue="APOC.login.username"/>
+ <cc name="UsernameText" tagclass="com.sun.web.ui.taglib.html.CCTextFieldTag">
+ <attribute name="defaultValue" value=""/>
+ <attribute name="onFocus" value="this.select();"/>
+ <attribute name="onChange" value="document.forms[0]['ContextsLogin.PasswordText'].value = null;"/>
+ </cc>
+ </property>
+ <property>
+ <label name="PasswordLabel" defaultValue="APOC.login.password"/>
+ <cc name="PasswordText" tagclass="com.sun.web.ui.taglib.html.CCPasswordTag">
+ <attribute name="defaultValue" value=""/>
+ </cc>
+ </property>
+ <property>
+ <cc name="LoginButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.button.OK"/>
+ <attribute name="type" value="default"/>
+ </cc>
+ <cc name="CancelButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.button.cancel"/>
+ <attribute name="type" value="secondary"/>
+ </cc>
+ </property>
+ </section>
+</propertysheet>
diff --git a/webconsole/jsp/contexts/LoginTitle.xml b/webconsole/jsp/contexts/LoginTitle.xml
new file mode 100644
index 0000000..be90673
--- /dev/null
+++ b/webconsole/jsp/contexts/LoginTitle.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="LoginButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.button.OK"/>
+ <attribute name="type" value="default"/>
+ </cc>
+ <cc name="CancelButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.button.cancel"/>
+ <attribute name="type" value="secondary"/>
+ </cc>
+ </pagebuttons>
+</pagetitle>
diff --git a/webconsole/jsp/contexts/ManagerTable.xml b/webconsole/jsp/contexts/ManagerTable.xml
new file mode 100644
index 0000000..20dcd47
--- /dev/null
+++ b/webconsole/jsp/contexts/ManagerTable.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <actions>
+ <cc name="wizardWindow" tagclass="com.sun.web.ui.taglib.wizard.CCWizardWindowTag">
+ <attribute name="defaultValue" value="APOC.contexts.menu.create"/>
+ <attribute name="dynamic" value="true"/>
+ </cc>
+ <cc name="EditButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.policies.edit.button"/>
+ <attribute name="dynamic" value="true"/>
+ <attribute name="onClick" value="javascript:handleEditButtonRequest();" />
+ </cc>
+ <cc name="RemoveButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.contexts.menu.remove"/>
+ <attribute name="dynamic" value="true"/>
+ <attribute name="onClick" value="javascript:return handleSelection(this);" />
+ </cc>
+ <cc name="RenameButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.contexts.menu.rename"/>
+ <attribute name="dynamic" value="true"/>
+ <attribute name="onClick" value="javascript:return handleSelection(this);" />
+ </cc>
+ <cc name="SyncButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.contexts.menu.synchronize"/>
+ <attribute name="dynamic" value="true"/>
+ <attribute name="onClick" value="javascript:return handleSelection(this);" />
+ </cc>
+ </actions>
+ <column name="NameColumn" sortname="NameText" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="NameHref" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="submitFormData" value="true" />
+ <cc name="NameText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ </column>
+ <column name="TypeColumn" sortname="TypeText" extrahtml="nowrap='nowrap'">
+ <cc name="TypeText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+ <column name="OrgLocationColumn" sortname="OrgLocationText" extrahtml="nowrap='nowrap'">
+ <cc name="OrgLocationText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+ <column name="ProfileLocationColumn" sortname="ProfileLocationText" extrahtml="nowrap='nowrap'">
+ <cc name="ProfileLocationText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+</table>
diff --git a/webconsole/jsp/contexts/ManagerTitle.xml b/webconsole/jsp/contexts/ManagerTitle.xml
new file mode 100644
index 0000000..2ac0175
--- /dev/null
+++ b/webconsole/jsp/contexts/ManagerTitle.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="CloseButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="primary"/>
+ <attribute name="defaultValue" value="APOC.button.close"/>
+ <attribute name="title" value="Closes this window"/>
+ <attribute name="onClick" value="javascript:window.close(); return false;"/>
+ </cc>
+ </pagebuttons>
+</pagetitle>
diff --git a/webconsole/jsp/contexts/Wizard1.jsp b/webconsole/jsp/contexts/Wizard1.jsp
new file mode 100644
index 0000000..9a3d8fa
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard1.jsp
@@ -0,0 +1,100 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+<tr>
+ <td valign="top" align="right" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard1.NameField");
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+ <cc:label name="NameLabel" styleLevel="2"
+ elementName="NameLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:textfield name ="NameField" bundleID="apocBundle" autoSubmit="false"/>
+ </td>
+</tr>
+
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard10.jsp b/webconsole/jsp/contexts/Wizard10.jsp
new file mode 100644
index 0000000..5c5a22c
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard10.jsp
@@ -0,0 +1,231 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.nextButton");
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.finishButton'].click() ;
+ }
+ }
+ </script>
+ <cc:label name="NameLabel" styleLevel="2"
+ elementName="NameLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="NameValue" styleLevel="3"
+ elementName="NameValue"
+ bundleID="apocBundle"/>
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+
+ <cc:label name="TypeLabel" styleLevel="2"
+ elementName="TypeLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="TypeValue" styleLevel="3"
+ elementName="TypeValue"
+ bundleID="apocBundle"/>
+ </td>
+</tr>
+<jato:content name="DisplayLDAPInfo">
+ <tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+
+ <cc:label name="HostLabel" styleLevel="2"
+ elementName="HostLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="HostValue" styleLevel="3"
+ elementName="HostValue"
+ bundleID="apocBundle"/>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+
+ <cc:label name="PortLabel" styleLevel="2"
+ elementName="PortLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="PortValue" styleLevel="3"
+ elementName="PortValue"
+ bundleID="apocBundle"/>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+
+ <cc:label name="BaseDnLabel" styleLevel="2"
+ elementName="BaseDnLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="BaseDnValue" styleLevel="3"
+ elementName="BaseDnValue"
+ bundleID="apocBundle"/>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+
+ <cc:label name="UserDnLabel" styleLevel="2"
+ elementName="UserDnLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="UserDnValue" styleLevel="3"
+ elementName="UserDnValue"
+ bundleID="apocBundle"/>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+
+ <cc:label name="VendorLabel" styleLevel="2"
+ elementName="VendorLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="VendorValue" styleLevel="3"
+ elementName="VendorValue"
+ bundleID="apocBundle"/>
+ </td>
+ </tr>
+ <jato:content name="DisplayMigrateProfs">
+ <tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="MigrateProfsLabel" styleLevel="2"
+ elementName="MigrateProfsLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="MigrateProfsValue" styleLevel="3"
+ elementName="MigrateProfsValue"
+ bundleID="apocBundle"/>
+ </td>
+ </tr>
+ </jato:content>
+ <jato:content name="DisplayMetaConfig">
+ <tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+
+ <cc:label name="MetaConfigurationLabel" styleLevel="2"
+ elementName="MetaConfigurationLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:textarea name="MetaConfigurationValue" rows="5" cols="40" bundleID="apocBundle"/>
+ </td>
+ </tr>
+ </jato:content>
+</jato:content>
+<jato:content name="DisplayFileBasedInfo">
+ <tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+
+ <cc:label name="FilepathLabel" styleLevel="2"
+ elementName="FilepathLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="FilepathValue" styleLevel="3"
+ elementName="FilepathValue"
+ bundleID="apocBundle"/>
+ </td>
+ </tr>
+</jato:content>
+ <table width="99%" border="0" cellspacing="10" cellpadding="0">
+ <tr>
+ <td><br>
+ </td>
+ </tr>
+ <tr>
+ <td >
+ <i><cc:label name="NoActionLabel" styleLevel="3"
+ elementName="NoActionLabel"
+ bundleID="apocBundle"/></i>
+
+ </td>
+ </tr>
+ </table>
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard11.jsp b/webconsole/jsp/contexts/Wizard11.jsp
new file mode 100644
index 0000000..9df2189
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard11.jsp
@@ -0,0 +1,105 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+<table width="99%" border="0" cellspacing="10" cellpadding="0">
+<tr>
+ <td valign="top" align="left">
+ <script type="text/javascript">
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_CopyMoveWindow= top;
+ }
+ </script>
+ <jato:content name="DisplayAlert">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle" />
+ <BR>
+ </jato:content>
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left">
+ <jato:content name="DisplaySummaryTitle">
+ <cc:label name="SummaryTitle" styleLevel="2"
+ elementName="SummaryTitle"
+ bundleID="apocBundle"/>
+ </jato:content>
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left">
+ <jato:content name="DisplaySummaryText">
+ <cc:label name="SummaryText" styleLevel="3"
+ elementName="SummaryText"
+ bundleID="apocBundle"
+ />
+ </jato:content>
+</tr>
+<table>
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard12.jsp b/webconsole/jsp/contexts/Wizard12.jsp
new file mode 100644
index 0000000..0c9a2f4
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard12.jsp
@@ -0,0 +1,114 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard12View.FolderChooser");
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+<%-- <cc:label name="PathLabel" styleLevel="2"
+ elementName="PathLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1"> --%>
+ <cc:hidden name="isFirstView12" defaultValue="true" />
+ <jato:content name="DisplayAlert">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle" />
+ <BR>
+ </jato:content>
+ <!-- Folder Chooser -->
+ <cc:filechooser name="FolderChooser" type="folder" multipleSelect="false" />
+ <%-- <cc:textfield name ="PathField" bundleID="apocBundle" autoSubmit="false"/> --%>
+ </td>
+</tr>
+
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard13.jsp b/webconsole/jsp/contexts/Wizard13.jsp
new file mode 100644
index 0000000..fb2dcbe
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard13.jsp
@@ -0,0 +1,110 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard13View.Overwrite");
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+ <cc:label name="OverwriteLabel" styleLevel="2"
+ elementName="OverwriteLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:radiobutton name ="Overwrite"
+ dynamic="true"
+ styleLevel="3"
+ bundleID="apocBundle"/>
+ </td>
+</tr>
+
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard14.jsp b/webconsole/jsp/contexts/Wizard14.jsp
new file mode 100644
index 0000000..9ca982f
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard14.jsp
@@ -0,0 +1,109 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1" >
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard14View.Migrate");
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+ <cc:label name="MigrateOverwriteLabel" styleLevel="2"
+ elementName="MigrateOverwriteLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:radiobutton name ="Migrate"
+ dynamic="true"
+ styleLevel="3"
+ bundleID="apocBundle"/>
+ </td>
+</tr>
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard15.jsp b/webconsole/jsp/contexts/Wizard15.jsp
new file mode 100644
index 0000000..49329a0
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard15.jsp
@@ -0,0 +1,137 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+ <!-- Legend: required field indicator -->
+<cc:legend name="Legend" bundleID="apocBundle"/>
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+ <tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName("WizardWindow.Wizard.Wizard15View.UserDN");
+ verifyRequiredField();
+ }
+
+ function verifyRequiredField() {
+ var f = WizardWindow_Wizard.formName;
+ var userDn = ccGetElement(
+ "WizardWindow.Wizard.Wizard15View.UserDN", f);
+
+ if (userDn == null) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ if (userDn.value.length != 0) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ WizardWindow_Wizard.setNextButtonDisabled(true, null);
+ }
+ }
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+ <cc:label name="UserDNLabel" styleLevel="2"
+ elementName="UserDNLabel"
+ showRequired="true"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:textfield name ="UserDN" onKeyDown="javascript: setTimeout('verifyRequiredField()', 0);" bundleID="apocBundle"/>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="PasswordLabel" styleLevel="2"
+ elementName="PasswordLabel"
+ showRequired="true"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:password name ="Password" onKeyDown="javascript: setTimeout('verifyRequiredField()', 0);" bundleID="apocBundle"/>
+ </td>
+ </tr>
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard16.jsp b/webconsole/jsp/contexts/Wizard16.jsp
new file mode 100644
index 0000000..fc1517c
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard16.jsp
@@ -0,0 +1,148 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<!-- Legend: required field indicator -->
+<cc:legend name="Legend" bundleID="apocBundle"/>
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard16View.NameField");
+ verifyRequiredField();
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ function verifyRequiredField() {
+ var f = WizardWindow_Wizard.formName;
+ var desc = ccGetElement(
+ "WizardWindow.Wizard.Wizard16View.NameField", f);
+
+ if (desc == null) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ if (desc.value.length != 0) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ WizardWindow_Wizard.setNextButtonDisabled(true, null);
+ }
+ }
+ }
+
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+ <cc:label name="NameLabel" styleLevel="2"
+ elementName="NameLabel"
+ showRequired="true"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:textfield name ="NameField" bundleID="apocBundle" onKeyDown="javascript: setTimeout('verifyRequiredField()', 0);" autoSubmit="false"/>
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="EntityTypeLabel" styleLevel="2"
+ elementName="EntityTypeLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:checkbox name ="EntityType" label="Include Sun Ray Elements" dynamic="true" styleLevel="3" bundleID="apocBundle"/>
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="BackendTypeLabel" styleLevel="2"
+ elementName="BackendTypeLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:dropdownmenu name ="BackendType" bundleID="apocBundle"/>
+ </td>
+</tr>
+</jato:pagelet>
+
diff --git a/webconsole/jsp/contexts/Wizard17.jsp b/webconsole/jsp/contexts/Wizard17.jsp
new file mode 100644
index 0000000..df1f914
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard17.jsp
@@ -0,0 +1,156 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+<!-- Legend: required field indicator -->
+<cc:legend name="Legend" bundleID="apocBundle"/>
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+<jato:content name="DisplaySunrayServerList">
+ <tr>
+ <td width="10" valign="top" align="left" rowspan="1" colspan="1">
+ <br><br>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard17View.SunrayServerList.textField");
+ verifyRequiredField();
+ }
+
+
+
+ function verifyRequiredField() {
+ var f = WizardWindow_Wizard.formName;
+ var desc = ccGetElement(
+ "WizardWindow.Wizard.Wizard17View.SunrayServerList.listbox", f);
+ var servers = desc.options;
+
+ if (servers == null) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ if (servers.length <= 1) {
+ WizardWindow_Wizard.setNextButtonDisabled(true, null);
+ } else {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ }
+ }
+ }
+
+
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+
+ </script>
+ <cc:editablelist name="SunrayServerList"
+ listboxLabel="APOC.wiz.17.sunray.server.list"
+ bundleID="apocBundle"
+ />
+
+ <script type="text/javascript">
+ function addToList() {
+ Editable_WizardWindow_Wizard_Wizard17View_SunrayServerList.addToList();
+ verifyRequiredField() ;
+ return false;
+ }
+
+ function removeFromList() {
+ Editable_WizardWindow_Wizard_Wizard17View_SunrayServerList.removeFromList();
+ verifyRequiredField() ;
+ return false;
+ }
+ var f = WizardWindow_Wizard.formName;
+ var addBtn = ccGetElement(
+ "WizardWindow.Wizard.Wizard17View.SunrayServerList.addButton", f);
+ addBtn.onclick=new Function ("evt", "addToList(); return false;");
+ var deleteBtn = ccGetElement(
+ "WizardWindow.Wizard.Wizard17View.SunrayServerList.deleteButton", f);
+ deleteBtn.onclick=new Function ("evt", "removeFromList(); return false;");
+ </script>
+ </td>
+
+ </tr>
+</jato:content>
+
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard18.jsp b/webconsole/jsp/contexts/Wizard18.jsp
new file mode 100644
index 0000000..55dd478
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard18.jsp
@@ -0,0 +1,114 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard18View.SunrayFolderChooser");
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+<%-- <cc:label name="PathLabel" styleLevel="2"
+ elementName="PathLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1"> --%>
+ <cc:hidden name="isFirstView18" defaultValue="true" />
+ <jato:content name="DisplayAlert">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle" />
+ <BR>
+ </jato:content>
+ <!-- Folder Chooser -->
+ <cc:filechooser name="SunrayFolderChooser" type="folder" multipleSelect="false" />
+ <%-- <cc:textfield name ="PathField" bundleID="apocBundle" autoSubmit="false"/> --%>
+ </td>
+</tr>
+
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard19.jsp b/webconsole/jsp/contexts/Wizard19.jsp
new file mode 100644
index 0000000..fa96cb6
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard19.jsp
@@ -0,0 +1,110 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard19iew.SunrayOverwrite");
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+ <cc:label name="OverwriteLabel" styleLevel="2"
+ elementName="OverwriteLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:radiobutton name ="SunrayOverwrite"
+ dynamic="true"
+ styleLevel="3"
+ bundleID="apocBundle"/>
+ </td>
+</tr>
+
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard2.jsp b/webconsole/jsp/contexts/Wizard2.jsp
new file mode 100644
index 0000000..818dfd3
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard2.jsp
@@ -0,0 +1,141 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<!-- Legend: required field indicator -->
+<cc:legend name="Legend" bundleID="apocBundle"/>
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard2View.NameField");
+ verifyRequiredField();
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ function verifyRequiredField() {
+ var f = WizardWindow_Wizard.formName;
+ var desc = ccGetElement(
+ "WizardWindow.Wizard.Wizard2View.NameField", f);
+
+ if (desc == null) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ var spacesRegex = /^[\s]+$/;
+ if (desc.value.length != 0 && !spacesRegex.test(desc.value)) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ WizardWindow_Wizard.setNextButtonDisabled(true, null);
+ }
+ }
+ }
+
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+
+ </script>
+ <cc:label name="NameLabel" styleLevel="2"
+ elementName="NameLabel"
+ showRequired="true"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:textfield name ="NameField" bundleID="apocBundle" onKeyDown="javascript: setTimeout('verifyRequiredField()', 0);" autoSubmit="false"/>
+ </td>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="BackendTypeLabel" styleLevel="2"
+ elementName="BackendTypeLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:dropdownmenu name ="BackendType" bundleID="apocBundle"/>
+ </td>
+</tr>
+
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard3.jsp b/webconsole/jsp/contexts/Wizard3.jsp
new file mode 100644
index 0000000..2bf5404
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard3.jsp
@@ -0,0 +1,155 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<!-- Legend: required field indicator -->
+<cc:legend name="Legend" bundleID="apocBundle"/>
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard3View.HostField");
+ verifyRequiredField();
+ }
+
+ function verifyRequiredField() {
+ var f = WizardWindow_Wizard.formName;
+ var host = ccGetElement(
+ "WizardWindow.Wizard.Wizard3View.HostField", f);
+ var port = ccGetElement(
+ "WizardWindow.Wizard.Wizard3View.PortField", f);
+
+ if (host == null || port == null) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ if (host.value.length != 0 && port.value.length != 0) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ WizardWindow_Wizard.setNextButtonDisabled(true, null);
+ }
+ }
+ }
+
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+
+ </script>
+ <cc:label name="HostLabel" styleLevel="2"
+ elementName="HostLabel"
+ showRequired="true"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:textfield name ="HostField" onKeyDown="javascript: setTimeout('verifyRequiredField()', 0);" bundleID="apocBundle"/>
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="PortLabel" styleLevel="2"
+ elementName="PortLabel"
+ showRequired="true"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:textfield name ="PortField" onKeyDown="javascript: setTimeout('verifyRequiredField()', 0);" bundleID="apocBundle"/>
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ &nbsp;
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:checkbox name ="UseSSL" bundleID="apocBundle"/>
+ <cc:label name="SSLLabel" styleLevel="3"
+ elementName="SSLLabel"
+ bundleID="apocBundle"/>
+ </td>
+</tr>
+
+</jato:pagelet>
+
diff --git a/webconsole/jsp/contexts/Wizard4.jsp b/webconsole/jsp/contexts/Wizard4.jsp
new file mode 100644
index 0000000..bc03a82
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard4.jsp
@@ -0,0 +1,139 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function switchStateAnonAccess() {
+ var f=document.wizWinForm;
+ if ( f.elements['WizardWindow.Wizard.Wizard4View.AnonAccess'].checked == true) {
+ f.elements['WizardWindow.Wizard.Wizard4View.NonAnonPassword'].disabled=true;
+ f.elements['WizardWindow.Wizard.Wizard4View.NonAnonUserDN'].disabled=true;
+ } else {
+ f.elements['WizardWindow.Wizard.Wizard4View.NonAnonPassword'].disabled=false;
+ f.elements['WizardWindow.Wizard.Wizard4View.NonAnonUserDN'].disabled=false;
+ }
+ }
+
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName("WizardWindow.Wizard.Wizard4View.AnonAccess");
+ switchStateAnonAccess();
+ }
+
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+ &nbsp;
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:checkbox name ="AnonAccess" onChange="javascript:switchStateAnonAccess();" bundleID="apocBundle"/>
+ <cc:label name="AnonAccessLabel" styleLevel="3"
+ elementName="AnonAccessLabel"
+ bundleID="apocBundle"/>
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="NonAnonUserDNLabel" styleLevel="2"
+ elementName="NonAnonUserDNLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:textfield name ="NonAnonUserDN" bundleID="apocBundle"/>
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="NonAnonPasswordLabel" styleLevel="2"
+ elementName="NonAnonPasswordLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:password name ="NonAnonPassword" bundleID="apocBundle"/>
+ </td>
+</tr>
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard5.jsp b/webconsole/jsp/contexts/Wizard5.jsp
new file mode 100644
index 0000000..24f7bae
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard5.jsp
@@ -0,0 +1,107 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard5View.ServerType");
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+ <cc:label name="ServerTypeLabel" styleLevel="2"
+ elementName="ServerTypeLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:dropdownmenu name ="ServerType" bundleID="apocBundle"/>
+ </td>
+</tr>
+
+</jato:pagelet>
+
diff --git a/webconsole/jsp/contexts/Wizard6.jsp b/webconsole/jsp/contexts/Wizard6.jsp
new file mode 100644
index 0000000..1408359
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard6.jsp
@@ -0,0 +1,110 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard6View.AdaptMetaConfig");
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+ <cc:label name="AdaptMetaConfigLabel" styleLevel="2"
+ elementName="AdaptMetaConfigLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:radiobutton name ="AdaptMetaConfig"
+ dynamic="true"
+ styleLevel="3"
+ bundleID="apocBundle"/>
+ </td>
+</tr>
+
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard7.jsp b/webconsole/jsp/contexts/Wizard7.jsp
new file mode 100644
index 0000000..dd4472a
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard7.jsp
@@ -0,0 +1,110 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard7View.MetaConfig");
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+ <cc:hidden name="isFirstView7" defaultValue="true" />
+ <cc:label name="MetaConfigLabel" styleLevel="2"
+ elementName="MetaConfigLabel"
+ bundleID="apocBundle"/>
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:textarea name ="MetaConfig" rows="15" cols="40" bundleID="apocBundle"/>
+ </td>
+</tr>
+
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard8.jsp b/webconsole/jsp/contexts/Wizard8.jsp
new file mode 100644
index 0000000..afc7edf
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard8.jsp
@@ -0,0 +1,108 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard8View.SelectBaseDN");
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+ <cc:hidden name="isFirstView8" defaultValue="true" />
+ <cc:label name="SelectBaseDNLabel" styleLevel="2"
+ elementName="SelectBaseDNLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:dropdownmenu name ="SelectBaseDN" bundleID="apocBundle"/>
+ </td>
+</tr>
+
+</jato:pagelet>
diff --git a/webconsole/jsp/contexts/Wizard9.jsp b/webconsole/jsp/contexts/Wizard9.jsp
new file mode 100644
index 0000000..86bf35b
--- /dev/null
+++ b/webconsole/jsp/contexts/Wizard9.jsp
@@ -0,0 +1,169 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<!-- Legend: required field indicator -->
+<cc:legend name="Legend" bundleID="apocBundle"/>
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+<cc:hidden name="isFirstView" defaultValue="true" />
+<jato:content name="DisplayDropdownInput">
+ <tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard9View.SelectBaseDN");
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+
+ <cc:label name="SelectBaseDNLabel" styleLevel="2"
+ elementName="SelectBaseDNLabel"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:dropdownmenu name ="SelectBaseDN" bundleID="apocBundle"/>
+ </td>
+ </tr>
+</jato:content>
+
+<jato:content name="DisplayTextfieldInput">
+ <tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.Wizard9View.EnterBaseDN");
+ verifyRequiredField();
+ }
+
+ function verifyRequiredField() {
+ var f = WizardWindow_Wizard.formName;
+ var baseDn = ccGetElement(
+ "WizardWindow.Wizard.Wizard9View.EnterBaseDN", f);
+
+ if (baseDn == null) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ if (baseDn.value.length != 0) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ WizardWindow_Wizard.setNextButtonDisabled(true, null);
+ }
+ }
+ }
+
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ document.onkeypress = onKeyPress;
+ function onKeyPress(event){
+ if (event.keyCode==13) {
+ var f=document.wizWinForm;
+ f.elements['WizardWindow.Wizard.nextButton'].click() ;
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ContextWizardWindow= top;
+ }
+ </script>
+ <cc:label name="EnterBaseDNLabel" styleLevel="2"
+ elementName="EnterBaseDNLabel"
+ showRequired="true"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:textfield name ="EnterBaseDN" bundleID="apocBundle" onKeyDown="javascript: setTimeout('verifyRequiredField()', 0);" autoSubmit="false"/>
+ </td>
+ </tr>
+</jato:content>
+
+</jato:pagelet>
diff --git a/webconsole/jsp/entities/BrowseTree.jsp b/webconsole/jsp/entities/BrowseTree.jsp
new file mode 100644
index 0000000..039fbc8
--- /dev/null
+++ b/webconsole/jsp/entities/BrowseTree.jsp
@@ -0,0 +1,122 @@
+<%@ page info="Manager" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.BrowseTreeViewBean">
+
+ <cc:header name="HtmlHeader"
+ pageTitle="Browse Tree Title" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ preserveFocus="true"
+ preserveScroll="true"
+ isPopup="true">
+
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+ <script type="text/javascript">
+ <!--
+ function getRootEntityId() {
+ return document.BrowseTreeForm['BrowseTree.HiddenRootEntity'].value;
+ }
+
+ function getRootEntityType() {
+ return document.BrowseTreeForm['BrowseTree.HiddenRootEntityType'].value;
+ }
+
+ function getEntityId() {
+ return '<cc:text name="SelectedEntity"/>' ;
+ }
+
+ function getEntityType() {
+ return '<cc:text name="SelectedEntityType"/>' ;
+ }
+
+ function getEntityPath() {
+ return '<cc:text name="SelectedEntityPath"/>' ;
+ }
+
+ function handleSelection(selectTag) {
+ var form=document.BrowseTreeForm;
+ if (form != null) {
+ form.action='/apoc/manager/BrowseTree?BrowseTree.DefaultHref=a&amp;';
+ form.submit();
+ }
+ }
+
+ function entitySearchCallback(sHref) {
+ var form = document.BrowseTreeForm;
+ var sEntityId = extractByDelimiters("=", "&", sHref);
+ form.action="/apoc/manager/BrowseTree?BrowseTree.DefaultHref="+sEntityId;
+ form.submit();
+ }
+ -->
+ </script>
+
+ <cc:form name="BrowseTreeForm" method="post" onSubmit="javascript:return false;">
+ <br>
+ <table width="80%" align=center>
+ <tr>
+ <td>
+ <table width='100%' align=center>
+ <tr>
+ <td height='30' align="right">
+ <cc:button name="SearchButton"
+ bundleID="apocBundle"
+ defaultValue="APOC.search.search"
+ type="secondary"/>
+ &nbsp;&nbsp;&nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td height='100' valign='top' class='TreBdy'>
+ <cc:dtree name="Tree" bundleID="apocBundle" />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ <cc:hidden name="ShowSearch" defaultValue="true" />
+ <cc:hidden name="HiddenRootEntity" defaultValue="" />
+ <cc:hidden name="HiddenRootEntityType" defaultValue="" />
+ </cc:form>
+ </cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/entities/BrowseTreeBase.jsp b/webconsole/jsp/entities/BrowseTreeBase.jsp
new file mode 100644
index 0000000..53f95dc
--- /dev/null
+++ b/webconsole/jsp/entities/BrowseTreeBase.jsp
@@ -0,0 +1,73 @@
+<%@ page info="Manager" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+
+<jato:useViewBean className="com.sun.apoc.manager.BrowseTreeBaseViewBean">
+
+<!-- Header -->
+<cc:header name="Header"
+ pageTitle="BrowseTreeBase"
+ copyrightYear="2004"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+<cc:form name="BrowseTreeBaseForm" method="post">
+
+<!-- Buttons area -->
+<table border="0" width="100%" cellpadding="10" cellspacing="0">
+<tr>
+ <td valign='middle' align='right'>
+ <div class="TtlBtnBtmDiv">
+ <cc:button name="OkButton" bundleID="apocBundle"
+ defaultValue="APOC.button.OK" title="APOC.button.OK" type="default"
+ dynamic="true"/>
+ <cc:button name="CancelButton" bundleID="apocBundle"
+ defaultValue="APOC.button.cancel" title="APOC.button.cancel"
+ type="secondary" onClick="top.window.close();return false;"/>
+ </div>
+ </td>
+</tr>
+</table>
+
+</cc:form>
+</cc:header>
+</jato:useViewBean> \ No newline at end of file
diff --git a/webconsole/jsp/entities/BrowseTreeIndex.jsp b/webconsole/jsp/entities/BrowseTreeIndex.jsp
new file mode 100644
index 0000000..e0ab055
--- /dev/null
+++ b/webconsole/jsp/entities/BrowseTreeIndex.jsp
@@ -0,0 +1,81 @@
+<%@page info="Browse Tree Window Frameset" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.BrowseTreeIndexViewBean">
+
+<cc:i18nbundle id="apocBundle" baseName="com.sun.apoc.manager.resource.apoc_manager" />
+<html>
+ <head>
+ <title><cc:text name ="BrowseTreeTitle" defaultValue="" bundleID="apocBundle"/></title>
+ </head>
+ <script type="text/javascript">
+ <!--
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_BrowseTreeWindow= top;
+ }
+ // -->
+ </script>
+ <frameset rows="150, *, 75" border="2" framespacing="2">
+
+ <frame name="masthead" title="Masthead" scrolling="no"
+ marginwidth="0" marginheight="0" border="0" framespacing="0"
+ noresize src="/apoc/manager/BrowseTreeMasthead"/>
+ <frame name="browsetree" title="BrowseTree"
+ scrolling="AUTO" marginwidth="0" marginheight="0" border="0"
+ framespacing="0" src="/apoc/manager/BrowseTree"/>
+ <frame name="browsetreebase" title="BrowseTreeBase" scrolling="no"
+ marginwidth="0" marginheight="0" border="0" framespacing="0"
+ src="/apoc/manager/BrowseTreeBase"/>
+ </frameset>
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ This page needs frame support put I18N here
+ </body>
+ </noframes>
+</html>
+</jato:useViewBean>
+
diff --git a/webconsole/jsp/entities/BrowseTreeMasthead.jsp b/webconsole/jsp/entities/BrowseTreeMasthead.jsp
new file mode 100644
index 0000000..d43cea0
--- /dev/null
+++ b/webconsole/jsp/entities/BrowseTreeMasthead.jsp
@@ -0,0 +1,64 @@
+<%@ page info="Browse Tree Masthead" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.BrowseTreeMastheadViewBean">
+<cc:i18nbundle id="apocBundle" baseName="com.sun.apoc.manager.resource.apoc_manager" />
+<cc:header pageTitle="BrowseTreeTitle"
+ copyrightYear="2002"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+ <cc:secondarymasthead name="Masthead"
+ src="/apoc/images/popuptitle.gif"
+ alt="APOC.masthead.altText"
+ bundleID="apocBundle"/>
+
+ <cc:pagetitle name="BrowseTreeTitle"
+ bundleID="apocBundle"
+ pageTitleText=""
+ pageTitleHelpMessage="APOC.browse.title.text"
+ showPageTitleSeparator="true"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="false"/>
+
+
+</cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/entities/BrowseTreeTitle.xml b/webconsole/jsp/entities/BrowseTreeTitle.xml
new file mode 100644
index 0000000..36da2b6
--- /dev/null
+++ b/webconsole/jsp/entities/BrowseTreeTitle.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="OkButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.button.OK"/>
+ <attribute name="title" value="APOC.browse.ok.help"/>
+ <attribute name="onClick" value="javascript:opener.submitBrowse(getEntityId(), getEntityType()); window.close(); return false;"/>
+ <attribute name="type" value="default"/>
+ </cc>
+ <cc name="CancelButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.button.cancel"/>
+ <attribute name="title" value="APOC.browse.cancel.help"/>
+ <attribute name="onClick" value="javascript:window.close(); return false;"/>
+ <attribute name="type" value="primary"/>
+ </cc>
+ </pagebuttons>
+</pagetitle> \ No newline at end of file
diff --git a/webconsole/jsp/entities/FindButtons.jsp b/webconsole/jsp/entities/FindButtons.jsp
new file mode 100644
index 0000000..8bbb5be
--- /dev/null
+++ b/webconsole/jsp/entities/FindButtons.jsp
@@ -0,0 +1,62 @@
+<%@ page info="Entity Search Masthead" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.EntitiesFindButtonsViewBean">
+
+<cc:header pageTitle="APOC.navigation.search"
+ copyrightYear="2002"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+ <cc:form name="ButtonsForm" method="post">
+ <p style="text-align:right;">
+ <cc:button name="CloseButton"
+ bundleID="apocBundle"
+ type="secondary"
+ defaultValue="APOC.button.close"
+ onClick="top.window.close(); return false;"
+ tabIndex="1" />
+ &nbsp;&nbsp;
+ </p>
+ </cc:form>
+
+</cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/entities/FindIndex.jsp b/webconsole/jsp/entities/FindIndex.jsp
new file mode 100644
index 0000000..6e18acb
--- /dev/null
+++ b/webconsole/jsp/entities/FindIndex.jsp
@@ -0,0 +1,86 @@
+<%@page info="Entity Find Root Frameset" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.EntitiesFindIndexViewBean">
+
+<html>
+ <head>
+ <title>Find</title>
+ </head>
+
+ <frameset rows="140, *, 50" border="2" framespacing="2">
+
+ <frame name="parameters"
+ title="Parameters"
+ scrolling="AUTO"
+ marginwidth="0"
+ marginheight="0"
+ border="1"
+ framespacing="1"
+ src="/apoc/manager/EntitiesFindParameter">
+
+ <frame name="results"
+ title="Results"
+ scrolling="AUTO"
+ marginwidth="0"
+ marginheight="0"
+ border="1"
+ framespacing="1"
+ src="/apoc/manager/EntitiesFindResult?EntitiesFindResult.FindHref=<jato:staticText name="EntityIdText"/>">
+
+ <frame name="buttons"
+ title="Buttons"
+ scrolling="AUTO"
+ marginwidth="0"
+ marginheight="0"
+ border="1"
+ framespacing="1"
+ src="/apoc/manager/EntitiesFindButtons">
+
+ </frameset>
+
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ This page needs frame support put I18N here
+ </body>
+ </noframes>
+
+</html>
+</jato:useViewBean>
diff --git a/webconsole/jsp/entities/FindParameter.jsp b/webconsole/jsp/entities/FindParameter.jsp
new file mode 100644
index 0000000..7ebd759
--- /dev/null
+++ b/webconsole/jsp/entities/FindParameter.jsp
@@ -0,0 +1,114 @@
+<%@ page info="Navigator" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+ <jato:useViewBean className="com.sun.apoc.manager.EntitiesFindParameterViewBean">
+
+ <cc:header pageTitle="Find" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true"
+ onLoad="javascript:handleLoad(); return true">
+
+ <script type="text/javascript">
+ <!--
+ var m_sOldFindString = "";
+ var m_OpenerTop;
+
+ function handleLoad() {
+ document.forms[0]['EntitiesFindParameter.FindText'].focus();
+ m_sOldFindString = document.forms[0]['EntitiesFindParameter.FindText'].value;
+ m_OpenerTop=top.opener.top;
+ }
+
+ function handleSubmit() {
+ document.forms[0]['EntitiesFindParameter.FindButton'].className='Btn1Dis';
+ document.forms[0]['EntitiesFindParameter.FindButton'].disabled='true';
+
+ var resultsForm = top.results.document.forms[0];
+ var sEntityId = resultsForm['EntitiesFindResult.EntityId'].value;
+ var sEntityType = resultsForm['EntitiesFindResult.EntityType'].value;
+ var newDoc = top.results.document.open("text/html", "replace");
+ var sMarkup = '<html><head><title>empty</title></head><body>';
+ sMarkup += '<form name="ResultForm" method="post" action="../manager/EntitiesFindResult">';
+ sMarkup += '<input type="hidden" name="EntitiesFindResult.EntityId" value="'+sEntityId+'" />';
+ sMarkup += '<input type="hidden" name="EntitiesFindResult.EntityType" value="'+sEntityType+'" />';
+ sMarkup += '<input type="hidden" name="EntitiesFindResult.FindString" value="*" />';
+ sMarkup += '<input type="hidden" name="jato.defaultCommand" value="FindButton" />';
+ sMarkup += '<input type="hidden" name="com_sun_web_ui_popup" value="true" />';
+ sMarkup += '</form></body></html>';
+ newDoc.write(sMarkup);
+ newDoc.close();
+
+ resultsForm = top.results.document.forms[0];
+ resultsForm['EntitiesFindResult.FindString'].value=document.forms[0]['EntitiesFindParameter.FindText'].value;
+ resultsForm.submit();
+ }
+
+ function handlePressedKey() {
+ var sNewFindString =document.forms[0]['EntitiesFindParameter.FindText'].value;
+ if (sNewFindString!=m_sOldFindString) {
+ m_sOldFindString=sNewFindString;
+ document.forms[0]['EntitiesFindParameter.FindButton'].disabled='';
+ document.forms[0]['EntitiesFindParameter.FindButton'].className='Btn1Def';
+ }
+ }
+ // -->
+ </script>
+
+ <cc:form name="ParameterForm"
+ method="post"
+ onSubmit="javascript: handleSubmit(); return false"
+ defaultCommandChild="FindButton" >
+
+ <cc:secondarymasthead name="Masthead"
+ src="/apoc/images/popuptitle.gif"
+ alt="APOC.masthead.altText"
+ bundleID="apocBundle"/>
+
+ <cc:propertysheet name="FindParams"
+ bundleID="apocBundle"
+ showJumpLinks="false"/>
+
+ </cc:form>
+
+ </cc:header>
+
+</jato:useViewBean>
diff --git a/webconsole/jsp/entities/FindParameter.xml b/webconsole/jsp/entities/FindParameter.xml
new file mode 100644
index 0000000..886cfd8
--- /dev/null
+++ b/webconsole/jsp/entities/FindParameter.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE propertysheet SYSTEM "tags/dtd/propertysheet.dtd">
+
+<propertysheet>
+ <section name="params" defaultValue=" ">
+ <property span="true">
+ <cc name="FindText" tagclass="com.sun.web.ui.taglib.html.CCTextFieldTag" >
+ <attribute name="defaultValue" value="*"/>
+ <attribute name="onKeyPress" value="javascript:setTimeout('handlePressedKey()',0); return true"/>
+ </cc>
+ <cc name="FindButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag" >
+ <attribute name="bundleID" value="apocBundle"/>
+ <attribute name="defaultValue" value="APOC.find.button"/>
+ <attribute name="type" value="default"/>
+ </cc>
+ </property>
+ </section>
+</propertysheet>
diff --git a/webconsole/jsp/entities/FindResult.jsp b/webconsole/jsp/entities/FindResult.jsp
new file mode 100644
index 0000000..a6f87e6
--- /dev/null
+++ b/webconsole/jsp/entities/FindResult.jsp
@@ -0,0 +1,108 @@
+<%@ page info="Navigator" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+ <jato:useViewBean className="com.sun.apoc.manager.EntitiesFindResultViewBean">
+
+ <cc:header pageTitle="Find" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+ <cc:form name="ResultForm" method="post" defaultCommandChild="FindButton">
+
+ <jato:content name="Help">
+
+ <div class="content-layout">
+ <BR>
+ <cc:text name="HelpText1" defaultValue="APOC.search.help.text1" bundleID="apocBundle"/>
+ <BR><BR>
+ <cc:text name="HelpText2" defaultValue="APOC.search.help.text2" bundleID="apocBundle"/>
+ </div>
+
+ </jato:content>
+
+ <jato:content name="EntitiesFound">
+ <br><br>
+ <table width='100%' cellspacing='0' cellpadding='0'>
+ <tr>
+ <td width='2%'><br></td>
+ <td width='96%'>
+ <table width='100%' cellspacing='0' cellpadding='0'>
+ <jato:tiledView name="EntitiesFindTiledView">
+ <tr>
+ <td style='border-right:solid 1px #D8D8D8; padding: 1px 4px 1px 4px'>
+ <cc:href name="Result1Href" onClick="javascript:parent.opener.focus(); parent.opener.entitySearchCallback(this.href); top.window.close(); return false;">
+ <cc:text name="Result1Text"/>
+ </cc:href>
+ </td>
+ <td style='border-right:solid 1px #D8D8D8; padding: 1px 4px 1px 4px'>
+ <cc:href name="Result2Href" onClick="javascript:parent.opener.focus(); parent.opener.entitySearchCallback(this.href); top.window.close(); return false;">
+ <cc:text name="Result2Text"/>
+ </cc:href>
+ </td>
+ <td style='padding: 1px 4px 1px 4px'>
+ <cc:href name="Result3Href" onClick="javascript:parent.opener.focus(); parent.opener.entitySearchCallback(this.href); top.window.close(); return false;">
+ <cc:text name="Result3Text"/>
+ </cc:href>
+ </td>
+ </tr>
+ </jato:tiledView>
+ </table>
+ </td>
+ <td width='2%'><br></td>
+ </tr>
+ </table>
+ </jato:content>
+
+ <jato:content name="NoEntitiesFound">
+ <br><br>
+ <center><b><cc:text name="NoneFoundMessage" defaultValue="APOC.policies.set.table.empty" bundleID="apocBundle"/></b></center>
+ </jato:content>
+
+ <cc:hidden name="EntityId" />
+ <cc:hidden name="EntityType" />
+ <cc:hidden name="FindString" />
+
+ </cc:form>
+
+ </cc:header>
+
+</jato:useViewBean>
diff --git a/webconsole/jsp/entities/FindTable.xml b/webconsole/jsp/entities/FindTable.xml
new file mode 100644
index 0000000..6a175f1
--- /dev/null
+++ b/webconsole/jsp/entities/FindTable.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <column name="NameColumn1" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="NameHref1" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="onClick" value="parent.opener.focus(); parent.opener.entitySearchCallback(this.href); top.window.close(); return false;"/>
+ <cc name="NameText1" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ </column>
+ <column name="NameColumn2" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="NameHref2" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="onClick" value="parent.opener.focus(); parent.opener.entitySearchCallback(this.href); top.window.close(); return false;"/>
+ <cc name="NameText2" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ </column>
+ <column name="NameColumn3" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="NameHref3" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="onClick" value="parent.opener.focus(); parent.opener.entitySearchCallback(this.href); top.window.close(); return false;"/>
+ <cc name="NameText3" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ </column>
+</table>
diff --git a/webconsole/jsp/entities/MemberTable.xml b/webconsole/jsp/entities/MemberTable.xml
new file mode 100644
index 0000000..f4109a5
--- /dev/null
+++ b/webconsole/jsp/entities/MemberTable.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <column name="NameColumn" sortname="NameText" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="NameText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+ <column name="PathColumn" sortname="PathText" extrahtml="nowrap='nowrap'">
+ <cc name="PathText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+</table>
diff --git a/webconsole/jsp/entities/Navigation.jsp b/webconsole/jsp/entities/Navigation.jsp
new file mode 100644
index 0000000..9ff1530
--- /dev/null
+++ b/webconsole/jsp/entities/Navigation.jsp
@@ -0,0 +1,191 @@
+<%@ page info="Navigation" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+ <jato:useViewBean className="com.sun.apoc.manager.EntitiesNavigationViewBean">
+
+ <cc:header pageTitle="APOC.navigation.area" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ styleClass="TreWhtBdy"
+ preserveScroll="true"
+ onLoad="javascript:view()">
+
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+ <script type="text/javascript">
+ <!--
+
+ domain = new Image();
+ host = new Image();
+ org = new Image();
+ role = new Image();
+ user = new Image();
+ domainAssigned = new Image();
+ hostAssigned = new Image();
+ orgAssigned = new Image();
+ roleAssigned = new Image();
+ userAssigned = new Image();
+ domain.src = "../images/domain.png";
+ host.src = "../images/host.png";
+ org.src = "../images/org.png";
+ role.src = "../images/role.png";
+ user.src = "../images/user.png";
+ domainAssigned.src = "../images/domainAssigned.png";
+ hostAssigned.src = "../images/hostAssigned.png";
+ orgAssigned.src = "../images/orgAssigned.png";
+ roleAssigned.src = "../images/roleAssigned.png";
+ userAssigned.src = "../images/userAssigned.png";
+
+ function switchImage(nodeId,isAssigned) {
+ var imageNode;
+
+ if (nodeId<0) {
+ // change image of currently highlighted node
+ var imgNodes = document.getElementsByName("EntitiesNavigation.Tree.ChildImage");
+ var imgNode = null;
+
+ for(nodeRunner = 0; nodeRunner < imgNodes.length; nodeRunner++) {
+ imgNode = imgNodes[nodeRunner];
+ srcAttribute= imgNode.getAttribute("src");
+ if ( (srcAttribute.indexOf("com_sun_web_ui")<0) && (imgNode.parentNode.parentNode.className=="TreSelRow") ) {
+ imageNode = imgNode;
+ break;
+ }
+ }
+ } else {
+ // change image of any other node
+ var hrefNodes = document.getElementsByName("EntitiesNavigation.Tree.NodeHref");
+ var hrefNode = null;
+
+ for(nodeRunner = 0; nodeRunner < hrefNodes.length; nodeRunner++) {
+ hrefNode = hrefNodes[nodeRunner];
+ hrefAttribute= hrefNode.getAttribute("href");
+
+ if (hrefAttribute.indexOf("EntitiesNavigation.Tree.NodeHref="+nodeId)>-1) {
+ imageNode = hrefNode.firstChild;
+ break;
+ }
+ }
+ }
+
+ if (imageNode!=null) {
+ var assignedPos = imageNode.src.indexOf("Assigned");
+ var newSrc;
+ if ((assignedPos>0) && (isAssigned!=true)) {
+ newSrc = imageNode.src.substring(0,assignedPos);
+ newSrc = newSrc+imageNode.src.substring(assignedPos+8,imageNode.src.length);
+ imageNode.src = newSrc;
+ } else if ((assignedPos<0) && (isAssigned==true)) {
+ dotPos = imageNode.src.lastIndexOf(".");
+ newSrc = imageNode.src.substring(0,dotPos)+"Assigned";
+ newSrc = newSrc+imageNode.src.substring(dotPos,imageNode.src.length);
+ imageNode.src = newSrc;
+ }
+ }
+ }
+
+ function view() {
+ <cc:text name="ContentConditionalReload" defaultValue="" />
+ }
+
+ function entitySearchCallback(sHref) {
+ submitNavigationArea(sHref);
+ }
+
+ function submitNavigationArea(sHref) {
+ var form = document.EntitiesNavigationForm;
+ var sEntityId = extractByDelimiters("=", "&", sHref);
+ form.action="/apoc/manager/EntitiesNavigation?EntitiesNavigation.DefaultHref="+sEntityId;
+ form.submit();
+ }
+
+ function handleKeys() {
+ if (window.event && window.event.keyCode == 13) {
+ handleSearchButton();
+ return false;
+ }
+ return true;
+ }
+
+ function handleSearchButton() {
+ openSearchWindow('<cc:text name="JSContext" defaultValue=""/>', document.forms[0]['EntitiesNavigation.SearchText'].value, '', '');
+ document.forms[0]['EntitiesNavigation.SearchText'].value="";
+ }
+
+ // -->
+ </script>
+
+ <cc:form name="EntitiesNavigationForm" method="post">
+
+ <jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+ </jato:content>
+
+ <table width="100%" border="0" cellspacing="0" cellpadding="15" bgcolor="#FFFFFF">
+ <tr><td align="left">
+ <cc:textfield name="SearchText"
+ bundleID="apocBundle"
+ title="APOC.navigation.edit.help"
+ dynamic="false"
+ onKeyPress="return handleKeys()"/>
+ <cc:button name="SearchButton"
+ bundleID="apocBundle"
+ defaultValue="APOC.search.search"
+ type="secondary"
+ title="APOC.navigation.search.help"
+ onClick="javascript: handleSearchButton(); return false;"/>
+ </td></tr>
+ </table>
+
+ <cc:dtree name="Tree" bundleID="apocBundle" />
+
+ </cc:form>
+
+ </cc:header>
+
+</jato:useViewBean>
diff --git a/webconsole/jsp/entities/ProfileTable.xml b/webconsole/jsp/entities/ProfileTable.xml
new file mode 100644
index 0000000..fb52c56
--- /dev/null
+++ b/webconsole/jsp/entities/ProfileTable.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <filters>
+ <cc name="FilterMenu" tagclass="com.sun.web.ui.taglib.html.CCDropDownMenuTag">
+ <attribute name="commandChild" value="FilterMenuHref" />
+ <attribute name="escape" value="false" />
+ <option label="APOC.navigation.organizations" value="ORG" />
+ <option label="APOC.navigation.users" value="USERID" />
+ <option label="APOC.navigation.roles" value="ROLE" />
+ </cc>
+ </filters>
+ <column name="NameColumn" sortname="NameText" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="NameHref" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="Form" value="NavigationAreaForm"/>
+ <cc name="NameText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ <cc name="NameText2" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+ <column name="TypeColumn" sortname="TypeText" extrahtml="nowrap='nowrap'">
+ <cc name="TypeText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+ <column name="ActionColumn" extrahtml="nowrap='nowrap'">
+ <cc name="ViewAction" tagclass="com.sun.web.ui.taglib.table.CCEmbeddedActionTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="Form" value="NavigationAreaForm"/>
+ <attribute name="title" value="APOC.navigation.view.tooltip"/>
+ <attribute name="onMouseOver" value="window.status=this.title; return true"/>
+ <attribute name="onMouseOut" value="window.status=''; return true"/>
+ <attribute name="onFocus" value="window.status=this.title; return true"/>
+ <attribute name="onBlur" value="window.status=''; return true"/>
+ <attribute name="onClick" value="javascript:setViewedEntityId(this.href); changeSelection(this); submitContentArea(this.href); return false;" />
+ <cc name="ViewActionText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag">
+ <attribute name="defaultValue" value="APOC.navigation.view" />
+ </cc>
+ </cc>
+ </column>
+</table>
diff --git a/webconsole/jsp/entities/SearchButtons.jsp b/webconsole/jsp/entities/SearchButtons.jsp
new file mode 100644
index 0000000..6616674
--- /dev/null
+++ b/webconsole/jsp/entities/SearchButtons.jsp
@@ -0,0 +1,85 @@
+<%@ page info="Entity Search Masthead" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.EntitiesSearchButtonsViewBean">
+
+ <cc:header pageTitle="APOC.navigation.search"
+ copyrightYear="2002"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+ <cc:form name="ButtonsForm" method="post">
+
+<table border="0" width="100%" cellpadding="0" cellspacing="0">
+<tr>
+ <td valign='bottom'>
+ </td>
+ <td align="right" nowrap="nowrap" valign="bottom">
+ <div class="TtlBtnBtmDiv">
+ <cc:button name="SearchButton"
+ bundleID="apocBundle"
+ type="default"
+ title="APOC.search.search.help"
+ defaultValue="APOC.navigation.search"
+ onClick="javascript:top.parameters.document.forms[0]['EntitiesSearchParameter.SearchButton'].click(); return false;"
+ tabIndex="1" />
+ <cc:button name="ResetButton"
+ bundleID="apocBundle"
+ type="secondary"
+ title="APOC.search.reset.help"
+ defaultValue="APOC.navigation.reset"
+ onClick="javascript:top.parameters.document.forms[0]['EntitiesSearchParameter.ResetButton'].click(); return false;"
+ tabIndex="2" />
+ <cc:button name="CloseButton"
+ bundleID="apocBundle"
+ type="secondary"
+ title="APOC.search.cancel.help"
+ defaultValue="APOC.profilewnd.buttons.close"
+ onClick="javascript:top.parameters.document.forms[0]['EntitiesSearchParameter.CloseButton'].click(); return false;"
+ tabIndex="3" />
+ </div>
+ </td>
+</tr>
+</table>
+
+ </cc:form>
+ </cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/entities/SearchIndex.jsp b/webconsole/jsp/entities/SearchIndex.jsp
new file mode 100644
index 0000000..9b29104
--- /dev/null
+++ b/webconsole/jsp/entities/SearchIndex.jsp
@@ -0,0 +1,112 @@
+<%@page info="Entity Search Root Frameset" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.EntitiesSearchIndexViewBean">
+
+<html>
+ <head>
+ <title><cc:text name="SearchTitle" /></title>
+ </head>
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+ <script type="text/javascript">
+ <!--
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_SearchWindow= top;
+ }
+
+ function resizeFrame(newSize) {
+ var fs = document.getElementById('searchframeset');
+ if (fs) {
+ fs.rows = newSize;
+ }
+ }
+ // -->
+ </script>
+
+
+ <frameset id="searchframeset" rows="220, *, 45" border="2" framespacing="2">
+
+ <frame name="parameters"
+ title="Parameters"
+ scrolling="AUTO"
+ marginwidth="0"
+ marginheight="0"
+ border="1"
+ framespacing="1"
+ onLoad="javascript:m_OpenerTop.m_ParamsLoaded=true"
+ src="/apoc/manager/EntitiesSearchParameter?ContextId=<cc:text name='JSContext'/>&RestrictedEntity=<cc:text name='JSRestrictedEntity'/>&RestrictedEntityType=<cc:text name='JSRestrictedEntityType'/>">
+
+ <frame name="results"
+ title="Results"
+ scrolling="AUTO"
+ marginwidth="0"
+ marginheight="0"
+ border="1"
+ framespacing="1"
+ onLoad="javascript:m_OpenerTop.m_ResultsLoaded=true"
+ src="/apoc/manager/EntitiesSearchResult?EntitiesSearchResult.DefaultHref='default'">
+
+ <frame name="buttons"
+ title="Buttons"
+ scrolling="AUTO"
+ marginwidth="0"
+ marginheight="0"
+ border="1"
+ framespacing="1"
+ onLoad="javascript:m_OpenerTop.m_ButtonsLoaded=true"
+ src="/apoc/manager/EntitiesSearchButtons">
+
+ </frameset>
+
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ This page needs frame support put I18N here
+ </body>
+ </noframes>
+
+</html>
+</jato:useViewBean>
diff --git a/webconsole/jsp/entities/SearchParameter.jsp b/webconsole/jsp/entities/SearchParameter.jsp
new file mode 100644
index 0000000..8853060
--- /dev/null
+++ b/webconsole/jsp/entities/SearchParameter.jsp
@@ -0,0 +1,251 @@
+<%@ page info="Entity Search Params" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+ <jato:useViewBean className="com.sun.apoc.manager.EntitiesSearchParameterViewBean">
+
+ <cc:header pageTitle="APOC.navigation.search"
+ copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true"
+ onLoad="javascript:resizeFrame();">
+
+ <%-- with IE 6.0.2600.0000 under XP the target attribute has no effect when
+ sending the form triggered by the RETURN key. The onSubmit JS does the trick--%>
+ <cc:form name="SearchForm"
+ method="post"
+ target="results"
+ onSubmit="javascript: handleSubmit(); return false">
+ <cc:secondarymasthead name="Masthead"
+ src="/apoc/images/popuptitle.gif"
+ alt="APOC.masthead.altText"
+ bundleID="apocBundle"/>
+
+ <cc:pagetitle name="SearchParamsTitle"
+ pageTitleText="APOC.search.search"
+ pageTitleHelpMessage="APOC.search.param.title.help"
+ showPageTitleSeparator="false"
+ showPageButtonsTop="true"
+ showPageButtonsBottom="false"
+ bundleID="apocBundle">
+
+ <cc:propertysheet name="SearchParamsSheet"
+ bundleID="apocBundle"
+ showJumpLinks="false"/>
+
+ <cc:hidden name="CurrentEntityId" />
+ <cc:hidden name="CurrentEntityType" />
+ <cc:hidden name="RestrictHidden" defaultValue="false" />
+ <cc:hidden name="ResultsHidden" defaultValue="0" />
+ <cc:hidden name="ContextHidden" defaultValue="" />
+ </cc:pagetitle>
+
+ </cc:form>
+
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+ <script type="text/javascript">
+ <!--
+ var m_sEntityTypeMenu = null;
+ var m_sSearchText = null;
+ var m_bRestrict = null;
+ var m_sResultsMenu = null;
+
+// for(i=0; i<document.SearchForm['EntitiesSearchParameter.EntityTypeMenu'].length; i++) {
+// if (document.SearchForm['EntitiesSearchParameter.EntityTypeMenu'].options[i].defaultSelected == true) {
+// var previousSelectedValue = document.SearchForm['EntitiesSearchParameter.EntityTypeMenu'].options[i].value;
+// break;
+// }
+// }
+ document.SearchForm.target='results';
+
+ function resizeFrame() {
+ top.resizeFrame('<cc:text name="RowLayout" defaultValue="250, *, 50" />');
+ document.forms[0]['EntitiesSearchParameter.SearchText'].focus();
+ m_sSearchText = document.forms[0]['EntitiesSearchParameter.SearchText'].value;
+ m_sEntityTypeMenu = document.forms[0]['EntitiesSearchParameter.EntityTypeMenu'].value;
+ if (document.forms[0]['EntitiesSearchParameter.RestrictCheckbox']!=null) {
+ m_bRestrict = document.forms[0]['EntitiesSearchParameter.RestrictCheckbox'].checked;
+ m_sResultsMenu = document.forms[0]['EntitiesSearchParameter.ResultsMenu'].value;
+ if (m_bRestrict) {
+ document.forms[0]['EntitiesSearchParameter.BrowseButton'].disabled='';
+ document.forms[0]['EntitiesSearchParameter.BrowseButton'].className='Btn2Mni';
+ } else {
+ document.getElementById("SptToggle").style.color='#999';
+ }
+ }
+ }
+
+ function openBrowseTreeWindow() {
+ openWindow(window, null, '/apoc/manager/SearchWindowBrowseTreeIndex?ShowSearch=false&ContextId=<cc:text name="JSContext"/>', 'SearchTreeWindow1', 500, 600, true);
+ }
+
+ function submitBrowse(entityId, entityType) {
+ var f=document.SearchForm;
+ if (f != null) {
+ f['EntitiesSearchParameter.CurrentEntityId'].value=entityId;
+ f['EntitiesSearchParameter.CurrentEntityType'].value=entityType;
+ f.action='../manager/EntitiesSearchParameter?EntitiesSearchParameter.NameHref=&amp;';
+ f.target='parameters';
+ f.submit();
+ }
+ }
+
+// function handleSelection(selectTag) {
+// var f=document.SearchForm;
+// if (f != null) {
+// var selectedValue=selectTag.options[selectTag.selectedIndex].value;
+// if (selectedValue=="USERID" || previousSelectedValue=="USERID") {
+// f.action='../manager/EntitiesSearchParameter?EntitiesSearchParameter.NameHref=&amp;jato.pageSession=';
+// f.target='parameters';
+// f.submit();
+// }
+// else {
+// previousSelectedValue=selectedValue;
+// }
+// }
+// return false;
+// }
+
+ function handleReset() {
+ document.forms[0]['EntitiesSearchParameter.SearchButton'].disabled='';
+ document.forms[0]['EntitiesSearchParameter.SearchButton'].className='Btn1Def';
+ top.buttons.document.forms[0]['EntitiesSearchButtons.SearchButton'].disabled='';
+ top.buttons.document.forms[0]['EntitiesSearchButtons.SearchButton'].className='Btn1Def';
+
+ document.SearchForm['EntitiesSearchParameter.EntityTypeMenu'].selectedIndex='0';
+ document.SearchForm['EntitiesSearchParameter.SearchText'].value='*';
+ if (document.SearchForm['EntitiesSearchParameter.RestrictCheckbox']!=null) {
+ document.SearchForm['EntitiesSearchParameter.RestrictCheckbox'].checked=false
+ }
+ if (document.SearchForm['EntitiesSearchParameter.ResultsMenu']!=null) {
+ document.SearchForm['EntitiesSearchParameter.ResultsMenu'].selectedIndex='0';
+ }
+ document.SearchForm['EntitiesSearchParameter.RestrictHidden'].value='false';
+ document.SearchForm['EntitiesSearchParameter.ResultsHidden'].value='0';
+
+ }
+
+ function handleSubmit() {
+ document.forms[0]['EntitiesSearchParameter.SearchButton'].className='Btn1Dis';
+ document.forms[0]['EntitiesSearchParameter.SearchButton'].disabled='true';
+ top.buttons.document.forms[0]['EntitiesSearchButtons.SearchButton'].className='Btn1Dis';
+ top.buttons.document.forms[0]['EntitiesSearchButtons.SearchButton'].disabled='true';
+
+ var resultsForm = top.results.document.forms[0];
+ var sMarkup = '<html><head><title>empty</title></head><body>\n';
+ sMarkup += '<form name="SearchForm" method="post" action="../manager/EntitiesSearchResult">\n';
+ var elementRunner = 0;
+ while (resultsForm.elements[elementRunner]!=null) {
+ sMarkup += '<input type="hidden" name="'+resultsForm.elements[elementRunner].name+'" value="'+resultsForm.elements[elementRunner].value+'" />\n';
+ elementRunner++;
+ }
+ sMarkup += '</form></body></html>';
+
+ var newDoc = top.results.document.open("text/html", "replace");
+ newDoc.write(sMarkup);
+ newDoc.close();
+
+ resultsForm = top.results.document.forms[0];
+ resultsForm['EntitiesSearchResult.ContextId'].value=document.forms[0]['EntitiesSearchParameter.ContextHidden'].value;
+ resultsForm['EntitiesSearchResult.EntityId'].value=document.forms[0]['EntitiesSearchParameter.CurrentEntityId'].value;
+ resultsForm['EntitiesSearchResult.EntityType'].value=document.forms[0]['EntitiesSearchParameter.CurrentEntityType'].value;
+ resultsForm['EntitiesSearchResult.EntityTypeMenu'].value=document.forms[0]['EntitiesSearchParameter.EntityTypeMenu'].value;
+ resultsForm['EntitiesSearchResult.SearchText'].value=document.forms[0]['EntitiesSearchParameter.SearchText'].value;
+ resultsForm['EntitiesSearchResult.IsNewSearch'].value='true';
+
+ if (document.forms[0]['EntitiesSearchParameter.RestrictCheckbox']!=null) {
+ if (document.forms[0]['EntitiesSearchParameter.RestrictCheckbox'].checked) {
+ resultsForm['EntitiesSearchResult.RestrictCheckbox'].value="true";
+ } else {
+ resultsForm['EntitiesSearchResult.RestrictCheckbox'].value="false";
+ }
+ resultsForm['EntitiesSearchResult.ResultsMenu'].value=document.forms[0]['EntitiesSearchParameter.ResultsMenu'].value;
+ } else {
+ resultsForm['EntitiesSearchResult.RestrictCheckbox'].value=document.forms[0]['EntitiesSearchParameter.RestrictHidden'].value;
+ resultsForm['EntitiesSearchResult.ResultsMenu'].value=document.forms[0]['EntitiesSearchParameter.ResultsHidden'].value;
+ }
+
+ resultsForm.submit();
+ }
+
+ function handlePressedKey() {
+ var sSearchText = document.forms[0]['EntitiesSearchParameter.SearchText'].value;
+ var sEntityTypeMenu = document.forms[0]['EntitiesSearchParameter.EntityTypeMenu'].value;
+ var bRestrict = null;
+ var sResultsMenu = null;
+ if (document.forms[0]['EntitiesSearchParameter.RestrictCheckbox']!=null) {
+ var bRestrict = document.forms[0]['EntitiesSearchParameter.RestrictCheckbox'].checked;
+ var sResultsMenu = document.forms[0]['EntitiesSearchParameter.ResultsMenu'].value;
+ if (m_bRestrict!=bRestrict) {
+ if (bRestrict) {
+ document.forms[0]['EntitiesSearchParameter.BrowseButton'].disabled='';
+ document.forms[0]['EntitiesSearchParameter.BrowseButton'].className='Btn2Mni';
+ document.getElementById("SptToggle").style.color='black';
+ } else {
+ document.forms[0]['EntitiesSearchParameter.BrowseButton'].disabled='disabled';
+ document.forms[0]['EntitiesSearchParameter.BrowseButton'].className='Btn2MniDis';
+ document.getElementById("SptToggle").style.color='#999';
+ }
+ }
+ }
+
+ if ((m_sSearchText!=sSearchText) ||
+ (m_sEntityTypeMenu!=sEntityTypeMenu) ||
+ (m_bRestrict!=bRestrict) ||
+ (m_sResultsMenu!=sResultsMenu)) {
+ m_sSearchText=sSearchText;
+ m_sEntityTypeMenu=sEntityTypeMenu;
+ m_bRestrict=bRestrict;
+ m_sResultsMenu=sResultsMenu;
+ document.forms[0]['EntitiesSearchParameter.SearchButton'].disabled='';
+ document.forms[0]['EntitiesSearchParameter.SearchButton'].className='Btn1Def';
+ top.buttons.document.forms[0]['EntitiesSearchButtons.SearchButton'].disabled='';
+ top.buttons.document.forms[0]['EntitiesSearchButtons.SearchButton'].className='Btn1Def';
+ }
+ }
+ // -->
+ </script>
+
+ </cc:header>
+
+</jato:useViewBean>
+
diff --git a/webconsole/jsp/entities/SearchParameter.xml b/webconsole/jsp/entities/SearchParameter.xml
new file mode 100644
index 0000000..ad76961
--- /dev/null
+++ b/webconsole/jsp/entities/SearchParameter.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE propertysheet SYSTEM "tags/dtd/propertysheet.dtd">
+
+<propertysheet>
+ <section name="search" defaultValue=" ">
+ <property span="true">
+ <cc name="EntityTypeMenu" tagclass="com.sun.web.ui.taglib.html.CCDropDownMenuTag" >
+ <attribute name="onChange" value="javascript:handlePressedKey(); return true;"/>
+ <option label="APOC.search.all" value="ALL" />
+ <option label="APOC.search.organizations" value="ORG" />
+ <option label="APOC.search.users" value="USERID" />
+ <option label="APOC.search.roles" value="ROLE" />
+ <option label="APOC.search.domains" value="DOMAIN" />
+ <option label="APOC.search.hosts" value="HOST" />
+ <option label="APOC.search.dtus" value="DTU" />
+ <option label="APOC.search.fogs" value="FOG" />
+ <option label="APOC.search.smartcards" value="SMARTCARD" />
+ </cc>
+ <cc name="SearchText" tagclass="com.sun.web.ui.taglib.html.CCTextFieldTag">
+ <attribute name="onKeyPress" value="javascript:setTimeout('handlePressedKey()',0); return true"/>
+ <attribute name="defaultValue" value="*"/>
+ </cc>
+ </property>
+ <property span="true">
+ <cc name="space" tagclass="com.sun.web.ui.taglib.spacer.CCSpacerTag">
+ <attribute name="Height" value="7"/>
+ <attribute name="Width" value="1"/>
+ </cc>&lt;br />
+ <cc name="ShowOptionsButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag" >
+ <attribute name="bundleID" value="apocBundle"/>
+ <attribute name="defaultValue" value="APOC.search.advanced.show.button"/>
+ <attribute name="type" value="secondary"/>
+ <attribute name="title" value="APOC.search.advanced.show.help"/>
+ <attribute name="onClick" value="document.SearchForm.action='../manager/EntitiesSearchParameter?EntitiesSearchParameter.ToggleOptions=a&amp;';document.SearchForm.target='parameters';document.SearchForm.submit();return false;"/>
+ </cc>
+ </property>
+ </section>
+</propertysheet>
diff --git a/webconsole/jsp/entities/SearchParameterAdvanced.xml b/webconsole/jsp/entities/SearchParameterAdvanced.xml
new file mode 100644
index 0000000..2c61be7
--- /dev/null
+++ b/webconsole/jsp/entities/SearchParameterAdvanced.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE propertysheet SYSTEM "tags/dtd/propertysheet.dtd">
+
+<propertysheet>
+ <section name="search" defaultValue=" ">
+ <property span="true">
+ <cc name="EntityTypeMenu" tagclass="com.sun.web.ui.taglib.html.CCDropDownMenuTag" >
+ <attribute name="onChange" value="javascript:handlePressedKey(); return true;"/>
+ <option label="APOC.search.all" value="ALL" />
+ <option label="APOC.search.organizations" value="ORG" />
+ <option label="APOC.search.users" value="USERID" />
+ <option label="APOC.search.roles" value="ROLE" />
+ <option label="APOC.search.domains" value="DOMAIN" />
+ <option label="APOC.search.hosts" value="HOST" />
+ <option label="APOC.search.dtus" value="DTU" />
+ <option label="APOC.search.fogs" value="FOG" />
+ <option label="APOC.search.smartcards" value="SMARTCARD" />
+ </cc>
+ <cc name="SearchText" tagclass="com.sun.web.ui.taglib.html.CCTextFieldTag">
+ <attribute name="onKeyPress" value="javascript:setTimeout('handlePressedKey()',0); return true"/>
+ <attribute name="defaultValue" value="*"/>
+ </cc>
+ </property>
+ <property>
+ <label name="StartPointLabel" defaultValue="APOC.search.advanced.start.label"/>
+ <cc name="RestrictCheckbox" tagclass="com.sun.web.ui.taglib.html.CCCheckBoxTag" >
+ <attribute name="Label" value="APOC.search.advanced.restrict.label"/>
+ <attribute name="onClick" value="javascript:setTimeout('handlePressedKey()',0); return true;"/>
+ </cc>
+ <ccgroup>
+ <property span="true">
+ &lt;span id="SptToggle">
+ <cc name="StartPointText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ &lt;/span>
+ <cc name="BrowseButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag" >
+ <attribute name="bundleID" value="apocBundle"/>
+ <attribute name="defaultValue" value="APOC.button.browse"/>
+ <attribute name="type" value="secondaryMini"/>
+ <attribute name="title" value="APOC.search.advanced.browse.help"/>
+ <attribute name="disabled" value="true"/>
+ <attribute name="onClick" value="javascript:openBrowseTreeWindow(); return false"/>
+ </cc>
+ </property>
+ </ccgroup>
+ </property>
+ <property>
+ <label name="ResultsLabel" defaultValue="APOC.search.perpage.label" />
+ <cc name="ResultsMenu" tagclass="com.sun.web.ui.taglib.html.CCDropDownMenuTag" >
+ <attribute name="onChange" value="javascript:handlePressedKey(); return true;"/>
+ <option label="10" value="10" />
+ <option label="25" value="25" />
+ <option label="50" value="50" />
+ <option label="100" value="100" />
+ </cc>
+ </property>
+ <property span="true">
+ <cc name="space" tagclass="com.sun.web.ui.taglib.spacer.CCSpacerTag">
+ <attribute name="Height" value="7"/>
+ <attribute name="Width" value="1"/>
+ </cc>&lt;br />
+ <cc name="HideOptionsButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag" >
+ <attribute name="bundleID" value="apocBundle"/>
+ <attribute name="defaultValue" value="APOC.search.advanced.hide.button"/>
+ <attribute name="type" value="secondary"/>
+ <attribute name="title" value="APOC.search.advanced.hide.help"/>
+ <attribute name="onClick" value="document.SearchForm.action='../manager/EntitiesSearchParameter?EntitiesSearchParameter.ToggleOptions=a&amp;';document.SearchForm.target='parameters';document.SearchForm.submit();return false;"/>
+ </cc>
+ </property>
+ </section>
+</propertysheet>
+
diff --git a/webconsole/jsp/entities/SearchResult.jsp b/webconsole/jsp/entities/SearchResult.jsp
new file mode 100644
index 0000000..894d40e
--- /dev/null
+++ b/webconsole/jsp/entities/SearchResult.jsp
@@ -0,0 +1,122 @@
+<%@ page info="Navigator" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+ <jato:useViewBean className="com.sun.apoc.manager.EntitiesSearchResultViewBean">
+
+ <cc:header pageTitle="APOC.search.results" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ onLoad="javascript:resetTarget()"
+ isPopup="true">
+
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+ <script type="text/javascript">
+ <!--
+ var SearchTargetAlert = "<cc:text name="SearchTargetAlert"/>";
+ function resetTarget() {
+ if ( (parent.parameters.document!=null) && (parent.parameters.document.SearchForm!=null)) {
+ parent.parameters.document.SearchForm.target="";
+ }
+ }
+
+ // -->
+ </script>
+
+ <cc:form name="ResultForm" method="post" defaultCommandChild="SearchButton">
+
+ <cc:pagetitle name="SearchResultTitle"
+ pageTitleText="APOC.search.results"
+ pageTitleHelpMessage="APOC.search.result.help"
+ showPageTitleSeparator="false"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="false"
+ bundleID="apocBundle">
+
+ <br>
+
+ <jato:content name="Help">
+
+ <div class="content-layout">
+ <BR>
+ <cc:text name="HelpText1" defaultValue="APOC.search.help.text1" bundleID="apocBundle"/>
+ <BR><BR>
+ <cc:text name="HelpText2" defaultValue="APOC.search.help.text2" bundleID="apocBundle"/>
+ <BR><BR>
+ <cc:text name="HelpText3" defaultValue="APOC.search.help.text3" bundleID="apocBundle"/>
+ </div>
+
+ </jato:content>
+
+ <jato:containerView name="EntitiesSearchTableView">
+
+ <cc:actiontable
+ name="EntityTable"
+ bundleID="apocBundle"
+ title="APOC.search.entitiesFound"
+ summary="APOC.search.tableSummary"
+ empty="APOC.navigation.empty"
+ selectionType="no select"
+ showAdvancedSortIcon="false"
+ showLowerActions="false"
+ showPaginationControls="true"
+ showPaginationIcon="true"
+ showSelectionIcons="false"
+ maxRows="10"
+ page="1" />
+
+ </jato:containerView>
+
+ </cc:pagetitle>
+
+ <cc:hidden name="EntityId" />
+ <cc:hidden name="EntityType" />
+ <cc:hidden name="EntityTypeMenu" />
+ <cc:hidden name="SearchText" />
+ <cc:hidden name="RestrictCheckbox" />
+ <cc:hidden name="ResultsMenu" />
+ <cc:hidden name="ContextId" />
+ <cc:hidden name="IsNewSearch" />
+
+ </cc:form>
+
+ </cc:header>
+
+</jato:useViewBean>
diff --git a/webconsole/jsp/entities/SearchResultTitle.xml b/webconsole/jsp/entities/SearchResultTitle.xml
new file mode 100644
index 0000000..2a294ed
--- /dev/null
+++ b/webconsole/jsp/entities/SearchResultTitle.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="CloseButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.navigation.close"/>
+ <attribute name="type" value="secondary"/>
+ <attribute name="onClick" value="javascript:top.window.close(); return false;" />
+ </cc>
+ </pagebuttons>
+</pagetitle>
diff --git a/webconsole/jsp/entities/SearchTable.xml b/webconsole/jsp/entities/SearchTable.xml
new file mode 100644
index 0000000..f6bfcbe
--- /dev/null
+++ b/webconsole/jsp/entities/SearchTable.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <column name="NameColumn" sortname="NameText" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="ViewAction" tagclass="com.sun.web.ui.taglib.table.CCEmbeddedActionTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="onClick" value="handleSearchSelection(this.href); return false;"/>
+ <cc name="NameText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ </column>
+ <column name="TypeColumn" sortname="TypeText" extrahtml="nowrap='nowrap'">
+ <cc name="TypeText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+ <column name="PathColumn" sortname="PathText" extrahtml="nowrap='nowrap'">
+ <cc name="PathText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+</table>
diff --git a/webconsole/jsp/entities/SearchTableUser.xml b/webconsole/jsp/entities/SearchTableUser.xml
new file mode 100644
index 0000000..fdb4e0e
--- /dev/null
+++ b/webconsole/jsp/entities/SearchTableUser.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <column name="NameColumn" sortname="NameText" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="ViewAction" tagclass="com.sun.web.ui.taglib.table.CCEmbeddedActionTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="onClick" value="parent.opener.focus(); parent.opener.submitNavigationArea(this.href); return false;"/>
+ <cc name="NameText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ </column>
+ <column name="UserIdColumn" sortname="UserIdText" extrahtml="nowrap='nowrap'">
+ <cc name="UserIdText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+ <column name="TypeColumn" sortname="TypeText" extrahtml="nowrap='nowrap'">
+ <cc name="TypeText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+ <column name="PathColumn" sortname="PathText" extrahtml="nowrap='nowrap'">
+ <cc name="PathText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+</table>
diff --git a/webconsole/jsp/entities/SearchTitle.xml b/webconsole/jsp/entities/SearchTitle.xml
new file mode 100644
index 0000000..7a9fb1e
--- /dev/null
+++ b/webconsole/jsp/entities/SearchTitle.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="SearchButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.navigation.search"/>
+ <attribute name="type" value="default"/>
+ <attribute name="title" value="APOC.search.search.help"/>
+ </cc>
+ <cc name="ResetButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.navigation.reset"/>
+ <attribute name="type" value="secondary"/>
+ <attribute name="title" value="APOC.search.reset.help"/>
+ <attribute name="onClick" value="handleReset(); return false;" />
+ </cc>
+ <cc name="CloseButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.profilewnd.buttons.close"/>
+ <attribute name="type" value="secondary"/>
+ <attribute name="title" value="APOC.search.cancel.help"/>
+ <attribute name="onClick" value="top.window.close(); return false"/>
+ </cc>
+ </pagebuttons>
+</pagetitle>
diff --git a/webconsole/jsp/entities/SearchWindowBrowseTree.jsp b/webconsole/jsp/entities/SearchWindowBrowseTree.jsp
new file mode 100644
index 0000000..ff728c8
--- /dev/null
+++ b/webconsole/jsp/entities/SearchWindowBrowseTree.jsp
@@ -0,0 +1,106 @@
+<%@ page info="Manager" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.SearchWindowBrowseTreeViewBean">
+
+ <cc:header name="HtmlHeader"
+ pageTitle="Browse Tree Title" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ preserveFocus="true"
+ preserveScroll="true"
+ isPopup="true">
+
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+ <script type="text/javascript">
+ <!--
+ function getRootEntityId() {
+ return document.SearchWindowBrowseTreeForm['SearchWindowBrowseTree.HiddenRootEntity'].value;
+ }
+
+ function getRootEntityType() {
+ return document.SearchWindowBrowseTreeForm['SearchWindowBrowseTree.HiddenRootEntityType'].value;
+ }
+
+ function getEntityId() {
+ return '<cc:text name="SelectedEntity"/>' ;
+ }
+
+ function getEntityType() {
+ return '<cc:text name="SelectedEntityType"/>' ;
+ }
+
+ function getEntityPath() {
+ return '<cc:text name="SelectedEntityPath"/>' ;
+ }
+
+ function handleSelection(selectTag) {
+ var form=document.SearchWindowBrowseTreeForm;
+ if (form != null) {
+ form.action='/apoc/manager/SearchWindowBrowseTree?SearchWindowBrowseTree.DefaultHref=a&amp;';
+ form.submit();
+ }
+ }
+
+ -->
+ </script>
+
+ <cc:form name="SearchWindowBrowseTreeForm" method="post" onSubmit="javascript:return false;">
+ <br>
+ <table width="80%" align=center>
+ <tr>
+ <td>
+ <table width='100%' align=center>
+ <tr>
+ <td height='100' valign='top' class='TreBdy'>
+ <cc:dtree name="Tree" bundleID="apocBundle" />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ <cc:hidden name="HiddenRootEntity" defaultValue="" />
+ <cc:hidden name="HiddenRootEntityType" defaultValue="" />
+ </cc:form>
+ </cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/entities/SearchWindowBrowseTreeBase.jsp b/webconsole/jsp/entities/SearchWindowBrowseTreeBase.jsp
new file mode 100644
index 0000000..4db5380
--- /dev/null
+++ b/webconsole/jsp/entities/SearchWindowBrowseTreeBase.jsp
@@ -0,0 +1,73 @@
+<%@ page info="Manager" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+
+<jato:useViewBean className="com.sun.apoc.manager.SearchWindowBrowseTreeBaseViewBean">
+
+<!-- Header -->
+<cc:header name="Header"
+ pageTitle="BrowseTreeBase"
+ copyrightYear="2004"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+<cc:form name="SearchWindowBrowseTreeBaseForm" method="post">
+
+<!-- Buttons area -->
+<table border="0" width="100%" cellpadding="10" cellspacing="0">
+<tr>
+ <td valign='middle' align='right'>
+ <div class="TtlBtnBtmDiv">
+ <cc:button name="OkButton" bundleID="apocBundle"
+ defaultValue="APOC.button.OK" title="APOC.button.OK" type="default"
+ dynamic="true"/>
+ <cc:button name="CancelButton" bundleID="apocBundle"
+ defaultValue="APOC.button.cancel" title="APOC.button.cancel"
+ type="secondary" onClick="top.window.close();return false;"/>
+ </div>
+ </td>
+</tr>
+</table>
+
+</cc:form>
+</cc:header>
+</jato:useViewBean> \ No newline at end of file
diff --git a/webconsole/jsp/entities/SearchWindowBrowseTreeIndex.jsp b/webconsole/jsp/entities/SearchWindowBrowseTreeIndex.jsp
new file mode 100644
index 0000000..67cd5da
--- /dev/null
+++ b/webconsole/jsp/entities/SearchWindowBrowseTreeIndex.jsp
@@ -0,0 +1,81 @@
+<%@page info="Browse Tree Window Frameset" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.SearchWindowBrowseTreeIndexViewBean">
+
+<cc:i18nbundle id="apocBundle" baseName="com.sun.apoc.manager.resource.apoc_manager" />
+<html>
+ <head>
+ <title><cc:text name ="BrowseTreeTitle" defaultValue="" bundleID="apocBundle"/></title>
+ </head>
+ <script type="text/javascript">
+ <!--
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_SearchWindowBrowseTreeWindow= top;
+ }
+ // -->
+ </script>
+ <frameset rows="150, *, 75" border="2" framespacing="2">
+
+ <frame name="masthead" title="Masthead" scrolling="no"
+ marginwidth="0" marginheight="0" border="0" framespacing="0"
+ noresize src="/apoc/manager/SearchWindowBrowseTreeMasthead"/>
+ <frame name="browsetree" title="BrowseTree"
+ scrolling="AUTO" marginwidth="0" marginheight="0" border="0"
+ framespacing="0" src="/apoc/manager/SearchWindowBrowseTree"/>
+ <frame name="browsetreebase" title="BrowseTreeBase" scrolling="no"
+ marginwidth="0" marginheight="0" border="0" framespacing="0"
+ src="/apoc/manager/SearchWindowBrowseTreeBase"/>
+ </frameset>
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ This page needs frame support put I18N here
+ </body>
+ </noframes>
+</html>
+</jato:useViewBean>
+
diff --git a/webconsole/jsp/entities/SearchWindowBrowseTreeMasthead.jsp b/webconsole/jsp/entities/SearchWindowBrowseTreeMasthead.jsp
new file mode 100644
index 0000000..26c60da
--- /dev/null
+++ b/webconsole/jsp/entities/SearchWindowBrowseTreeMasthead.jsp
@@ -0,0 +1,64 @@
+<%@ page info="Browse Tree Masthead" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.SearchWindowBrowseTreeMastheadViewBean">
+<cc:i18nbundle id="apocBundle" baseName="com.sun.apoc.manager.resource.apoc_manager" />
+<cc:header pageTitle="BrowseTreeTitle"
+ copyrightYear="2002"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+ <cc:secondarymasthead name="Masthead"
+ src="/apoc/images/popuptitle.gif"
+ alt="APOC.masthead.altText"
+ bundleID="apocBundle"/>
+
+ <cc:pagetitle name="BrowseTreeTitle"
+ bundleID="apocBundle"
+ pageTitleText=""
+ pageTitleHelpMessage="APOC.browse.title.text"
+ showPageTitleSeparator="true"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="false"/>
+
+
+</cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/profiles/AdvancedOptions.jsp b/webconsole/jsp/profiles/AdvancedOptions.jsp
new file mode 100644
index 0000000..0e26170
--- /dev/null
+++ b/webconsole/jsp/profiles/AdvancedOptions.jsp
@@ -0,0 +1,128 @@
+<%@ page info="ContentAreaPolicies" language="java" %>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+<%@taglib uri="/WEB-INF/apoc.tld" prefix="apoc"%>
+
+
+<jato:pagelet>
+ <jato:containerView name="AdvancedOptions">
+
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+ <script type="text/javascript">
+ <!--
+ function submitBrowse(entityId, entityType) {
+ document.ProfileForm['ProfileWindow.TabContent.AdvancedOptions.GeneralEntityId'].value=entityId;
+ document.ProfileForm['ProfileWindow.TabContent.AdvancedOptions.GeneralEntityType'].value=entityType;
+ document.ProfileForm.action="../manager/ProfileWindow?ProfileWindow.TabContent.AdvancedOptions.RelocateButton=a";
+ document.ProfileForm.submit();
+ }
+
+ function openBrowseTreeWindow() {
+ openWindow(window, null, '/apoc/manager/BrowseTreeIndex?EntityId=<cc:text name="JSEntityId"/>&EntityType=<cc:text name="JSEntityType"/>&', 'TreeWindow', 500, 600, true);
+ }
+
+ // -->
+ </script>
+
+ <jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+ </jato:content>
+
+ <cc:pagetitle name="PageTitle" bundleID="apocBundle"
+ pageTitleText="APOC.profilewnd.advanced.tab"
+ showPageTitleSeparator="true"
+ pageTitleHelpMessage="APOC.profilewnd.advanced.pagetitle_help"
+ showPageButtonsTop="true"
+ showPageButtonsBottom="false">
+
+ <cc:propertysheet name="Properties" bundleID="apocBundle" showJumpLinks="false"/>
+
+ <table width='100%' cellpadding='25' cellspaceing='0'><tr><td>
+ <cc:orderablelist name="PrioritizationList" bundleID="apocBundle" label="APOC.profilewnd.advanced.merge_order"/>
+ </td></tr></table>
+
+ </cc:pagetitle>
+
+ <cc:hidden name="GeneralEntityId" defaultValue="a" />
+ <cc:hidden name="GeneralEntityType" defaultValue="" />
+
+ <script type="text/javascript">
+ <!--
+ var oldListValue = "";
+
+ function checkForChange() {
+ var currentListValue = "";
+ var orderedList = document.forms[0]['ProfileWindow.TabContent.AdvancedOptions.PrioritizationList.SelectedListBox'];
+ for(i=0; i<orderedList.length; i++) {
+ currentListValue = currentListValue + orderedList.options[i].value;
+ }
+ if (oldListValue.length==0) {
+ oldListValue = currentListValue;
+ } else {
+ if (oldListValue!=currentListValue) {
+ enableSaveButtons();
+ clearInterval(checkInterval);
+ }
+ }
+ }
+
+ var bIsReadOnly = <cc:text name="JSReadOnly" />;
+
+ if (bIsReadOnly) {
+ document.forms[0]['ProfileWindow.TabContent.AdvancedOptions.PrioritizationList.SelectedListBox'].disabled=true;
+ document.forms[0]['ProfileWindow.TabContent.AdvancedOptions.PrioritizationList.SelectedListBox'].className="LstDis";
+ } else {
+ var checkInterval = setInterval('checkForChange()',500);
+ }
+
+ document.ProfileForm.action="../manager/ProfileWindow?ProfileWindow.TabContent.AdvancedOptions.SaveButton=APOC.profilewnd.buttons.save";
+
+ updateButtonsArea();
+ // -->
+ </script>
+
+ </jato:containerView>
+</jato:pagelet>
diff --git a/webconsole/jsp/profiles/AdvancedOptionsPageTitle.xml b/webconsole/jsp/profiles/AdvancedOptionsPageTitle.xml
new file mode 100644
index 0000000..cf0fc0e
--- /dev/null
+++ b/webconsole/jsp/profiles/AdvancedOptionsPageTitle.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="SaveButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="primary"/>
+ <attribute name="disabled" value="true" />
+ <attribute name="defaultValue" value="APOC.profilewnd.buttons.save"/>
+ <attribute name="title" value="APOC.profilewnd.buttons.save.help"/>
+ <attribute name="onClick" value="javascript:saveChanges(); return false;"/>
+ </cc>
+ <cc name="CloseButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="secondary"/>
+ <attribute name="defaultValue" value="APOC.profilewnd.buttons.close"/>
+ <attribute name="title" value="APOC.profilewnd.buttons.close.help"/>
+ <attribute name="elementId" value="CloseEditorButton" />
+ <attribute name="onClick" value="javascript:return closeEditorWindow();"/>
+ </cc>
+ </pagebuttons>
+</pagetitle>
diff --git a/webconsole/jsp/profiles/AdvancedOptionsPropertySheet.xml b/webconsole/jsp/profiles/AdvancedOptionsPropertySheet.xml
new file mode 100644
index 0000000..8f00932
--- /dev/null
+++ b/webconsole/jsp/profiles/AdvancedOptionsPropertySheet.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE propertysheet SYSTEM "tags/dtd/propertysheet.dtd">
+
+<propertysheet>
+ <section name="entire" defaultValue=" ">
+ <property>
+ <label name="ApplicableLabel" defaultValue="APOC.profilewnd.general.applicable"/>
+ <cc name="Applicable" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag">
+ <attribute name="defaultValue" value="N.N."/>
+ </cc>
+ <cc name="ChangeButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="bundleID" value="apocBundle"/>
+ <attribute name="defaultValue" value="APOC.button.browse"/>
+ <attribute name="type" value="secondaryMini"/>
+ <attribute name="onClick" value="javascript:openBrowseTreeWindow(); return false"/>
+ </cc>
+ </property>
+ </section>
+</propertysheet>
diff --git a/webconsole/jsp/profiles/Applicability.jsp b/webconsole/jsp/profiles/Applicability.jsp
new file mode 100644
index 0000000..b2e352a
--- /dev/null
+++ b/webconsole/jsp/profiles/Applicability.jsp
@@ -0,0 +1,83 @@
+<%@ page info="Manager" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.ProfilesApplicabilityViewBean">
+
+ <cc:header pageTitle="Choose Applicability" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle" isPopup="true">
+
+ <script type="text/javascript">
+ <!--
+ function callApplicabilityCallback() {
+ var radioElement = document.forms[0]['ProfilesApplicability.ApplicabilityRadio'];
+ for(var i = 0; i < radioElement.length; i++) {
+ if(radioElement[i].checked) {
+ top.opener.applicabilityCallback(radioElement[i].value);
+ break;
+ }
+ }
+ }
+ // -->
+ </script>
+
+ <cc:secondarymasthead name="Masthead" bundleID="apocBundle"
+ src="/apoc/images/popuptitle.gif"/>
+
+ <cc:form name="ApplicabilityForm" method="post" onSubmit="javascript:return false;">
+
+ <cc:pagetitle name="ApplicabilityTitle"
+ bundleID="apocBundle"
+ pageTitleText="Choose the Applicability for the new Profile"
+ pageTitleHelpMessage="Please select either 'Organization' or 'Domain'."
+ showPageTitleSeparator="true"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="true">
+
+
+ <cc:propertysheet name="ApplicabilitySheet"
+ bundleID="apocBundle"
+ showJumpLinks="false"/>
+
+ </cc:pagetitle>
+ </cc:form>
+ </cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/profiles/ApplicabilitySheet.xml b/webconsole/jsp/profiles/ApplicabilitySheet.xml
new file mode 100644
index 0000000..99bcebf
--- /dev/null
+++ b/webconsole/jsp/profiles/ApplicabilitySheet.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE propertysheet SYSTEM "tags/dtd/propertysheet.dtd">
+
+<propertysheet>
+ <section name="new" defaultValue=" ">
+ <property>
+ <label name="ApplicabilityLabel" defaultValue="Applicability:"/>
+ <cc name="ApplicabilityRadio" tagclass="com.sun.web.ui.taglib.html.CCRadioButtonTag" >
+ <option label="APOC.navigation.domain" value="NewProfileDomain" />
+ <option label="APOC.navigation.organization" value="NewProfileOrg" />
+ </cc>
+ </property>
+ </section>
+</propertysheet>
diff --git a/webconsole/jsp/profiles/ApplicabilityTitle.xml b/webconsole/jsp/profiles/ApplicabilityTitle.xml
new file mode 100644
index 0000000..7373735
--- /dev/null
+++ b/webconsole/jsp/profiles/ApplicabilityTitle.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="OkButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="default"/>
+ <attribute name="defaultValue" value="APOC.button.OK"/>
+ <attribute name="onClick" value="javascript:callApplicabilityCallback(); top.close(); return false;"/>
+ </cc>
+ <cc name="CancelButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="secondary"/>
+ <attribute name="defaultValue" value="APOC.button.cancel"/>
+ <attribute name="onClick" value="javascript:top.close(); return false;"/>
+ </cc>
+ </pagebuttons>
+</pagetitle>
diff --git a/webconsole/jsp/profiles/Assign.jsp b/webconsole/jsp/profiles/Assign.jsp
new file mode 100644
index 0000000..91c1ab1
--- /dev/null
+++ b/webconsole/jsp/profiles/Assign.jsp
@@ -0,0 +1,152 @@
+<%@ page info="Assign" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.ProfilesAssignViewBean">
+
+ <cc:header pageTitle="APOC.pool.add_assignment" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle" isPopup="true" onLoad="javascript:submitAndClose();">
+
+<script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+<script type="text/javascript">
+<!--
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_AssignWindow= top;
+ }
+
+ function toggleMenu() {
+ var nElementRunner =0;
+ var nCheckedElements=0;
+ var okButton = "ProfilesAssign.OkButton";
+
+ while (document.AssignForm.elements[nElementRunner]!=null) {
+ if ( (document.AssignForm.elements[nElementRunner].name.indexOf("SelectionCheckbox")!=-1) &&
+ (document.AssignForm.elements[nElementRunner].name.indexOf("jato_boolean") == -1) &&
+ (document.AssignForm.elements[nElementRunner].checked==true) ) {
+ nCheckedElements++;
+ }
+ nElementRunner++;
+ }
+
+ // enable "ok" button if at least one profile is selected
+ ccSetButtonDisabled(okButton, "AssignForm", (nCheckedElements==0));
+ }
+
+ function initSubmit() {
+ document.AssignForm.action='../manager/ProfilesAssign?ProfilesAssign.AssignTableView.OkActionHref=a&amp;';
+ document.AssignForm.submit();
+ }
+
+ function submitAndClose() {
+ <cc:text name="SubmitAndClose"/>
+ opener.document.EntityContentForm.action="../manager/EntityContent?EntityContent.DefaultHref=a";
+ opener.document.EntityContentForm.submit();
+ window.close();
+ }
+
+// -->
+</script>
+
+ <cc:secondarymasthead name="Masthead" bundleID="apocBundle"
+ src="/apoc/images/popuptitle.gif"/>
+
+ <cc:form name="AssignForm" method="post" onSubmit="javascript:return isSubmitAllowed();" defaultCommandChild='DefaultHref'>
+
+ <jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+ </jato:content>
+
+ <cc:pagetitle name="AssignTitle"
+ bundleID="apocBundle"
+ pageTitleText="APOC.profileavail.title"
+ pageTitleHelpMessage="APOC.profileavail.help"
+ showPageTitleSeparator="true"
+ showPageButtonsTop="true"
+ showPageButtonsBottom="true">
+
+ <BR>
+
+ <jato:containerView name="AssignTableView">
+
+ <cc:actiontable name="ProfileTable"
+ bundleID="apocBundle"
+ title="APOC.pool.available_profiles"
+ summary="APOC.pool.tableSummary"
+ empty="APOC.pool.empty"
+ selectionType="multiple"
+ selectionJavascript="setTimeout('toggleMenu()', 0)"
+ showAdvancedSortIcon="false"
+ showLowerActions="false"
+ showPaginationControls="false"
+ showPaginationIcon="false"
+ showSelectionIcons="true"
+ showSelectionSortIcon="false"
+ maxRows="10"
+ page="1" />
+
+ </jato:containerView>
+
+ </cc:pagetitle>
+ </cc:form>
+
+ <script type="text/javascript">
+ <!--
+ setTimeout('toggleMenu()', 0);
+ // -->
+ </script>
+
+ </cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/profiles/AssignTable.xml b/webconsole/jsp/profiles/AssignTable.xml
new file mode 100644
index 0000000..de0a3a1
--- /dev/null
+++ b/webconsole/jsp/profiles/AssignTable.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <column name="NameColumn" sortname="NameText" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="NameHref" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="onClick" value="javascript:openProfileEditorWindow(this); return false;" />
+ <cc name="NameText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ </column>
+ <column name="AuthorColumn" sortname="AuthorText" extrahtml="nowrap='nowrap'">
+ <cc name="AuthorText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+ <column name="LastModifiedColumn" sortname="LastModifiedText" extrahtml="nowrap='nowrap'">
+ <cc name="LastModifiedText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+</table>
diff --git a/webconsole/jsp/profiles/AssignTitle.xml b/webconsole/jsp/profiles/AssignTitle.xml
new file mode 100644
index 0000000..683bbd4
--- /dev/null
+++ b/webconsole/jsp/profiles/AssignTitle.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="OkButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="primary"/>
+ <attribute name="dynamic" value="true" />
+ <attribute name="defaultValue" value="APOC.button.OK" />
+ <attribute name="title" value="APOC.profilewnd.buttons.ok_assign.help" />
+ <attribute name="onClick" value="javascript:initSubmit(); allowSubmit(false); return false;"/>
+ </cc>
+ <cc name="CloseButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="primary"/>
+ <attribute name="defaultValue" value="APOC.button.cancel"/>
+ <attribute name="title" value="APOC.profilewnd.buttons.close.help"/>
+ <attribute name="onClick" value="javascript:window.close(); return false;"/>
+ </cc>
+ </pagebuttons>
+</pagetitle>
diff --git a/webconsole/jsp/profiles/AssignedAboveTable.xml b/webconsole/jsp/profiles/AssignedAboveTable.xml
new file mode 100644
index 0000000..05b7f84
--- /dev/null
+++ b/webconsole/jsp/profiles/AssignedAboveTable.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <column name="NameColumn" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="NameHref" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="onClick" value="javascript:openProfileEditorWindow(this); return false;" />
+ <cc name="NameText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ </column>
+ <column name="AssignedToColumn" extrahtml="nowrap='nowrap'">
+ <cc name="AssignedToText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+</table>
diff --git a/webconsole/jsp/profiles/AssignedTable.xml b/webconsole/jsp/profiles/AssignedTable.xml
new file mode 100644
index 0000000..df41ccb
--- /dev/null
+++ b/webconsole/jsp/profiles/AssignedTable.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <actions>
+ <cc name="NewButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="dynamic" value="true" />
+ <attribute name="disabled" value="false" />
+ <attribute name="defaultValue" value="APOC.pool.new" />
+ <attribute name="title" value="APOC.pool.new_button.help" />
+ <attribute name="onClick" value="javascript:allowSubmit(false); openWindow(window, null, '/apoc/manager/ProfileWindowFrameset?ProfileWindowFrameset.SelectedProfile=NewAssignedProfile', 'ProfileEditorWindow', 600, 1200);" />
+ </cc>
+ <cc name="DeleteButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="dynamic" value="true" />
+ <attribute name="disabled" value="true" />
+ <attribute name="defaultValue" value="APOC.pool.delete" />
+ <attribute name="title" value="APOC.pool.delete_button.help" />
+ </cc>
+ <cc name="AssignButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="dynamic" value="true" />
+ <attribute name="disabled" value="false" />
+ <attribute name="defaultValue" value="APOC.profilemgr.assign" />
+ <attribute name="title" value="APOC.pool.assign_button.help" />
+ <attribute name="onClick" value="javascript:allowSubmit(false); openWindow(window, null, '/apoc/manager/ProfilesAssign', 'AssignProfileWindow', 400, 600, true);" />
+ </cc>
+ <cc name="UnassignButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="dynamic" value="true" />
+ <attribute name="disabled" value="true" />
+ <attribute name="defaultValue" value="APOC.profileassi.unassign" />
+ <attribute name="title" value="APOC.pool.unassign_button.help" />
+ </cc>
+ <cc name="ActionMenu" tagclass="com.sun.web.ui.taglib.html.CCDropDownMenuTag">
+ <attribute name="dynamic" value="true" />
+ <attribute name="commandChild" value="ActionMenuHref" />
+ <attribute name="escape" value="false" />
+ <attribute name="onChange" value="javascript:handleSelection(this); return true;"/>
+ <option label="APOC.profilemgr.moreActions" value="0"/>
+ <option label="APOC.pool.rename" value="1" title="APOC.pool.rename.tooltip" titleDisabled="APOC.pool.rename.disabled.tooltip"/>
+ <option label="APOC.wiz.copy.copymove" value="2" title="APOC.wiz.copy.copymove.tooltip" titleDisabled="APOC.wiz.copy.copymove.disabled.tooltip"/>
+ <option label="APOC.pool.import" value="5" title="APOC.pool.import.tooltip" titleDisabled="APOC.pool.import.disabled.tooltip"/>
+ <option label="APOC.pool.export" value="6" title="APOC.pool.export.tooltip" titleDisabled="APOC.pool.export.disabled.tooltip"/>
+ </cc>
+ </actions>
+ <column name="NameColumn" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="NameHref" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="onClick" value="javascript:openProfileEditorWindow(this); return false;" />
+ <cc name="NameText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ </column>
+ <column name="AuthorColumn" extrahtml="nowrap='nowrap'">
+ <cc name="AuthorText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+ <column name="LastModifiedColumn" extrahtml="nowrap='nowrap'">
+ <cc name="LastModifiedText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+</table>
diff --git a/webconsole/jsp/profiles/Assignees.jsp b/webconsole/jsp/profiles/Assignees.jsp
new file mode 100644
index 0000000..a3696ce
--- /dev/null
+++ b/webconsole/jsp/profiles/Assignees.jsp
@@ -0,0 +1,130 @@
+<%@ page info="ContentAreaPolicies" language="java" %>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+<%@taglib uri="/WEB-INF/apoc.tld" prefix="apoc"%>
+
+<jato:pagelet>
+<jato:containerView name="Assignees">
+
+<script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+<script type="text/javascript">
+<!--
+ function toggleMenu() {
+ var nElementRunner=0;
+ var nCheckedElements=0;
+ var assignButton = "ProfileWindow.TabContent.Assignees.AssignButton";
+ var unassignButton = "ProfileWindow.TabContent.Assignees.UnassignButton";
+
+ while (document.ProfileForm.elements[nElementRunner]!=null) {
+ if ( (document.ProfileForm.elements[nElementRunner].name.indexOf("SelectionCheckbox")!=-1) &&
+ (document.ProfileForm.elements[nElementRunner].name.indexOf("jato_boolean") == -1) &&
+ (document.ProfileForm.elements[nElementRunner].checked==true) ) {
+ nCheckedElements++;
+ }
+ nElementRunner++;
+ }
+
+ var bIsReadOnly = <cc:text name="JSReadOnly"/>;
+
+ // enable "assign" button if no profile is selected
+ ccSetButtonDisabled(assignButton, "ProfileForm", (bIsReadOnly||(nCheckedElements!=0)));
+ // enable "unassign" button if at least one profile is selected
+ ccSetButtonDisabled(unassignButton, "ProfileForm", (bIsReadOnly||(nCheckedElements==0)));
+ }
+
+ function submitBrowse(entityId, entityType) {
+ document.ProfileForm['ProfileWindow.TabContent.Assignees.AssigneeEntityId'].value=entityId;
+ document.ProfileForm['ProfileWindow.TabContent.Assignees.AssigneeEntityType'].value=entityType;
+ document.ProfileForm.action="../manager/ProfileWindow?ProfileWindow.TabContent.Assignees.AssignHref=a";
+ document.ProfileForm.submit();
+ }
+
+ function openBrowseTreeWindow() {
+ openWindow(window, null, '/apoc/manager/BrowseTreeIndex?EntityId=<cc:text name="JSEntityId"/>&EntityType=<cc:text name="JSEntityType"/>&', 'TreeWindow', 500, 600, true);
+ }
+
+// -->
+</script>
+<jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+</jato:content>
+<cc:pagetitle name="PageTitle" bundleID="apocBundle"
+ pageTitleText="APOC.profilewnd.assignees.title"
+ showPageTitleSeparator="true"
+ pageTitleHelpMessage="APOC.profilewnd.assignees.help"
+ showPageButtonsTop="true"
+ showPageButtonsBottom="false">
+
+<br>
+
+<!-- Action Table -->
+<cc:actiontable
+ name="ActionTable"
+ bundleID="apocBundle"
+ title="APOC.profilewnd.assignees.title"
+ empty="APOC.profilewnd.assignees.noorgs"
+ selectionType="multiple"
+ selectionJavascript="setTimeout('toggleMenu()', 0)"
+ showAdvancedSortIcon="false"
+ showLowerActions="false"
+ showPaginationControls="false"
+ showPaginationIcon="false"
+ showSelectionIcons="true"
+ maxRows="25"/>
+
+</cc:pagetitle>
+
+<script type="text/javascript">
+<!--
+ setTimeout('toggleMenu()', 0);
+ // -->
+</script>
+
+<cc:hidden name="AssigneeEntityId" defaultValue="a" />
+<cc:hidden name="AssigneeEntityType" defaultValue="a" />
+
+</jato:containerView>
+</jato:pagelet>
diff --git a/webconsole/jsp/profiles/AssigneesPageTitle.xml b/webconsole/jsp/profiles/AssigneesPageTitle.xml
new file mode 100644
index 0000000..a1f1fce
--- /dev/null
+++ b/webconsole/jsp/profiles/AssigneesPageTitle.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="PageButton1" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <!-- See the CCButton class for button types. -->
+ <attribute name="type" value="secondary"/>
+ <attribute name="defaultValue" value="APOC.profilewnd.buttons.close"/>
+ <attribute name="onClick" value="javascript:return closeEditorWindow();"/>
+ <attribute name="elementId" value="CloseEditorButton" />
+ </cc>
+ </pagebuttons>
+</pagetitle> \ No newline at end of file
diff --git a/webconsole/jsp/profiles/AssigneesTable.xml b/webconsole/jsp/profiles/AssigneesTable.xml
new file mode 100644
index 0000000..cc51f8a
--- /dev/null
+++ b/webconsole/jsp/profiles/AssigneesTable.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+<table>
+ <actions>
+ <cc name="AssignButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.profilewnd.assignees.assign"/>
+ <attribute name="dynamic" value="true"/>
+ <attribute name="onClick" value="javascript:openBrowseTreeWindow();return false;" />
+ </cc>
+ <cc name="UnassignButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.profilewnd.assignees.unassign"/>
+ <attribute name="dynamic" value="true"/>
+ <attribute name="disabled" value="true"/>
+ </cc>
+ </actions>
+ <column name="NameColumn" sortname="OrganizationName" rowheader="true" extrahtml="width='150px' nowrap='nowrap'">
+ <cc name="OrganizationName" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag"/>
+ </column>
+ <column name="LocationColumn" sortname="LocationValue" rowheader="true">
+ <cc name="LocationValue" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag"/>
+ </column>
+</table>
diff --git a/webconsole/jsp/profiles/Available.jsp b/webconsole/jsp/profiles/Available.jsp
new file mode 100644
index 0000000..a14ed88
--- /dev/null
+++ b/webconsole/jsp/profiles/Available.jsp
@@ -0,0 +1,302 @@
+<%@ page info="Available" language="java" %>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:pagelet>
+ <jato:containerView name="Available">
+
+<script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+<script type="text/javascript">
+<!--
+ function submitNew(name, comment, location) {
+ document.OnepaneForm['Onepane.OnepanePageletView.Available.NewName'].value=name;
+ document.OnepaneForm['Onepane.OnepanePageletView.Available.NewComment'].value=comment;
+ document.OnepaneForm['Onepane.OnepanePageletView.Available.NewLocation'].value=location;
+ document.OnepaneForm['Onepane.OnepanePageletView.Available.CommandHidden'].value=0;
+ document.OnepaneForm.action='../manager/Onepane?Onepane.OnepanePageletView.Available.AvailableTableView.ActionMenuHref=a';
+ document.OnepaneForm.submit();
+ }
+
+ function handleSelection(selectTag) {
+ var f=document.OnepaneForm;
+ if (f != null) {
+
+ var filter = "AvailableDomainTableView";
+ if (selectTag.name.indexOf(filter)==-1) {
+ filter = "AvailableOrgTableView";
+ }
+ var command = document.forms[0]['Onepane.OnepanePageletView.Available.CommandHidden'];
+ var commandParam = document.forms[0]['Onepane.OnepanePageletView.Available.CommandParametersHidden'];
+ command.value = "";
+ commandParam.value = "";
+
+ if (selectTag.name.indexOf("DeleteButton")!=-1) {
+ // delete
+ command.value = "7";
+ commandParam.value = getSelectedIds(document, filter);
+ }
+ else {
+ selectedCommand=selectTag.options[selectTag.selectedIndex].value;
+
+ if (selectedCommand==1) {
+ //rename
+ var groupName = getSelectedLinkWithFilter(document, filter).text;
+ groupName = prompt('<cc:text name="RenameMessage" bundleID="apocBundle" defaultValue="APOC.pool.renameMessage"/>', unescape(groupName));
+ if (groupName!=null) {
+ command.value = selectedCommand+'';
+ commandParam.value = getSelectedIds(document, filter) + " " + groupName;
+ }
+ }
+ else if (selectedCommand==2) {
+ //copy and move
+ var selectedProfiles = getSelectedIds(document, filter);
+ var profile = "";
+ if (selectedProfiles.indexOf(" ")>-1) {
+ profile = selectedProfiles.substring(0, selectedProfiles.indexOf(" "));
+ } else {
+ profile = selectedProfiles;
+ }
+ var selectedProfile = "Onepane.OnepanePageletView.Available.SelectedProfile";
+ var copyMoveButton = "Onepane.OnepanePageletView.Available."+filter+".copyMoveWizardWindow";
+ document.forms[0][selectedProfile].value=profile;
+ document.forms[0][copyMoveButton].click();
+ }
+ else if (selectedCommand==5){
+ //import
+ openWindow(window, null, '/apoc/manager/ProfilesImport?ProfilesImport.ImportGroup='+filter, 'importWindow', 360, 500, true);
+ }
+ else if (selectedCommand==6){
+ //export
+ var profileId = getSelectedLinkWithFilter(document, filter).href;
+ profileId = extractByDelimiters("=", "&", profileId);
+ command.value = selectedCommand+'';
+ commandParam.value = profileId;
+
+ var checkboxRunner = 0;
+ while (document.forms[0].elements[checkboxRunner]!=null) {
+ if ( (document.forms[0].elements[checkboxRunner].name.indexOf("SelectionCheckbox")!=-1) &&
+ (document.forms[0].elements[checkboxRunner].name.indexOf("jato_boolean") == -1) &&
+ (document.forms[0].elements[checkboxRunner].checked==true) ) {
+ document.forms[0].elements[checkboxRunner].checked=false;
+ break;
+ }
+ checkboxRunner++;
+ }
+ }
+ }
+
+ if (command.value.length>0) {
+ var a=document.OnepaneForm.elements[selectTag.name];
+ for (i=0; i<a.length; i++) {
+ a[i].selectedIndex=selectTag.selectedIndex;
+ }
+ f.action='../manager/Onepane?Onepane.OnepanePageletView.Available.'+filter+'.ActionMenuHref=a';
+ f.submit();
+ }
+
+ if (selectTag.options!=null) {
+ selectTag.options.selectedIndex=0;
+ }
+ toggleMenu(filter);
+ f.action = "../manager/Onepane";
+ command.value = "";
+ commandParam.value = "";
+ }
+ }
+
+ function toggleMenu(filter) {
+ var nElementRunner = 0;
+ var nElements = 0;
+ var nCheckedElements= 0;
+ var newButton = "Onepane.OnepanePageletView.Available."+filter+".NewButton";
+ var deleteButton = "Onepane.OnepanePageletView.Available."+filter+".DeleteButton";
+ var actionMenu = "Onepane.OnepanePageletView.Available."+filter+".ActionMenu";
+ var wizDomBtnName = "Onepane.OnepanePageletView.Available.AvailableDomainTableView.copyMoveWizardWindow";
+ var wizOrgBtnName = "Onepane.OnepanePageletView.Available.AvailableOrgTableView.copyMoveWizardWindow";
+
+ var wizDomBtn = document.forms[0][wizDomBtnName];
+ var wizOrgBtn = document.forms[0][wizOrgBtnName];
+
+ var bIsReadOnly = false;
+
+ while (document.OnepaneForm.elements[nElementRunner]!=null) {
+ if ( (document.OnepaneForm.elements[nElementRunner].name.indexOf("SelectionCheckbox")!=-1) &&
+ (document.OnepaneForm.elements[nElementRunner].name.indexOf("jato_boolean") ==-1) &&
+ (document.OnepaneForm.elements[nElementRunner].name.indexOf(filter)!=-1) ) {
+ nElements++;
+ if (document.OnepaneForm.elements[nElementRunner].checked == true) {
+ nCheckedElements++;
+ while ((document.OnepaneForm.elements[nElementRunner]!=null) &&
+ (document.OnepaneForm.elements[nElementRunner].name.indexOf("AccessHidden")==-1)) {
+ nElementRunner++;
+ }
+ if (document.OnepaneForm.elements[nElementRunner].value=="true") {
+ bIsReadOnly = true;
+ }
+ }
+ }
+ nElementRunner++;
+ }
+
+ if (filter=="AvailableDomainTableView") {
+ <cc:text name="ConditionalNewDomainDisable" defaultValue="bIsReadOnly=true;" />
+ } else if (filter=="AvailableOrgTableView") {
+ <cc:text name="ConditionalNewOrgDisable" defaultValue="bIsReadOnly=true;" />
+ }
+ // enable "new" button if no profile is selected
+ ccSetButtonDisabled(newButton, "OnepaneForm", (bIsReadOnly||(nCheckedElements!=0)));
+
+ // enable "delete" button if at least one profile is selected
+ ccSetButtonDisabled(deleteButton, "OnepaneForm", (bIsReadOnly||(nCheckedElements==0)));
+
+ if (((wizDomBtn != null) && (wizDomBtn.disabled == true))
+ || ((wizOrgBtn != null) && (wizOrgBtn.disabled == true))) {
+ ccSetDropDownMenuOptionDisabled("Onepane.OnepanePageletView.Available.AvailableDomainTableView.ActionMenu", "OnepaneForm", true, 2)
+ ccSetDropDownMenuOptionDisabled("Onepane.OnepanePageletView.Available.AvailableOrgTableView.ActionMenu", "OnepaneForm", true, 2)
+ } else {
+ // enable "copymove" action menu item if exactly one profile is selected
+ ccSetDropDownMenuOptionDisabled(actionMenu, "OnepaneForm", (nCheckedElements != 1), 2)
+ }
+
+ // enable "rename" action menu item if exactly one profile is selected
+ ccSetDropDownMenuOptionDisabled(actionMenu, "OnepaneForm", (bIsReadOnly||(nCheckedElements!=1)), 1);
+
+ // enable "export" action menu item if exactly one profile is selected
+ ccSetDropDownMenuOptionDisabled(actionMenu, "OnepaneForm", (nCheckedElements!=1), 4);
+
+ // enable "import" action menu item if no profile is selected
+ ccSetDropDownMenuOptionDisabled(actionMenu, "OnepaneForm", (bIsReadOnly||(nCheckedElements!=0)), 3);
+
+ }
+// -->
+</script>
+
+ <%--
+ This is a workaround for IE 6:
+ using <BR> or equivalents will create a gray area instead of a invisible vertical space
+ --%>
+ <table><tr><td>
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="10" width="1" />
+ </td></tr></table>
+
+ <jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+ </jato:content>
+
+ <cc:pagetitle name="AvailableTitle"
+ pageTitleText="APOC.profileall.title"
+ showPageTitleSeparator="true"
+ pageTitleHelpMessage="APOC.profileall.help"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="false"
+ bundleID="apocBundle">
+
+ <br>
+ <jato:content name="DisplayDomainTable">
+ <jato:containerView name="AvailableDomainTableView">
+ <cc:wizardwindow name="copyMoveWizardWindow" bundleID="apocBundle" defaultValue="invisible"
+ extraHtml="style='width:1; visibility:hidden; background-image:none; background:#FFF; color:#FFF; padding:0px; margin:0px; border-style:none;'"
+ onMouseOver="return true" onMouseOut="return true" onBlur="return true" onFocus="return true"/>
+ <cc:actiontable name="AvailableTable"
+ bundleID="apocBundle"
+ title="APOC.profileall.domtable.title"
+ summary="APOC.pool.tableSummary"
+ empty="APOC.profileassi.table.empty"
+ selectionType="multiple"
+ selectionJavascript="setTimeout('toggleMenu(\&quot;AvailableDomainTableView\&quot;)', 0)"
+ showAdvancedSortIcon="false"
+ showLowerActions="false"
+ showPaginationControls="false"
+ showPaginationIcon="false"
+ showSelectionIcons="true"
+ showSelectionSortIcon="false"
+ maxRows="10"
+ page="1" />
+ </jato:containerView>
+
+ </jato:content>
+
+ <jato:content name="DisplayOrgTable">
+ <jato:containerView name="AvailableOrgTableView">
+ <cc:wizardwindow name="copyMoveWizardWindow" bundleID="apocBundle" defaultValue="invisible"
+ extraHtml="style='width:1; visibility:hidden; background-image:none; background:#FFF; color:#FFF; padding:0px; margin:0px; border-style:none;'"
+ onMouseOver="return true" onMouseOut="return true" onBlur="return true" onFocus="return true"/>
+
+ <cc:actiontable name="AvailableTable"
+ bundleID="apocBundle"
+ title="APOC.profileall.orgtable.title"
+ summary="APOC.pool.tableSummary"
+ empty="APOC.profileassi.table.empty"
+ selectionType="multiple"
+ selectionJavascript="setTimeout('toggleMenu(\&quot;AvailableOrgTableView\&quot;)', 0)"
+ showAdvancedSortIcon="false"
+ showLowerActions="false"
+ showPaginationControls="false"
+ showPaginationIcon="false"
+ showSelectionIcons="true"
+ showSelectionSortIcon="false"
+ maxRows="10"
+ page="1" />
+ </jato:containerView>
+ </jato:content>
+
+ </cc:pagetitle>
+ <cc:hidden name="SelectedProfile" defaultValue="" />
+ <cc:hidden name="CommandHidden" defaultValue="" />
+ <cc:hidden name="CommandParametersHidden" defaultValue="" />
+
+ </jato:containerView>
+ <br>
+ <br>
+<script type="text/javascript">
+<!--
+ setTimeout('toggleMenu("AvailableDomainTableView")', 0);
+ setTimeout('toggleMenu("AvailableOrgTableView")', 0);
+ // -->
+</script>
+</jato:pagelet>
+
diff --git a/webconsole/jsp/profiles/AvailableTable.xml b/webconsole/jsp/profiles/AvailableTable.xml
new file mode 100644
index 0000000..d02fa4b
--- /dev/null
+++ b/webconsole/jsp/profiles/AvailableTable.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <actions>
+ <cc name="NewButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="dynamic" value="true" />
+ <attribute name="disabled" value="false" />
+ <attribute name="defaultValue" value="APOC.pool.new" />
+ <attribute name="title" value="APOC.pool.new_button.help" />
+ </cc>
+ <cc name="DeleteButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="dynamic" value="true" />
+ <attribute name="disabled" value="true" />
+ <attribute name="defaultValue" value="APOC.profilemgr.delete" />
+ <attribute name="title" value="APOC.pool.delete_button.help" />
+ </cc>
+ <cc name="ActionMenu" tagclass="com.sun.web.ui.taglib.html.CCDropDownMenuTag">
+ <attribute name="dynamic" value="true" />
+ <attribute name="commandChild" value="ActionMenuHref" />
+ <attribute name="escape" value="false" />
+ <attribute name="onChange" value="javascript:handleSelection(this); return true;"/>
+ <option label="APOC.profilemgr.moreActions" value="0" />
+ <option label="APOC.pool.rename" value="1" title="APOC.pool.rename.tooltip" titleDisabled="APOC.pool.rename.disabled.tooltip"/>
+ <option label="APOC.wiz.copy.copymove" value="2" title="APOC.wiz.copy.copymove.tooltip" titleDisabled="APOC.wiz.copy.copymove.disabled.tooltip"/>
+ <option label="APOC.pool.import" value="5" title="APOC.pool.import.tooltip" titleDisabled="APOC.pool.import.disabled.tooltip"/>
+ <option label="APOC.pool.export" value="6" title="APOC.pool.export.tooltip" titleDisabled="APOC.pool.export.disabled.tooltip"/>
+ </cc>
+ </actions>
+ <column name="NameColumn" sortname="NameText" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="NameHref" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="onClick" value="javascript:openProfileEditorWindow(this); return false;" />
+ <cc name="NameText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ <cc name="AccessHidden" tagclass="com.sun.web.ui.taglib.html.CCHiddenTag" />
+ </column>
+ <column name="AuthorColumn" sortname="AuthorText" extrahtml="nowrap='nowrap'">
+ <cc name="AuthorText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+ <column name="LastModifiedColumn" sortname="LastModifiedText" extrahtml="nowrap='nowrap'">
+ <cc name="LastModifiedText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+</table>
diff --git a/webconsole/jsp/profiles/CopyMoveWizard1.jsp b/webconsole/jsp/profiles/CopyMoveWizard1.jsp
new file mode 100644
index 0000000..d1d5ca1
--- /dev/null
+++ b/webconsole/jsp/profiles/CopyMoveWizard1.jsp
@@ -0,0 +1,198 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<!-- Legend: required field indicator -->
+<cc:legend name="Legend" bundleID="apocBundle"/>
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+<tr>
+ <td valign="top" align="right" rowspan="1" colspan="1">
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.CopyMoveWizard1.ContextBrowseButton");
+ verifyRequiredField();
+ }
+ function verifyRequiredField() {
+ var f = WizardWindow_Wizard.formName;
+ var desc = ccGetElement(
+ "WizardWindow.Wizard.CopyMoveWizard1View.NewSelectedProfile", f);
+
+ if (desc == null) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ if (desc.value.length != 0) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ WizardWindow_Wizard.setNextButtonDisabled(true, null);
+ }
+ }
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+
+ function openProfileSearchWindow() {
+ var searchContextName = document.wizWinForm['WizardWindow.Wizard.CopyMoveWizard1View.SelectedContext'].value;
+ var selectedProfileId = document.wizWinForm['WizardWindow.Wizard.CopyMoveWizard1View.NewSelectedProfile'].value;
+ openWindow(window, null, '/apoc/manager/ProfilesSearchIndex?SearchContextName=' + searchContextName + '&SelectedProfileId=' + selectedProfileId, 'searchProfileWindow', 0.6, 500);
+ }
+
+ function openSelectContextWindow(contextName, sessionConstant) {
+ openWindow(window, null, '/apoc/manager/SelectContext?ContextName='+ contextName + '&SessionConstant=' + sessionConstant, 'selectContextWindow', 0.6, 500);
+ }
+
+ function profileSearchCallback(sProfileId) {
+ sProfileId = sProfileId.split('&com_sun_web_ui_popup=true')[0];
+ document.wizWinForm['WizardWindow.Wizard.CopyMoveWizard1View.NewSelectedProfile'].value = sProfileId;
+ refreshPagelet()
+ }
+
+ function selectContextCallback(newContext) {
+ var oldContext = document.wizWinForm['WizardWindow.Wizard.CopyMoveWizard1View.SelectedContext'].value;
+ if (oldContext != newContext) {
+ document.wizWinForm['WizardWindow.Wizard.CopyMoveWizard1View.NewSelectedProfile'].value = "";
+ }
+ refreshPagelet()
+ }
+
+ function refreshPagelet() {
+ var f=document.wizWinForm;
+ var link = document.links['WizardWindow.Wizard.tabs.TabHref'];
+ if (link != null) {
+ var href = link.href;
+ var re = /(TabHref=(\d))/;
+ var found = href.match(re);
+ re = /(=(\d))/;
+ var num = found[0].match(re);
+
+ var tabnum = new Number(num[0].substring(1, num[0].length));
+ if (tabnum == 1) {
+ re = /(TabHref=\d)/;
+ var newHref = href.replace(re, 'TabHref=0');
+ f.action = newHref;
+ f.submit()
+ } else if (tabnum == 0) {
+ re = /(TabHref=\d)/;
+ var newHref = href.replace(re, 'TabHref=1');
+ f.action = newHref;
+ f.submit()
+ }
+ }
+ }
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_CopyMoveWindow= top;
+ }
+ </script>
+ <cc:hidden name="NewSelectedProfile" />
+ <cc:hidden name="SelectedContext" />
+ <cc:label name="SourceContextLabel" styleLevel="2"
+ elementName="SourceContextLabel"
+ defaultValue="APOC.wiz.copy.source.context"
+ showRequired="true"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:text name ="SourceContext" bundleID="apocBundle" />
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:button name="ContextBrowseButton"
+ bundleID="apocBundle"
+ defaultValue="APOC.profilewnd.general.browse"
+ type="secondary"
+ />
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="SourceProfileLabel" styleLevel="2"
+ elementName="SourceContextLabel"
+ defaultValue="APOC.wiz.copy.source.profile"
+ showRequired="true"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:text name ="SourceProfile" bundleID="apocBundle" />
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:button name="ProfileBrowseButton"
+ bundleID="apocBundle"
+ defaultValue="APOC.profilewnd.general.browse"
+ type="secondary"
+ onClick="javascript:openProfileSearchWindow(); return false;"
+ />
+ </td>
+</tr>
+</jato:pagelet>
diff --git a/webconsole/jsp/profiles/CopyMoveWizard2.jsp b/webconsole/jsp/profiles/CopyMoveWizard2.jsp
new file mode 100644
index 0000000..e96caf8
--- /dev/null
+++ b/webconsole/jsp/profiles/CopyMoveWizard2.jsp
@@ -0,0 +1,135 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<!-- Legend: required field indicator -->
+<cc:legend name="Legend" bundleID="apocBundle"/>
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.CopyMoveWizard2.SelectAction");
+ verifyRequiredField()
+ }
+ function verifyRequiredField() {
+ var f = WizardWindow_Wizard.formName;
+ var desc = ccGetElement(
+ "WizardWindow.Wizard.CopyMoveWizard2View.SelectAction", f);
+ var flag = -1;
+ for (var i = 0; i < desc.length; i++) {
+ if (desc[i].checked) {
+ flag = i;
+ }
+ }
+ if (flag != -1) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ WizardWindow_Wizard.setNextButtonDisabled(true, null);
+ }
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_CopyMoveWindow= top;
+ }
+ </script>
+ <cc:label name="SelectActionLabel" styleLevel="2"
+ elementName="SelectActionLabel"
+ defaultValue="APOC.wiz.copy.select.action"
+ showRequired="true"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:radiobutton name ="SelectAction" styleLevel="3"
+ onClick="javascript: verifyRequiredField();"
+ bundleID="apocBundle"/>
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ &nbsp;
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:checkbox name ="Assignments" bundleID="apocBundle"/>
+ <cc:label name="AssignmentsLabel" styleLevel="3"
+ elementName="AssignmentsLabel"
+ defaultValue="APOC.wiz.copy.assignments"
+ bundleID="apocBundle"/>
+ </td>
+</tr>
+</jato:pagelet>
diff --git a/webconsole/jsp/profiles/CopyMoveWizard3.jsp b/webconsole/jsp/profiles/CopyMoveWizard3.jsp
new file mode 100644
index 0000000..d82d28e
--- /dev/null
+++ b/webconsole/jsp/profiles/CopyMoveWizard3.jsp
@@ -0,0 +1,195 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<!-- Legend: required field indicator -->
+<cc:legend name="Legend" bundleID="apocBundle"/>
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.CopyMoveWizard3.ContextBrowseButton");
+ verifyRequiredField();
+ }
+
+ function verifyRequiredField() {
+ var f = WizardWindow_Wizard.formName;
+ var desc = ccGetElement(
+ "WizardWindow.Wizard.CopyMoveWizard3View.HiddenSelectedTargetEntity", f);
+
+ if (desc == null) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ if (desc.value.length != 0) {
+ WizardWindow_Wizard.setNextButtonDisabled(false, null);
+ } else {
+ WizardWindow_Wizard.setNextButtonDisabled(true, null);
+ }
+ }
+ }
+
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+
+ function submitBrowse(entityId, entityType) {
+ document.wizWinForm['WizardWindow.Wizard.CopyMoveWizard3View.HiddenSelectedTargetEntity'].value = entityId;
+ document.wizWinForm['WizardWindow.Wizard.CopyMoveWizard3View.HiddenSelectedTargetEntityType'].value = entityType;
+ refreshPagelet();
+ }
+
+ function openSelectContextWindow(contextName, sessionConstant) {
+ openWindow(window, null, '/apoc/manager/SelectContext?ContextName='+ contextName + '&SessionConstant=' + sessionConstant, 'selectContextWindow', 0.6, 500);
+ }
+
+ function selectContextCallback(newContext) {
+ var oldContext = document.wizWinForm['WizardWindow.Wizard.CopyMoveWizard3View.SelectedContext'].value;
+ if (oldContext != newContext) {
+ document.wizWinForm['WizardWindow.Wizard.CopyMoveWizard3View.HiddenSelectedTargetEntity'].value = "";
+ }
+ refreshPagelet();
+ }
+
+ function refreshPagelet() {
+ var f=document.wizWinForm;
+ var link = document.links['WizardWindow.Wizard.tabs.TabHref'];
+ if (link != null) {
+ var href = link.href;
+ var re = /(TabHref=(\d))/;
+ var found = href.match(re);
+ re = /(=(\d))/;
+ var num = found[0].match(re);
+
+ var tabnum = new Number(num[0].substring(1, num[0].length));
+ if (tabnum == 1) {
+ re = /(TabHref=\d)/;
+ var newHref = href.replace(re, 'TabHref=0');
+ f.action = newHref;
+ f.submit()
+ } else if (tabnum == 0) {
+ re = /(TabHref=\d)/;
+ var newHref = href.replace(re, 'TabHref=1');
+ f.action = newHref;
+ f.submit()
+ }
+ }
+ }
+
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_CopyMoveWindow= top;
+ }
+ </script>
+ <cc:hidden name="SelectedContext" />
+ <cc:label name="TargetContextLabel" styleLevel="2"
+ elementName="TargetContextLabel"
+ defaultValue="APOC.wiz.copy.target.context"
+ showRequired="true"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:text name ="TargetContext" bundleID="apocBundle" />
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:button name="ContextBrowseButton"
+ bundleID="apocBundle"
+ defaultValue="APOC.profilewnd.general.browse"
+ type="secondary"
+ />
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="TargetEntityLabel" styleLevel="2"
+ elementName="TargetEntityLabel"
+ defaultValue="APOC.wiz.copy.target.entity"
+ showRequired="true"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:text name ="TargetEntity" bundleID="apocBundle" />
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:button name="EntityBrowseButton"
+ bundleID="apocBundle"
+ defaultValue="APOC.profilewnd.general.browse"
+ type="secondary"
+ />
+ </td>
+</tr>
+<cc:hidden name="HiddenSelectedTargetEntity" />
+<cc:hidden name="HiddenSelectedTargetEntityType" />
+</jato:pagelet>
diff --git a/webconsole/jsp/profiles/CopyMoveWizard4.jsp b/webconsole/jsp/profiles/CopyMoveWizard4.jsp
new file mode 100644
index 0000000..fdc3d2b
--- /dev/null
+++ b/webconsole/jsp/profiles/CopyMoveWizard4.jsp
@@ -0,0 +1,154 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+
+<%-- For now assume we're still presenting the components in a table
+ which is output by the framework and components are
+ in rows and cells
+--%>
+
+
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <script type="text/javascript">
+ function wizardPageInit() {
+ WizardWindow_Wizard.setFocusElementName(
+ "WizardWindow.Wizard.CopyMoveWizard4.SourceContextLabel");
+ }
+ WizardWindow_Wizard.pageInit = wizardPageInit;
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_CopyMoveWindow= top;
+ }
+ </script>
+ <cc:label name="SourceContextLabel" styleLevel="2"
+ elementName="SourceContextLabel"
+ defaultValue="APOC.wiz.copy.source.context"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:text name ="SourceContext" bundleID="apocBundle" />
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="SourceProfileLabel" styleLevel="2"
+ elementName="SourceProfileLabel"
+ defaultValue="APOC.wiz.copy.source.profile"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:text name ="SourceProfile" bundleID="apocBundle" />
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="SelectActionLabel" styleLevel="2"
+ elementName="SelectActionLabel"
+ defaultValue="APOC.wiz.copy.action"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:text name ="ActionSelected" bundleID="apocBundle" />
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="AssignmentsLabel" styleLevel="2"
+ elementName="AssignmentsLabel"
+ defaultValue="APOC.wiz.copy.assignments.assignments"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:text name ="AssignmentsYesNo" bundleID="apocBundle" />
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="TargetContextLabel" styleLevel="2"
+ elementName="TargetContextLabel"
+ defaultValue="APOC.wiz.copy.target.context"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:text name ="TargetContext" bundleID="apocBundle" />
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:label name="TargetEntityLabel" styleLevel="2"
+ elementName="TargetEntityLabel"
+ defaultValue="APOC.wiz.copy.target.entity"
+ bundleID="apocBundle"/>
+ </td>
+ <td valign="top" align="left" rowspan="1" colspan="1">
+ <cc:text name ="TargetEntity" bundleID="apocBundle" />
+ </td>
+</tr>
+</jato:pagelet>
diff --git a/webconsole/jsp/profiles/CopyMoveWizard5.jsp b/webconsole/jsp/profiles/CopyMoveWizard5.jsp
new file mode 100644
index 0000000..f1a2db0
--- /dev/null
+++ b/webconsole/jsp/profiles/CopyMoveWizard5.jsp
@@ -0,0 +1,105 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+<table width="99%" border="0" cellspacing="10" cellpadding="0">
+<tr>
+ <td valign="top" align="left">
+ <script type="text/javascript">
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_CopyMoveWindow= top;
+ }
+ </script>
+ <jato:content name="DisplayAlert">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle" />
+ <BR>
+ </jato:content>
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left">
+ <jato:content name="DisplaySummaryTitle">
+ <cc:label name="SummaryTitle" styleLevel="2"
+ elementName="SummaryTitle"
+ bundleID="apocBundle"/>
+ </jato:content>
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left">
+ <jato:content name="DisplaySummaryText">
+ <cc:label name="SummaryText" styleLevel="3"
+ elementName="SummaryText"
+ bundleID="apocBundle"
+ />
+ </jato:content>
+</tr>
+<table>
+</jato:pagelet> \ No newline at end of file
diff --git a/webconsole/jsp/profiles/CopyMoveWizardOverview.jsp b/webconsole/jsp/profiles/CopyMoveWizardOverview.jsp
new file mode 100644
index 0000000..7ddcdce
--- /dev/null
+++ b/webconsole/jsp/profiles/CopyMoveWizardOverview.jsp
@@ -0,0 +1,101 @@
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@ page language="java" %>
+<%@ page import="com.iplanet.jato.view.ViewBean" %>
+<%@taglib uri="/jato.tld" prefix="jato"%>
+<%@taglib uri="/cc.tld" prefix="cc"%>
+
+<!--
+ // The wizard framework provides a javascript object instance
+ // called WizardWindow_Wizard. This object has methods that
+ // allow the pagelet to disable/enable buttons and set the
+ // page's initial focus.
+ //
+ // References to the methods of WizardWindow_Wizard if not conditional
+ // during runtime, that must result in effects when the page is displayed
+ // must be placed in a Javascript function and that function name
+ // must be assigned to WizardWindow_Wizard.pageInit.
+ // The framework will call WizardWindow_Wizard.pageInit() after the
+ // wizard tag has been rendered.
+ //
+ // script statements must appear within at least the first
+ // <td> element since HTML validation objects to the appearance
+ // of <script> betwee the <table> element and the first <tr>
+ // element.
+-->
+<jato:pagelet>
+<cc:i18nbundle id="apocBundle"
+ baseName="com.sun.apoc.manager.resource" />
+<cc:hidden name="SelectedProfile" />
+<script type="text/javascript">
+ var hiddenProfileField = document.wizWinForm['WizardWindow.Wizard.CopyMoveWizardOverviewView.SelectedProfile'];
+ var hiddenOpenerProfileField = self.opener.document.getElementById('SelectedProfileCopyMoveWizard');
+ if (hiddenOpenerProfileField != null) {
+ if (hiddenProfileField.value == null || hiddenProfileField.value == "") {
+ hiddenProfileField.value = hiddenOpenerProfileField.value;
+ }
+ }
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_CopyMoveWindow= top;
+ }
+</script>
+<table width="99%" border="0" cellspacing="10" cellpadding="0">
+<tr>
+ <td valign="top" align="left">
+ <cc:label name="OverviewTitle" styleLevel="2"
+ elementName="OverviewTitle"
+ bundleID="apocBundle"
+ />
+ </td>
+</tr>
+<tr>
+ <td valign="top" align="left">
+ <cc:label name="OverviewText" styleLevel="3"
+ elementName="OverviewText"
+ bundleID="apocBundle"
+ />
+</tr>
+<table>
+</jato:pagelet>
+
diff --git a/webconsole/jsp/profiles/EditPriorities.jsp b/webconsole/jsp/profiles/EditPriorities.jsp
new file mode 100644
index 0000000..3419c46
--- /dev/null
+++ b/webconsole/jsp/profiles/EditPriorities.jsp
@@ -0,0 +1,217 @@
+<%@ page info="Edit Priorities" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+ <jato:useViewBean className="com.sun.apoc.manager.ProfilesEditPrioritiesViewBean">
+
+ <cc:header pageTitle="APOC.prios.title" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle" isPopup="true" onLoad="javascript:conditionalClose()">
+
+ <script type="text/javascript">
+ <!--
+ function conditionalClose() {
+ if (document.PrioForm==null) {
+ self.opener.parent.navigation.document.NavigationAreaForm.action="../manager/NavigationArea?NavigationArea.DefaultHref='default'";
+ self.opener.parent.navigation.document.NavigationAreaForm.submit();
+ window.close();
+ }
+ }
+
+ function moveup(list) {
+ var begin = -1;
+ for (i = 0; i < list.options.length; i++) {
+ if (list.options[i].selected) {
+ if (i - 1 > begin) {
+ iotext = list.options[i-1].text;
+ iovalue = list.options[i-1].value;
+ list.options[i-1].text = list.options[i].text;
+ list.options[i-1].value = list.options[i].value;
+ list.options[i-1].selected = true;
+ list.options[i].text = iotext;
+ list.options[i].value = iovalue;
+ list.options[i].selected = false;
+ begin = i - 1;
+ } else {
+ begin = i;
+ }
+ }
+ }
+ }
+
+ function movedown(list) {
+ var end = list.options.length-1;
+ for (i = end; i >= 0; i=i-1) {
+ if (list.options[i].selected) {
+ if (i < end) {
+ iotext = list.options[i].text;
+ iovalue = list.options[i].value;
+ list.options[i].text = list.options[i+1].text;
+ list.options[i].value = list.options[i+1].value;
+ list.options[i].selected = false;
+ list.options[i+1].text = iotext;
+ list.options[i+1].value = iovalue;
+ list.options[i+1].selected = true;
+ end = i + 1;
+ } else {
+ end = i;
+ }
+ }
+ }
+ }
+
+ function ableButtons(list, upButton, downButton) {
+ var canUp=false;
+ var canDown=false;
+ for (i = 0; i < list.options.length; i++) {
+ if (list.options[i].selected==true) {
+ if ( (i>0) && (list.options[i-1].selected==false) ) {
+ canUp=true;
+ }
+ if ( (i<list.options.length-1) && (list.options[i+1].selected==false) ) {
+ canDown=true;
+ }
+ }
+ }
+ if (canUp) {
+ upButton.className="Btn1";
+ upButton.disabled=0;
+ }
+ else {
+ upButton.className="Btn1Dis";
+ upButton.disabled=1;
+ }
+ if (canDown) {
+ downButton.className="Btn1";
+ downButton.disabled=0;
+ }
+ else {
+ downButton.className="Btn1Dis";
+ downButton.disabled=1;
+ }
+ }
+
+ function setNewPrios(list, field) {
+ var newPrioString = list.options[0].text;
+ for (i = 1; i < list.options.length; i++) {
+ newPrioString=newPrioString+"|"+list.options[i].text;
+ }
+ field.value = newPrioString;
+ }
+ // -->
+ </script>
+
+ <jato:content name="FirstShow">
+
+ <cc:secondarymasthead name="Masthead" bundleID="apocBundle"
+ src="/apoc/images/popuptitle.gif"/>
+
+ <jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+ </jato:content>
+
+ <cc:form name="PrioForm" method="post">
+
+ <cc:pagetitle name="SearchParamsTitle"
+ bundleID="apocBundle"
+ pageTitleText="APOC.prios.title"
+ pageTitleHelpMessage="APOC.prios.help"
+ showPageTitleSeparator="true"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="true">
+ <br>
+ <center>
+ <table title="" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td valign="top">
+ <cc:selectablelist name="PrioritiesList"
+ bundleID="apocBundle"
+ dynamic="true"
+ multiple="true"
+ size="15"
+ onChange="javascript:ableButtons(this, document.PrioForm['NavigationAreaPoolPriorities.MoveUp'], document.PrioForm['NavigationAreaPoolPriorities.MoveDown']); return false;"/>
+ </td>
+ <td align="center" valign="top">
+ <table title="" class="AddRmvBtnTbl" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td align="center"><img src="/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="1" width="10" /></td>
+ <td style="width:120px" align="center">
+ <div class="AddRmvHrzWin">
+ <cc:button name="MoveUp"
+ bundleID="apocBundle"
+ defaultValue="APOC.prios.up"
+ type="primary"
+ disabled="true"
+ onClick="javascript:moveup(document.PrioForm['NavigationAreaPoolPriorities.PrioritiesList']); ableButtons(document.PrioForm['NavigationAreaPoolPriorities.PrioritiesList'], this, document.PrioForm['NavigationAreaPoolPriorities.MoveDown']); return false;"/>
+ </div>
+ <div class="AddRmvHrzWin">
+ <cc:button name="MoveDown"
+ bundleID="apocBundle"
+ defaultValue="APOC.prios.down"
+ type="primary"
+ disabled="true"
+ onClick="javascript:movedown(document.PrioForm['NavigationAreaPoolPriorities.PrioritiesList']); ableButtons(document.PrioForm['NavigationAreaPoolPriorities.PrioritiesList'], document.PrioForm['NavigationAreaPoolPriorities.MoveUp'], this); return false;"/>
+ </div>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </center>
+ </cc:pagetitle>
+
+ <cc:hidden name="NewPrios"/>
+ <cc:hidden name="ViewLinkHidden"/>
+
+ </cc:form>
+
+ </jato:content>
+
+ </cc:header>
+
+</jato:useViewBean>
diff --git a/webconsole/jsp/profiles/EditPrioritiesTitle.xml b/webconsole/jsp/profiles/EditPrioritiesTitle.xml
new file mode 100644
index 0000000..0178981
--- /dev/null
+++ b/webconsole/jsp/profiles/EditPrioritiesTitle.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="OkButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="bundleID" value="apocBundle"/>
+ <attribute name="defaultValue" value="APOC.policysets.save"/>
+ <attribute name="type" value="primary"/>
+ <attribute name="onClick" value="javascript:setNewPrios(document.PrioForm['NavigationAreaPoolPriorities.PrioritiesList'], document.PrioForm['NavigationAreaPoolPriorities.NewPrios']); return true"/>
+ </cc>
+ <cc name="CancelButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="bundleID" value="apocBundle"/>
+ <attribute name="defaultValue" value="APOC.button.cancel"/>
+ <attribute name="type" value="secondary"/>
+ <attribute name="onClick" value="javascript:self.opener.parent.navigation.document.NavigationAreaForm['NavigationArea.PageletView.NavigationAreaPool.PoolTableView.ActionMenu'].options.selectedIndex=0; javascript:self.opener.parent.navigation.focus(); javascript:top.window.close(); return false;" />
+ </cc>
+ </pagebuttons>
+</pagetitle>
diff --git a/webconsole/jsp/profiles/GeneralSettings.jsp b/webconsole/jsp/profiles/GeneralSettings.jsp
new file mode 100644
index 0000000..355593d
--- /dev/null
+++ b/webconsole/jsp/profiles/GeneralSettings.jsp
@@ -0,0 +1,69 @@
+<%@ page info="ContentAreaPolicies" language="java" %>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+<%@taglib uri="/WEB-INF/apoc.tld" prefix="apoc"%>
+
+<jato:pagelet>
+ <jato:containerView name="GeneralSettings">
+
+ <script type="text/javascript">
+ updateButtonsArea();
+ </script>
+
+ <cc:pagetitle name="PageTitle" bundleID="apocBundle"
+ pageTitleText="APOC.profilewnd.general.title"
+ showPageTitleSeparator="true"
+ pageTitleHelpMessage="APOC.profilewnd.general.help"
+ showPageButtonsTop="true"
+ showPageButtonsBottom="false">
+
+ <!-- Property Sheet -->
+ <cc:propertysheet name="Properties" showJumpLinks="false" bundleID="apocBundle"/>
+ <cc:hidden name="OriginalName" elementId="originalName" />
+ <cc:hidden name="OriginalComment" elementId="originalComment" />
+ <cc:hidden name="IsNewProfile" elementId="isNewProfile" />
+ </cc:pagetitle>
+ <script type="text/javascript">
+ <!--
+ if (document.getElementById("isNewProfile").value == "true") {
+ enableSaveButtons();
+ }
+ // -->
+ </script>
+ </jato:containerView>
+</jato:pagelet>
diff --git a/webconsole/jsp/profiles/GeneralSettingsPageTitle.xml b/webconsole/jsp/profiles/GeneralSettingsPageTitle.xml
new file mode 100644
index 0000000..503bffe
--- /dev/null
+++ b/webconsole/jsp/profiles/GeneralSettingsPageTitle.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="SaveButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="primary"/>
+ <attribute name="defaultValue" value="APOC.profilewnd.buttons.save"/>
+ <attribute name="dynamic" value="true"/>
+ <attribute name="disabled" value="true"/>
+ <attribute name="onClick" value="javascript:saveChanges(); return false;"/>
+ </cc>
+ <cc name="CloseButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="secondary"/>
+ <attribute name="defaultValue" value="APOC.profilewnd.buttons.close"/>
+ <attribute name="title" value="APOC.profilewnd.buttons.close.help"/>
+ <attribute name="elementId" value="CloseEditorButton" />
+ <attribute name="onClick" value="javascript: return closeEditorWindow();"/>
+ </cc>
+ </pagebuttons>
+</pagetitle> \ No newline at end of file
diff --git a/webconsole/jsp/profiles/GeneralSettingsPropertySheet.xml b/webconsole/jsp/profiles/GeneralSettingsPropertySheet.xml
new file mode 100644
index 0000000..8298e97
--- /dev/null
+++ b/webconsole/jsp/profiles/GeneralSettingsPropertySheet.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE propertysheet SYSTEM "tags/dtd/propertysheet.dtd">
+
+<propertysheet>
+ <section name="entire" defaultValue=" ">
+ <property>
+ <label name="NameLabel" defaultValue="APOC.profilewnd.general.name"/>
+ <cc name="Name" tagclass="com.sun.web.ui.taglib.html.CCTextFieldTag">
+ <attribute name="size" value="80"/>
+ <attribute name="onKeyPress" value="javascript:setTimeout('updateGeneralSettingsSaveStatus()', 0); return true;"/>
+ <attribute name="onChange" value="javascript:setTimeout('updateGeneralSettingsSaveStatus()', 0); return true;"/>
+ <attribute name="onFocus" value="javascript:select(); return true;"/>
+ </cc>
+ </property>
+ <property>
+ <label name="CommentLabel" defaultValue="APOC.profilewnd.general.comment"/>
+ <cc name="Comment" tagclass="com.sun.web.ui.taglib.html.CCTextAreaTag">
+ <attribute name="cols" value="100"/>
+ <attribute name="rows" value="12"/>
+ <attribute name="onKeyPress" value="javascript:setTimeout('updateGeneralSettingsSaveStatus()', 0); return true;"/>
+ <attribute name="onChange" value="javascript:setTimeout('updateGeneralSettingsSaveStatus()', 0); return true;"/>
+ </cc>
+ </property>
+ <property>
+ <label name="AuthorLabel" defaultValue="APOC.profilewnd.general.author"/>
+ <cc name="Author" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag">
+ <attribute name="defaultValue" value="N.N."/>
+ </cc>
+ </property>
+ <property>
+ <label name="ModifiedDateLabel" defaultValue="APOC.profilewnd.general.modified"/>
+ <cc name="ModifiedDate" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag">
+ <attribute name="defaultValue" value="N.N."/>
+ </cc>
+ </property>
+ </section>
+</propertysheet>
diff --git a/webconsole/jsp/profiles/Import.jsp b/webconsole/jsp/profiles/Import.jsp
new file mode 100644
index 0000000..cde8424
--- /dev/null
+++ b/webconsole/jsp/profiles/Import.jsp
@@ -0,0 +1,181 @@
+<%@ page info="ProfilesImport" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+<jato:useViewBean className="com.sun.apoc.manager.ProfilesImportViewBean">
+
+<!-- Header -->
+<cc:header pageTitle="APOC.groupimport.title"
+ bundleID="apocBundle"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ copyrightYear="2003"
+ isPopup="true"
+ onLoad="javascript:onLoadAction()">
+
+<script type="text/javascript">
+<!--
+var existingNames = "<cc:text name="ExistingNames"/>";
+var overwrite = "<cc:text name="OverwriteAlert"/>";
+
+var m_OpenerTop = top.opener;
+while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+}
+m_OpenerTop = m_OpenerTop.top;
+
+setInterval("setWindowHandle()", 1000);
+function setWindowHandle() {
+ m_OpenerTop.m_ImportWindow= top;
+}
+
+function onLoadAction() {
+ <cc:text name="ConditionalJS" defaultValue="return true;" />
+}
+
+function isNameExisting() {
+ var newName = document.forms[0]['filename'].value;
+ var pos = newName.lastIndexOf("\\");
+ if (pos == -1) {
+ pos = newName.lastIndexOf("/");
+ }
+
+ if (pos != -1) {
+ newName = newName.substring(pos + 1, newName.length);
+ }
+
+ var dotLoc = newName.lastIndexOf(".");
+ if (dotLoc != -1) {
+ newName = newName.substring(0, dotLoc);
+ }
+
+ var names = existingNames.split('|');
+ for (i=0; i < names.length; i++) {
+ if (newName == names[i]) {
+ return true;
+ }
+ }
+ return false;
+}
+
+// -->
+</script>
+
+<jato:content name="ConditionalForm">
+
+<!-- Secondary Masthead -->
+<cc:secondarymasthead name="Masthead" bundleID="apocBundle" />
+
+<!-- /apoc/jsp/UploadFile.jsp -->
+<form action="../manager/ProfilesImport?ProfilesImport.TabHref=a"
+ enctype="multipart/form-data"
+ method="post"
+ target="importWindow"
+ onSubmit="javascript:document.forms[0]['l10nFilename'].value=document.forms[0]['filename'].value; return true;"
+ name="importForm">
+
+<jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+</jato:content>
+
+<!-- PageTitle -->
+<cc:pagetitle name="ImportTitle" bundleID="apocBundle"
+ pageTitleText="APOC.groupimport.title"
+ pageTitleHelpMessage="APOC.groupimport.help"
+ showPageTitleSeparator="true"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="true">
+
+<!-- non-lockhart code to implement the file upload facility -->
+<table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><img src="/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="30" width="1" /></td>
+ </tr>
+ <tr>
+ <td>
+ <div class="MstDivUsr">
+ <span class="ChoLblTxt">
+ <label for="fileinput">
+ &nbsp;&nbsp;&nbsp;&nbsp;<cc:text name="ChooseText" bundleID="apocBundle"/>
+ </label>
+ </span>
+ &nbsp;&nbsp;
+ <input type="hidden" name="l10nFilename" value="" />
+ <input name="filename" id="fileinput" type="file"
+ onclick="javascript:setTimeout('switchStateImportButton()', 0)"
+ onkeypress="javascript:setTimeout('switchStateImportButton()', 0)"
+ value="<cc:text name='DefaultValue' />"/>
+ </div>
+ </td>
+ </tr>
+</table>
+</p>
+
+</cc:pagetitle>
+
+ <script type="text/javascript">
+ <!--
+ function switchStateImportButton() {
+ var value = document.forms[0]['filename'].value;
+ if(value == "") {
+ document.forms[0]['ProfilesImport.ImportButton'].disabled=true;
+ document.forms[0]['ProfilesImport.ImportButton'].className="Btn1Dis";
+ } else {
+ document.forms[0]['ProfilesImport.ImportButton'].disabled=false;
+ document.forms[0]['ProfilesImport.ImportButton'].className="Btn1";
+ }
+ }
+
+ switchStateImportButton()
+ // -->
+ </script>
+
+
+</form>
+
+</jato:content>
+
+</cc:header>
+</jato:useViewBean>
+
diff --git a/webconsole/jsp/profiles/ImportTitle.xml b/webconsole/jsp/profiles/ImportTitle.xml
new file mode 100644
index 0000000..44a7e50
--- /dev/null
+++ b/webconsole/jsp/profiles/ImportTitle.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="ImportButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="bundleID" value="apocBundle"/>
+ <attribute name="defaultValue" value="APOC.groupimport.import"/>
+ <attribute name="type" value="primary"/>
+ <attribute name="onClick" value="javascript:if (isNameExisting()) { return confirm(overwrite);} else {return true;};" />
+ </cc>
+ <cc name="CancelButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="bundleID" value="apocBundle"/>
+ <attribute name="defaultValue" value="APOC.button.cancel"/>
+ <attribute name="type" value="secondary"/>
+ <attribute name="onClick" value="javascript:window.close(); return false;" />
+ </cc>
+ </pagebuttons>
+</pagetitle>
diff --git a/webconsole/jsp/profiles/Login.jsp b/webconsole/jsp/profiles/Login.jsp
new file mode 100644
index 0000000..a37d240
--- /dev/null
+++ b/webconsole/jsp/profiles/Login.jsp
@@ -0,0 +1,111 @@
+<%@page info="Root Onepane" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.SelectContextViewBean">
+
+<%-- Header --%>
+<cc:header pageTitle="Configuration Repository Selection" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+ <script type="text/javascript">
+ <!--
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_CopyMoveContextLoginWindow= top;
+ }
+
+ function handleMenuChange() {
+ var form=document.ReposSelectForm;
+ if (form != null) {
+ form.action='/apoc/manager/SelectContext?ContextChange=true&ContextName=';
+ form.submit();
+ }
+ }
+
+ -->
+</script>
+
+<a name="top" id="top"/>
+
+<cc:secondarymasthead name="Masthead" bundleID="apocBundle"/>
+
+<cc:form name="ReposSelectForm" method="post" defaultCommandChild="LoginButton">
+
+ <jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+ </jato:content>
+
+ <cc:pagetitle name="ContextLoginTitle"
+ pageTitleText="APOC.contexts.login.title"
+ pageTitleHelpMessage="APOC.select.contexts.login.help"
+ showPageTitleSeparator="true"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="true"
+ bundleID="apocBundle">
+
+ <cc:propertysheet name="ContextLoginSheet"
+ bundleID="apocBundle"
+ showJumpLinks="false"/>
+
+ </cc:pagetitle>
+
+ <cc:hidden name="SelectedContext"/>
+
+</cc:form>
+
+</cc:header>
+
+</jato:useViewBean>
+
diff --git a/webconsole/jsp/profiles/LoginSheet.xml b/webconsole/jsp/profiles/LoginSheet.xml
new file mode 100644
index 0000000..61f0abf
--- /dev/null
+++ b/webconsole/jsp/profiles/LoginSheet.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE propertysheet SYSTEM "tags/dtd/propertysheet.dtd">
+
+<propertysheet>
+ <section name="login" defaultValue=" ">
+ <property>
+ <label name="ContextLabel" defaultValue="APOC.contexts.login.context"/>
+ <cc name="ContextMenu" tagclass="com.sun.web.ui.taglib.html.CCDropDownMenuTag">
+ <attribute name="onChange" value="javascript: handleMenuChange(); return false;"/>
+ </cc>
+ </property>
+ <property>
+ <label name="UsernameLabel" defaultValue="APOC.login.username"/>
+ <cc name="UsernameText" tagclass="com.sun.web.ui.taglib.html.CCTextFieldTag">
+ <attribute name="defaultValue" value=""/>
+ </cc>
+ </property>
+ <property>
+ <label name="PasswordLabel" defaultValue="APOC.login.password"/>
+ <cc name="PasswordText" tagclass="com.sun.web.ui.taglib.html.CCPasswordTag">
+ <attribute name="defaultValue" value=""/>
+ </cc>
+ </property>
+ <property>
+ <cc name="LoginButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.button.OK"/>
+ <attribute name="type" value="default"/>
+ </cc>
+ <cc name="CancelButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.button.cancel"/>
+ <attribute name="type" value="secondary"/>
+ <attribute name="onClick" value="javascript: window.close(); return false;"/>
+ </cc>
+ </property>
+ </section>
+</propertysheet>
diff --git a/webconsole/jsp/profiles/LoginTitle.xml b/webconsole/jsp/profiles/LoginTitle.xml
new file mode 100644
index 0000000..be90673
--- /dev/null
+++ b/webconsole/jsp/profiles/LoginTitle.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="LoginButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.button.OK"/>
+ <attribute name="type" value="default"/>
+ </cc>
+ <cc name="CancelButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.button.cancel"/>
+ <attribute name="type" value="secondary"/>
+ </cc>
+ </pagebuttons>
+</pagetitle>
diff --git a/webconsole/jsp/profiles/New.jsp b/webconsole/jsp/profiles/New.jsp
new file mode 100644
index 0000000..22342ae
--- /dev/null
+++ b/webconsole/jsp/profiles/New.jsp
@@ -0,0 +1,80 @@
+<%@ page info="Manager" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.ProfilesNewViewBean">
+
+ <cc:header pageTitle="Create a new Profile" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle" isPopup="true">
+
+ <cc:secondarymasthead name="Masthead" bundleID="apocBundle"
+ src="/apoc/images/popuptitle.gif"/>
+
+ <cc:form name="NewForm" method="post" onSubmit="javascript:return false;">
+
+ <jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+ </jato:content>
+
+ <cc:pagetitle name="NewTitle"
+ bundleID="apocBundle"
+ pageTitleText="Create a New Profile"
+ pageTitleHelpMessage="Please enter the name and (optional) a comment to create a new profile."
+ showPageTitleSeparator="true"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="true">
+
+
+ <cc:propertysheet name="NewSheet"
+ bundleID="apocBundle"
+ showJumpLinks="false"/>
+
+ </cc:pagetitle>
+ </cc:form>
+ </cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/profiles/NewSheet.xml b/webconsole/jsp/profiles/NewSheet.xml
new file mode 100644
index 0000000..716af54
--- /dev/null
+++ b/webconsole/jsp/profiles/NewSheet.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE propertysheet SYSTEM "tags/dtd/propertysheet.dtd">
+
+<propertysheet>
+ <section name="new" defaultValue=" ">
+ <property>
+ <label name="ProfileLabel" defaultValue="APOC.profilewnd.general.namecol"/>
+ <cc name="ProfileText" tagclass="com.sun.web.ui.taglib.html.CCTextFieldTag">
+ <attribute name="defaultValue" value="NewProfile"/>
+ <attribute name="size" value="80"/>
+ </cc>
+ </property>
+ <property>
+ <label name="CommentLabel" defaultValue="APOC.profilewnd.general.commentcol"/>
+ <cc name="CommentText" tagclass="com.sun.web.ui.taglib.html.CCTextAreaTag">
+ <attribute name="cols" value="100"/>
+ <attribute name="rows" value="12"/>
+ </cc>
+ </property>
+ </section>
+</propertysheet>
diff --git a/webconsole/jsp/profiles/NewTitle.xml b/webconsole/jsp/profiles/NewTitle.xml
new file mode 100644
index 0000000..60703c0
--- /dev/null
+++ b/webconsole/jsp/profiles/NewTitle.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="OkButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="OK"/>
+ <attribute name="Title" value="Creates a new profile with the values given and closes this window."/>
+ <attribute name="onClick" value="javascript:self.opener.submitNew(document.NewForm['ProfilesNew.ProfileText'].value, document.NewForm['ProfilesNew.CommentText'].value, 'dummy'); window.close(); return false;"/>
+ <attribute name="type" value="default"/>
+ </cc>
+ <cc name="CancelButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="Cancel"/>
+ <attribute name="title" value="Discards all entered values and closes this window."/>
+ <attribute name="onClick" value="javascript:window.close(); return false;"/>
+ <attribute name="type" value="primary"/>
+ </cc>
+ </pagebuttons>
+</pagetitle>
diff --git a/webconsole/jsp/profiles/PoliciesFrameset.jsp b/webconsole/jsp/profiles/PoliciesFrameset.jsp
new file mode 100644
index 0000000..3f73a4c
--- /dev/null
+++ b/webconsole/jsp/profiles/PoliciesFrameset.jsp
@@ -0,0 +1,64 @@
+<%@ page info="ContentAreaPolicies" language="java" %>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+<%@taglib uri="/WEB-INF/apoc.tld" prefix="apoc"%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.PoliciesFramesetViewBean">
+
+<html>
+
+<frameset cols="220px, *" border="2" framespacing="2">
+ <frame name="tree" title="navigation"
+ scrolling="AUTO" marginwidth="0" marginheight="0" border="1"
+ framespacing="1" src="/apoc/manager/ProfileWindowSettingsTree">
+ <frame name="con" title="content" scrolling="AUTO"
+ marginwidth="0" marginheight="0" border="1" framespacing="1"
+ src="../manager/PolicySettingsFrameset"/>
+</frameset>
+
+<noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ No frame support!
+ </body>
+</noframes>
+
+</html>
+</jato:useViewBean>
diff --git a/webconsole/jsp/profiles/PrioritizationTable.xml b/webconsole/jsp/profiles/PrioritizationTable.xml
new file mode 100644
index 0000000..8dc10af
--- /dev/null
+++ b/webconsole/jsp/profiles/PrioritizationTable.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <actions>
+ <cc name="UpButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="dynamic" value="true" />
+ <attribute name="disabled" value="false" />
+ <attribute name="defaultValue" value="Increase Priority" />
+ <attribute name="title" value="Increases Priority." />
+ </cc>
+ <cc name="DownButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="dynamic" value="true" />
+ <attribute name="disabled" value="false" />
+ <attribute name="defaultValue" value="Decrease Priority" />
+ <attribute name="title" value="Decreases Priority." />
+ </cc>
+ </actions>
+ <column name="NameColumn" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="NameHref" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="onClick" value="javascript:openProfileEditorWindow(this); return false;" />
+ <cc name="NameText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ </column>
+ <column name="AuthorColumn" extrahtml="nowrap='nowrap'">
+ <cc name="AuthorText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+ <column name="LastModifiedColumn" extrahtml="nowrap='nowrap'">
+ <cc name="LastModifiedText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+</table>
diff --git a/webconsole/jsp/profiles/ProfileWindow.jsp b/webconsole/jsp/profiles/ProfileWindow.jsp
new file mode 100644
index 0000000..cfdf12a
--- /dev/null
+++ b/webconsole/jsp/profiles/ProfileWindow.jsp
@@ -0,0 +1,79 @@
+<%@page info="ProfileWindow" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+<jato:useViewBean className="com.sun.apoc.manager.ProfileWindowViewBean">
+
+<!-- Header -->
+<cc:header pageTitle="" copyrightYear="2004"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle" isPopup="true" onLoad="updateTitle();" isPopup="true">
+
+<script type="text/javascript" src="/apoc/js/ProfileWindow.js"></script>
+<script type="text/javascript">
+<!--
+ function updateTitle() {
+ window.parent.document.title="<cc:text name="Title"/>";
+
+ }
+ <cc:text name="TabChangeScript"/>
+-->
+</script>
+
+<!-- Masthead -->
+<cc:secondarymasthead name="SecondaryMH" bundleID="apocBundle"/>
+
+<%-- Tabs area --%>
+<cc:tabs name="ProfileWindowTabs" bundleID="apocBundle"/>
+
+<cc:form name="ProfileForm" method="post" defaultCommandChild="DefaultCommand">
+
+<%-- Alert --%>
+<jato:content name="AlertArea">
+ <div class="ConMgn">
+ <br/><cc:alertinline name="Alert" bundleID="apocBundle"/>
+ </div>
+</jato:content>
+
+<!-- The actual content depending on the selected tab -->
+<jato:containerView name="TabContent"/>
+
+</cc:form>
+</cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/profiles/ProfileWindowFrameset.jsp b/webconsole/jsp/profiles/ProfileWindowFrameset.jsp
new file mode 100644
index 0000000..d28f2ab
--- /dev/null
+++ b/webconsole/jsp/profiles/ProfileWindowFrameset.jsp
@@ -0,0 +1,95 @@
+<%@page info="Profile Window Frameset" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.ProfileWindowFramesetViewBean">
+
+<html>
+
+ <head>
+ <title><cc:text name="Title"/></title>
+ </head>
+ <script type="text/javascript">
+ <!--
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ProfileWindow= top;
+ }
+ // -->
+ </script>
+<jato:content name="TabsOnly">
+ <frameset rows="95px, *" border="2" framespacing="2">
+ <frame name="tabs" title="tabs" noresize
+ scrolling="no" marginwidth="0" marginheight="0" border="1"
+ framespacing="1" src="/apoc/manager/ProfileWindow">
+ <frame name="content" title="Content" scrolling="AUTO"
+ marginwidth="0" marginheight="0" border="1" framespacing="1"
+ src="../manager/PoliciesFrameset"/>
+ </frameset>
+</jato:content>
+
+<jato:content name="TabsAndButtons">
+ <frameset rows="*, 45px" border="2" framespacing="2">
+ <frame name="contents" title="navigation"
+ scrolling="AUTO" marginwidth="0" marginheight="0" border="1"
+ framespacing="1" src="/apoc/manager/ProfileWindow">
+ <frame name="buttons" title="content" scrolling="AUTO"
+ marginwidth="0" marginheight="0" border="1" framespacing="1"
+ src="../manager/PolicySettingsButtons"/>
+ </frameset>
+</jato:content>
+
+<noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ No frame support!
+ </body>
+</noframes>
+
+
+</html>
+</jato:useViewBean>
+
+
+
diff --git a/webconsole/jsp/profiles/SearchButtons.jsp b/webconsole/jsp/profiles/SearchButtons.jsp
new file mode 100644
index 0000000..aa0a40f
--- /dev/null
+++ b/webconsole/jsp/profiles/SearchButtons.jsp
@@ -0,0 +1,62 @@
+<%@ page info="Entity Search Masthead" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.ProfilesSearchButtonsViewBean">
+
+<cc:header pageTitle="APOC.navigation.search"
+ copyrightYear="2002"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+ <cc:form name="ButtonsForm" method="post">
+ <p style="text-align:right;">
+ <cc:button name="CloseButton"
+ bundleID="apocBundle"
+ type="secondary"
+ defaultValue="APOC.button.close"
+ onClick="top.window.close(); return false;"
+ tabIndex="1" />
+ &nbsp;&nbsp;
+ </p>
+ </cc:form>
+
+</cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/profiles/SearchIndex.jsp b/webconsole/jsp/profiles/SearchIndex.jsp
new file mode 100644
index 0000000..4fe14fa
--- /dev/null
+++ b/webconsole/jsp/profiles/SearchIndex.jsp
@@ -0,0 +1,99 @@
+<%@page info="Entity Find Root Frameset" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.ProfilesSearchIndexViewBean">
+
+<html>
+ <head>
+ <title><cc:text name ="SearchProfileTitle" defaultValue="" bundleID="apocBundle"/></title>
+ </head>
+ <script type="text/javascript">
+ <!--
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ProfileSearchWindow= top;
+ }
+ // -->
+ </script>
+ <frameset rows="140, *, 50" border="2" framespacing="2">
+
+ <frame name="parameters"
+ title="Parameters"
+ scrolling="AUTO"
+ marginwidth="0"
+ marginheight="0"
+ border="1"
+ framespacing="1"
+ src="/apoc/manager/ProfilesSearchParameter">
+
+ <frame name="results"
+ title="Results"
+ scrolling="AUTO"
+ marginwidth="0"
+ marginheight="0"
+ border="1"
+ framespacing="1"
+ src="/apoc/manager/ProfilesSearchResult?ProfilesSearchResult.SearchHref=a">
+
+ <frame name="buttons"
+ title="Buttons"
+ scrolling="AUTO"
+ marginwidth="0"
+ marginheight="0"
+ border="1"
+ framespacing="1"
+ src="/apoc/manager/ProfilesSearchButtons">
+
+ </frameset>
+
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ This page needs frame support put I18N here
+ </body>
+ </noframes>
+
+</html>
+</jato:useViewBean>
diff --git a/webconsole/jsp/profiles/SearchParameter.jsp b/webconsole/jsp/profiles/SearchParameter.jsp
new file mode 100644
index 0000000..94273c9
--- /dev/null
+++ b/webconsole/jsp/profiles/SearchParameter.jsp
@@ -0,0 +1,112 @@
+<%@ page info="Navigator" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+ <jato:useViewBean className="com.sun.apoc.manager.ProfilesSearchParameterViewBean">
+
+ <cc:header pageTitle="APOC.navigation.search" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true"
+ onLoad="javascript:handleLoad(); return true">
+
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+ <script type="text/javascript">
+ <!--
+ var m_sOldFindString = "";
+ var m_OpenerTop;
+
+ function handleLoad() {
+ document.forms[0]['ProfilesSearchParameter.SearchText'].focus();
+ m_sOldFindString = document.forms[0]['ProfilesSearchParameter.SearchText'].value;
+ m_OpenerTop=top.opener.top;
+ }
+
+ function handleSubmit() {
+ document.forms[0]['ProfilesSearchParameter.SearchButton'].className='Btn1Dis';
+ document.forms[0]['ProfilesSearchParameter.SearchButton'].disabled='true';
+
+ var resultsForm = top.results.document.forms[0];
+ var newDoc = top.results.document.open("text/html", "replace");
+ var sMarkup = '<html><head><title>empty</title></head><body>';
+ sMarkup += '<form name="ResultForm" method="post" action="../manager/ProfilesSearchResult">';
+ sMarkup += '<input type="hidden" name="ProfilesSearchResult.SearchString" value="*" />';
+ sMarkup += '<input type="hidden" name="jato.defaultCommand" value="SearchButton" />';
+ sMarkup += '<input type="hidden" name="com_sun_web_ui_popup" value="true" />';
+ sMarkup += '</form></body></html>';
+ newDoc.write(sMarkup);
+ newDoc.close();
+
+ resultsForm = top.results.document.forms[0];
+ resultsForm['ProfilesSearchResult.SearchString'].value=document.forms[0]['ProfilesSearchParameter.SearchText'].value;
+ resultsForm.submit();
+ }
+
+ function handlePressedKey() {
+ var sNewFindString =document.forms[0]['ProfilesSearchParameter.SearchText'].value;
+ if (sNewFindString!=m_sOldFindString) {
+ m_sOldFindString=sNewFindString;
+ document.forms[0]['ProfilesSearchParameter.SearchButton'].disabled='';
+ document.forms[0]['ProfilesSearchParameter.SearchButton'].className='Btn1Def';
+ }
+ }
+ // -->
+ </script>
+
+ <cc:form name="ParameterForm"
+ method="post"
+ onSubmit="javascript: handleSubmit(); return false"
+ defaultCommandChild="SearchButton" >
+
+ <cc:secondarymasthead name="Masthead"
+ src="/apoc/images/popuptitle.gif"
+ alt="APOC.masthead.altText"
+ bundleID="apocBundle"/>
+
+ <cc:propertysheet name="SearchParams"
+ bundleID="apocBundle"
+ showJumpLinks="false"/>
+
+ </cc:form>
+
+ </cc:header>
+
+</jato:useViewBean>
diff --git a/webconsole/jsp/profiles/SearchParameter.xml b/webconsole/jsp/profiles/SearchParameter.xml
new file mode 100644
index 0000000..1df564e
--- /dev/null
+++ b/webconsole/jsp/profiles/SearchParameter.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE propertysheet SYSTEM "tags/dtd/propertysheet.dtd">
+
+<propertysheet>
+ <section name="params" defaultValue=" ">
+ <property span="true">
+ <cc name="SearchText" tagclass="com.sun.web.ui.taglib.html.CCTextFieldTag" >
+ <attribute name="defaultValue" value="*"/>
+ <attribute name="onKeyPress" value="javascript:setTimeout('handlePressedKey()',0); return true"/>
+ </cc>
+ <cc name="SearchButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag" >
+ <attribute name="bundleID" value="apocBundle"/>
+ <attribute name="defaultValue" value="APOC.profile.search.profile"/>
+ <attribute name="type" value="default"/>
+ </cc>
+ </property>
+ </section>
+</propertysheet>
diff --git a/webconsole/jsp/profiles/SearchResult.jsp b/webconsole/jsp/profiles/SearchResult.jsp
new file mode 100644
index 0000000..b13792d
--- /dev/null
+++ b/webconsole/jsp/profiles/SearchResult.jsp
@@ -0,0 +1,108 @@
+<%@ page info="Navigator" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+ <jato:useViewBean className="com.sun.apoc.manager.ProfilesSearchResultViewBean">
+
+ <cc:header pageTitle="APOC.navigation.search" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+ <cc:form name="ResultForm" method="post" defaultCommandChild="SearchButton">
+
+ <jato:content name="Help">
+
+ <div class="content-layout">
+ <BR>
+ <cc:text name="HelpText1" defaultValue="APOC.search.help.text1" bundleID="apocBundle"/>
+ <BR><BR>
+ <cc:text name="HelpText2" defaultValue="APOC.search.help.text2" bundleID="apocBundle"/>
+ </div>
+
+ </jato:content>
+
+ <jato:content name="ProfilesFound">
+ <br><br>
+ <table width='100%' cellspacing='0' cellpadding='0'>
+ <tr>
+ <td width='2%'><br></td>
+ <td width='96%'>
+ <table width='100%' cellspacing='0' cellpadding='0'>
+ <jato:tiledView name="ProfilesSearchTiledView">
+ <tr>
+ <td style='border-right:solid 1px #D8D8D8; padding: 1px 4px 1px 4px'>
+ <cc:href name="Result1Href" onClick="javascript:top.opener.profileSearchCallback(extractByDelimiters('=', '&', this.href)); top.close(); return false;">
+ <cc:text name="Result1Text"/>
+ </cc:href>
+ </td>
+ <td style='border-right:solid 1px #D8D8D8; padding: 1px 4px 1px 4px'>
+ <cc:href name="Result2Href" onClick="javascript:top.opener.profileSearchCallback(extractByDelimiters('=', '&', this.href)); top.close(); return false;">
+ <cc:text name="Result2Text"/>
+ </cc:href>
+ </td>
+ <td style='padding: 1px 4px 1px 4px'>
+ <cc:href name="Result3Href" onClick="javascript:top.opener.profileSearchCallback(extractByDelimiters('=', '&', this.href)); top.close(); return false;">
+ <cc:text name="Result3Text"/>
+ </cc:href>
+ </td>
+ </tr>
+ </jato:tiledView>
+ </table>
+ </td>
+ <td width='2%'><br></td>
+ </tr>
+ </table>
+ </jato:content>
+
+ <jato:content name="NoEntitiesFound">
+ <br><br>
+ <center><b>No profiles found.</b></center>
+ </jato:content>
+
+ <cc:hidden name="SearchString" />
+
+ </cc:form>
+
+ </cc:header>
+
+</jato:useViewBean>
diff --git a/webconsole/jsp/profiles/SearchTable.xml b/webconsole/jsp/profiles/SearchTable.xml
new file mode 100644
index 0000000..3b0b584
--- /dev/null
+++ b/webconsole/jsp/profiles/SearchTable.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <column name="NameColumn1" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="NameHref1" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="onClick" value="javascript:top.opener.profileSearchCallback(extractByDelimiters('=', '&quot;', this.href)); top.close(); return false;"/>
+ <cc name="NameText1" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ </column>
+ <column name="NameColumn2" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="NameHref2" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="onClick" value="javascript:top.opener.profileSearchCallback(extractByDelimiters('=', '&quot;', this.href)); top.close(); return false;"/>
+ <cc name="NameText2" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ </column>
+ <column name="NameColumn3" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="NameHref3" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="SubmitFormData" value="true" />
+ <attribute name="onClick" value="javascript:top.opener.profileSearchCallback(extractByDelimiters('=', '&quot;', this.href)); top.close(); return false;"/>
+ <cc name="NameText3" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ </column>
+</table>
diff --git a/webconsole/jsp/profiles/SettingsSummary.jsp b/webconsole/jsp/profiles/SettingsSummary.jsp
new file mode 100644
index 0000000..adc897b
--- /dev/null
+++ b/webconsole/jsp/profiles/SettingsSummary.jsp
@@ -0,0 +1,196 @@
+<%@ page info="ContentAreaPolicies" language="java" %>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+<%@taglib uri="/WEB-INF/apoc.tld" prefix="apoc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.SettingsSummaryViewBean">
+
+<!-- Header -->
+<cc:header pageTitle="APOC.configrep.title" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle" isPopup="true" >
+<style type="text/css">
+table.Tbl td.TblTdLytNoBrd {border-top:solid 0px #a8b2b6;border-right:solid 0px #a8b2b6;border-left:solid 0px #a8b2b6;border-bottom:solid 0px #a8b2b6;background-color:#E1E1E1}
+table.Tbl td.TblTdLytBrdRgtTop {border-top:solid 0px #a8b2b6;border-right:solid 1px #a8b2b6;border-left:solid 0px #a8b2b6;border-bottom:solid 0px #a8b2b6;background-color:#E1E1E1}
+a img {border-style:none}
+</style>
+<script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+
+<!-- Page Title (Packages) -->
+<cc:pagetitle name="PageTitle" bundleID="apocBundle"
+ pageTitleText="APOC.report.settings.summary.title"
+ pageTitleHelpMessage="APOC.profilewnd.summary.help"
+ showPageTitleSeparator="true"
+ showPageButtonsTop="true"
+ showPageButtonsBottom="false"/>
+
+<div class="TblMgn">
+ <p><h2><jato:text name="NoSections" fireDisplayEvents="true"/></h2></p>
+</div>
+
+<jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+</jato:content>
+<br/>
+
+<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
+<tr><td>
+ <jato:content name="DisplayTables">
+ <br/>
+ <br/>
+ <div class="TblMgn">
+ <table name="table2" id="table2" class="Tbl" style="border:solid 1px #a8b2b6;" cellpadding="0" cellspacing="0">
+ <caption class="TblTtlTxt" style="border-left:solid 0px;border-right:solid 0px;">
+ <cc:text name="SettingsSummaryTitle" bundleID="apocBundle"/>
+ </caption>
+ <tr>
+ <th class="TblColHdrCl1" align="center" scope="col" width="6%" colspan="2" >
+ <span class="TblHdrTxt">
+ </span>
+ </th>
+ <th id="nameCol" class="TblColHdr" align="left" scope="col" width="32%">
+ <table class="TblHdrTbl" cellpadding="0" cellspacing="0">
+ <tr>
+ <td align="left">
+ <span class="TblHdrTxt">
+ <cc:text name="NameHeading" bundleID="apocBundle"/>
+ </span>
+ </td>
+ </tr>
+ </table>
+ </th>
+ <th id="valueCol" class="TblColHdr" align="left" scope="col" width="32%">
+ <table class="TblHdrTbl" cellpadding="0" cellspacing="0">
+ <tr>
+ <td align="left">
+ <span class="TblHdrTxt">
+ <cc:text name="ValueHeading" bundleID="apocBundle"/>
+ </span>
+ </td>
+ </tr>
+ </table>
+ </th>
+ <th id="statusCol" class="TblColHdr" align="left" scope="col" width="30%" nowrap="nowrap">
+ <table class="TblHdrTbl" cellpadding="0" cellspacing="0">
+ <tr>
+ <td align="left">
+ <span class="TblHdrTxt">
+ <cc:text name="StatusHeading" bundleID="apocBundle"/>
+ </span>
+ </td>
+ </tr>
+ </table>
+ </th>
+ </tr>
+
+ <!-- Beginning of table of settings display-->
+ <jato:tiledView name="CategoryTiledView" fireChildDisplayEvents="true">
+ <tr id='<cc:text name="RowID" bundleID="apocBundle"/>'>
+ <th class="TblColHdrCl1" align="left" scope="colgroup" colspan="5">
+ <!-- <a id='<cc:text name="TurnerID" bundleID="apocBundle"/>' href="" onClick="showhide(this); return false;">
+ <img id='<cc:text name="ImageID" bundleID="apocBundle"/>' src="/apoc/images/grouprow_expanded.gif" alt="Click to Collapse Group" width="10" height="11" />
+ </a> -->
+ <span class="TblHdrTxt">
+ <cc:text name="Category" bundleID="apocBundle"/>
+ </span>
+ </th>
+ </tr>
+ <jato:tiledView name="SectionTiledView" fireChildDisplayEvents="true">
+ <tr id='<cc:text name="RowID" bundleID="apocBundle"/>'>
+ <td class="TblTdLytBrdRgtTop" width="3%" nowrap="nowrap">
+ </td>
+ <th class="TblColHdrCl1" align="left" scope="colgroup" colspan="4">
+ <!-- <a id='<cc:text name="TurnerID" bundleID="apocBundle"/>' href="" onClick="showhide(this); return false;">
+ <img id='<cc:text name="ImageID" bundleID="apocBundle"/>' src="/apoc/images/grouprow_expanded.gif" alt="Click to Collapse Group" width="10" height="11" />
+ </a> -->
+ <span class="TblHdrTxt">
+ <cc:text name="Section" bundleID="apocBundle"/>
+ </span>
+ </th>
+ </tr>
+ <jato:tiledView name="PropertyTiledView" fireChildDisplayEvents="true">
+ <tr id='<cc:text name="RowID" bundleID="apocBundle"/>' >
+ <td class="TblTdLytNoBrd" align="left" width="3%"><span></span></td>
+ <td class="TblTdLytBrdRgtTop" align="left" width="3%"><span></span></td>
+ <td class="TblTdLyt" align="left">
+ <span>
+ <cc:text name="NameValue" bundleID="apocBundle"/>
+ </span>
+ </td>
+ <td class="TblTdLyt" align="left">
+ <span>
+ <cc:text name="ValueValue" bundleID="apocBundle"/>
+ </span>
+ </td>
+ <td class="TblTdLyt" align="left">
+ <cc:href name="ProfileValueHref" onClick="javascript:openProfileEditorWindowAtSection(this); return false;">
+ <span>
+ <cc:text name="StatusValue" bundleID="apocBundle"/>
+ </span>
+ </cc:href>
+ <br/>
+ <span>
+ <cc:text name="StatusValueProtection" bundleID="apocBundle"/>
+ </span>
+ </td>
+ </tr>
+ </jato:tiledView>
+ </jato:tiledView>
+ </jato:tiledView>
+ </table>
+ <p>&nbsp;</p>
+ <p>&nbsp;</p>
+ </div>
+ </jato:content>
+</td></tr>
+</table>
+
+
+</p>
+</cc:header>
+</jato:useViewBean>
+
+
diff --git a/webconsole/jsp/profiles/SettingsSummaryPageTitle.xml b/webconsole/jsp/profiles/SettingsSummaryPageTitle.xml
new file mode 100644
index 0000000..6e56d65
--- /dev/null
+++ b/webconsole/jsp/profiles/SettingsSummaryPageTitle.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="CloseButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="secondary"/>
+ <attribute name="defaultValue" value="APOC.profilewnd.buttons.close"/>
+ <attribute name="title" value="Closes this window."/>
+ <attribute name="elementId" value="CloseEditorButton" />
+ <attribute name="onClick" value="javascript: return closeEditorWindow();"/>
+ </cc>
+ </pagebuttons>
+</pagetitle> \ No newline at end of file
diff --git a/webconsole/jsp/remote/RemoteDesktopButtons.jsp b/webconsole/jsp/remote/RemoteDesktopButtons.jsp
new file mode 100644
index 0000000..5bdee94
--- /dev/null
+++ b/webconsole/jsp/remote/RemoteDesktopButtons.jsp
@@ -0,0 +1,74 @@
+<%@ page info="Manager" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+
+<jato:useViewBean className="com.sun.apoc.manager.RemoteDesktopButtonsViewBean">
+
+<!-- Header -->
+<cc:header name="Header"
+ pageTitle="BrowseTreeBase"
+ copyrightYear="2004"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+<cc:form name="BrowseTreeBaseForm" method="post">
+
+<!-- Buttons area -->
+<table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td valign='bottom' align='right'>
+ <div class="TtlBtnBtmDiv">
+ <cc:button name="OkButton" bundleID="apocBundle"
+ defaultValue="APOC.button.OK" title="APOC.button.OK" type="default"
+ onClick="javascript:top.location='../manager/RemoteDesktopViewerFrameset?EntityId='+escape(top.frames['browsetree'].getEntityId())+'&'; return false;"
+ dynamic="true"/>
+ <cc:button name="CancelButton" bundleID="apocBundle"
+ defaultValue="APOC.button.close" title="APOC.button.cancel"
+ type="secondary" onClick="top.window.close();return false;"/>
+ </div>
+ </td>
+ </tr>
+</table>
+
+</cc:form>
+</cc:header>
+</jato:useViewBean> \ No newline at end of file
diff --git a/webconsole/jsp/remote/RemoteDesktopFrameset.jsp b/webconsole/jsp/remote/RemoteDesktopFrameset.jsp
new file mode 100644
index 0000000..7ec5ffd
--- /dev/null
+++ b/webconsole/jsp/remote/RemoteDesktopFrameset.jsp
@@ -0,0 +1,68 @@
+<%@page info="Browse Tree Window Frameset" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.RemoteDesktopFramesetViewBean">
+
+<cc:i18nbundle id="apocBundle" baseName="com.sun.apoc.manager.resource.apoc_manager" />
+<html>
+ <head>
+ <title>Remote Desktop</title>
+ </head>
+
+ <frameset rows="120, *, 45" border="2" framespacing="2">
+
+ <frame name="masthead" title="Masthead" scrolling="no"
+ marginwidth="0" marginheight="0" border="0" framespacing="0"
+ noresize src="/apoc/manager/RemoteDesktopMasthead"/>
+ <frame name="browsetree" title="BrowseTree"
+ scrolling="yes" marginwidth="0" marginheight="0" border="0"
+ framespacing="0" src="/apoc/manager/RemoteDesktopNavigationTree"/>
+ <frame name="browsetreebase" title="BrowseTreeBase" scrolling="no"
+ marginwidth="0" marginheight="0" border="0" framespacing="0"
+ src="/apoc/manager/RemoteDesktopButtons"/>
+ </frameset>
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ This page needs frame support put I18N here
+ </body>
+ </noframes>
+</html>
+</jato:useViewBean>
+
diff --git a/webconsole/jsp/remote/RemoteDesktopMasthead.jsp b/webconsole/jsp/remote/RemoteDesktopMasthead.jsp
new file mode 100644
index 0000000..df26f78
--- /dev/null
+++ b/webconsole/jsp/remote/RemoteDesktopMasthead.jsp
@@ -0,0 +1,63 @@
+<%@ page info="Browse Tree Masthead" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.RemoteDesktopMastheadViewBean">
+<cc:i18nbundle id="apocBundle" baseName="com.sun.apoc.manager.resource.apoc_manager" />
+<cc:header pageTitle="BrowseTreeTitle"
+ copyrightYear="2002"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle">
+
+ <cc:secondarymasthead name="Masthead"
+ src="/apoc/images/popuptitle.gif"
+ alt="APOC.masthead.altText"
+ bundleID="apocBundle"/>
+
+ <cc:pagetitle name="BrowseTreeTitle"
+ bundleID="apocBundle"
+ pageTitleText="Remote Desktop"
+ pageTitleHelpMessage="Navigate to the desired host. Click on the 'OK' button to confirm your selection."
+ showPageTitleSeparator="true"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="false"/>
+
+
+</cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/remote/RemoteDesktopNavigationTree.jsp b/webconsole/jsp/remote/RemoteDesktopNavigationTree.jsp
new file mode 100644
index 0000000..582150b
--- /dev/null
+++ b/webconsole/jsp/remote/RemoteDesktopNavigationTree.jsp
@@ -0,0 +1,108 @@
+<%@ page info="Manager" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.RemoteDesktopNavigationTreeViewBean">
+
+ <cc:header pageTitle="Browse Tree Title" copyrightYear="2005"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+ <script type="text/javascript">
+ <!--
+ function getEntityId() {
+ return '<cc:text name="SelectedEntity"/>' ;
+ }
+
+ function getEntityType() {
+ return '<cc:text name="SelectedEntityType"/>' ;
+ }
+
+ function handleSelection(selectTag) {
+ var form=document.BrowseTreeForm;
+ if (form != null) {
+ form.action='/apoc/manager/RemoteDesktopNavigationTree?RemoteDesktopNavigationTree.DefaultHref=a&amp;';
+ form.submit();
+ }
+ }
+
+ function entitySearchCallback(sHref) {
+ var form = document.BrowseTreeForm;
+ var sEntityId = extractByDelimiters("=", "&", sHref);
+ form.action="/apoc/manager/RemoteDesktopNavigationTree?RemoteDesktopNavigationTree.DefaultHref="+sEntityId;
+ form.submit();
+ }
+
+ -->
+ </script>
+
+ <cc:form name="BrowseTreeForm" method="post" onSubmit="javascript:return false;">
+ <br>
+ <table width="80%" align=center>
+ <tr>
+ <td>
+ <table width='100%' align=center>
+ <tr>
+ <td height='30'>
+ <cc:button name="SearchButton"
+ bundleID="apocBundle"
+ defaultValue="APOC.search.search"
+ type="secondary"
+ onClick="javascript:openSearchWindow(); return false;"/>
+ &nbsp;&nbsp;&nbsp;&nbsp;
+
+ </td>
+ </tr>
+ <tr>
+ <td height='100' valign='top' class='TreBdy'>
+ <cc:dtree name="Tree" bundleID="apocBundle" />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </cc:form>
+ </cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/remote/RemoteDesktopPageTitle.xml b/webconsole/jsp/remote/RemoteDesktopPageTitle.xml
new file mode 100644
index 0000000..e91f509
--- /dev/null
+++ b/webconsole/jsp/remote/RemoteDesktopPageTitle.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="OkButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="OK"/>
+ <attribute name="Title" value="Confirm the selection and close the window."/>
+ <attribute name="onClick" value="javascript:opener.submitBrowse(getEntityId(), getEntityType()); window.close(); return false;"/>
+ <attribute name="type" value="default"/>
+ </cc>
+ <cc name="CancelButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="Abbrechen"/>
+ <attribute name="title" value="Cancel the selection and close the window."/>
+ <attribute name="onClick" value="javascript:window.close(); return false;"/>
+ <attribute name="type" value="primary"/>
+ </cc>
+ </pagebuttons>
+</pagetitle> \ No newline at end of file
diff --git a/webconsole/jsp/remote/RemoteDesktopViewer.jsp b/webconsole/jsp/remote/RemoteDesktopViewer.jsp
new file mode 100644
index 0000000..7b7cf26
--- /dev/null
+++ b/webconsole/jsp/remote/RemoteDesktopViewer.jsp
@@ -0,0 +1,78 @@
+<%@ page info="Browse Tree Masthead" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.RemoteDesktopViewerViewBean">
+<cc:i18nbundle id="apocBundle" baseName="com.sun.apoc.manager.resource.apoc_manager" />
+<cc:header pageTitle="BrowseTreeTitle"
+ copyrightYear="2002"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle">
+
+ <cc:secondarymasthead name="Masthead"
+ src="/apoc/images/popuptitle.gif"
+ alt="APOC.masthead.altText"
+ bundleID="apocBundle"/>
+
+ <div class="content-layout">
+ <br><br><cc:alertinline name="Alert" bundleID="apocBundle"/>
+ </div>
+
+ <cc:pagetitle name="BrowseTreeTitle"
+ bundleID="apocBundle"
+ pageTitleText="Remote Desktop"
+ pageTitleHelpMessage="Please wait while Remote Desktop is loading..."
+ showPageTitleSeparator="true"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="true">
+
+ <div class="TtlHlpDiv">
+ <div class="HlpPgeTxt">* The Remote Desktop application will be launched separately.</div>
+ <div class="HlpPgeTxt">* You may minimize this browser window while using Remote Desktop.</div>
+ <div class="HlpPgeTxt">* Do not close or exit this browser window while using Remote Desktop.</div>
+ </div>
+
+ </cc:pagetitle>
+
+ <script type="text/javascript">
+ <cc:text name="Javascript"/>
+ </script>
+
+</cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/remote/RemoteDesktopViewerFrameset.jsp b/webconsole/jsp/remote/RemoteDesktopViewerFrameset.jsp
new file mode 100644
index 0000000..fac6d7f
--- /dev/null
+++ b/webconsole/jsp/remote/RemoteDesktopViewerFrameset.jsp
@@ -0,0 +1,65 @@
+<%@page info="Browse Tree Window Frameset" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.RemoteDesktopViewerFramesetViewBean">
+
+<cc:i18nbundle id="apocBundle" baseName="com.sun.apoc.manager.resource.apoc_manager" />
+<html>
+ <head>
+ <title>Remote Desktop</title>
+ </head>
+
+ <frameset rows="*, 0" border="0" framespacing="0">
+
+ <frame name="Masthead" title="Masthead" scrolling="no"
+ marginwidth="0" marginheight="0" border="0" framespacing="0"
+ noresize src="/apoc/manager/RemoteDesktopViewer"/>
+ <frame name="viewer" title="viewer" scrolling="no"
+ marginwidth="0" marginheight="0" border="0" framespacing="0"
+ src="/apoc/manager/RemoteDesktopViewer"/>
+ </frameset>
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ This page needs frame support put I18N here
+ </body>
+ </noframes>
+</html>
+</jato:useViewBean>
+
diff --git a/webconsole/jsp/remote/RemoteDesktopViewerPageTitle.xml b/webconsole/jsp/remote/RemoteDesktopViewerPageTitle.xml
new file mode 100644
index 0000000..79324cb
--- /dev/null
+++ b/webconsole/jsp/remote/RemoteDesktopViewerPageTitle.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="BackButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="Back to host selection"/>
+ <attribute name="Title" value="Confirm the selection and close the window."/>
+ <attribute name="onClick" value="javascript:top.location='../manager/RemoteDesktopFrameset'; return false;"/>
+ <attribute name="type" value="default"/>
+ </cc>
+ </pagebuttons>
+</pagetitle> \ No newline at end of file
diff --git a/webconsole/jsp/report/ElementsInvolvedTable.xml b/webconsole/jsp/report/ElementsInvolvedTable.xml
new file mode 100644
index 0000000..25799e9
--- /dev/null
+++ b/webconsole/jsp/report/ElementsInvolvedTable.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <column name="ElementsInvolvedColumn" extrahtml="nowrap='nowrap' width='*'">
+ <cc name="ElementsInvolvedValue" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+</table>
+
diff --git a/webconsole/jsp/report/ShowResults.jsp b/webconsole/jsp/report/ShowResults.jsp
new file mode 100644
index 0000000..dd56634
--- /dev/null
+++ b/webconsole/jsp/report/ShowResults.jsp
@@ -0,0 +1,726 @@
+<%@ page info="ConfigureReport" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+<jato:useViewBean className="com.sun.apoc.manager.ShowResultsViewBean">
+
+<!-- Header -->
+<cc:header pageTitle="" copyrightYear="2005"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle" onLoad="javascript:beginDisplay(); return false;" isPopup="true" >
+<style type="text/css">
+table.Tbl td.TblTdLytNoBrd {border-top:solid 0px #a8b2b6;border-right:solid 0px #a8b2b6;border-left:solid 0px #a8b2b6;border-bottom:solid 0px #a8b2b6;background-color:#E1E1E1}
+table.Tbl td.TblTdLytBrdRgtTop {border-top:solid 0px #a8b2b6;border-right:solid 1px #a8b2b6;border-left:solid 0px #a8b2b6;border-bottom:solid 0px #a8b2b6;background-color:#E1E1E1}
+a img {border-style:none}
+</style>
+
+<script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+<script type="text/javascript" src="/apoc/js/ProfileWindow.js"></script>
+<script type="text/javascript"><!-- Empty script so IE5.0 Windows will draw table and button borders --></script>
+
+<cc:form name="ConfigrepForm" method="post">
+<script type="text/javascript">
+<!--
+ var IMAGE_PREFIX = "image.";
+ var TURNER_PREFIX = "turner.";
+ var TABLE1 = "table1";
+ var TABLE2 = "table2";
+
+
+
+ function submitBrowse(entityId, entityType, entityPath) {
+ if(entityType == 'USER') {
+ document.ConfigrepForm['ShowResults.OrgEntity'].value = entityId;
+ } else if(entityType == 'HOST') {
+ document.ConfigrepForm['ShowResults.DomEntity'].value = entityId;
+ }
+ ccSetButtonDisabled('ShowResults.ReportButton', "ConfigrepForm", false);
+ var displayPath = formatEntityPath(entityPath);
+ updateMergeOrder(entityType, displayPath);
+ }
+
+ function formatEntityPath(entityPath) {
+ var baseEntity = "";
+ var topEntity = "";
+ if (entityPath.indexOf("&gt;") != -1) {
+ var entities = entityPath.split(" &gt; ");
+ baseEntity = entities[entities.length-1];
+ topEntity = entities[0];
+ return baseEntity + " (" + topEntity + ")";
+ } else {
+ baseEntity = entityPath;
+ topEntity = entityPath;
+ return baseEntity + " (" + topEntity + ")";
+ }
+ }
+
+ function updateMergeOrder(entityType, entityPath) {
+ var mergeOrder = document.ConfigrepForm['ShowResults.MergeOrder'];
+ if (mergeOrder.value == null || mergeOrder.value.length == 0) {
+ mergeOrder.value += entityPath + "|" + entityType;
+ } else {
+ var mergeOrderArray = mergeOrder.value.split("|");
+ mergeOrder.value = "";
+ var isReplace = false;
+ for (var i=0; i < mergeOrderArray.length; i += 2) {
+ if (mergeOrderArray[i+1] == entityType) {
+ mergeOrderArray[i] = entityPath;
+ isReplace = true;
+ }
+ if (i == 0) {
+ mergeOrder.value += mergeOrderArray[i] + "|" + mergeOrderArray[i+1];
+ } else {
+ mergeOrder.value += "|" + mergeOrderArray[i] + "|" + mergeOrderArray[i+1];
+ }
+ }
+ if (!isReplace) {
+ if (mergeOrder.value.length == 0) {
+ mergeOrder.value += entityPath + "|" + entityType;
+ } else {
+ mergeOrder.value += "|" + entityPath + "|" + entityType;
+ }
+ }
+
+ }
+ updateElementsList();
+ }
+
+ function printPage() {
+ window.print();
+ }
+
+
+
+ function beginDisplay() {
+ /* var table = document.getElementById(TABLE2);
+ if (table != null) {
+ for(var i=0; i < table.rows.length; i++) {
+ if (table.rows[i].id != null && table.rows[i].id.length != 0) {
+ var childId = table.rows[i].id;
+ var arr = childId.split(".");
+ var style2 = document.getElementById(childId).style;
+ var childImage = document.getElementById(IMAGE_PREFIX + childId);
+ if (arr == null || arr.length <= 2) {
+ style2.display ='';
+ if (childImage != null && arr.length==2) {
+ setImage(childImage, "grouprow_collapsed.gif");
+ }
+ } else {
+ style2.display="none";
+ }
+ }
+ }
+ }*/
+ return false;
+ }
+
+ function showhideprofiles(element) {
+ var id = element.id.substring(TURNER_PREFIX.length, element.id.length);
+ var table = document.getElementById(TABLE1);
+ for(var i=0; i < table.rows.length; i++) {
+ if (table.rows[i].id != null && table.rows[i].id.length != 0) {
+ var childId = table.rows[i].id;
+ if (childId != id && childId.indexOf(id) == 0) {
+ var style2 = document.getElementById(childId).style;
+ if (style2.display == "none") {
+ style2.display = '';
+ } else {
+ style2.display = "none";
+ }
+ }
+ }
+ }
+ switchImage(document.getElementById(IMAGE_PREFIX+id));
+ return false;
+ }
+
+ function showhide(element) {
+ var id = element.id.substring(TURNER_PREFIX.length, element.id.length);
+ var action = getAction(document.getElementById(IMAGE_PREFIX+id));
+ if (action == "hide") {
+ hide(id);
+ } else {
+ show(id, action);
+ }
+ switchImage(document.getElementById(IMAGE_PREFIX+id));
+ return false;
+ }
+
+ function hide(id) {
+ var table = document.getElementById(TABLE2);
+ for(var i=0; i < table.rows.length; i++) {
+ if (table.rows[i].id != null && table.rows[i].id.length != 0) {
+ var childId = table.rows[i].id;
+ if (childId != id && childId.indexOf(id) == 0) {
+ var style2 = document.getElementById(childId).style;
+ style2.display ="none";
+ }
+ }
+ }
+ return false;
+ }
+
+ function show(id ,action) {
+ var table = document.getElementById(TABLE2);
+ var children = getChildren(id);
+ for (var i= 0; i < children.length; i++) {
+ var childId = children[i];
+ var style2 = document.getElementById(childId).style;
+ if(action == 'show'){
+ style2.display ='';
+ }else{
+ style2.display ="none";
+ }
+ var childElement = document.getElementById(IMAGE_PREFIX+childId);
+ if (childElement != null) {
+ childAction = getAction(childElement);
+ // SL TODO - CHANGE THIS TO SOMETHING BETTER
+ //The getAction() method is used to decide whether to show or hide
+ // the row based on the arrow images position - here we want to
+ // know whether to show or hide a child row using the direct parents
+ // arrow image position so we actually want the inverse of getAction()
+ if(childAction == "show"){
+ childAction = "hide";
+ } else {
+ childAction = "show";
+ }
+ id = childId;
+ show(id, childAction);
+ }
+ }
+ return false;
+ }
+
+ function getChildren(id) {
+ var prefix = id + ".";
+ var children = new Array();
+ var table = document.getElementById(TABLE2);
+ for(var i=0; i < table.rows.length; i++) {
+ if (table.rows[i].id != null && table.rows[i].id.length != 0) {
+ var childId = table.rows[i].id;
+ if (childId.indexOf(prefix) == 0 && childId != id) {
+ var suffix = childId.substring(prefix.length, childId.length);
+ if (suffix.indexOf(".") == -1) {
+ children.push(childId);
+ }
+ }
+ }
+ }
+ return children;
+ }
+
+ function getAction(element) {
+ var stem = element.src.substring(0, element.src.lastIndexOf("/")+1);
+ var currentImage = element.src.substring(element.src.lastIndexOf("/")+1, element.src.length);
+ if (currentImage=="grouprow_collapsed.gif") {
+ return "show";
+ } else {
+ return "hide";
+ }
+ }
+
+ function switchImage(element) {
+ var stem = element.src.substring(0, element.src.lastIndexOf("/")+1);
+ var currentImage = element.src.substring(element.src.lastIndexOf("/")+1, element.src.length);
+ if (currentImage=="grouprow_collapsed.gif") {
+ element.src = stem + "grouprow_expanded.gif";
+ } else {
+ element.src= stem + "grouprow_collapsed.gif";
+ }
+ return false;
+ }
+
+ function setImage(element, image) {
+ var stem = element.src.substring(0, element.src.lastIndexOf("/")+1);
+ var currentImage = element.src.substring(element.src.lastIndexOf("/")+1, element.src.length);
+ element.src = stem + image;
+ return false;
+ }
+
+ function openBrowseTreeWindow() {
+ openWindow(window, null, '/apoc/manager/BrowseTreeIndex?ReturnPath=true', 'TreeWindow', 500, 600, true);
+ return false;
+ }
+
+ function handleListSelect() {
+ var list = document.ConfigrepForm['ShowResults.ElementsInvolvedList'];
+
+ // if only the list width maintainer is present then only allow add
+ if (list.options.length == 1) {
+ ccSetButtonDisabled("ShowResults.RemoveButton", "ConfigrepForm", true);
+ ccSetButtonDisabled("ShowResults.UpButton", "ConfigrepForm", true);
+ ccSetButtonDisabled("ShowResults.DownButton", "ConfigrepForm", true);
+ ccSetButtonDisabled("ShowResults.ReportButton", "ConfigrepForm", true);
+ list.options[0].selected = false;
+ } else {
+ ccSetButtonDisabled('ShowResults.ReportButton', "ConfigrepForm", false);
+ ccSetButtonDisabled('ShowResults.RemoveButton', "ConfigrepForm", (list.selectedIndex == -1) || (list.options[list.options.length-1].selected));
+ var index = 0;
+ for (var i=0; i < list.options.length; i++) {
+ if (list.options[i].selected) {
+ index++;
+ }
+ }
+ if (list.options[list.options.length-1].selected ||
+ list.options[0].selected ||
+ list.selectedIndex == -1 ||
+ index > 1) {
+ ccSetButtonDisabled('ShowResults.UpButton', "ConfigrepForm", true);
+ } else {
+ ccSetButtonDisabled('ShowResults.UpButton', "ConfigrepForm", false);
+ }
+ if (list.options[list.options.length-1].selected ||
+ list.options[list.options.length-2].selected ||
+ list.selectedIndex == -1 ||
+ index > 1) {
+ ccSetButtonDisabled('ShowResults.DownButton', "ConfigrepForm", true);
+ } else {
+ ccSetButtonDisabled('ShowResults.DownButton', "ConfigrepForm", false);
+ }
+ }
+ }
+
+ function updateElementsList() {
+ var list = document.ConfigrepForm['ShowResults.ElementsInvolvedList'];
+ var mergeOrder = document.ConfigrepForm['ShowResults.MergeOrder'];
+ var elements = mergeOrder.value.split("|");
+ list.options.length = 0;
+ var index = 0;
+ for (var i=0; i < elements.length; i += 2) {
+ list.options[index] = new Option(elements[i], elements[i+1]);
+ index++;
+ }
+ list.options[list.options.length] = new Option(LIST_WIDTH_MAINTAINER, "Not Valid");
+ }
+
+ function addElement() {
+ openBrowseTreeWindow();
+ return false;
+ }
+
+ function removeElement() {
+ var mergeOrder = document.ConfigrepForm['ShowResults.MergeOrder'];
+ var list = document.ConfigrepForm['ShowResults.ElementsInvolvedList'];
+
+ var index = 0;
+ var updatedOptions = new Array();
+ for (var i=0; i < list.options.length-1; i++) {
+ if (!list.options[i].selected) {
+ updatedOptions[index] = new Option(list.options[i].text, list.options[i].value) ;
+ index++;
+ }
+ }
+ list.options.length = 0;
+ for (var i=0; i < updatedOptions.length; i++) {
+ list.options[i] = new Option(updatedOptions[i].text, updatedOptions[i].value) ;
+ }
+ mergeOrder.value = "" ;
+ for (var i=0; i < list.options.length; i++) {
+ if (i == 0) {
+ mergeOrder.value += list.options[i].text + "|" + list.options[i].value;
+ } else {
+ mergeOrder.value += "|" + list.options[i].text + "|" + list.options[i].value;
+ }
+ }
+ list.options[list.options.length] = new Option(LIST_WIDTH_MAINTAINER, "Not Valid");
+ handleListSelect();
+ return false;
+ }
+
+ function moveUpElement() {
+ var mergeOrder = document.ConfigrepForm['ShowResults.MergeOrder'];
+ var list = document.ConfigrepForm['ShowResults.ElementsInvolvedList'];
+ for (var i=0; i < list.options.length; i++) {
+ if (list.options[i].selected) {
+ var tempOption = new Option(list.options[i-1].text, list.options[i-1].value);
+ list.options[i-1] = new Option(list.options[i].text, list.options[i].value);
+ list.options[i] = new Option(tempOption.text, tempOption.value);
+ list.options[i-1].selected = true;
+ handleListSelect();
+ break;
+ }
+ }
+ mergeOrder.value = "" ;
+ for (var i=0; i < list.options.length-1; i++) {
+ if (i == 0) {
+ mergeOrder.value += list.options[i].text + "|" + list.options[i].value;
+ } else {
+ mergeOrder.value += "|" + list.options[i].text + "|" + list.options[i].value;
+ }
+ }
+ return false;
+ }
+
+ function moveDownElement() {
+ var mergeOrder = document.ConfigrepForm['ShowResults.MergeOrder'];
+ var list = document.ConfigrepForm['ShowResults.ElementsInvolvedList'];
+ for (var i=0; i < list.options.length; i++) {
+ if (list.options[i].selected) {
+ var tempOption = new Option(list.options[i+1].text, list.options[i+1].value) ;
+ list.options[i+1] = new Option(list.options[i].text, list.options[i].value);
+ list.options[i] = new Option(tempOption.text, tempOption.value);
+ list.options[i+1].selected = true;
+ handleListSelect();
+ break;
+ }
+ }
+ mergeOrder.value = "" ;
+ for (var i=0; i < list.options.length-1 ; i++) {
+ if (i == 0) {
+ mergeOrder.value += list.options[i].text + "|" + list.options[i].value;
+ } else {
+ mergeOrder.value += "|" + list.options[i].text + "|" + list.options[i].value;
+ }
+ }
+ return false;
+ }
+-->
+</script>
+
+
+ <!-- Masthead -->
+ <cc:secondarymasthead name="SecondaryMH" bundleID="apocBundle" />
+
+ <!-- Page Title (Packages) -->
+ <cc:pagetitle name="PageTitle" bundleID="apocBundle"
+ pageTitleText="APOC.configrep.title"
+ pageTitleHelpMessage="APOC.configrep.help"
+ showPageTitleSeparator="true"
+ showPageButtonsTop="true"
+ showPageButtonsBottom="false">
+ <br>
+
+ <table width="90%" id="propertyTable" align="center" border="0" cellpadding="0" cellspacing="5">
+ <tr>
+ <td align="left" colspan="2">
+ <cc:label name="ElementsInvolvedListLabel" styleLevel="2"
+ elementName="ElementsInvolvedListLabel"
+ bundleID="apocBundle"/>
+ </td>
+ </tr>
+ <tr>
+ <td align="left" width="30%" rowspan="5">
+ <cc:selectablelist name="ElementsInvolvedList"
+ bundleID="apocBundle" title="APOC.report.elements.table.title"
+ onChange="handleListSelect(); return false;"
+ dynamic="true"
+ multiple="true"
+ size="7"
+ />
+ </td>
+ <td align="left" valign="top">
+ <cc:button name="AddButton"
+ bundleID="apocBundle"
+ dynamic="true"
+ defaultValue="APOC.report.add.element"
+ type="primary"
+ onClick="addElement() ;return false;"
+ />
+ </td>
+ </tr>
+ <tr>
+ <td align="left" valign="top">
+ <cc:button name="RemoveButton"
+ bundleID="apocBundle"
+ dynamic="true"
+ defaultValue="APOC.report.remove.element"
+ type="primary"
+ onClick="removeElement(); return false;"
+ />
+ </td>
+ </tr>
+ <tr>
+ <td align="left" valign="top">
+ <br/>
+ </td>
+ </tr>
+ <tr>
+ <td align="left" valign="top">
+ <br/>
+ </td>
+ </tr>
+ <tr>
+ <td align="left" valign="top">
+ <br/>
+ </td>
+ </tr>
+ </table>
+
+
+
+
+ </cc:pagetitle>
+
+ <!-- Hidden Fields -->
+ <cc:hidden name="OrgEntity" />
+ <cc:hidden name="DomEntity" />
+ <cc:hidden name="MergeOrder" />
+<table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td colspan="3">
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="30" width="1" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="1" width="10" />
+ </td>
+ <td class="TtlLin" style="background-color:#d0d7da" width="90%">
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="1" width="1" />
+ </td>
+ <td>
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="1" width="10" />
+ </td>
+ </tr>
+</table>
+<br>
+<br>
+
+<jato:content name="DisplayReport">
+
+<!-- The profiles contributing to this report -->
+<p>
+ <div class="TtlTxtDiv">
+ <h1><cc:text name="ReportInfo" bundleID="apocBundle" /></h1>
+ </div>
+</p>
+<p>
+ <div class="TtlTxtDiv">
+ <h2><cc:text name="CreationInfo" bundleID="apocBundle"/></h2>
+ </div>
+</p>
+
+<p>
+ <div class="TtlTxtDiv">
+ <h2><jato:text name="NoSections" fireDisplayEvents="true"/></h2>
+ </div>
+</p>
+<br/>
+<jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+</jato:content>
+<br/>
+
+<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
+<tr>
+ <td>
+ <cc:actiontable name="ElementsInvolvedTable"
+ bundleID="apocBundle"
+ title="APOC.report.elements.table.heading"
+ summary="APOC.report.elements.table.summary"
+ maxRows="5"
+ showAdvancedSortIcon="false"
+ showLowerActions="false"
+ showPaginationControls="false"
+ showPaginationIcon="false"
+ showSelectionIcons="false"
+ showSelectionSortIcon="false"
+ page="1" />
+ </td>
+</tr>
+</table>
+
+<br/>
+<br/>
+<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
+<tr><td>
+ <jato:content name="DisplayProfilesTable">
+ <div class="TblMgn">
+ <table name="table1" id="table1" class="Tbl" style="border:solid 1px #a8b2b6;" cellpadding="0" cellspacing="0">
+ <caption class="TblTtlTxt" style="border-left:solid 0px;border-right:solid 0px;">
+ <cc:text name="ProfilesInvolvedTitle" bundleID="apocBundle"/>
+ </caption>
+ <tr id="0">
+ <th class="TblColHdrCl1" align="left" scope="col">
+ <!-- <a id="turner.0" href="" onClick="showhideprofiles(this); return false;">
+ <img id="image.0" src="/apoc/images/grouprow_expanded.gif" alt="Click to Collapse Group" width="10" height="11" />
+ </a> -->
+ <span class="TblHdrTxt">
+ <cc:text name="EntityInvolvedTitle" bundleID="apocBundle"/>
+ </span>
+ </th>
+ </tr>
+ <tr id="0.1">
+ <td class="TblTdLyt" align="left">
+ <cc:text name="ProfilesInvolved" bundleID="apocBundle"/>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </jato:content>
+ <br/>
+ <br/>
+ <jato:content name="DisplayTables">
+ <div class="TblMgn">
+ <table name="table2" id="table2" class="Tbl" style="border:solid 1px #a8b2b6;" cellpadding="0" cellspacing="0">
+ <caption class="TblTtlTxt" style="border-left:solid 0px;border-right:solid 0px;">
+ <cc:text name="SettingsSummaryTitle" bundleID="apocBundle"/>
+ </caption>
+ <tr>
+ <th class="TblColHdrCl1" align="center" scope="col" width="6%" colspan="2" >
+ <span class="TblHdrTxt">
+ </span>
+ </th>
+ <th id="nameCol" class="TblColHdr" align="left" scope="col" width="32%">
+ <table class="TblHdrTbl" cellpadding="0" cellspacing="0">
+ <tr>
+ <td align="left">
+ <span class="TblHdrTxt">
+ <cc:text name="NameHeading" bundleID="apocBundle"/>
+ </span>
+ </td>
+ </tr>
+ </table>
+ </th>
+ <th id="valueCol" class="TblColHdr" align="left" scope="col" width="32%">
+ <table class="TblHdrTbl" cellpadding="0" cellspacing="0">
+ <tr>
+ <td align="left">
+ <span class="TblHdrTxt">
+ <cc:text name="ValueHeading" bundleID="apocBundle"/>
+ </span>
+ </td>
+ </tr>
+ </table>
+ </th>
+ <th id="statusCol" class="TblColHdr" align="left" scope="col" width="30%" nowrap="nowrap">
+ <table class="TblHdrTbl" cellpadding="0" cellspacing="0">
+ <tr>
+ <td align="left">
+ <span class="TblHdrTxt">
+ <cc:text name="StatusHeading" bundleID="apocBundle"/>
+ </span>
+ </td>
+ </tr>
+ </table>
+ </th>
+ </tr>
+
+ <!-- Beginning of table of settings display -->
+ <jato:tiledView name="CategoryTiledView" fireChildDisplayEvents="true">
+ <tr id='<cc:text name="RowID" bundleID="apocBundle"/>'>
+ <th class="TblColHdrCl1" align="left" scope="colgroup" colspan="5">
+ <!-- <a id='<cc:text name="TurnerID" bundleID="apocBundle"/>' href="" onClick="showhide(this); return false;">
+ <img id='<cc:text name="ImageID" bundleID="apocBundle"/>' src="/apoc/images/grouprow_expanded.gif" alt="Click to Collapse Group" width="10" height="11" />
+ </a> -->
+ <span class="TblHdrTxt">
+ <cc:text name="Category" bundleID="apocBundle"/>
+ </span>
+ </th>
+ </tr>
+ <jato:tiledView name="SectionTiledView" fireChildDisplayEvents="true">
+ <tr id='<cc:text name="RowID" bundleID="apocBundle"/>'>
+ <td class="TblTdLytBrdRgtTop" width="3%" nowrap="nowrap">
+ </td>
+ <th class="TblColHdrCl1" align="left" scope="colgroup" colspan="4">
+ <!-- <a id='<cc:text name="TurnerID" bundleID="apocBundle"/>' href="" onClick="showhide(this); return false;">
+ <img id='<cc:text name="ImageID" bundleID="apocBundle"/>' src="/apoc/images/grouprow_expanded.gif" alt="Click to Collapse Group" width="10" height="11" />
+ </a> -->
+ <span class="TblHdrTxt">
+ <cc:text name="Section" bundleID="apocBundle"/>
+ </span>
+ </th>
+ </tr>
+ <jato:tiledView name="PropertyTiledView" fireChildDisplayEvents="true">
+ <tr id='<cc:text name="RowID" bundleID="apocBundle"/>' >
+ <td class="TblTdLytNoBrd" align="left" width="3%"><span></span></td>
+ <td class="TblTdLytBrdRgtTop" align="left" width="3%"><span></span></td>
+ <td class="TblTdLyt" align="left">
+ <span>
+ <cc:text name="NameValue" bundleID="apocBundle"/>
+ </span>
+ </td>
+ <td class="TblTdLyt" align="left">
+ <span>
+ <cc:text name="ValueValue" bundleID="apocBundle"/>
+ </span>
+ </td>
+ <td class="TblTdLyt" align="left">
+ <span>
+ <cc:text name="StatusValue" bundleID="apocBundle"/>
+ </span>
+ <span>
+ <cc:href name="ProfileValueHref" onClick="javascript:openProfileEditorWindowAtSection(this); return false;">
+ <cc:text name="ProfileValue" bundleID="apocBundle"/>
+ </cc:href>
+ </span>
+ <br/>
+ <span>
+ <cc:text name="StatusValueProtection" bundleID="apocBundle"/>
+ </span>
+ </td>
+ </tr>
+ </jato:tiledView>
+ </jato:tiledView>
+ </jato:tiledView>
+ </table>
+ <p>&nbsp;</p>
+ <p>&nbsp;</p>
+ </div>
+ </jato:content>
+</td></tr>
+</table>
+</jato:content>
+<script type="text/javascript">
+<!--
+ var LIST_WIDTH_MAINTAINER = "___________________________________";
+ var windowTitle = '<cc:text name="WindowTitle" bundleID="apocBundle"/>';
+ if (windowTitle.length == 0 ) {
+ windowTitle = '<cc:text name="WindowTitle" defaultValue="APOC.configrep.title" bundleID="apocBundle"/>'
+ }
+ parent.document.title = windowTitle;
+
+ ccSetButtonDisabled("ShowResults.RemoveButton", "ConfigrepForm", true);
+ ccSetButtonDisabled("ShowResults.UpButton", "ConfigrepForm", true);
+ ccSetButtonDisabled("ShowResults.DownButton", "ConfigrepForm", true);
+ updateElementsList();
+
+//-->
+</script>
+<input type="hidden" name="com_sun_web_ui_popup" value="true" />
+</cc:form>
+</cc:header>
+</jato:useViewBean>
+
diff --git a/webconsole/jsp/report/ShowResultsButtons.jsp b/webconsole/jsp/report/ShowResultsButtons.jsp
new file mode 100644
index 0000000..b6eea7b
--- /dev/null
+++ b/webconsole/jsp/report/ShowResultsButtons.jsp
@@ -0,0 +1,80 @@
+<%@ page info="Frameset" language="java" %>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+<%@taglib uri="/WEB-INF/apoc.tld" prefix="apoc"%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.ShowResultsButtonsViewBean">
+
+<!-- Header -->
+<cc:header name="Header"
+ pageTitle="module3.title"
+ copyrightYear="2004"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+<script type="text/javascript" src="/apoc/js/ProfileWindow.js"></script>
+<cc:form name="ButtonsForm" method="post">
+
+<!-- Buttons area -->
+<table border="0" width="100%" cellpadding="0" cellspacing="0">
+<tr>
+ <td valign='bottom'>
+ </td>
+ <td align="right" nowrap="nowrap" valign="bottom">
+ <div class="TtlBtnBtmDiv">
+ <cc:button name="PrintButton" bundleID="apocBundle"
+ defaultValue="APOC.report.buttons.print" title="APOC.report.buttons.print"
+ onClick="parent.contents.printPage(); return false;" disabled="false"
+ dynamic="true"
+ />
+ <cc:button name="CloseButton" bundleID="apocBundle"
+ defaultValue="APOC.profilewnd.buttons.close" title="APOC.profilewnd.buttons.close"
+ titleDisabled="APOC.profilewnd.buttons.close"
+ type="secondary" onClick="top.window.close(); return false;" disabled="false" />
+ </div>
+ </td>
+</tr>
+</table>
+
+</cc:form>
+</cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/report/ShowResultsFrameset.jsp b/webconsole/jsp/report/ShowResultsFrameset.jsp
new file mode 100644
index 0000000..b957d80
--- /dev/null
+++ b/webconsole/jsp/report/ShowResultsFrameset.jsp
@@ -0,0 +1,82 @@
+<%@ page info="Frameset" language="java" %>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+<%@taglib uri="/WEB-INF/apoc.tld" prefix="apoc"%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.ShowResultsFramesetViewBean">
+<cc:i18nbundle id="apocBundle" baseName="com.sun.apoc.manager.resource.apoc_manager" />
+<html>
+ <head>
+ <title><cc:text name ="Title" defaultValue="" bundleID="apocBundle"/></title>
+ </head>
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+ <script type="text/javascript">
+ <!--
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_ReportWindow= top;
+ }
+
+// -->
+ </script>
+ <frameset rows="*, 45px" border="2" framespacing="2">
+ <frame name="contents" title="contents"
+ scrolling="AUTO" marginwidth="0" marginheight="0" border="1"
+ framespacing="1" src="../manager/ShowResults?isFirstLoad=true">
+ <frame name="buttons" title="buttons" scrolling="AUTO"
+ marginwidth="0" marginheight="0" border="1" framespacing="1"
+ src="../manager/ShowResultsButtons"/>
+ </frameset>
+
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ No frame support!
+ </body>
+ </noframes>
+
+</html>
+</jato:useViewBean>
diff --git a/webconsole/jsp/report/ShowResultsPageTitle.xml b/webconsole/jsp/report/ShowResultsPageTitle.xml
new file mode 100644
index 0000000..103bf8b
--- /dev/null
+++ b/webconsole/jsp/report/ShowResultsPageTitle.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="ReportButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="primary"/>
+ <attribute name="dynamic" value="true"/>
+ <attribute name="onClick" value="javascript: return true;"/>
+ </cc>
+ <cc name="PrintButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="primary"/>
+ <attribute name="onClick" value="javascript: printPage(); return false;"/>
+ </cc>
+ <cc name="CloseButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="secondary"/>
+ <attribute name="onClick" value="javascript: top.window.close(); return false;"/>
+ </cc>
+ </pagebuttons>
+</pagetitle>
diff --git a/webconsole/jsp/settings/Buttons.jsp b/webconsole/jsp/settings/Buttons.jsp
new file mode 100644
index 0000000..85ff9bf
--- /dev/null
+++ b/webconsole/jsp/settings/Buttons.jsp
@@ -0,0 +1,111 @@
+<%@ page info="Frameset" language="java" %>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+<%@taglib uri="/WEB-INF/apoc.tld" prefix="apoc"%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.PolicySettingsButtonsViewBean">
+
+<!-- Header -->
+<cc:header name="Header"
+ pageTitle="module3.title"
+ copyrightYear="2004"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+<script type="text/javascript" src="/apoc/js/ProfileWindow.js"></script>
+<script type="text/javascript">
+<!--
+var alert1= "<cc:text name="Alert1"/>";
+var alert2= "<cc:text name="Alert2"/>";
+var alert3= "<cc:text name="Alert3"/>";
+var alert4= "<cc:text name="Alert4"/>";
+var alert5= "<cc:text name="Alert5"/>";
+
+function getAlert(alertId) {
+ if (alertId == '1') {
+ return alert1;
+ } else if (alertId == '2') {
+ return alert2;
+ } else if (alertId == '3') {
+ return alert3;
+ } else if (alertId == '4') {
+ return alert4;
+ } else if (alertId == '5') {
+ return alert5;
+ }
+}
+ -->
+</script>
+
+<cc:form name="ButtonsForm" method="post">
+
+<!-- Buttons area -->
+<table border="0" width="100%" cellpadding="0" cellspacing="0">
+<tr>
+ <td valign='bottom'>
+ </td>
+ <td align="right" nowrap="nowrap" valign="bottom">
+ <div class="TtlBtnBtmDiv">
+ <cc:button name="SaveButton" bundleID="apocBundle"
+ defaultValue="APOC.profilewnd.buttons.save" title="APOC.profilewnd.buttons.save"
+ onClick="updateDisabledFields();saveChanges();return false;"
+ dynamic="true"
+ disabled="true" />
+ <cc:button name="CloseButton" bundleID="apocBundle"
+ defaultValue="APOC.profilewnd.buttons.close" title="APOC.profilewnd.buttons.close"
+ titleDisabled="APOC.profilewnd.buttons.close"
+ type="secondary" onClick="triggerCloseButton(); return false;"/>
+ </div>
+ </td>
+</tr>
+</table>
+<script type="text/javascript">
+<!--
+ if ((getContentDocument().getElementById("isNewProfile") != null )
+ && (getContentDocument().getElementById("isNewProfile").value == "true")) {
+ enableSaveButtons();
+ }
+// -->
+</script>
+</cc:form>
+</cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/settings/Content.jsp b/webconsole/jsp/settings/Content.jsp
new file mode 100644
index 0000000..4defd2a
--- /dev/null
+++ b/webconsole/jsp/settings/Content.jsp
@@ -0,0 +1,261 @@
+<%@ page info="Frameset" language="java" %>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+<%@taglib uri="/WEB-INF/apoc.tld" prefix="apoc"%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.PolicySettingsContentViewBean">
+
+<!-- Header -->
+<cc:header name="Header"
+ pageTitle="module3.title"
+ copyrightYear="2004"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ preserveScroll="true"
+ preserveFocus="true"
+ >
+
+<script type="text/javascript" src="/apoc/js/ProfileWindow.js"></script>
+<script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+<script type="text/javascript">
+ updateButtonsArea();
+ <cc:text name="RefreshNavigationTreeScript"/>
+ var invalidHex='<cc:text name="InvalidHex" />';
+ var localizedNotSet = '<cc:text name="LocalizedNotSet" />';
+</script>
+
+<cc:form name="Form" method="post" defaultCommandChild="SaveButton">
+
+<a name="top" id="top"></a>
+
+<%-- Alert --%>
+<jato:content name="AlertArea">
+ <div class="ConMgn">
+ <br/><cc:alertinline name="Alert" bundleID="apocBundle"/>
+ </div>
+</jato:content>
+
+<cc:pagetitle name="PageTitle" bundleID="apocBundle"
+ pageTitleText="APOC.profilewnd.settings.title"
+ showPageTitleSeparator="true"
+ pageTitleHelpMessage="APOC.profilewnd.settings.title.help"
+ showPageButtonsTop="true"
+ showPageButtonsBottom="false">
+
+<!-- Jump Links section -->
+<apoc:JumpLinks name="JumpLinksSection"/>
+
+<!-- Policies Navigation Table -->
+<jato:content name="PoliciesNavigationArea">
+<br>
+<a name="Policies"/>
+<cc:actiontable
+ name="PoliciesNavigationTable"
+ bundleID="apocBundle"
+ title="APOC.policies.title"
+ summary="APOC.policies.tableSummary"
+ selectionType="no select"
+ showAdvancedSortIcon="false"
+ showLowerActions="false"
+ showPaginationControls="false"
+ showPaginationIcon="false"
+ showSelectionIcons="false"
+ maxRows="20"
+ page="1"/>
+</jato:content>
+
+<!-- Settings area -->
+<apoc:template name="PolicyTemplateContent"/>
+
+<input type="hidden" name="lastChange" value=""/>
+<input type="hidden" name="UserInput" value=""/>
+<input type="hidden" name="SaveAllPage" value=""/>
+<script type="text/javascript">
+// BEGIN <---- Script and functions used for XMLHandlers ---->
+<cc:text name="XmlHandlerText" />
+// END <---- Script and functions used for XMLHandlers ---->
+</script>
+<cc:hidden name="DisabledFieldsValues" elementId="disabledFieldValues" />
+<cc:hidden name="ProtectedChoosers" elementId="protectedChoosers"/>
+<cc:hidden name="ProtectedChoosersType" elementId="protectedChoosersType"/>
+<cc:hidden name="OriginalValues" elementId="originalValues" />
+<cc:hidden name="HelpPage" elementId="HelpPage" />
+<input type="hidden" name="com_sun_web_ui_popup" value="true" />
+<script type="text/javascript">
+ <!--
+ updateValues(true);
+
+ var prefix1 = "PolicySettingsContent.PolicyTemplateContent." ;
+ var prefix2 = "].PropertyValue" ;
+ var clearPrefix = "clear";
+ var listPrefix = "List";
+ var elements = document.Form.elements;
+ for(var i=0; i < elements.length; i++) {
+ if ((elements[i].name.indexOf(prefix1) == 0)
+ && (elements[i].name.indexOf(prefix2) == (elements[i].name.length - prefix2.length))) {
+ toggleOverwriteCheckbox(elements[i]);
+ }
+ }
+ toggleOverwriteLabel();
+
+ function toggleSetButtons(checkbox) {
+ var nElementRunner=0;
+ var nElements=0;
+ var nCheckedElements=0;
+
+ while (document.Form.elements[nElementRunner]!=null) {
+ if ((document.Form.elements[nElementRunner].name.indexOf("SelectionCheckbox")!=-1) &&
+ (document.Form.elements[nElementRunner].name.indexOf("jato_boolean") == -1)) {
+ nElements++;
+ if (document.Form.elements[nElementRunner].checked==true) {
+ nCheckedElements++;
+ }
+ }
+ nElementRunner++;
+ }
+ var checkBoxName = checkbox.name;
+ var deleteBtnName = checkBoxName.substring(0, checkBoxName.lastIndexOf('.'));
+ deleteBtnName = deleteBtnName.substring(0, deleteBtnName.lastIndexOf('.'));
+ deleteBtnName = deleteBtnName + ".DeleteButton";
+ var renameBtnName = checkBoxName.substring(0, checkBoxName.lastIndexOf('.'));
+ renameBtnName = renameBtnName.substring(0, renameBtnName.lastIndexOf('.'));
+ renameBtnName = renameBtnName + ".RenameButton";
+ ccSetButtonDisabled(deleteBtnName, "Form", nCheckedElements==0);
+ ccSetButtonDisabled(renameBtnName, "Form", nCheckedElements!=1);
+ return "";
+ }
+
+ function toggleOverwriteCheckbox(field) {
+ var fieldName = field.name
+ if (field.type == "radio") {
+ if (field.checked == true) {
+ if (field.value == localizedNotSet) {
+ fieldName = fieldName.substring(0, fieldName.lastIndexOf('.'));
+ fieldName = fieldName + ".Enforced";
+ document.Form[fieldName].style.display="none";
+ } else {
+ fieldName = fieldName.substring(0, fieldName.lastIndexOf('.'));
+ fieldName = fieldName + ".Enforced";
+ document.Form[fieldName].style.display="";
+ }
+ }
+ } else {
+ if (field.value != localizedNotSet) {
+ fieldName = fieldName.substring(0, fieldName.lastIndexOf('.'));
+ fieldName = fieldName + ".Enforced";
+ document.Form[fieldName].style.display="";
+ } else {
+ fieldName = fieldName.substring(0, fieldName.lastIndexOf('.'));
+ fieldName = fieldName + ".Enforced";
+ document.Form[fieldName].style.display="none";
+ }
+ }
+
+ toggleOverwriteLabel();
+ return "";
+ }
+
+ function toggleOverwriteCheckboxFromId(fieldName) {
+ if (document.Form[fieldName].value != localizedNotSet) {
+ fieldName = fieldName.substring(0, fieldName.lastIndexOf('.'));
+ fieldName = fieldName + ".Enforced";
+ document.Form[fieldName].style.display="";
+ } else {
+ fieldName = fieldName.substring(0, fieldName.lastIndexOf('.'));
+ fieldName = fieldName + ".Enforced";
+ document.Form[fieldName].style.display="none";
+ }
+
+ toggleOverwriteLabel();
+ return "";
+ }
+
+ function toggleOverwriteLabel() {
+ var sectionIds = new Array();
+ var allSectionIds = new Array();
+ var elements = document.Form.elements;
+ for(var i=0; i < elements.length; i++) {
+ var fieldName = elements[i].name;
+ if ((fieldName.indexOf(prefix1) == 0)
+ && (fieldName.indexOf(prefix2) == (fieldName.length - prefix2.length))) {
+ fieldName = fieldName.substring(0, fieldName.lastIndexOf('.'));
+ fieldName = fieldName + ".Enforced";
+ var sectionId = fieldName.substring(0, fieldName.indexOf("["));
+ var noAddRequired = false;
+ for (var j = 0; j < allSectionIds.length; j++) {
+ if (allSectionIds[j] == sectionId) {
+ noAddRequired = true;
+ }
+ }
+ if (noAddRequired == false) {
+ allSectionIds[allSectionIds.length] = sectionId;
+ }
+ if (document.Form[fieldName].style.display=="") {
+ var noAddRequired = false;
+ for (var j = 0; j < sectionIds.length; j++) {
+ if (sectionIds[j] == sectionId) {
+ noAddRequired = true;
+ }
+ }
+ if (noAddRequired == false) {
+ sectionIds[sectionIds.length] = sectionId;
+ }
+ }
+ }
+ }
+ for (var k = 0; k < allSectionIds.length; k++) {
+ document.getElementById(allSectionIds[k] + ".overwriteLabelCol").style.display="none";
+ }
+ for (var k = 0; k < sectionIds.length; k++) {
+ document.getElementById(sectionIds[k] + ".overwriteLabelCol").style.display="";
+ }
+ }
+
+ <cc:text name="AlertJavascript" escape="false"/>
+ <cc:text name="JumpToScript"/>
+ <cc:text name="CloseWindowScript"/>
+ //-->
+</script>
+
+</cc:pagetitle>
+</cc:form>
+</cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/settings/ContentAreaPoliciesSection.xml b/webconsole/jsp/settings/ContentAreaPoliciesSection.xml
new file mode 100644
index 0000000..3c5844b
--- /dev/null
+++ b/webconsole/jsp/settings/ContentAreaPoliciesSection.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+<table>
+ <actions>
+ <cc name="EnableButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.profilewnd.settings.Enable"/>
+ <attribute name="dynamic" value="true"/>
+ <attribute name="disabled" value="true"/>
+ <attribute name="onClick" value="setTargetAnchor(this.name);"/>
+ </cc>
+ <cc name="DisableButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.profilewnd.settings.Disable"/>
+ <attribute name="dynamic" value="true"/>
+ <attribute name="disabled" value="true"/>
+ <attribute name="onClick" value="setTargetAnchor(this.name);"/>
+ </cc>
+ <cc name="ActionMenu" tagclass="com.sun.web.ui.taglib.html.CCDropDownMenuTag">
+ <attribute name="dynamic" value="true"/>
+ <attribute name="commandChild" value="ActionMenuHref"/>
+ <attribute name="escape" value="false"/>
+ <attribute name="onChange" value="setTargetAnchor(this.name);"/>
+ <option label="APOC.profilewnd.settings.more" value="None"/>
+ <option label="APOC.profilewnd.settings.enforce" value="Enforce"/>
+ <option label="APOC.profilewnd.settings.unenforce" value="ResetEnforce"/>
+ <option label="APOC.profilewnd.settings.undo" value="UndoPending"/>
+ <option label="APOC.profilewnd.settings.default" value="RestoreDefault"/>
+ </cc>
+ <cc name="EditButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.profilewnd.settings.Edit"/>
+ <attribute name="onClick" value="addRequestParameter('SelectedPropertyView','EditView');setTargetAnchor(this.name);"/>
+ </cc>
+ </actions>
+ <column name="NameColumn" rowheader="true" extrahtml="width='150px' nowrap='nowrap'">
+ <cc name="PropertyName" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag"/>
+ </column>
+ <column name="ValueColumn" rowheader="true">
+ <cc name="PropertyValue" tagclass="com.sun.apoc.manager.settings.PropertyTag"/>
+ </column>
+ <column name="EnabledColumn" rowheader="true" extrahtml="width='30px' nowrap='nowrap'">
+ <cc name="EnabledStatus" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag"/>
+ </column>
+ <column name="EnforcedColumn" rowheader="true" extrahtml="width='30px' nowrap='nowrap'">
+ <cc name="EnforcedStatus" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag"/>
+ </column>
+ <!-- <column name="PendingColumn" rowheader="true" extrahtml="width='110px' nowrap='nowrap'">
+ <cc name="PendingAlarm" tagclass="com.sun.web.ui.taglib.alarm.CCAlarmTag"/>
+ <cc name="PendingStatus" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag"/>
+ </column> -->
+</table>
diff --git a/webconsole/jsp/settings/ContentPageTitle.xml b/webconsole/jsp/settings/ContentPageTitle.xml
new file mode 100644
index 0000000..0bf3523
--- /dev/null
+++ b/webconsole/jsp/settings/ContentPageTitle.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pagetitle SYSTEM "tags/dtd/pagetitle.dtd">
+
+<pagetitle>
+ <pagebuttons>
+ <cc name="SaveButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="primary"/>
+ <attribute name="defaultValue" value="APOC.profilewnd.buttons.save"/>
+ <attribute name="dynamic" value="true"/>
+ <attribute name="disabled" value="true"/>
+ <attribute name="onClick" value="javascript:updateDisabledFields();saveChanges(); return false;"/>
+ </cc>
+ <cc name="CloseButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="type" value="secondary"/>
+ <attribute name="defaultValue" value="APOC.profilewnd.buttons.close"/>
+ <attribute name="title" value="APOC.profilewnd.buttons.close.help"/>
+ <attribute name="onClick" value="javascript:return closeEditorWindow();"/>
+ <attribute name="elementId" value="CloseEditorButton" />
+ </cc>
+ </pagebuttons>
+</pagetitle> \ No newline at end of file
diff --git a/webconsole/jsp/settings/Frameset.jsp b/webconsole/jsp/settings/Frameset.jsp
new file mode 100644
index 0000000..c0e4d73
--- /dev/null
+++ b/webconsole/jsp/settings/Frameset.jsp
@@ -0,0 +1,64 @@
+<%@ page info="Frameset" language="java" %>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+<%@taglib uri="/WEB-INF/apoc.tld" prefix="apoc"%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.PolicySettingsFramesetViewBean">
+
+<html>
+
+<frameset rows="*, 45px" border="2" framespacing="2">
+ <frame name="contents" title="navigation"
+ scrolling="AUTO" marginwidth="0" marginheight="0" border="1"
+ framespacing="1" src="../manager/PolicySettingsContent">
+ <frame name="buttons" title="content" scrolling="AUTO"
+ marginwidth="0" marginheight="0" border="1" framespacing="1"
+ src="../manager/PolicySettingsButtons"/>
+</frameset>
+
+<noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ No frame support!
+ </body>
+</noframes>
+
+</html>
+</jato:useViewBean>
diff --git a/webconsole/jsp/sync/Buttons.jsp b/webconsole/jsp/sync/Buttons.jsp
new file mode 100644
index 0000000..4758872
--- /dev/null
+++ b/webconsole/jsp/sync/Buttons.jsp
@@ -0,0 +1,121 @@
+<%@ page info="Sync Buttons" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.SyncButtonsViewBean">
+
+ <cc:header pageTitle="APOC.sync.title" copyrightYear="2005"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true">
+
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+ <script type="text/javascript">
+ <!--
+ function triggerSync() {
+ var resultsForm = top.results.document.ResultsForm;
+ resultsForm.action = "/apoc/manager/SyncResult?SyncResult.SyncButton=a";
+ resultsForm.submit();
+ return false;
+ }
+
+ function triggerReset() {
+ var resultsForm = top.results.document.ResultsForm;
+ var elementRunner = 0;
+
+ // iterate over every SelectionCheckbox;jato_boolean;LeftIdHidden;RightIdHidden set in all tables
+ while (resultsForm.elements[elementRunner]!=null) {
+ // find begin of one quadruple
+ if (resultsForm.elements[elementRunner].name.indexOf("SelectionCheckbox")!=-1) {
+ resultsForm.elements[elementRunner].checked=false;
+ elementRunner+=3; // skip non-checkboxes
+ }
+ elementRunner++;
+ }
+
+ top.results.enableSync(false);
+ top.results.enableReset(false);
+
+ return false;
+ }
+ // -->
+ </script>
+
+ <cc:form name="ButtonsForm" method="post">
+
+<table border="0" width="100%" cellpadding="0" cellspacing="0">
+<tr>
+ <td valign='bottom'>
+ </td>
+ <td align="right" nowrap="nowrap" valign="bottom">
+ <div class="TtlBtnBtmDiv">
+ <cc:button name="Sync"
+ bundleID="apocBundle"
+ type="secondary"
+ title="APOC.sync.sync.help"
+ defaultValue="APOC.sync.sync.button"
+ onClick="javascript:allowSubmit(false); triggerSync(); return false;"
+ tabIndex="1"
+ disabled="true"/>
+ <cc:button name="Reset"
+ bundleID="apocBundle"
+ type="secondary"
+ title="APOC.sync.reset.help"
+ defaultValue="APOC.sync.reset.button"
+ onClick="javascript:allowSubmit(false); triggerReset(); this.disabled='disabled'; this.className='Btn2Dis'; return false;"
+ tabIndex="2"
+ disabled="true"/>
+ <cc:button name="Cancel"
+ bundleID="apocBundle"
+ title="APOC.sync.cancel.help"
+ type="secondary"
+ defaultValue="APOC.button.cancel"
+ onClick="top.window.close(); return false;"
+ tabIndex="3" />
+ </div>
+ </td>
+</tr>
+</table>
+
+ </cc:form>
+ </cc:header>
+</jato:useViewBean>
+
diff --git a/webconsole/jsp/sync/Contexts.xml b/webconsole/jsp/sync/Contexts.xml
new file mode 100644
index 0000000..9c72771
--- /dev/null
+++ b/webconsole/jsp/sync/Contexts.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE propertysheet SYSTEM "tags/dtd/propertysheet.dtd">
+
+<propertysheet>
+ <section name="contexts" defaultValue=" ">
+ <property>
+ <label name="LeftContextLabel" defaultValue="APOC.sync.sourcerep.label" />
+ <cc name="LeftContext" tagclass="com.sun.web.ui.taglib.html.CCDropDownMenuTag" >
+ <attribute name="title" value="APOC.sync.sourcerep.help"/>
+ <attribute name="onChange" value="javascript:handleSelection(this); return true;"/>
+ </cc>
+ </property>
+ <property>
+ <label name="LeftContextPath" defaultValue="APOC.sync.sourcepath.label" />
+ <cc name="LeftPath" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag"/>
+ <cc name="LeftSpace" tagclass="com.sun.web.ui.taglib.spacer.CCSpacerTag" >
+ <attribute name="height" value="1"/>
+ <attribute name="width" value="15"/>
+ </cc>
+ <cc name="LeftBrowseButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag" >
+ <attribute name="bundleID" value="apocBundle"/>
+ <attribute name="defaultValue" value="APOC.sync.sourcepath.button"/>
+ <attribute name="type" value="secondaryMini"/>
+ <attribute name="title" value="APOC.sync.sourcepath.help"/>
+ <attribute name="onClick" value="javascript:openLeftBrowseTreeWindow(); return false"/>
+ </cc>
+ </property>
+ <property>
+ <label name="RightContextLabel" defaultValue="APOC.sync.targetrep.label" />
+ <cc name="RightContext" tagclass="com.sun.web.ui.taglib.html.CCDropDownMenuTag" >
+ <attribute name="title" value="APOC.sync.targetrep.help"/>
+ <attribute name="onChange" value="javascript:handleSelection(this); return true;"/>
+ </cc>
+ </property>
+ <property>
+ <label name="RightContextPath" defaultValue="APOC.sync.targetpath.label" />
+ <cc name="RightPath" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag"/>
+ <cc name="RightSpace" tagclass="com.sun.web.ui.taglib.spacer.CCSpacerTag" >
+ <attribute name="height" value="1"/>
+ <attribute name="width" value="15"/>
+ </cc>
+ <cc name="RightBrowseButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag" >
+ <attribute name="bundleID" value="apocBundle"/>
+ <attribute name="defaultValue" value="APOC.sync.targetpath.button"/>
+ <attribute name="type" value="secondaryMini"/>
+ <attribute name="title" value="APOC.sync.targetpath.help"/>
+ <attribute name="onClick" value="javascript:openRightBrowseTreeWindow(); return false"/>
+ </cc>
+ </property>
+ </section>
+</propertysheet>
diff --git a/webconsole/jsp/sync/Index.jsp b/webconsole/jsp/sync/Index.jsp
new file mode 100644
index 0000000..5f24af6
--- /dev/null
+++ b/webconsole/jsp/sync/Index.jsp
@@ -0,0 +1,86 @@
+<%@page info="Sync Root Frameset" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.SyncIndexViewBean">
+
+<html>
+ <head><title></title></head>
+ <script type="text/javascript">
+ <!--
+ var m_OpenerTop = top.opener;
+ while (m_OpenerTop.top.opener!=null) {
+ m_OpenerTop = m_OpenerTop.top.opener;
+ }
+ m_OpenerTop = m_OpenerTop.top;
+
+ setInterval("setWindowHandle()", 1000);
+ function setWindowHandle() {
+ m_OpenerTop.m_SyncWindow= top;
+ }
+ // -->
+ </script>
+ <frameset rows="*, 45" border="2" framespacing="2">
+
+ <frame name="results"
+ title="Results"
+ scrolling="AUTO"
+ marginwidth="0"
+ marginheight="0"
+ border="1"
+ framespacing="1"
+ src="/apoc/manager/SyncResult">
+ <frame name="buttons"
+ title="Buttons"
+ scrolling="AUTO"
+ marginwidth="0"
+ marginheight="0"
+ border="1"
+ framespacing="1"
+ src="/apoc/manager/SyncButtons">
+ </frameset>
+
+ <noframes>
+ <body bgcolor="#FFFFFF" text="#000000">
+ This page needs frame support put I18N here
+ </body>
+ </noframes>
+
+</html>
+</jato:useViewBean>
diff --git a/webconsole/jsp/sync/Login.jsp b/webconsole/jsp/sync/Login.jsp
new file mode 100644
index 0000000..5b69708
--- /dev/null
+++ b/webconsole/jsp/sync/Login.jsp
@@ -0,0 +1,86 @@
+<%@page info="Root Onepane" language="java"%>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.SyncLoginViewBean">
+
+<%-- Header --%>
+<cc:header pageTitle="APOC.sync.login.title" copyrightYear="2003"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true"
+ onLoad="javascript:document.forms[0]['SyncLogin.UsernameText'].focus(); return true">
+
+<a name="top" id="top"/>
+
+<cc:secondarymasthead name="Masthead" bundleID="apocBundle"/>
+
+<cc:form name="ContextLoginForm" method="post" defaultCommandChild="LoginButton">
+
+ <jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+ </jato:content>
+
+ <cc:pagetitle name="ContextLoginTitle"
+ pageTitleText="APOC.sync.login.pagetitle"
+ pageTitleHelpMessage="APOC.sync.login.pagehelp"
+ showPageTitleSeparator="true"
+ showPageButtonsTop="false"
+ showPageButtonsBottom="true"
+ bundleID="apocBundle">
+
+ <cc:propertysheet name="ContextLoginSheet"
+ bundleID="apocBundle"
+ showJumpLinks="false"/>
+
+ </cc:pagetitle>
+
+</cc:form>
+
+</cc:header>
+
+</jato:useViewBean>
+
diff --git a/webconsole/jsp/sync/LoginSheet.xml b/webconsole/jsp/sync/LoginSheet.xml
new file mode 100644
index 0000000..2e34d0c
--- /dev/null
+++ b/webconsole/jsp/sync/LoginSheet.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE propertysheet SYSTEM "tags/dtd/propertysheet.dtd">
+
+<propertysheet>
+ <section name="login" defaultValue=" ">
+ <property>
+ <label name="ContextLabel" defaultValue="APOC.sync.sourcerep.label"/>
+ <cc name="ContextText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag"/>
+ </property>
+ <property>
+ <label name="UsernameLabel" defaultValue="APOC.login.username"/>
+ <cc name="UsernameText" tagclass="com.sun.web.ui.taglib.html.CCTextFieldTag">
+ <attribute name="defaultValue" value=""/>
+ </cc>
+ </property>
+ <property>
+ <label name="PasswordLabel" defaultValue="APOC.login.password"/>
+ <cc name="PasswordText" tagclass="com.sun.web.ui.taglib.html.CCPasswordTag">
+ <attribute name="defaultValue" value=""/>
+ </cc>
+ </property>
+ <property>
+ <cc name="LoginButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.button.OK"/>
+ <attribute name="type" value="default"/>
+ </cc>
+ <cc name="CancelButton" tagclass="com.sun.web.ui.taglib.html.CCButtonTag">
+ <attribute name="defaultValue" value="APOC.button.cancel"/>
+ <attribute name="type" value="secondary"/>
+ <attribute name="onClick" value="javascript:top.close()"/>
+ </cc>
+ </property>
+ </section>
+</propertysheet>
diff --git a/webconsole/jsp/sync/Result.jsp b/webconsole/jsp/sync/Result.jsp
new file mode 100644
index 0000000..c8242f1
--- /dev/null
+++ b/webconsole/jsp/sync/Result.jsp
@@ -0,0 +1,287 @@
+<%@ page info="Result" language="java" %>
+<%@page contentType="text/html;charset=UTF-8"%>
+<%--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either
+ the GNU General Public License Version 2 only ("GPL") or
+ the Common Development and Distribution License("CDDL")
+ (collectively, the "License"). You may not use this file
+ except in compliance with the License. You can obtain a copy
+ of the License at www.sun.com/CDDL or at COPYRIGHT. See the
+ License for the specific language governing permissions and
+ limitations under the License. When distributing the software,
+ include this License Header Notice in each file and include
+ the License file at /legal/license.txt. If applicable, add the
+ following below the License Header, with the fields enclosed
+ by brackets [] replaced by your own identifying information:
+ "Portions Copyrighted [year] [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by
+ only the CDDL or only the GPL Version 2, indicate your
+ decision by adding "[Contributor] elects to include this
+ software in this distribution under the [CDDL or GPL
+ Version 2] license." If you don't indicate a single choice
+ of license, a recipient has the option to distribute your
+ version of this file under either the CDDL, the GPL Version
+ 2 or to extend the choice of license to its licensees as
+ provided above. However, if you add GPL Version 2 code and
+ therefore, elected the GPL Version 2 license, then the
+ option applies only if the new code is made subject to such
+ option by the copyright holder.
+--%>
+
+
+<%@taglib uri="/WEB-INF/tld/com_iplanet_jato/jato.tld" prefix="jato"%>
+<%@taglib uri="/WEB-INF/tld/com_sun_web_ui/cc.tld" prefix="cc"%>
+
+<jato:useViewBean className="com.sun.apoc.manager.SyncResultViewBean">
+
+ <cc:header pageTitle="APOC.sync.title" copyrightYear="2005"
+ baseName="com.sun.apoc.manager.resource.apoc_manager"
+ bundleID="apocBundle"
+ isPopup="true"
+ onLoad="javascript:enableSync(false);enableReset(false);">
+
+ <script type="text/javascript" src="/apoc/js/MainWindow.js"></script>
+
+ <script type="text/javascript">
+ <!--
+ var bLeftContext= true;
+
+ function enableSync(pbEnable) {
+ if (pbEnable) {
+ top.buttons.document.forms[0]['SyncButtons.Sync'].disabled='';
+ top.buttons.document.forms[0]['SyncButtons.Sync'].className='Btn2';
+ } else {
+ top.buttons.document.forms[0]['SyncButtons.Sync'].disabled='disabled';
+ top.buttons.document.forms[0]['SyncButtons.Sync'].className='Btn2Dis';
+ }
+ }
+
+ function enableReset(pbEnable) {
+ if (pbEnable) {
+ top.buttons.document.forms[0]['SyncButtons.Reset'].disabled='';
+ top.buttons.document.forms[0]['SyncButtons.Reset'].className='Btn2';
+ } else {
+ top.buttons.document.forms[0]['SyncButtons.Reset'].disabled='disabled';
+ top.buttons.document.forms[0]['SyncButtons.Reset'].className='Btn2Dis';
+ }
+ }
+
+ function openLeftBrowseTreeWindow() {
+ bLeftContext = true;
+ openWindow(window, null, '/apoc/manager/BrowseTreeIndex?ContextId=<cc:text name="LeftContextJS"/>&', 'TreeWindow', 500, 600, true);
+ }
+
+ function openRightBrowseTreeWindow() {
+ bLeftContext = false;
+ openWindow(window, null, '/apoc/manager/BrowseTreeIndex?ContextId=<cc:text name="RightContextJS"/>&', 'TreeWindow', 500, 600, true);
+ }
+
+ function handleSelection(selectTag) {
+ var f=document.ResultsForm;
+ if (f != null) {
+ var sChildName = selectTag.name.substring(selectTag.name.lastIndexOf(".")+1, selectTag.name.length);
+ f.action='/apoc/manager/SyncLogin?SyncLogin.'+sChildName+'='+encodeURIComponent(selectTag.value);
+ f.target='_top';
+ f.submit();
+ }
+
+ return false;
+ }
+
+ function submitBrowse(entityId, entityType) {
+ if (bLeftContext) {
+ document.ResultsForm.action="/apoc/manager/SyncResult?SyncResult.LeftBrowseHref=" + entityType + "|" + encodeURIComponent(entityId);
+ } else {
+ document.ResultsForm.action="/apoc/manager/SyncResult?SyncResult.RightBrowseHref=" + entityType + "|" + encodeURIComponent(entityId);
+ }
+ document.ResultsForm.submit();
+ }
+
+ function collectActions() {
+
+ var resultsForm = document.ResultsForm;
+
+ var elementRunner = 0;
+ var leftId = null;
+ var rightId = null;
+ var bIsTicked = false;
+ var sSyncIndicator = '-';
+
+ // iterate over every SelectionCheckbox;jato_boolean;LeftIdHidden;RightIdHidden set in all tables
+ while (document.forms[0].elements[elementRunner]!=null) {
+ // find begin of one quadruple
+ if (document.forms[0].elements[elementRunner].name.indexOf("SelectionCheckbox")!=-1) {
+ // sync quadruple only if checkbox is ticked
+ if (document.forms[0].elements[elementRunner].checked==true) {
+ bIsTicked=true;
+ sSyncIndicator='+';
+ } else {
+ sSyncIndicator='-';
+ }
+ elementRunner++;
+ elementRunner++; // skip the jato_boolean hidden field introduced by Lockhart 2.1
+ sValue = document.forms[0].elements[elementRunner].value;
+ if ((sValue.indexOf('+')==0) || (sValue.indexOf('-')==0)) {
+ sValue = sValue.substring(1, sValue.length);
+ }
+ document.forms[0].elements[elementRunner].value = sSyncIndicator + sValue;
+ elementRunner++;
+ sValue = document.forms[0].elements[elementRunner].value;
+ if ((sValue.indexOf('+')==0) || (sValue.indexOf('-')==0)) {
+ sValue = sValue.substring(1, sValue.length);
+ }
+ document.forms[0].elements[elementRunner].value = sSyncIndicator + sValue;
+ }
+ elementRunner++;
+ }
+ enableSync(bIsTicked);
+ enableReset(bIsTicked);
+ }
+ // -->
+ </script>
+
+ <cc:secondarymasthead name="Masthead"
+ src="/apoc/images/popuptitle.gif"
+ alt="APOC.masthead.altText"
+ bundleID="apocBundle"/>
+
+ <cc:form name="ResultsForm" method="post" defaultCommandChild="DefaultHref">
+
+ <jato:content name="DisplayAlert">
+ <div class="content-layout">
+ <BR>
+ <cc:alertinline name="Alert" bundleID="apocBundle"/>
+ <BR>
+ <!--
+ <cc:text name="StackTrace"/>
+ -->
+ </div>
+ </jato:content>
+
+ <cc:pagetitle name="SyncResultTitle"
+ pageTitleText="APOC.sync.title"
+ pageTitleHelpMessage="APOC.sync.help"
+ showPageTitleSeparator="true"
+ showPageButtonsTop="true"
+ showPageButtonsBottom="true"
+ bundleID="apocBundle">
+
+ <table cellpadding='0' cellspacing='0' border='0'>
+ <tr><td>
+ <cc:propertysheet name="Contexts" showJumpLinks="false" bundleID="apocBundle"/>
+ </td></tr>
+ <tr><td><br></td></tr>
+ <tr><td align='right'>
+ <cc:button name="CompareButton"
+ bundleID="apocBundle"
+ type="secondary"
+ title="APOC.sync.compare.help"
+ defaultValue="APOC.sync.compare.button"/>
+ </td></tr>
+ </table>
+ <br><br>
+
+ <table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="1" width="10" />
+ </td>
+ <td class="TtlLin" style="background-color:#d0d7da" width="90%">
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="1" width="1" />
+ </td>
+ <td>
+ <img src="/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="1" width="10" />
+ </td>
+ </tr>
+ </table>
+
+ <jato:content name="ActionCompleted">
+
+ <jato:tiledView name="ContextTiledView">
+ <br>
+ <br>
+ <cc:actiontable name="SyncTable"
+ bundleID="apocBundle"
+ title="APOC.sync.result.title"
+ summary="APOC.sync.result.summary"
+ empty="APOC.sync.result.empty"
+ selectionJavascript="setTimeout('collectActions()', 0)"
+ selectionType="multiple"
+ showAdvancedSortIcon="false"
+ showLowerActions="false"
+ showPaginationControls="false"
+ showPaginationIcon="false"
+ showSelectionIcons="true"
+ showSelectionSortIcon="false"
+ maxRows="10"
+ page="1" />
+
+ <br>
+
+ </jato:tiledView>
+
+ <jato:content name="Help">
+
+ <table border="0" width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="bottom">
+ <td nowrap="nowrap" valign="bottom">
+ <div class="TtlTxtDiv">
+ <h1 class="TtlTxt"><cc:text name="HelpText0" defaultValue="APOC.sync.result.help0" bundleID="apocBundle"/></h1>
+ </div>
+ </td>
+ </tr>
+ </table>
+
+ <div class="content-layout">
+ <BR>
+ <cc:text name="HelpText1" defaultValue="APOC.sync.result.help1" bundleID="apocBundle"/>
+ <BR><BR>
+ <cc:text name="HelpText2" defaultValue="APOC.sync.result.help2" bundleID="apocBundle"/>
+ <BR><BR>
+ <cc:text name="HelpText3" defaultValue="APOC.sync.result.help3" bundleID="apocBundle"/>
+ <BR><BR>
+ <cc:text name="HelpText4" defaultValue="APOC.sync.result.help4" bundleID="apocBundle"/>
+ <BR><BR>
+ <cc:text name="HelpText5" defaultValue="APOC.sync.result.help5" bundleID="apocBundle"/>
+ <BR><BR>
+ </div>
+
+ </jato:content>
+
+ </jato:content>
+
+ <jato:content name="ActionCycling">
+ <cc:hidden name="CycleHidden" defaultValue="runs"/>
+ <BR><BR>
+ <CENTER>
+ <H2><cc:text name="BusyText1" defaultValue="APOC.sync.busymsg.text" bundleID="apocBundle"/></H2>
+ <BR>
+ <cc:text name="CurrentAction" defaultValue=""/>
+ <BR><BR>
+ <cc:text name="ElapsedTime" defaultValue=""/>
+ </CENTER>
+ <script type="text/javascript">
+ <!--
+ setTimeout("document.ResultsForm['SyncResult.CompareButton'].click()", 5000);
+ // -->
+ </script>
+ </jato:content>
+
+ </cc:pagetitle>
+
+ <script type="text/javascript">
+ <!--
+ setTimeout('collectActions()', 0);
+ // -->
+ </script>
+
+ </cc:form>
+ </cc:header>
+</jato:useViewBean>
diff --git a/webconsole/jsp/sync/Table.xml b/webconsole/jsp/sync/Table.xml
new file mode 100644
index 0000000..e1b579d
--- /dev/null
+++ b/webconsole/jsp/sync/Table.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table SYSTEM "tags/dtd/table.dtd">
+
+<table>
+ <column name="LeftNameColumn" extrahtml="nowrap='nowrap'" rowheader="true">
+ <cc name="LeftRightSort" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ <cc name="LeftIdHidden" tagclass="com.sun.web.ui.taglib.html.CCHiddenTag" />
+ <cc name="RightIdHidden" tagclass="com.sun.web.ui.taglib.html.CCHiddenTag" />
+ </column>
+ <column name="DiffsColumn" extrahtml="nowrap='nowrap'">
+ <cc name="DiffsHref" tagclass="com.sun.web.ui.taglib.html.CCHrefTag">
+ <attribute name="submitFormData" value="true" />
+ <cc name="DiffsText" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </cc>
+ <cc name="DiffsText2" tagclass="com.sun.web.ui.taglib.html.CCStaticTextFieldTag" />
+ </column>
+</table>