How can I use a single buffer to load file content from several files(more than one)
Submitted by Friday, 28 April, 2006 - 02:17
on
I'm trying to write a plug in for file content analyse, and I need to show contents of several files(more than one) in a single buffer, I tried a lot, but I can not do this job successfully, because the file to open is very big, so I want to use jEdit's Buffer object to do job, can some one give me any advice?
I tried to do in this way:
1. open each file I want to use by:
Buffer buffer = jEdit.getBuffer(aPath);
if (buffer == null) {
Hashtable props = new Hashtable();
buffer = jEdit.openFile(null, null, aPath, false, props);
} else {
// close if this buffer is currently
// visible in the view.
//if (buffer != null){
EditPane[] editPanes = panel.getEditPanes();
for (int j = 0; j < editPanes.length; j++) {
if (editPanes[j].getBuffer() == buffer) {
LogPump.textArea.append("Comming close buffer \n");
jEdit.closeBuffer(panel, buffer);
LogPump.textArea.append("Buffer closed for 1 time \n");
break;
}
}
}
2. than use Buffer newBuffer = jEdit.newFile(view) to get a untitled buffer,
3. than use Buffer temp = jEdit.getBuffer(path) to get every file's buffer I need
4. than use String test = temp.getText(0, temp.getLength()) to get the file content
5. than use newBuffer.insert(0, test) to insert the file content to the untitled buffer
But in the 4th step, I found that I can not get the Text because the Buffer temp is not load, so my question is how can I load a buffer for disk mannually, I've tried the buffer.load() method, but it doesn't work, how can I do ?
I tried to do in this way:
1. open each file I want to use by:
Buffer buffer = jEdit.getBuffer(aPath);
if (buffer == null) {
Hashtable props = new Hashtable();
buffer = jEdit.openFile(null, null, aPath, false, props);
} else {
// close if this buffer is currently
// visible in the view.
//if (buffer != null){
EditPane[] editPanes = panel.getEditPanes();
for (int j = 0; j < editPanes.length; j++) {
if (editPanes[j].getBuffer() == buffer) {
LogPump.textArea.append("Comming close buffer \n");
jEdit.closeBuffer(panel, buffer);
LogPump.textArea.append("Buffer closed for 1 time \n");
break;
}
}
}
2. than use Buffer newBuffer = jEdit.newFile(view) to get a untitled buffer,
3. than use Buffer temp = jEdit.getBuffer(path) to get every file's buffer I need
4. than use String test = temp.getText(0, temp.getLength()) to get the file content
5. than use newBuffer.insert(0, test) to insert the file content to the untitled buffer
But in the 4th step, I found that I can not get the Text because the Buffer temp is not load, so my question is how can I load a buffer for disk mannually, I've tried the buffer.load() method, but it doesn't work, how can I do ?