next up previous contents
Next: C Manipulation von Managed Up: Code für die Oberfläche Previous: Erläuterung

B.2 Datei AccountContentManagerApplet.java

/*
 * AccountContentManagerApplet.java
 *
 */

import java.applet.*;
import java.awt.*;
import java.net.*;
import java.util.*;
import sunw.admin.avm.base.*;

public class AccountContentManagerApplet extends Applet {
    TopLevelContentManager mgr;
    ContentManager users;
    Image userImg;

    org.omg.CORBA.ORB orb;
    sysagent.AccountFactory accountFactory;
    sysagent.Account accounts[];

    Vector userVals = new Vector();

    public void init() {
        System.err.println("Initializing applet.");

        // initialize the ORB
        System.err.print("Initializing ORB ...");
        orb = org.omg.CORBA.ORB.init(this);
        System.err.println("o.k.");
        // get a reference for the account factory
        accountFactory = sysagent.AccountFactoryHelper.bind(orb, 
                                                            "AccountFactory");
        accounts = accountFactory.list();
        System.err.println("Bound to account factory.");
        for(int i=0; i < accounts.length; i++) {

            System.err.println("account.Login() = " + accounts[i].Login());

            Vector accountVector = new Vector();
            accountVector.addElement(accounts[i].Login());
            accountVector.addElement(accounts[i].Password());
            accountVector.addElement(new Long(accounts[i].ID()).toString());
            accountVector.addElement(new Long(accounts[i].GID()).toString());
            accountVector.addElement(accounts[i].Comment());
            accountVector.addElement(accounts[i].Home());
            accountVector.addElement(accounts[i].Shell());
            userVals.addElement(accountVector);
        }

        System.err.println("Done collecting account data.");
        setLayout(new BorderLayout());
        Context.setProperty("headerBackground", new Color(70,70,170));
        Context.setProperty("headerForeground", Color.white);
        try {
            userImg = Context.getImage("images/user.gif", this);
        }
        catch (MalformedURLException e) {
            System.out.println("Invalid URL");
        }
        add("Center", mgr = new TopLevelContentManager());
        mgr.add("Center", users = 
                new AccountContentMgr("Users", userImg, userVals));
        users.addItemListener(mgr);
        
        mgr.select(users);
    }
}





class AccountContentMgr extends SimpleContentManager {
        static private Command[] listCmds = new Command[4];
        static {
                listCmds[0] = new PropertiesCommand();
                listCmds[1] = new FilterCommand();
                listCmds[2] = new SortCommand();
                listCmds[3] = new DisplayCommand();
        }


        public AccountContentMgr(String title, Image img, Vector userVals) {
                super(title, img);

                // Set Table parameters
                Table table = getTable();
                table.setNumColumns(7);
                table.setColumnWidthInChars(0, 8);
                table.setColumnWidthInChars(1, 15);
                table.setColumnWidthInChars(2, 5);
                table.setColumnWidthInChars(3, 5);
                table.setColumnWidthInChars(4, 20);
                table.setColumnWidthInChars(5, 23);
                table.setColumnWidthInChars(6, 15);

                // Set up menus
                setCommands(Selectable.VIEW_COMMANDS, listCmds);

                // Create TableData, plus Filter, Sort, and View pipes.
                setTableData(new TableData(userVals));
                String[] cols = new String[7];
                cols[0] = "Login";
                cols[1] = "Password";
                cols[2] = "User ID";
                cols[3] = "Group ID";
                cols[4] = "Comment";
                cols[5] = "Home Directory";
                cols[6] = "Shell";

                setQuerySpace(makeQuerySpace());
                setFilterPipe(new TableFilterPipe(getTableData(), cols));

                setSortPipe(new TableSortPipe(getFilterPipe(), cols));

                int[] wids = new int[7];
                wids[0] = 8;
                wids[1] = 15;
                wids[2] = 5;
                wids[3] = 5;
                wids[4] = 20;
                wids[5] = 23;
                wids[6] = 15;

                setViewPipe(new TableViewPropertiesPipe(getSortPipe(), 
                    cols, wids));

                getViewPipe().addObserver(this);
                getTableData().changed();
        }


        private QuerySpace makeQuerySpace() {
                QuerySpace qs = new QuerySpace();
                QueryRelation relation[] = {QueryRelation.MATCHES};
                Vector values;

                // Login
                values = new Vector();
                values.addElement("*");
                qs.add("Account", "Login", QueryType.STRING, 
                       relation, values);

                //Password
                values = new Vector();
                values.addElement("*");
                qs.add("Account", "Password", QueryType.STRING, 
                       relation, values);

                // User ID
                values = new Vector();
                values.addElement("*");
                qs.add("Account", "User ID", QueryType.STRING, 
                       relation, values);

                // Group ID
                values = new Vector();
                values.addElement("*");
                qs.add("Account", "Group ID", QueryType.STRING, 
                       relation, values);

                // Comment
                values = new Vector();
                values.addElement("*");
                qs.add("Account", "Comment", QueryType.STRING, 
                       relation, values);

                // Home Directory
                values = new Vector();
                values.addElement("*");
                qs.add("Account", "Home Directory", QueryType.STRING, 
                       relation, values);

                // Shell
                values = new Vector();
                values.addElement("*");
                qs.add("Account", "Shell", QueryType.STRING, 
                       relation, values);

                return qs;
        }
}



Copyright Munich Network Management Team