You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by ms...@apache.org on 2001/07/17 08:34:46 UTC

cvs commit: jakarta-slide/src/contrib/webdavgui/src/java/org/apache/webdav/ui/filechooser/plafui SPMetalFileChooserUI.java SPWindowsFileChooserUI.java

msmith      01/07/16 23:34:46

  Added:       src/contrib/webdavgui/src/java/org/apache/webdav/ui/filechooser/plafui
                        SPMetalFileChooserUI.java
                        SPWindowsFileChooserUI.java
  Log:
  Oops - missed two added files in big commit earlier.
  
  Revision  Changes    Path
  1.1                  jakarta-slide/src/contrib/webdavgui/src/java/org/apache/webdav/ui/filechooser/plafui/SPMetalFileChooserUI.java
  
  Index: SPMetalFileChooserUI.java
  ===================================================================
  /*
   * $Header: /home/cvs/jakarta-slide/src/contrib/webdavgui/src/java/org/apache/webdav/ui/filechooser/plafui/SPMetalFileChooserUI.java,v 1.1 2001/07/17 06:34:46 msmith Exp $
   * $Revision: 1.1 $
   * $Date: 2001/07/17 06:34:46 $
   *
   * ====================================================================
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:  
   *       "This product includes software developed by the 
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * [Additional notices, if required by prior licensing conditions]
   *
   */ 
  
  package org.apache.webdav.ui.filechooser.plafui;
  
  import java.io.File;
  import java.awt.*;
  import java.awt.event.*;
  
  import javax.swing.*;
  import javax.swing.filechooser.FileSystemView;
  import javax.swing.filechooser.FileFilter;
  import javax.swing.plaf.ComponentUI;
  
  import javax.swing.plaf.metal.MetalFileChooserUI;
  
  import org.apache.webdav.ui.filechooser.dir.*;
  import org.apache.webdav.ui.filechooser.*;
  
  
  public class SPMetalFileChooserUI extends MetalFileChooserUI {
  
      private Action approveAction = new ApproveAction();
      private Action gotoHomeAction = new GotoHomeAction();
      private Action gotoParentDirectoryAction = new GotoParentDirectoryAction();
  
      public SPMetalFileChooserUI(JFileChooser filechooser) {
  	super(filechooser);
      }
  
      //
      // ComponentUI Interface Implementation methods
      //
      public static ComponentUI createUI(JComponent c) {
          return new SPMetalFileChooserUI((JFileChooser)c);
      }
  
      public Action getGoHomeAction() {
  	return gotoHomeAction;
      }
  
      public Action getApproveSelectionAction() {
  	return approveAction;
      }
  
      public Action getChangeToParentDirectoryAction() {
  	return gotoParentDirectoryAction;
      }
  
      protected MouseListener createDoubleClickListener(JFileChooser fc,
  	JList list) {
  
  	list.setCellRenderer(new MetalFileRenderer());
  	return new MetalDoubleClickListener(list);
      }
  
      protected class MetalDoubleClickListener extends MouseAdapter {
  	protected JList list;
  
  	public MetalDoubleClickListener(JList list) {
  	    this.list = list;
  	}
  
  	public void mouseClicked(MouseEvent e) {
  	    if (e.getClickCount() == 2) {
  		int index = list.locationToIndex(e.getPoint());
  		if(index >= 0) {
  		    getSPFileChooser().setCursor(
  		            Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
  		    SPFile f = (SPFile) list.getModel().getElementAt(index);
  		    if (f.isTraversable())  {
  		        list.clearSelection();
  			f.refreshContent();
  			getSPFileChooser().setCurrentDirectory(f);
  		    } else {
  			getSPFileChooser().approveSelection();
  		    }
  		    getSPFileChooser().setCursor(Cursor.getDefaultCursor());
  		}
  	    }
  	}//mouseClicked()
      } // MetalDoubleClickListener inner class
  
      /**
       * Responds to an Open or Save request
       */
      protected class ApproveAction extends AbstractAction {
  	public void actionPerformed(ActionEvent e) {
  	    SPFileChooser chooser = getSPFileChooser();
  
  	    String filename = getFileName();
  	    FileSystemView fs = chooser.getFileSystemView();
  	    SPFile dir = (SPFile) chooser.getCurrentDirectory();
  
  	    if(filename == null || filename.equals("")) {
  		// no file selected, multiple selection off,
  		// therefore cancel the approve action
  		return;
  	    }
  
  	    if(filename != null) {
  		// Remove whitespace from beginning and end of filename
  		filename = filename.trim();
  	    }
  
  
  	    if(filename != null && !filename.equals("")) {
  		FileFilter fFilter = chooser.getFileFilter();
  		if ( (chooser.getDialogType() == JFileChooser.SAVE_DIALOG)
  			&& (chooser.isFilterNaming())
  			&& (fFilter instanceof SPFileFilter) )  {
  		    SPFileFilter filter = (SPFileFilter) fFilter;
  		    int dotIndex = filename.indexOf(".");
  		    if (dotIndex >= 0)  {
  			filename=filename.substring(0,dotIndex);
  		    }
  		    filename = filename.concat(
  			(String) filter.getFileExtension(0));
  		}
  
  		// check for directory change action
  		SPFile selectedFile = (SPFile) fs.createFileObject(
  		    chooser.getCurrentDirectory(), filename);
  
  		boolean isDir = selectedFile.isDirectory();
  		boolean isDirSelEnabled = chooser.isDirectorySelectionEnabled();
  		boolean isFileSelEnabled = chooser.isFileSelectionEnabled();
  
  		if(isDir && !isDirSelEnabled) {
  		    chooser.setCurrentDirectory(selectedFile);
  		} else if ((!isDir && isFileSelEnabled)
  		        || (isDir && isDirSelEnabled)) {
  		    chooser.setSelectedFile(selectedFile);
  		    chooser.approveSelection();
  		}
  
  		return;
  	    }
  	    chooser.setSelectedFile(null);
  	    chooser.setSelectedFiles(null);
  	    chooser.cancelSelection();
  	}//actionPerformed();
      }//ApproveAction inner class
  
      /**
       * Acts on the "home" key event or equivalent event.
       */
      protected class GotoHomeAction extends AbstractAction {
  	protected GotoHomeAction() {
  	    super("Go Home");
  	}
  	public void actionPerformed(ActionEvent e) {
              getSPFileChooser().setCursor(
  		Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
  	    SPFile homeDir = getSPFileChooser().getHomeDirectory();
  	    homeDir.refreshContent();
  	    getSPFileChooser().setCurrentDirectory(homeDir);
              getSPFileChooser().setCursor(Cursor.getDefaultCursor());
  	}
      }//GotoHomeAction inner class
  
      protected class GotoParentDirectoryAction extends AbstractAction {
  	protected GotoParentDirectoryAction() {
  	    super("Go Up");
  	}
  	public void actionPerformed(ActionEvent e) {
  	    SPFileChooser chooser = getSPFileChooser();
              chooser.setCursor(
  		Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
  	    File currentDir = chooser.getCurrentDirectory();
  	    SPFile parentDir = (SPFile) chooser.getFileSystemView().
  		getParentDirectory(currentDir);
  	    parentDir.refreshContent();
  	    chooser.setCurrentDirectory(parentDir);
  	    chooser.setCursor(Cursor.getDefaultCursor());
  	}
      }//GotoParentDirectoryAction inner class
  
      protected class MetalFileRenderer extends MetalFileChooserUI.FileRenderer  {
  
  	public Component getListCellRendererComponent(JList list, Object value,
  	      int index, boolean isSelected, boolean cellHasFocus) {
  
  	    super.getListCellRendererComponent(list, value, index, isSelected,
  		cellHasFocus);
  
  	    File file = (File) value;
  
  	    if (! isSelected)  {
  	        Color textColor = getSPFileChooser().getTextColor(file);
  		setForeground(textColor);
  	    }
  
  	    return this;
  	}
      }//MetalFileRenderer inner class
  
      private SPFileChooser getSPFileChooser()  {
          return (SPFileChooser) getFileChooser();
      }
  
  } // End of SPMotifFileChooserUI class
  
  
  
  
  
  
  
  
  
  1.1                  jakarta-slide/src/contrib/webdavgui/src/java/org/apache/webdav/ui/filechooser/plafui/SPWindowsFileChooserUI.java
  
  Index: SPWindowsFileChooserUI.java
  ===================================================================
  /*
   * $Header: /home/cvs/jakarta-slide/src/contrib/webdavgui/src/java/org/apache/webdav/ui/filechooser/plafui/SPWindowsFileChooserUI.java,v 1.1 2001/07/17 06:34:46 msmith Exp $
   * $Revision: 1.1 $
   * $Date: 2001/07/17 06:34:46 $
   *
   * ====================================================================
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:  
   *       "This product includes software developed by the 
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * [Additional notices, if required by prior licensing conditions]
   *
   */ 
  
  package org.apache.webdav.ui.filechooser.plafui;
  
  import java.io.File;
  import java.awt.*;
  import java.awt.event.*;
  
  import javax.swing.*;
  import javax.swing.filechooser.FileSystemView;
  import javax.swing.filechooser.FileFilter;
  import javax.swing.plaf.ComponentUI;
  
  import com.sun.java.swing.plaf.windows.WindowsFileChooserUI;
  
  import org.apache.webdav.ui.filechooser.dir.*;
  import org.apache.webdav.ui.filechooser.*;
  
  public class SPWindowsFileChooserUI extends WindowsFileChooserUI {
  
      private Action approveAction = new ApproveAction();
      private Action gotoHomeAction = new GotoHomeAction();
      private Action gotoParentDirectoryAction = new GotoParentDirectoryAction();
  
      public SPWindowsFileChooserUI(JFileChooser filechooser) {
  	super(filechooser);
      }
  
      //
      // ComponentUI Interface Implementation methods
      //
      public static ComponentUI createUI(JComponent c) {
          return new SPWindowsFileChooserUI((JFileChooser)c);
      }
  
      public Action getGoHomeAction() {
  	return gotoHomeAction;
      }
  
      public Action getApproveSelectionAction() {
  	return approveAction;
      }
  
      public Action getChangeToParentDirectoryAction() {
  	return gotoParentDirectoryAction;
      }
  
      protected MouseListener createDoubleClickListener(JFileChooser fc,
  	JList list) {
  
  	list.setCellRenderer(new WindowsFileRenderer());
  	return new WindowsDoubleClickListener(list);
      }
  
      protected class WindowsDoubleClickListener extends MouseAdapter {
  	protected JList list;
  
  	public WindowsDoubleClickListener(JList list) {
  	    this.list = list;
  	}
  
  	public void mouseClicked(MouseEvent e) {
  	    if (e.getClickCount() == 2) {
  		int index = list.locationToIndex(e.getPoint());
  		if(index >= 0) {
                      getSPFileChooser().setCursor(
  		        Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
  		    SPFile f = (SPFile) list.getModel().getElementAt(index);
  		    if (f.isTraversable())  {
  		        list.clearSelection();
  			f.refreshContent();
  			getSPFileChooser().setCurrentDirectory(f);
  		    } else {
  			getSPFileChooser().approveSelection();
  		    }
  		    getSPFileChooser().setCursor(Cursor.getDefaultCursor());
  		}
  	    }
  	}//mouseClicked()
      } // WindowsDoubleClickListener inner class
  
      /**
       * Responds to an Open or Save request
       */
      protected class ApproveAction extends AbstractAction {
  	public void actionPerformed(ActionEvent e) {
  	    SPFileChooser chooser = getSPFileChooser();
  
  	    String filename = getFileName();
  	    FileSystemView fs = chooser.getFileSystemView();
  	    SPFile dir = (SPFile) chooser.getCurrentDirectory();
  
  	    if(filename == null || filename.equals("")) {
  		// no file selected, multiple selection off,
  		// therefore cancel the approve action
  		return;
  	    }
  
  	    if(filename != null) {
  		// Remove whitespace from beginning and end of filename
  		filename = filename.trim();
  	    }
  
  
  	    if(filename != null && !filename.equals("")) {
  		FileFilter fFilter = chooser.getFileFilter();
  		if ( (chooser.getDialogType() == JFileChooser.SAVE_DIALOG)
  			&& (chooser.isFilterNaming())
  			&& (fFilter instanceof SPFileFilter) )  {
  		    SPFileFilter filter = (SPFileFilter) fFilter;
  		    int dotIndex = filename.indexOf(".");
  		    if (dotIndex >= 0)  {
  			filename=filename.substring(0,dotIndex);
  		    }
  		    filename = filename.concat(
  			(String) filter.getFileExtension(0));
  		}
  
  		// check for directory change action
  		SPFile selectedFile = (SPFile) fs.createFileObject(
  		    chooser.getCurrentDirectory(), filename);
  
  		boolean isDir = selectedFile.isDirectory();
  		boolean isDirSelEnabled = chooser.isDirectorySelectionEnabled();
  		boolean isFileSelEnabled = chooser.isFileSelectionEnabled();
  
  		if(isDir && !isDirSelEnabled) {
  		    chooser.setCurrentDirectory(selectedFile);
  		} else if ((!isDir && isFileSelEnabled)
  		        || (isDir && isDirSelEnabled)) {
  
  		    chooser.setSelectedFile(selectedFile);
  		    chooser.approveSelection();
  		}
  
  		return;
  	    }
  	    chooser.setSelectedFile(null);
  	    chooser.setSelectedFiles(null);
  	    chooser.cancelSelection();
  	}//actionPerformed();
      }//ApproveAction inner class
  
      /**
       * Acts on the "home" key event or equivalent event.
       */
      protected class GotoHomeAction extends AbstractAction {
  	protected GotoHomeAction() {
  	    super("Go Home");
  	}
  	public void actionPerformed(ActionEvent e) {
              getSPFileChooser().setCursor(
  		Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
  	    SPFile homeDir = getSPFileChooser().getHomeDirectory();
  	    homeDir.refreshContent();
  	    getSPFileChooser().setCurrentDirectory(homeDir);
              getSPFileChooser().setCursor(Cursor.getDefaultCursor());
  	}
      }// GotoHomeAction inner class
  
      protected class GotoParentDirectoryAction extends AbstractAction {
  	protected GotoParentDirectoryAction() {
  	    super("Go Up");
  	}
  	public void actionPerformed(ActionEvent e) {
  	    SPFileChooser chooser = getSPFileChooser();
              chooser.setCursor(
  		Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
  	    File currentDir = chooser.getCurrentDirectory();
  	    SPFile parentDir = (SPFile) chooser.getFileSystemView().
  		getParentDirectory(currentDir);
  	    parentDir.refreshContent();
  	    chooser.setCurrentDirectory(parentDir);
              chooser.setCursor(Cursor.getDefaultCursor());
  	}
      }// GotoParentDirectoryAction inner class
  
      protected class WindowsFileRenderer extends
  	WindowsFileChooserUI.FileRenderer  {
  
  	public Component getListCellRendererComponent(JList list, Object value,
  	    int index, boolean isSelected, boolean cellHasFocus) {
  
  	    super.getListCellRendererComponent(list, value, index, isSelected,
  		cellHasFocus);
  
  	    File file = (File) value;
  
  	    if (! isSelected)  {
  	        Color textColor = getSPFileChooser().getTextColor(file);
  		setForeground(textColor);
  	    }
  
  	    return this;
  	}
      }// WindowsFileRenderer inner class
  
      protected SPFileChooser getSPFileChooser()  {
          return (SPFileChooser) getFileChooser();
      }
  
  } // End of SPWindowsFileChooserUI class
  
  
  
  

Re: cvs commit: jakarta-slide/src/contrib/webdavgui/src/java/org/apache/webdav/ui/filechooser/plafui SPMetalFileChooserUI.java SPWindowsFileChooserUI.java

Posted by Michael Smith <ms...@speedlegal.com>.
Remy Maucherat wrote:
> 
> > msmith      01/07/16 23:34:46
> >
> >   Added:
> src/contrib/webdavgui/src/java/org/apache/webdav/ui/filechooser/plafui
> >                         SPMetalFileChooserUI.java
> >                         SPWindowsFileChooserUI.java
> >   Log:
> >   Oops - missed two added files in big commit earlier.
> 
> I may be wrong, but it looks like the mail for your Big Commit (TM) bounced
> :-(
> I think the limit is 100k or something like that, so it's easy to get over
> that.
> 
> Unsually, what you do in that case is post the header of the mail which
> bounced.
> 
> Remy

Yeah, I thought at first that that might be the case, but I didn't
actually GET a bounce. Perhaps something slightly misconfigured on the
new cvs server? 

Oops. I know what it is - that would have bounced to a different mail
account (.forward pointed to that account on daedalus, I believe Brian
moved all that stuff over to the new server). 

I can't (readily) access that account from here, but I'll forward the
header later today/tonight, when I can. Sorry about that.

Michael

Re: cvs commit: jakarta-slide/src/contrib/webdavgui/src/java/org/apache/webdav/ui/filechooser/plafui SPMetalFileChooserUI.java SPWindowsFileChooserUI.java

Posted by Remy Maucherat <re...@apache.org>.
> msmith      01/07/16 23:34:46
>
>   Added:
src/contrib/webdavgui/src/java/org/apache/webdav/ui/filechooser/plafui
>                         SPMetalFileChooserUI.java
>                         SPWindowsFileChooserUI.java
>   Log:
>   Oops - missed two added files in big commit earlier.

I may be wrong, but it looks like the mail for your Big Commit (TM) bounced
:-(
I think the limit is 100k or something like that, so it's easy to get over
that.

Unsually, what you do in that case is post the header of the mail which
bounced.

Remy