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)
后退,撤销指定编辑历史项数目的操作。
|
public int getCount()
public void setCapacity(int maxCount)
maxCount
- 编辑历史的容量。EditHistory.add(EditType, Recordset, boolean)
EditHistory.add()
方法的示例。public int getCapacity()
public int getCurrentIndex()
public boolean getCanRedo()
public boolean getCanUndo()
EditHistory.add(EditType, Recordset,boolean)
EditHistory.add()
方法的示例。public boolean add(EditType editType, Recordset recordset, boolean isCurrentOnly)
editType
- 编辑操作的类型。recordset
- 编辑操作记录集。isCurrentOnly
- 是否只对当前记录操作。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(); }
public boolean add(EditType editType, long recordsetHandle, boolean isCurrentOnly)
editType
- 编辑类型recordsetHandle
- 记录集句柄isCurrentOnly
- 是否只对当前记录操作默认为False(对整个记录集操作)public boolean undo()
EditHistory.add(EditType, Recordset,boolean)
EditHistory.add()
方法的示例。public boolean undo(int count)
count
- 指定编辑历史项数目。如果使用批量模式,那么每次batchBegin到batchEnd之间的操作,将视为一条编辑历史记录。public boolean redo()
public boolean redo(int count)
count
- 指定编辑历史项数目。如果使用批量模式,那么每次batchBegin到batchEnd之间的操作,将视为一条编辑历史记录。public boolean remove(int index)
index
- 编辑历史项的索引。public boolean removeRange(int index, int count)
index
- 指定的编辑历史索引,从该索引开始删除编辑历史。count
- 要删除的编辑历史的数量。public boolean clear()
public void batchBegin()
使用批量模式,那么每次batchBegin到batchEnd之间的操作,将视为一条编辑历史记录。
EditHistory.add(EditType, Recordset,boolean)
EditHistory.add()
方法的示例。public void batchEnd()
使用批量模式,那么每次batchBegin到batchEnd之间的操作,将视为一条编辑历史记录。
public void batchCancel()
public void dispose()
public void customEditModify(int[] ids, boolean isUndo)
Copyright © 2021–2024 SuperMap. All rights reserved.