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)
后退,撤销指定编辑历史项数目的操作。
-
-
-
方法详细资料
-
getCount
public int getCount()
返回编辑历史项的数量。- 返回:
- 编辑历史项的数量。
- 默认值:
- 默认值为 0。
-
setCapacity
public void setCapacity(int maxCount)
设置编辑历史的容量,即最多能够容纳的历史项的数量。- 参数:
maxCount
- 编辑历史的容量。- 另请参阅:
EditHistory.add(EditType, Recordset, boolean)
- 示范代码:
- 请参见
EditHistory.add()
方法的示例。
-
getCapacity
public int getCapacity()
返回编辑历史的容量,即最多能够容纳的历史项的数量。- 返回:
- 编辑历史的容量。
- 默认值:
- 默认值为 1000。
-
getCurrentIndex
public int getCurrentIndex()
返回当前编辑历史项的索引。- 返回:
- 当前编辑历史项的索引。
- 默认值:
- 默认值为 -1。
-
getCanRedo
public boolean getCanRedo()
返回是否可重做。- 返回:
- 可重做返回 true;否则返回 false。
- 默认值:
- 默认值为 false。
-
getCanUndo
public boolean getCanUndo()
返回是否可撤销。- 返回:
- 可撤销返回 true;否则返回 false。
- 另请参阅:
EditHistory.add(EditType, Recordset,boolean)
- 示范代码:
- 请参见
EditHistory.add()
方法的示例。 - 默认值:
- 默认值为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.