ruper2/src/java/eclipse/org/krysalis/ruper2/eclipse/plugin/ui/browser RepositorySetModel.java,NONE,1.1 RuperView.java,NONE,1.1

[email protected]
Newsgroups gmane.comp.krysalis.metamorphosis.cvs
Message-ID <[email protected]>
Update of /cvsroot/metamorphosis/ruper2/src/java/eclipse/org/krysalis/ruper2/eclipse/plugin/ui/browser
In directory sc8-pr-cvs1:/tmp/cvs-serv15861/src/java/eclipse/org/krysalis/ruper2/eclipse/plugin/ui/browser

Added Files:
	RepositorySetModel.java RuperView.java 
Log Message:
browser - still testing

--- NEW FILE: RepositorySetModel.java ---
/*
 * Created on Oct 23, 2003
  */
package org.krysalis.ruper2.eclipse.plugin.ui.browser;

import java.util.Iterator;
import java.util.List;

import org.krysalis.ruper2.ResourceUpdater;
import org.krysalis.ruper2.RuperException;
import org.krysalis.ruper2.repository.IRepository;
import org.krysalis.ruper2.repository.RepositoryObject;

/**
 * @author anou_mana
 */
public class RepositorySetModel {

	private ResourceUpdater m_ruper;
	
	private RepositoryObject m_repositoryObject;
	
	
	/**
	 * 
	 */
	public RepositorySetModel()  throws RuperException {
		super();
		m_ruper = new ResourceUpdater();
		List repositories = m_ruper.getDefaultRepositorySet().getRepositories();
		
		// create a Repository object
		m_repositoryObject = new RepositoryObject("Repositories", 
									RepositoryObject.NOT_REPOSITORY);
		
		//iterate and get the repository objects for each repository
		for(Iterator iterator = repositories.iterator(); iterator.hasNext();){
			RepositoryObject repositoryObject = m_ruper.getRepositoryObject(
									(IRepository)iterator.next() );
			m_repositoryObject.addChild(repositoryObject);
		}
		
	}


}

--- NEW FILE: RuperView.java ---
package org.krysalis.ruper2.eclipse.plugin.ui.browser;

import java.util.Iterator;
import java.util.List;

import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.ViewPart;
import org.krysalis.ruper2.RuperException;
import org.krysalis.ruper2.eclipse.EclipseFileUpdater;
import org.krysalis.ruper2.repository.IRepository;
import org.krysalis.ruper2.repository.RepositoryObject;
import org.krysalis.version.log.Logger;

/**
 * This sample class demonstrates how to plug-in a new
 * workbench view. The view shows data obtained from the
 * model. The sample creates a dummy model on the fly,
 * but a real implementation would connect to the model
 * available either in this or another plug-in (e.g. the workspace).
 * The view is connected to the model using a content provider.
 * <p>
 * The view uses a label provider to define how model
 * objects should be presented in the view. Each
 * view can present the same model objects using
 * different labels and icons, if needed. Alternatively,
 * a single label provider can be shared between views
 * in order to ensure that objects of the same type are
 * presented in the same way everywhere.
 * <p>
 */

public class RuperView extends ViewPart {
	
    private TreeViewer viewer;
    
	// root model input to the view
	private RepositoryObject m_rootInput;
    
    //private Action action1;
    //private Action doubleClickAction;

    class ViewContentProvider  implements  ITreeContentProvider {

        public void inputChanged(Viewer v, Object oldInput, Object newInput) {
        	
        }

        public void dispose() {
        }

        public Object[] getElements(Object inputElement) {

            return getChildren(inputElement);
        }

        public Object getParent(Object child) {
            if (child instanceof RepositoryObject) {
                return ((RepositoryObject) child).getParent();
            }
            return null;
        }

        public Object[] getChildren(Object parent) {
			try {
				if (parent instanceof RepositoryObject) {
				    return ((RepositoryObject) parent).getChildrenArray();
				}
				else if (parent.equals(ResourcesPlugin.getWorkspace())) {
					return m_rootInput.getChildrenArray();
				}
			}
			catch (RuperException exp) {
				Logger.getLogger().error("Failed to getChildren", exp);
			}
            return new Object[0];
        }

        public boolean hasChildren(Object parent) {
			try {
				if (parent instanceof RepositoryObject)
				    return ((RepositoryObject) parent).hasChildren();
			}
			catch (RuperException exp) {
				Logger.getLogger().error("Failed to check the repository for children", exp);
			}
            return false;
        }

    }
    class ViewLabelProvider extends LabelProvider {

        public String getText(Object obj) {
            return obj.toString();
        }
        public Image getImage(Object obj) {
            String imageKey = ISharedImages.IMG_OBJ_PROJECT;

			if (obj instanceof RepositoryObject) {
				
                if (((RepositoryObject) obj).getType() == RepositoryObject.RESOURCE_GROUP)
                    imageKey = ISharedImages.IMG_OBJ_FOLDER;
                
                else if(((RepositoryObject) obj).getType() == RepositoryObject.RESOURCE)
                    imageKey = ISharedImages.IMG_OBJ_FILE;

            }

            return PlatformUI.getWorkbench().getSharedImages().getImage(
                imageKey);
        }
    }

    class NameSorter extends ViewerSorter {
    }

    /**
     * The constructor.
     */
    public RuperView() {
    	init();
    }

	private void init(){
		try {
			EclipseFileUpdater eclipseRuper = EclipseFileUpdater.getEclipseFileUpdater();
			List repositories = eclipseRuper.getDefaultRepositorySet().getRepositories();
			
			// create a Repository object
			m_rootInput = new RepositoryObject("Repositories", 
										RepositoryObject.NOT_REPOSITORY);
			
			//iterate and get the repository objects for each repository
			for(Iterator iterator = repositories.iterator(); iterator.hasNext();){
				RepositoryObject repositoryObject = eclipseRuper.getRepositoryObject(
										(IRepository)iterator.next() );
				m_rootInput.addChild(repositoryObject);
			}
		}
		catch (RuperException exp) {
			Logger.getLogger().error("Failed to init Ruper View", exp);
		}
	}
	
    /**
     * This is a callback that will allow us
     * to create the viewer and initialize it.
     */
    public void createPartControl(Composite parent) {
        viewer =
            new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);

        viewer.setContentProvider(new ViewContentProvider());
        viewer.setLabelProvider(new ViewLabelProvider());
        viewer.setSorter(new NameSorter());
        viewer.setInput(ResourcesPlugin.getWorkspace());
        //makeActions();
        hookContextMenu();
        hookDoubleClickAction();
        contributeToActionBars();
    }

    private void hookContextMenu() {
        MenuManager menuMgr = new MenuManager("#PopupMenu");
        menuMgr.setRemoveAllWhenShown(true);
        menuMgr.addMenuListener(new IMenuListener() {
            public void menuAboutToShow(IMenuManager manager) {
               // RuperView.this.fillContextMenu(manager);
            }
        });
        Menu menu = menuMgr.createContextMenu(viewer.getControl());
        viewer.getControl().setMenu(menu);
        getSite().registerContextMenu(menuMgr, viewer);
    }

    private void contributeToActionBars() {
        IActionBars bars = getViewSite().getActionBars();
    }

    private void hookDoubleClickAction() {
        viewer.addDoubleClickListener(new IDoubleClickListener() {
            public void doubleClick(DoubleClickEvent event) {
              //  doubleClickAction.run();
            }
        });
    }

    private void showMessage(String message) {
        MessageDialog.openInformation(
            viewer.getControl().getShell(),
            "Resource Updater View",
            message);
    }

    /**
     * Passing the focus request to the viewer's control.
     */
    public void setFocus() {
        viewer.getControl().setFocus();
    }
    

}



-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.