From: <dal...@us...> - 2007-11-09 23:13:08
|
Revision: 11012 http://jedit.svn.sourceforge.net/jedit/?rev=11012&view=rev Author: daleanson Date: 2007-11-09 15:13:06 -0800 (Fri, 09 Nov 2007) Log Message: ----------- fixed commit dialog from stretching too wide when the previous comments were long. Checking in a few other files that I apparently missed last time. Modified Paths: -------------- plugins/SVNPlugin/trunk/src/ise/plugin/svn/gui/CommitDialog.java plugins/SVNPlugin/trunk/src/ise/plugin/svn/library/PropertyComboBox.java Added Paths: ----------- plugins/SVNPlugin/trunk/src/ise/plugin/svn/action/PropertiesAction.java plugins/SVNPlugin/trunk/src/ise/plugin/svn/gui/PropertiesPanel.java plugins/SVNPlugin/trunk/src/ise/plugin/svn/io/SVNFile.java plugins/SVNPlugin/trunk/src/ise/plugin/svn/library/TableCellViewer.java Added: plugins/SVNPlugin/trunk/src/ise/plugin/svn/action/PropertiesAction.java =================================================================== --- plugins/SVNPlugin/trunk/src/ise/plugin/svn/action/PropertiesAction.java (rev 0) +++ plugins/SVNPlugin/trunk/src/ise/plugin/svn/action/PropertiesAction.java 2007-11-09 23:13:06 UTC (rev 11012) @@ -0,0 +1,77 @@ +/* +Copyright (c) 2007, Dale Anson +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +* 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. +* Neither the name of the author nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS 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 COPYRIGHT OWNER OR 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. +*/ + +package ise.plugin.svn.action; + +import ise.plugin.svn.gui.OutputPanel; + +import ise.plugin.svn.SVNPlugin; +import ise.plugin.svn.command.Log; +import ise.plugin.svn.gui.PropertiesPanel; +import ise.plugin.svn.io.ConsolePrintStream; +import ise.plugin.svn.library.GUIUtils; +import ise.plugin.svn.library.swingworker.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.*; +import java.util.*; +import java.util.logging.*; +import javax.swing.JPanel; +import org.gjt.sp.jedit.View; + +/** + * ActionListener to show SVN properties. + * This is not dependent on ProjectViewer. + */ +public class PropertiesAction implements ActionListener { + + private View view = null; + private String filename = null; + private Properties properties = null; + + /** + * @param view the View in which to display results + * @param props the properties to show + */ + public PropertiesAction( View view, String name, Properties props ) { + if ( view == null ) + throw new IllegalArgumentException( "view may not be null" ); + if ( props == null ) + throw new IllegalArgumentException( "props may not be null" ); + this.view = view; + this.filename = name == null ? "" : name; + this.properties = props; + } + + public void actionPerformed( ActionEvent ae ) { + view.getDockableWindowManager().showDockableWindow( "subversion" ); + final OutputPanel panel = SVNPlugin.getOutputPanel( view ); + panel.showConsole(); + panel.addTab( "Properties", new PropertiesPanel( filename, properties ) ); + } +} Modified: plugins/SVNPlugin/trunk/src/ise/plugin/svn/gui/CommitDialog.java =================================================================== --- plugins/SVNPlugin/trunk/src/ise/plugin/svn/gui/CommitDialog.java 2007-11-09 22:33:28 UTC (rev 11011) +++ plugins/SVNPlugin/trunk/src/ise/plugin/svn/gui/CommitDialog.java 2007-11-09 23:13:06 UTC (rev 11012) @@ -217,6 +217,8 @@ panel.add( "0, 9, 1, 1, 0, , 0", KappaLayout.createVerticalStrut( 10, true ) ); panel.add( "0, 10, 1, 1, E, , 0", btn_panel ); + panel.add( "0, 11, 1, 1", KappaLayout.createHorizontalStrut( 600, true )); + setContentPane( panel ); pack(); Added: plugins/SVNPlugin/trunk/src/ise/plugin/svn/gui/PropertiesPanel.java =================================================================== --- plugins/SVNPlugin/trunk/src/ise/plugin/svn/gui/PropertiesPanel.java (rev 0) +++ plugins/SVNPlugin/trunk/src/ise/plugin/svn/gui/PropertiesPanel.java 2007-11-09 23:13:06 UTC (rev 11012) @@ -0,0 +1,117 @@ +/* +Copyright (c) 2007, Dale Anson +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +* 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. +* Neither the name of the author nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS 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 COPYRIGHT OWNER OR 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. +*/ + +package ise.plugin.svn.gui; + +import ise.plugin.svn.library.*; + +import java.awt.*; +import java.awt.event.*; + +import java.io.*; + +import java.util.*; + +import javax.swing.*; +import javax.swing.border.*; +import javax.swing.event.*; +import javax.swing.table.*; + +import org.gjt.sp.jedit.View; + + +/** + * A panel to display SVN properties. + * + * @author Dale Anson + */ +public class PropertiesPanel extends JPanel { + + /** + * Description of the Field + */ + private HashMap _property_tfs; + + private String lSep = System.getProperty( "line.separator" ); + + /** + * Description of the Field + */ + private JButton _new_btn = null; + + public PropertiesPanel( String filename, Properties props ) { + if ( filename == null ) { + filename = ""; + } + if ( props == null ) { + props = new Properties(); + props.setProperty( "Error:", "No properties available." ); + } + + // bugger. java.util.Properties should declare <String, Object> + TreeMap<Object, Object> map = new TreeMap<Object, Object>( (Map<Object, Object>)props ); // TreeMap sorts + JTable props_table = new JTable(); + DefaultTableModel model = new DefaultTableModel( + new String[] { + "Name", "Value" + }, map.size() ); + props_table.setModel( model ); + + Set < Map.Entry < Object, Object >> entrySet = map.entrySet(); + int i = 0; + for ( Map.Entry<Object, Object> me : entrySet ) { + Object key = me.getKey(); + Object value = me.getValue(); + if ( key == null || value == null ) { + continue; + } + model.setValueAt( key.toString(), i, 0 ); + model.setValueAt( value.toString(), i, 1 ); + ++i; + } + props_table.addMouseListener( new TableCellViewer( props_table ) ); + + setLayout( new BorderLayout() ); + setBorder( new javax.swing.border.EmptyBorder( 6, 6, 6, 6 ) ); + JLabel label = new JLabel( "Properties for: " + filename, JLabel.LEFT ); + add( label, BorderLayout.NORTH ); + add( new JScrollPane( props_table ), BorderLayout.CENTER ); + + } + + public static void main ( String[] args ) { + Properties p = new Properties(); + p.setProperty( "svn:externals", "/some/dir/ectory" ); + p.setProperty( "svn:keywords", "word, word2" ); + JFrame frame = new JFrame(); + frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); + frame.setContentPane( new PropertiesPanel( "filename", p ) ); + frame.pack(); + frame.setVisible( true ); + } +} Added: plugins/SVNPlugin/trunk/src/ise/plugin/svn/io/SVNFile.java =================================================================== --- plugins/SVNPlugin/trunk/src/ise/plugin/svn/io/SVNFile.java (rev 0) +++ plugins/SVNPlugin/trunk/src/ise/plugin/svn/io/SVNFile.java 2007-11-09 23:13:06 UTC (rev 11012) @@ -0,0 +1,46 @@ +package ise.plugin.svn.io; + +import java.io.File; +import java.net.URI; +import java.util.Properties; + +/** + * Extends java.io.File so that SVN properties can be attached. + */ +public class SVNFile extends File { + + private Properties properties = new Properties(); + + public SVNFile(File parent, String child) { + super(parent, child); + } + + public SVNFile(String pathname) { + super(pathname); + } + + public SVNFile(String parent, String child) { + super(parent, child); + } + + public SVNFile(URI uri) { + super(uri); + } + + public void setProperty(String name, String value) { + properties.setProperty(new String(name), new String(value)); + } + + public void setProperties(Properties props) { + properties = (Properties)props.clone(); + } + + public String getProperty(String name) { + String value = properties.getProperty(name); + return value == null ? null : new String(value); + } + + public Properties getProperties() { + return (Properties)properties.clone(); + } +} Modified: plugins/SVNPlugin/trunk/src/ise/plugin/svn/library/PropertyComboBox.java =================================================================== --- plugins/SVNPlugin/trunk/src/ise/plugin/svn/library/PropertyComboBox.java 2007-11-09 22:33:28 UTC (rev 11011) +++ plugins/SVNPlugin/trunk/src/ise/plugin/svn/library/PropertyComboBox.java 2007-11-09 23:13:06 UTC (rev 11012) @@ -28,7 +28,7 @@ package ise.plugin.svn.library; - +import java.awt.Component; import javax.swing.*; import java.util.*; import org.gjt.sp.jedit.jEdit; @@ -61,21 +61,21 @@ values.push( name ); } } - model = new DefaultComboBoxModel( (Vector)values ); + model = new DefaultComboBoxModel( ( Vector ) values ); if ( model.getSize() > 0 && model.getIndexOf( SELECT ) < 0 ) { model.insertElementAt( SELECT, 0 ); } setModel( model ); - if (model.getSize() > 0) { - setSelectedIndex(0); + if ( model.getSize() > 0 ) { + setSelectedIndex( 0 ); } } @Override public void setEditable( boolean editable ) { // never editable - super.setEditable(false); + super.setEditable( false ); } /** @@ -110,5 +110,4 @@ } } } - } Added: plugins/SVNPlugin/trunk/src/ise/plugin/svn/library/TableCellViewer.java =================================================================== --- plugins/SVNPlugin/trunk/src/ise/plugin/svn/library/TableCellViewer.java (rev 0) +++ plugins/SVNPlugin/trunk/src/ise/plugin/svn/library/TableCellViewer.java 2007-11-09 23:13:06 UTC (rev 11012) @@ -0,0 +1,41 @@ +package ise.plugin.svn.library; + +import java.awt.Point; +import java.awt.event.*; +import javax.swing.*; + +/** + * Grabs the string value of the contents of a table cell and shows it + * in a popup. + */ +public class TableCellViewer extends MouseAdapter { + private JTable table = null; + private JTextArea ta; + private JPopupMenu pm; + public TableCellViewer( JTable table ) { + this.table = table; + ta = new JTextArea( 10, 40 ); + ta.setLineWrap( true ); + ta.setEditable( false ); + pm = new JPopupMenu(); + pm.add( new JScrollPane( ta ) ); + } + public void mousePressed( MouseEvent me ) { + doPopup( me ); + } + public void mouseReleased( MouseEvent me ) { + doPopup( me ); + } + private void doPopup( MouseEvent me ) { + if ( me.isPopupTrigger() ) { + Point p = me.getPoint(); + int col = table.columnAtPoint( p ); + int row = table.rowAtPoint( p ); + Object value = table.getModel().getValueAt( row, col ); + if ( value != null ) { + ta.setText( value.toString() ); + GUIUtils.showPopupMenu( pm, table, me.getX(), me.getY() ); + } + } + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |