com.supermap.data

类 EditHistory

  • java.lang.Object
    • com.supermap.data.InternalHandle
      • com.supermap.data.InternalHandleDisposable
        • com.supermap.data.EditHistory
  • 所有已实现的接口:
    IDisposable


    public class EditHistory
    extends com.supermap.data.InternalHandleDisposable
    编辑历史类。

    该类包含有关编辑操作的历史信息。

    • 构造器概要

      构造器 
      构造器和说明
      EditHistory()
      构造一个新的 EditHistory 对象。
    • 方法概要

      所有方法 实例方法 具体方法 
      限定符和类型 方法和说明
      boolean add(EditType editType, long recordsetHandle, boolean isCurrentOnly)
      添加到编辑历史, 添加新对象之后、修改和删除对象之前调用
      boolean add(EditType editType, Recordset recordset, boolean isCurrentOnly)
      将编辑操作记录添加到编辑历史记录集中。
      void batchBegin()
      批量模式开始,表示开始批量记录调用该方法之后对记录集的操作行为。
      void batchCancel()
      取消批量模式。
      void batchEnd()
      批量模式结束,表示结束对记录集操作行为的批量记录。
      boolean clear()
      清空编辑历史。
      void customEditModify(int[] ids, boolean isUndo) 
      void dispose()
      释放该对象所占用的资源。
      boolean getCanRedo()
      返回是否可重做。
      boolean getCanUndo()
      返回是否可撤销。
      int getCapacity()
      返回编辑历史的容量,即最多能够容纳的历史项的数量。
      int getCount()
      返回编辑历史项的数量。
      int getCurrentIndex()
      返回当前编辑历史项的索引。
      boolean redo()
      前进,恢复下一操作。
      boolean redo(int count)
      前进,恢复指定编辑历史项数目的操作。
      boolean remove(int index)
      删除指定索引对应的编辑历史。
      boolean removeRange(int index, int count)
      删除从指定索引开始的指定数量的编辑历史。
      void setCapacity(int maxCount)
      设置编辑历史的容量,即最多能够容纳的历史项的数量。
      boolean undo()
      后退,撤销当前的操作。
      boolean undo(int count)
      后退,撤销指定编辑历史项数目的操作。
      • 从类继承的方法 com.supermap.data.InternalHandleDisposable

        makeSureNativeObjectLive
    • 构造器详细资料

      • EditHistory

        public EditHistory()
        构造一个新的 EditHistory 对象。
    • 方法详细资料

      • getCount

        public int getCount()
        返回编辑历史项的数量。
        返回:
        编辑历史项的数量。
        默认值:
        默认值为 0。
      • getCapacity

        public int getCapacity()
        返回编辑历史的容量,即最多能够容纳的历史项的数量。
        返回:
        编辑历史的容量。
        默认值:
        默认值为 1000。
      • getCurrentIndex

        public int getCurrentIndex()
        返回当前编辑历史项的索引。
        返回:
        当前编辑历史项的索引。
        默认值:
        默认值为 -1。
      • getCanRedo

        public boolean getCanRedo()
        返回是否可重做。
        返回:
        可重做返回 true;否则返回 false。
        默认值:
        默认值为 false。
      • add

        public boolean add(EditType editType,
                           Recordset recordset,
                           boolean isCurrentOnly)
        将编辑操作记录添加到编辑历史记录集中。当新对象添加完毕,或者在对原有对象修改和删除之前,调用此方法。
        参数:
        editType - 编辑操作的类型。
        recordset - 编辑操作记录集。
        isCurrentOnly - 是否只对当前记录操作。
        返回:
        添加成功返回 true;否则返回 false。
        示范代码:
        以下代码示范如何批量进行编辑操作,以删除操作为例;同时示范回滚操作。
         public void addTest(){
                // 假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象
                // 从数据源中取出一个结果数据集 dataset
                // 查询 SmID 为20的倍数的记录集(游标属性必须为动态),批量进行删除操作(每次 recordset 使用完要释放)
                DatasetVector dataset = (DatasetVector) datasource.getDatasets().get(
                        "World");
                EditHistory editHistory = new EditHistory();
                editHistory.setCapacity(50);
                editHistory.batchBegin();
                for (int i = 0; i < dataset.getRecordCount(); i+=20) {
                    Recordset recordset = dataset.query("SmID =" + i,
                                                        CursorType.DYNAMIC);
        
                    editHistory.add(EditType.DELETE, recordset, true);
                    recordset.edit();
                    recordset.delete();
                    recordset.dispose();
                }
                editHistory.batchEnd();
        
                // 判断历史信息是否能够回滚,若能回滚,则进行回滚操作
                while (editHistory.getCanUndo()) {
                    editHistory.undo();
                }
        
                // 清空并释放历史信息
                editHistory.clear();
                editHistory.dispose();
            }
         
      • add

        public boolean add(EditType editType,
                           long recordsetHandle,
                           boolean isCurrentOnly)
        添加到编辑历史, 添加新对象之后、修改和删除对象之前调用
        参数:
        editType - 编辑类型
        recordsetHandle - 记录集句柄
        isCurrentOnly - 是否只对当前记录操作默认为False(对整个记录集操作)
        返回:
        是否成功
      • undo

        public boolean undo()
        后退,撤销当前的操作。如果使用批量模式,那么每次batchBegin到batchEnd之间的操作,将视为一条编辑历史记录。
        返回:
        撤销成功返回 true;否则返回 false。
        另请参阅:
        EditHistory.add(EditType, Recordset,boolean)
        示范代码:
        请参见 EditHistory.add() 方法的示例。
      • undo

        public boolean undo(int count)
        后退,撤销指定编辑历史项数目的操作。
        参数:
        count - 指定编辑历史项数目。如果使用批量模式,那么每次batchBegin到batchEnd之间的操作,将视为一条编辑历史记录。
        返回:
        撤销成功返回 true;否则返回 false。
      • redo

        public boolean redo()
        前进,恢复下一操作。如果使用批量模式,那么每次batchBegin到batchEnd之间的操作,将视为一条编辑历史记录。
        返回:
        恢复成功返回 true;否则返回 false。
      • redo

        public boolean redo(int count)
        前进,恢复指定编辑历史项数目的操作。
        参数:
        count - 指定编辑历史项数目。如果使用批量模式,那么每次batchBegin到batchEnd之间的操作,将视为一条编辑历史记录。
        返回:
        恢复成功返回 true;否则返回 false。
      • remove

        public boolean remove(int index)
        删除指定索引对应的编辑历史。
        参数:
        index - 编辑历史项的索引。
        返回:
        删除成功返回 true;否则返回 false。
      • removeRange

        public boolean removeRange(int index,
                                   int count)
        删除从指定索引开始的指定数量的编辑历史。
        参数:
        index - 指定的编辑历史索引,从该索引开始删除编辑历史。
        count - 要删除的编辑历史的数量。
        返回:
        删除成功返回 true;否则返回 false。
      • clear

        public boolean clear()
        清空编辑历史。
        返回:
        清空成功返回 true;否则返回 false。
      • batchBegin

        public void batchBegin()
        批量模式开始,表示开始批量记录调用该方法之后对记录集的操作行为。

        使用批量模式,那么每次batchBegin到batchEnd之间的操作,将视为一条编辑历史记录。

        另请参阅:
        EditHistory.add(EditType, Recordset,boolean)
        示范代码:
        请参见 EditHistory.add() 方法的示例。
      • batchEnd

        public void batchEnd()
        批量模式结束,表示结束对记录集操作行为的批量记录。

        使用批量模式,那么每次batchBegin到batchEnd之间的操作,将视为一条编辑历史记录。

      • batchCancel

        public void batchCancel()
        取消批量模式。通过该方法可以取消批量模式,调用该方法后,从调用批量记录模式开始到该方法调用之间对记录集的所有操作行为将被抛弃,不进行记录。
      • dispose

        public void dispose()
        释放该对象所占用的资源。当调用该方法之后,此对象不再可用。
      • customEditModify

        public void customEditModify(int[] ids,
                                     boolean isUndo)

Copyright © 2021–2024 SuperMap. All rights reserved.