|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.cvsclient.actions;
import org.netbeans.modules.vcscore.actions.*;
import org.openide.filesystems.*;
import org.netbeans.modules.cvsclient.*;
import org.netbeans.modules.cvsclient.commands.*;
import org.netbeans.modules.javacvs.commands.*;
import java.util.*;
/**
* this class handles the default case of straight cvs command
* implementation..
* @author Milos Kleint
*/
public abstract class DefaultCallBackCommandAction extends CallBackCommandAction {
protected int usedUiMode;
private LinkedList commandList;
private LinkedList displList;
/** Creates new UpdateCommandAction */
public DefaultCallBackCommandAction() {
}
/**
* Is called from the ActionSupporter when it starts iterating the
* collected filesystems and fileobjects..
* Can be used for initial settings, eg. to create a common displayer for everyone.
*
*/
public void initCallBack(JavaCvsActionSupporter supporter) {
// does nothing by default..
super.initCallBack(supporter);
usedUiMode = NbJavaCvsFileSystem.MODE_NOVICE;
// skipDisplayers = true;
commandList = new LinkedList();
displList = new LinkedList();
}
/**
* method is called from the ActionSupporter and executes the action on the fileobjects..
*
*/
public void performCallBack(NbJavaCvsFileSystem fs, FileObject[] fos) {
if (fs.checkOffLine()) return;
// now set the common command switch entering mode..
// ADVANCED has precedence over COMMAND-LINE which has precedence over NOVICE
if (fs.getUiMode() == NbJavaCvsFileSystem.MODE_ADVANCED) {
usedUiMode = fs.getUiMode();
} else if (fs.getUiMode() == NbJavaCvsFileSystem.MODE_COMMAND_LINE
&& usedUiMode == NbJavaCvsFileSystem.MODE_NOVICE) {
usedUiMode = fs.getUiMode();
}
if (usedUiMode == NbJavaCvsFileSystem.MODE_NOVICE && isSwitched()) {
usedUiMode = NbJavaCvsFileSystem.MODE_ADVANCED;
}
boolean skipDisplayers = !FsCommandFactory.getFsInstance().showDisplayerWhenLimited(getCommandClass())
&& (fs.getDisplayType() == NbJavaCvsFileSystem.DISP_TYPE_LIMITED);
FileSystemCommand comm = FsCommandFactory.getFsInstance().createCommand(getCommandClass(), true, fos, fs.createClientProvider());
fs.prepareCommand(comm);
commandList.add(comm);
displList.add(skipDisplayers ? Boolean.TRUE : Boolean.FALSE);
}
/**
* Gets the last command processed.
* the call to DefaultCallBackCommandAction.finishCallBack()
* clears the references.
*/
protected FileSystemCommand getLastCommandInstance() {
if (commandList != null && commandList.size() > 0) {
return (FileSystemCommand)commandList.getLast();
}
return null;
}
/**
* returns the list of commands..
* DefaultCallBackCommandAction.initCallBack() initializes the value, and
* the call to DefaultCallBackCommandAction.finishCallBack()
* clears the reference.
*/
protected List getCommandList() {
return commandList;
}
/**
* returns the list of boolean values that indicate wheather the displayer is used..
* DefaultCallBackCommandAction.initCallBack() initializes the value, and
* the call to DefaultCallBackCommandAction.finishCallBack()
* clears the reference.
*/
protected List getDisplList() {
return displList;
}
/**
* Is called from the ActionSupporter when it stops iterating the
* collected filesystems and fileobjects..
* Can be used for clean up, etc.
*
*/
public void finishCallBack() {
if (commandList.size() != 0) {
// we got some command's we have to run.. thus show the right customizer for them
if (usedUiMode == NbJavaCvsFileSystem.MODE_COMMAND_LINE) {
FsCommandFactory.getFsInstance().doShowCustomizerAndRun(commandList, new CommandLineParamInput(), displList);
return;
}
boolean skipParams = false;
if (usedUiMode == NbJavaCvsFileSystem.MODE_NOVICE) {
skipParams = true;
}
FsCommandFactory.getFsInstance().showCustomizerAndRun(commandList, displList, skipParams);
}
clearReferences();
}
protected void clearReferences() {
commandList = null;
displList = null;
}
/**
* Each action needs to define which cvs command it belongs to.
*/
protected abstract Class getCommandClass();
/**
* when included in the popup menu, this property denotes if the action has
* switchable customizer. if true and with the right user Interface mode,
* such action will be appended the 3 dots if CTRL is pressed.
*
*/
public boolean isSwitchable() {
return true;
}
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.