Package ag.kcmedia

Source Code of ag.kcmedia.JavaBrowser

//
// Sources/ag/kcmedia/JavaBrowser.java: Class file for WO Component 'JavaBrowser'
// Project DevStudio
//
// Created by ak on Wed Jul 24 2002
//
package ag.kcmedia;

import org.apache.log4j.Logger;

import ag.kcmedia.Jode.ClassProxy;
import ag.kcmedia.Jode.PackageProxy;

import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.eocontrol.EOQualifier;
import com.webobjects.foundation.NSArray;
import com.webobjects.foundation.NSDictionary;
import com.webobjects.foundation.NSMutableArray;
public class JavaBrowser extends WOComponent {
    static final Logger log = Logger.getLogger(JavaBrowser.class);

    public PackageProxy currentPackage;
    public ClassProxy currentClass;
   
    public String currentMethod;
    public String currentVariable;

    public NSArray selectedPackages = new NSArray();
    public NSArray selectedClasses = new NSArray();
    public NSMutableArray visitedClasses = new NSMutableArray();
    public ClassProxy selectedClass;

    public boolean showCode = true;

    public JavaBrowser(WOContext context) {
        super(context);
    }

    public WOComponent toggleCode() {
        showCode = !showCode;
        return null;
    }
   
    public WOComponent largeView() {
        String content = null;
        if(selectedClass() != null) {
            if(showCode)
                content = selectedClass().sourceCode();
            else
                content = selectedClass().documentation();
        }
        WOComponent nextPage = pageWithName("StringHolder");
        nextPage.takeValueForKey(content, "string");
        nextPage.takeValueForKey(Boolean.valueOf(!showCode), "isDocumentation");
       
        return nextPage;
    }

    public WOComponent submit() {
        ClassProxy selectedClass = null;
        if(selectedClasses.count() > 0)
            selectedClass = (ClassProxy)selectedClasses.objectAtIndex(0);
        if(selectedClass != null) {
            if(visitedClasses.containsObject(selectedClass))
                visitedClasses.removeObject(selectedClass);
            visitedClasses.insertObjectAtIndex(selectedClass, 0);
            this.selectedClass = selectedClass;
        }
        log.info("submit() - selectedClass: " + selectedClass);
        return null;
    }
    public WOComponent selectHistory() {
        ClassProxy selectedClass = this.selectedClass;
        if(selectedClass != null) {
            if(false) {
                if(visitedClasses.containsObject(selectedClass))
                    visitedClasses.removeObject(selectedClass);
                visitedClasses.insertObjectAtIndex(selectedClass, 0);
            }
            selectedClasses = new NSArray(selectedClass);
            selectedPackages = new NSArray(selectedClass.packageProxy());
        }
        log.info("selectHistory() - selectedClass: " + selectedClass + " - " + currentClass);
        return null;
    }
    public WOComponent selectFound() {
        ClassProxy selectedClass = this.selectedClass;
        if(selectedClass != null) {
            if(false) {
                if(visitedClasses.containsObject(selectedClass))
                    visitedClasses.removeObject(selectedClass);
                visitedClasses.insertObjectAtIndex(selectedClass, 0);
            }
            selectedClasses = new NSArray(selectedClass);
            selectedPackages = new NSArray(selectedClass.packageProxy());
        }
        log.info("selectHistory() - selectedClass: " + selectedClass + " - " + currentClass);
        return null;
    }
   
    public String actionUrlForClass(String action) {
        if(selectedClass() == null)
            return null;
        return context().directActionURLForActionNamed(action + "." + selectedClass().fullName(), null);
    }

    public String docsUrl() { return actionUrlForClass("docs");}
    public String codeUrl() { return actionUrlForClass("code");}
    public String methodsUrl() { return actionUrlForClass("methods");}
    public String largeViewUrl() { return (showCode? codeUrl(): docsUrl());}
   
    public NSDictionary packages() {
        return Jode.allPackages();
    }

    public PackageProxy selectedPackage() {
        if(selectedPackages.count() > 0) {
            return (PackageProxy)selectedPackages.objectAtIndex(0);
        }
        return null;
    }

    public void setSelectedPackages(NSArray value) {
        selectedPackages = value;
        selectedClasses = null;
        selectedClass = null;
        log.info("setSelectedPackages()" + value);
    }

    public void setClassName(String value) {
        ClassProxy selectedClass = Jode.classProxyForName(value);
        selectedClasses = new NSArray(selectedClass);
        selectedPackages = new NSArray(selectedClass.packageProxy());
        this.selectedClass = selectedClass;
    }

    public void setSelectedClasses(NSArray value) {
        selectedClasses = value;
    }

    public ClassProxy selectedClass() {
        if(selectedClass == null && selectedClasses.count() > 0) {
            selectedClass = (ClassProxy)selectedClasses.objectAtIndex(0);
        }
        return selectedClass;
    }
    public NSArray foundClasses = null;
    public String stringToFind = "";
    public String lastStringToFind = "";

    public void setStringToFind(String value) {
        stringToFind = value;
    }
    public NSArray foundClasses() {
        log.info("start");
        if(stringToFind != null && stringToFind.length() >= 5 && !stringToFind.equals(lastStringToFind)) {
            EOQualifier qualifier = EOQualifier.qualifierWithQualifierFormat("names.toString caseInsensitiveLike %s", new NSArray("*"+stringToFind+"*"));
            foundClasses = EOQualifier.filteredArrayWithQualifier(Jode.allClasses().allValues(), qualifier);
            lastStringToFind = stringToFind;
        }
        log.info("end");
        return foundClasses;
    }
}
TOP

Related Classes of ag.kcmedia.JavaBrowser

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.