Hexise's Blog

          業(yè)精于勤荒于嬉 行成于思?xì)в陔S
          posts - 13, comments - 12, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          2007年1月4日

          一、軟件準(zhǔn)備:
                 IBM Lotus Domino Server 7.0.2 ;
                 IBM Lotus Notes Designer and Admin Client 7.0.2 ;
                 IBM Lotus Sametime Server 7.5.1 ;
                 IBM Lotus Sametime Connect 7.5.1 ;

          二、安裝順序:
                  Domino Server->Sametime Server->Notes Admin Client->Sametime Client

          三、Domino Server安裝:
                  1.按照提示安裝Domino Server,選擇Domino Enterprise Server
                  2.運(yùn)行Server Setup Program
                  3.選擇Set up the first server or a new Domino domain.
                  4.填寫Server name和Server title,Organization Name和Organization Certifier password
                  5.填寫管理員的名稱和密碼,一定要記錄該用戶名和密碼
                  6.選中Domino Server提供的Http Services
                  7.不必選中LDAP Service

          四、Sametime Server安裝:
                  1.按照提示安裝Sametime Server,如果需要激活80端口,選中Enable HTTP tunneling。
                  2.啟動(dòng)Sametime歡迎界面,http://domain/stcenter.nsf,登錄至管理頁面,如果無法登錄,可能是域名解析問題,將域名與ip的對(duì)應(yīng)關(guān)系添加到windows/system32/drivers/etc/host文件中
                  3.如果歡迎界面沒有用戶注冊(cè)選項(xiàng),需管理員開啟該功能。
                  
                  在管理頁面中選擇Domino目錄->Domino,勾選

          posted @ 2007-09-04 17:23 Hexise 閱讀(1398) | 評(píng)論 (0)編輯 收藏

          向已有的TreeViewer和TableViewer上添加編輯功能,可以使用CellEditor和CellModifier。

          CellEditor定義了某個(gè)列被編輯時(shí)顯示的外觀,它可以是文本框、下拉列表框或單選框,也可以自己定義。

          通常使用的CellEditor的子類就是:CheckboxCellEditor、ComboBoxCellEditor和TextCellEditor。
          CellEditor一般用數(shù)組來保存,如果某個(gè)列不需要編輯,則可將該列的CellEditor設(shè)為null。
          當(dāng)CellEditor的數(shù)組定義完后,即可利用setCellEditors(CellEditor[] editors)方法將該數(shù)組設(shè)置到對(duì)應(yīng)的TreeViewer或TableViewer中去。例如:

          ????CellEditor[]?cellEditors? = ? new ?CellEditor[ 5 ];
          ????cellEditors[
          0 ]? = ? new ?TextCellEditor(tableViewer.getTable());
          ????cellEditors[
          1 ]? = ? null ;
          ????cellEditors[
          2 ]? = ? new ?ComboBoxCellEditor(tableViewer.getTable(),? new ?String[]{ " first " ,? " second " ,? " third " ,? " forth " });
          ????cellEditors[
          3 ]? = ? new ?CheckboxCellEditor(tableViewer.getTable());
          ????cellEditors[
          4 ]? = ? new ?CustomizedTextCellEditor(tableViewer.getTable());
          ????tableViewer.setCellEditors(cellEditors);

          其中CustomizedTextCellEditor是自定義的CellEditor,避免了設(shè)置value時(shí)造成的空指針異常。

          protected?class?CustomizedTextCellEditor?extends?TextCellEditor{
          ????
          public?CustomizedTextCellEditor(Composite?parent){
          ????????
          super(parent);
          ????}

          ????
          protected?void?doSetValue(Object?value)?{
          ????????
          if(value?==?null)
          ????????????
          return;
          ????????
          super.doSetValue(value);
          ????}
          ????????
          }


          CellEditor負(fù)責(zé)外觀,它對(duì)要編輯的模型信息一無所知。所以jface中引入了ICellModifier接口,將model與CellEditor聯(lián)系在一起。為了確定在CellModifier中的列,需要定義columnProperties的String[]數(shù)組,用以區(qū)分不同列對(duì)應(yīng)的不同屬性。使用setColumnProperties(String[] columnProperties)設(shè)置該屬性集。

          ICellModifier定義了三個(gè)接口方法:

          public boolean canModify(Object element, String property);
          該方法判斷何時(shí)該列可以被編輯。其中element是對(duì)應(yīng)的model。返回true表示此時(shí)該列可以被編輯。

          public Object getValue(Object element, String property);
          該方法一般在activateCellEditor()時(shí)調(diào)用,用于設(shè)定CellEditor的初始值。其中element是對(duì)應(yīng)的model。

          此處雖然可以返回Object類型的引用,但是使用時(shí)需小心,特定的CellEditor僅接受特定類型的Value。比如:
          TextCellEditor對(duì)應(yīng)String類型的Value;
          ComboBoxCellEditor對(duì)應(yīng)Integer類型的Value;
          CheckBoxCellEditor對(duì)應(yīng)Boolean類型的Value;
          若返回了不適合的Value對(duì)象,則會(huì)拋出AssertionFailedException。

          public void modify(Object element, String property, Object value);
          該方法執(zhí)行保存修改。一般在saveEditorValue之類的方法中調(diào)用。此處的element不再是model,而是Item類型的引用。取用對(duì)應(yīng)的模型,需要使用((Item) element).getData()方法。一般此處的value值,也就是當(dāng)前CellEditor的Value值,使用CellEditor.getValue()得到。另外,在執(zhí)行完更改后,需要刷新對(duì)應(yīng)的TableViewer或TreeViewer,使做出的更新可見。

          org.eclipse.debug.internal.ui.elements.adapters.DefaultVariableCellModifier是ICellModifier的一個(gè)完整實(shí)現(xiàn):

          import?org.eclipse.debug.core.DebugException;
          import?org.eclipse.debug.core.model.IVariable;
          import?org.eclipse.debug.internal.ui.DebugUIPlugin;
          import?org.eclipse.debug.internal.ui.DefaultLabelProvider;
          import?org.eclipse.debug.internal.ui.VariableValueEditorManager;
          import?org.eclipse.debug.ui.actions.IVariableValueEditor;
          import?org.eclipse.jface.viewers.ICellModifier;

          /**
          ?*?
          @since?3.2
          ?*
          ?
          */

          public?class?DefaultVariableCellModifier?implements?ICellModifier?{
          ????
          ????
          /*?(non-Javadoc)
          ?????*?@see?org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object,?java.lang.String)
          ?????
          */

          ????
          public?boolean?canModify(Object?element,?String?property)?{
          ????????
          if?(VariableColumnPresentation.COLUMN_VARIABLE_VALUE.equals(property))?{
          ????????????
          if?(element?instanceof?IVariable)?{
          ????????????????
          return?((IVariable)?element).supportsValueModification();
          ????????????}

          ????????}

          ????????
          return?false;
          ????}


          ????
          /*?(non-Javadoc)
          ?????*?@see?org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object,?java.lang.String)
          ?????
          */

          ????
          public?Object?getValue(Object?element,?String?property)?{
          ????????
          if?(VariableColumnPresentation.COLUMN_VARIABLE_VALUE.equals(property))?{
          ????????????
          if?(element?instanceof?IVariable)?{
          ????????????????IVariable?variable?
          =?(IVariable)?element;
          ????????????????
          try?{
          ????????????????????
          return?DefaultLabelProvider.escapeSpecialChars(variable.getValue().getValueString());
          ????????????????}
          ?catch?(DebugException?e)?{
          ????????????????????DebugUIPlugin.log(e);
          ????????????????}

          ????????????}

          ????????}

          ????????
          return?null;
          ????}


          ????
          /*?(non-Javadoc)
          ?????*?@see?org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object,?java.lang.String,?java.lang.Object)
          ?????
          */

          ????
          public?void?modify(Object?element,?String?property,?Object?value)?{
          ????????Object?oldValue?
          =?getValue(element,?property);
          ????????
          if?(!value.equals(oldValue))?{
          ????????????
          if?(VariableColumnPresentation.COLUMN_VARIABLE_VALUE.equals(property))?{
          ????????????????
          if?(element?instanceof?IVariable)?{
          ????????????????????IVariable?variable?
          =?(IVariable)?element;
          ????????????????????IVariableValueEditor?editor?
          =?VariableValueEditorManager.getDefault().getVariableValueEditor(variable.getModelIdentifier());
          ????????????????????
          if?(value?instanceof?String)?{
          ????????????????????????value?
          =?DefaultLabelProvider.encodeEsacpedChars((String)value);
          ????????????????????}

          ????????????????????
          if?(editor?!=?null)?{
          ????????????????????????
          if??(editor.saveVariable(variable,?(String)?value,?DebugUIPlugin.getShell()))?{
          ????????????????????????????
          return;
          ????????????????????????}

          ????????????????????}

          ????????????????????
          try?{
          ????????????????????????variable.setValue((String)?value);
          ????????????????????}
          ?catch?(DebugException?e)?{
          ????????????????????????DebugUIPlugin.errorDialog(DebugUIPlugin.getShell(),?Messages.VariableColumnPresentation_4,?Messages.VariableColumnPresentation_5,?e.getStatus());
          ????????????????????}

          ????????????????}

          ????????????}

          ????????}

          ????}


          }

          posted @ 2007-01-04 15:29 Hexise 閱讀(6404) | 評(píng)論 (4)編輯 收藏

          主站蜘蛛池模板: 平谷区| 酒泉市| 定陶县| 双峰县| 昭平县| 建瓯市| 定兴县| 彭州市| 关岭| 建德市| 龙海市| 渝北区| 玉门市| 洛南县| 德保县| 东至县| 枣强县| 大兴区| 沙河市| 乐至县| 泰安市| 于田县| 资源县| 肇东市| 图片| 鹤峰县| 青阳县| 仁寿县| 阿拉善右旗| 滦平县| 陆河县| 罗城| 郁南县| 介休市| 分宜县| 合肥市| 烟台市| 辉县市| 梁平县| 茌平县| 常山县|