blob: 096684f15469d62e1bffe903ecd391dbb027855f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003 CSC SoftwareConsult GmbH & Co. OHG, Germany and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* CSC - Intial implementation
*******************************************************************************/
package org.eclipse.team.internal.ccvs.core.client.listeners;
import java.util.LinkedList;
import java.util.List;
import java.util.StringTokenizer;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.team.internal.ccvs.core.EditorsInfo;
import org.eclipse.team.internal.ccvs.core.ICVSFolder;
import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
import org.eclipse.team.internal.ccvs.core.client.CommandOutputListener;
/**
*
*
* Listener for the Editors command
*
* @author <a href="mailto:kohlwes@gmx.net">Gregor Kohlwes</a>
*
*/
public class EditorsListener extends CommandOutputListener {
/**
* List to store the EditorsInfos
*/
private List infos = new LinkedList();
/**
* Name of the current file
*/
private String fileName;
/**
* Constructor EditorsListener.
*/
public EditorsListener() {
}
/**
* @see org.eclipse.team.internal.ccvs.core.client.listeners.ICommandOutputListener#messageLine(java.lang.String, org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation, org.eclipse.team.internal.ccvs.core.ICVSFolder, org.eclipse.core.runtime.IProgressMonitor)
*/
public IStatus messageLine(
String line,
ICVSRepositoryLocation location,
ICVSFolder commandRoot,
IProgressMonitor monitor) {
// If there is a file with multiple editors
// then cvs will write the filename only
// in the first line and the following
// line will start with a Tab
if (line.startsWith("\t")) { //$NON-NLS-1$
line = fileName + line;
}
EditorsInfo info = new EditorsInfo();
StringTokenizer tokenizer = new StringTokenizer(line,"\t"); //$NON-NLS-1$
int i = 0;
while(tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken();
switch (i) {
case 0:
info.setFileName(token);
fileName = token;
break;
case 1:
info.setUserName(token);
break;
case 2:
info.setDateString(token);
break;
case 3:
info.setComputerName(token);
break;
default :
break;
}
i++;
}
infos.add(info);
return OK;
}
/**
* Method getEditorsInfos.
* @return IEditorsInfo[]
*/
public EditorsInfo[] getEditorsInfos() {
return (EditorsInfo[]) infos.toArray(new EditorsInfo[infos.size()]);
}
}