// Sample code file: FilesystemAbstractStatusBar.java
// Warning: This code has been marked up for HTML
/*
Copyright (c) 1997-1999 Novell, Inc. All Rights Reserved.
THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND TREATIES.
USE AND REDISTRIBUTION OF THIS WORK IS SUBJECT TO THE LICENSE AGREEMENT
ACCOMPANYING THE SOFTWARE DEVELOPMENT KIT (SDK) THAT CONTAINS THIS WORK.
PURSUANT TO THE SDK LICENSE AGREEMENT, NOVELL HEREBY GRANTS TO DEVELOPER A
ROYALTY-FREE, NON-EXCLUSIVE LICENSE TO INCLUDE NOVELL'S SAMPLE CODE IN ITS
PRODUCT. NOVELL GRANTS DEVELOPER WORLDWIDE DISTRIBUTION RIGHTS TO MARKET,
DISTRIBUTE, OR SELL NOVELL'S SAMPLE CODE AS A COMPONENT OF DEVELOPER'S
PRODUCTS. NOVELL SHALL HAVE NO OBLIGATIONS TO DEVELOPER OR DEVELOPER'S
CUSTOMERS WITH RESPECT TO THIS CODE.
*/
package com.novell.sample.snapins.filesystem;
import java.awt.*;
import java.io.*;
import java.util.*;
// ConsoleOne snapin interfaces.
import com.novell.application.console.snapin.*;
import com.novell.application.console.snapin.scope.*;
import com.novell.application.console.snapin.context.*;
/**
Provides an example of extending the AbstractStatusBarSnapin class
along with implementing the ShellSelectionListener interface.
*/
public class FilesystemAbstractStatusBar extends AbstractStatusBarSnapin
implements ShellSelectionListener
{
/**
The text to be displayed in the new status bar item.
*/
private String text;
/*
Implementation of the abstract methods in the AbstractStatusBarSnapin
class.
*/
/**
The getSnapinName() method (derived from Snapin interface) is called by
configurators to display the localized name of this snap-in. It returns
the translated name for this snap-in. The shell displays the name you
provide together with all the snap-ins of a given type. The user is then
allowed to select which snap-ins should be set as active in the current
configuration. The getSnapinName() method may be called before initSnapin().
*/
public String getSnapinName()
{
return "Novell's Sample Filesystem Namespace AbstractStatusBar";
}
/**
The getSnapinDescription() method (derived from Snapin interface) is called
by the configurators to display the localized description information
about this snap-in. It returns the snap-in description as a String.
*/
public String getSnapinDescription()
{
return "Novell's Sample Filesystem Namespace AbstractStatusBar Description";
}
/**
The initAbstractSnapin() method initializes this class. You should do any
onetime initialization here, such as adding event listeners. The method
returns a boolean set to <i>true</i> if the snap-in is able to successfully
complete initialization, or <i>false</i> if initialization fails. The 'info'
parameter contains data the snap-in may use for initialization, such as
references to the shell and the snap-in type, and may contain a reference
to snap-in context data.
*/
public boolean initAbstractSnapin(InitSnapinInfo info)
{
shell.addShellSelectionListener(this);
text = "Tree Selection: ";
setStatusBarWidth(20);
return true;
}
/**
Implement shutdownAbstractSnapin() in your extending snap-in if there is
anything that needs to be cleaned up, such as removing shell event listeners.
It will be called from this class's shutdownSnapin() method before it performs
any necessary clean up.
*/
public void shutdownAbstractSnapin()
{
shell.removeShellSelectionListener(this);
}
/**
The getStatusBarText() method should return the text to be displayed in the
status bar item. This is called by ConsoleOne when the snap-in is first loaded,
and whenever this snap-in's refresh() method is called.
*/
public String getStatusBarText()
{
return text;
}
/*
Implementation of the ShellSelectionListener interface.
*/
/**
The selectionChanged() method is a ShellSelectionEvent method that will be called
when the selection changes in ConsoleOne. It allows the snap-in to perform an
action associated with a selection event. The 'event' parameter is the
ShellSelectionEvent that contains information about the new selection.
*/
public void selectionChanged(ShellSelectionEvent event)
{
ObjectEntryCollection objectCollection = event.getObjectCollection();
if (!objectCollection.hasNoElements())
{
ObjectEntry firstElement = objectCollection.getFirstElement();
if(firstElement != null)
{
File file = new File(firstElement.getName());
if (file.exists())
{
text = file.getPath() + " - size:" + file.length() + " bytes";
}
else
{
text = firstElement.getName();
}
refresh();
}
}
}
}