我创建了eclipse插件(按钮),它将一些文本插入到活动的打开文件中。我鼓励http://wiki.eclipse.org/FAQ_How_do_I_insert_text_in_the_active_text_editor%3F
public class PasteTextAction implements IWorkbenchWindowActionDelegate {
private IWorkbenchWindow window;
public void run(IAction aAction) {
IWorkbenchPage page = window.getActivePage();
IEditorPart part = page.getActiveEditor();
if (!(part instanceof AbstractTextEditor))
return;
ITextEditor editor = (ITextEditor) part;
IDocumentProvider dp = editor.getDocumentProvider();
IDocument doc = dp.getDocument(editor.getEditorInput());
try {
int offset = doc.getLineOffset(doc.getNumberOfLines() - 4);
doc.replace(offset, 0, "pasteText\n");
} catch (BadLocationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void selectionChanged(IAction aAction, ISelection aSelection) {
}
public void dispose() {
}
public void init(IWorkbenchWindow aWindow) {
window = aWindow;
}
}
效果很好。
但我在ClearCase版本控制系统下的readonly文件或文件有问题。它将文本粘贴到编辑器中,但它不会尝试将文件设置为可写,或者如果文件无法设置为可写,则不会粘贴它。 (它不会打开ClearCase文件的CheckOut窗口)。
如何以编程方式设置文件可写?
答案 0 :(得分:1)
请注意,Eclipse插件中的任何Java解决方案都只适用于快照视图 (如果您有right Java version)
如果您处于动态视图中,setWritable(true);
将不工作
您必须执行cleartool checkout -nc filePath
。
我使用快照视图 也许我不希望设置文件可写,因为
setWritable(true);
hijack the file (我不想劫持文件)。
我想要打开CheckOut
窗口。如果我从剪贴板粘贴文本,则会出现相同的行为。
没有简单的方法来显示原生ClearCase "Checkout" dialog box 您必须重新创建它(管理UCM活动以及您正在使用UCM Web视图),正如ClearCase插件在Eclipse中所做的那样: