主要代码如下:
ILayer m_pCurrentLayer = null;
IWorkspaceEdit pWorkspaceEdit = null ;
IFeatureLayer pFeatureLayer = null ;
IDataset pDataset ;
IFeatureCursor pFeatureCursor;
IFeature pFeature ;
IActiveView pActiveView ;
boolean bHasUndo[]={false};
IFeatureClass pFeatureClass ;
pActiveView = m_hookHelper.getActiveView() ;
//.getFocusMap() .getFeatureSelection() ;
m_pCurrentLayer = pActiveView.getFocusMap() .getLayer( EsriConstant.CURLayerIndex);
if( m_pCurrentLayer ==null){
System.out.println( "当前图层为空" );
return;
}
pFeatureLayer = new IFeatureLayerProxy(m_pCurrentLayer );
pFeatureClass = pFeatureLayer.getFeatureClass() ;
pDataset = new IDatasetProxy(pFeatureClass) ;
if( pDataset ==null){
return;
}
pWorkspaceEdit = new IWorkspaceEditProxy(pDataset.getWorkspace()) ;
pWorkspaceEdit.hasUndos(bHasUndo );
System.out.println( "bHasUndo=" + bHasUndo[0]);
if(bHasUndo[0]){
pWorkspaceEdit.undoEditOperation() ;
}
pActiveView.refresh() ;
不知为什么,它就是不undo,但是通过跟踪它确定执行了pWorkspaceEdit.undoEditOperation() ;,请各位高手帮忙解决一下
ILayer m_pCurrentLayer = null;
IWorkspaceEdit pWorkspaceEdit = null ;
IFeatureLayer pFeatureLayer = null ;
IDataset pDataset ;
IFeatureCursor pFeatureCursor;
IFeature pFeature ;
IActiveView pActiveView ;
boolean bHasUndo[]={false};
IFeatureClass pFeatureClass ;
pActiveView = m_hookHelper.getActiveView() ;
//.getFocusMap() .getFeatureSelection() ;
m_pCurrentLayer = pActiveView.getFocusMap() .getLayer( EsriConstant.CURLayerIndex);
if( m_pCurrentLayer ==null){
System.out.println( "当前图层为空" );
return;
}
pFeatureLayer = new IFeatureLayerProxy(m_pCurrentLayer );
pFeatureClass = pFeatureLayer.getFeatureClass() ;
pDataset = new IDatasetProxy(pFeatureClass) ;
if( pDataset ==null){
return;
}
pWorkspaceEdit = new IWorkspaceEditProxy(pDataset.getWorkspace()) ;
pWorkspaceEdit.hasUndos(bHasUndo );
System.out.println( "bHasUndo=" + bHasUndo[0]);
if(bHasUndo[0]){
pWorkspaceEdit.undoEditOperation() ;
}
pActiveView.refresh() ;
不知为什么,它就是不undo,但是通过跟踪它确定执行了pWorkspaceEdit.undoEditOperation() ;,请各位高手帮忙解决一下
希望有人能给你解决
别沉了