<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to feature-requests</title><link>https://sourceforge.net/p/jhotdraw/feature-requests/</link><description>Recent changes to feature-requests</description><atom:link href="https://sourceforge.net/p/jhotdraw/feature-requests/feed.rss" rel="self"/><language>en</language><lastBuildDate>Wed, 28 Mar 2007 11:26:46 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/jhotdraw/feature-requests/feed.rss" rel="self" type="application/rss+xml"/><item><title>Support Bitmap Editing</title><link>https://sourceforge.net/p/jhotdraw/feature-requests/29/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Add support for bitmap editing tools to JHotDraw.&lt;/p&gt;
&lt;p&gt;Maybe in a similar fashion like in Adobe Fireworks. So that Bitmap tools act on the currently selected BitmapFigure. If there is no BitmapFigure selected, a Bitmap tool creates a BitmapFigure first.&lt;/p&gt;
&lt;p&gt;BitmapFigure could be an extension of the ImageFigure interface.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Werner Randelshofer</dc:creator><pubDate>Wed, 28 Mar 2007 11:26:46 -0000</pubDate><guid>https://sourceforge.net1b9b7001ce000d2f5397189f06f28b16ec9c6145</guid></item><item><title>About Resizing GroupFigures</title><link>https://sourceforge.net/p/jhotdraw/feature-requests/28/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I'd like to know how don't permit a GroupFigure resizes...&lt;/p&gt;
&lt;p&gt;Someone know the property?&lt;/p&gt;
&lt;p&gt;Thank you.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Carlos Diego Quirino Lima</dc:creator><pubDate>Thu, 18 Jan 2007 23:01:02 -0000</pubDate><guid>https://sourceforge.netee9d77d581e206732a359772160c59470e2af618</guid></item><item><title>StorageOutput sub-classes forced to be order sensitive.</title><link>https://sourceforge.net/p/jhotdraw/feature-requests/27/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;The existing StorageOutput class presumes that the &lt;br /&gt;
storage format will be sensitive to the order in which &lt;br /&gt;
values are written.  Consider the calls to the &lt;br /&gt;
StorageOutput.writeInt() methods made in the &lt;br /&gt;
ImageFigure.write() method:&lt;/p&gt;
&lt;p&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
* Writes the ImageFigure to a StorableOutput. Only a &lt;br /&gt;
reference to the&lt;br /&gt;
* image, that is its pathname is saved.&lt;br /&gt;
*/&lt;br /&gt;
public void write(StorableOutput dw) {&lt;br /&gt;
super.write(dw);&lt;br /&gt;
dw.writeInt(fDisplayBox.x);&lt;br /&gt;
dw.writeInt(fDisplayBox.y);&lt;br /&gt;
dw.writeInt(fDisplayBox.width);&lt;br /&gt;
dw.writeInt(fDisplayBox.height);&lt;br /&gt;
dw.writeString(fFileName);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If the storage format is an SQL database which explicitly &lt;br /&gt;
requires sorting to avoid random results, this class may &lt;br /&gt;
not be re-created properly.  An obvious work-around is &lt;br /&gt;
to have the output class generate sequential labels, but &lt;br /&gt;
it is better if the class writing the values also generated &lt;br /&gt;
the label and asked for it specifically.  This could be &lt;br /&gt;
gracefully implemented by extending the attribute &lt;br /&gt;
system with class specific ones.  (E.g.: visible figures &lt;br /&gt;
might have an attribute named 'bounding box').&lt;br /&gt;
Storage and restoral would then be primarily a matter of &lt;br /&gt;
pushing out all the attributes and bringing them back in &lt;br /&gt;
again with the class determining which attributes it &lt;br /&gt;
interprets internally and which it passes back up the &lt;br /&gt;
inheiritance hierarchy for storage.  This approach to &lt;br /&gt;
attribute handling would also fit very naturally into &lt;br /&gt;
creation and organization of property sheets, scripted &lt;br /&gt;
manipulation of figures, implementation of classes as &lt;br /&gt;
Beans, storing the UIF (menus, floating or docked &lt;br /&gt;
toolbars and palettes, configurable mues and palettes, &lt;br /&gt;
etc.) as a configuration file instead of fixing it in code.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Andrew</dc:creator><pubDate>Fri, 28 May 2004 18:59:34 -0000</pubDate><guid>https://sourceforge.neted2bc4fbf6c793d0903ae65fbb602dc4cabd2636</guid></item><item><title>StorageOutput doesn't allow sub-classing.</title><link>https://sourceforge.net/p/jhotdraw/feature-requests/26/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Any attempt to sub-class the StorageOutput class is &lt;br /&gt;
doomed to functional failure as the parent class will:&lt;br /&gt;
1. doesn't have a default constructor (preventing the &lt;br /&gt;
sub-class from NOT calling it's constructor),&lt;br /&gt;
2. doesn't allow any acces to the output stream it &lt;br /&gt;
inializes in the constructor, and&lt;br /&gt;
3. all of the output methods make assumptions about &lt;br /&gt;
the formatting to be done, so a sub-class can't &lt;br /&gt;
guarantee that the output file meets it's formatting &lt;br /&gt;
requirements.&lt;/p&gt;
&lt;p&gt;Result of this problem is that anyone who needs to &lt;br /&gt;
handle additional storage formats (i.e.: XML, JDO, etc.) &lt;br /&gt;
will have to ignore the existing Visitor pattern &lt;br /&gt;
implementation and create a completely new (and &lt;br /&gt;
redundant) mechanism for their storage format.&lt;br /&gt;
Compare the following three classes which all have the &lt;br /&gt;
same objective:&lt;br /&gt;
- StandardStorageFormat,&lt;br /&gt;
- SVG StorageFormat, and&lt;br /&gt;
- JDOStorageFormat.&lt;br /&gt;
In the latter two cases, the StorageOutput and &lt;br /&gt;
StorageInput classes are completely ignored although &lt;br /&gt;
they could have been used to simplify and speed much &lt;br /&gt;
of the implementation.&lt;/p&gt;
&lt;p&gt;Possible fixes include:&lt;br /&gt;
1. Create a default constructor which assigns nulls to &lt;br /&gt;
the internal members.  (Then all of the methods need to &lt;br /&gt;
check for null every time they are called - quick but not &lt;br /&gt;
desireable.)&lt;/p&gt;
&lt;p&gt;2. Change all/most of the private data members and &lt;br /&gt;
methods to protected so that a sub-class has access to &lt;br /&gt;
the existing functionality and can over-ride what it &lt;br /&gt;
needs to.&lt;/p&gt;
&lt;p&gt;3. Provide protected 'raw write' methods for the output &lt;br /&gt;
stream.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Andrew</dc:creator><pubDate>Fri, 28 May 2004 18:57:16 -0000</pubDate><guid>https://sourceforge.net58d9f5cec2be00d2f87d031543189214ad296fe0</guid></item><item><title>private to protected</title><link>https://sourceforge.net/p/jhotdraw/feature-requests/25/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Can you change the &lt;br /&gt;
method "DrawApplication.setStatusLine"&lt;br /&gt;
from privet to protected?&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">billyYo</dc:creator><pubDate>Fri, 28 May 2004 11:07:46 -0000</pubDate><guid>https://sourceforge.netd4bd9fae63eb17fdd852a134007ad2dc9d3819ca</guid></item><item><title>TextFigure needs an alignment attribute</title><link>https://sourceforge.net/p/jhotdraw/feature-requests/24/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;TextFigure should have an alignment attribute to specify &lt;br /&gt;
how to fit it within a bounding box which isn't perfectly &lt;br /&gt;
sized for the current font.  This is particularly important &lt;br /&gt;
when converting the display for use in other systems.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Andrew</dc:creator><pubDate>Tue, 18 May 2004 20:02:14 -0000</pubDate><guid>https://sourceforge.net41be53d0d783b1416c67a882d26d658822877253</guid></item><item><title>Attribute Handling</title><link>https://sourceforge.net/p/jhotdraw/feature-requests/23/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I am working on a project where essentially random &lt;br /&gt;
attributes are associated with any figure on the &lt;br /&gt;
display.  The user is expected to be able to view and &lt;br /&gt;
change these attributes and we have run into two &lt;br /&gt;
problems:&lt;/p&gt;
&lt;p&gt;1. There's no mechanism to list the current attributes &lt;br /&gt;
set on a figure which makes it impossible to create a &lt;br /&gt;
dialog to view all attributes and their values.  The &lt;br /&gt;
following method was added to AttributeFigure to fix this &lt;br /&gt;
problem:&lt;/p&gt;
&lt;p&gt;/**&lt;br /&gt;
* Returns the keys for all the named attributes&lt;br /&gt;
* *JK LOH&lt;br /&gt;
*/&lt;br /&gt;
public Enumeration getAttributeKeys() {&lt;br /&gt;
if (fAttributes == null) &lt;br /&gt;
return &lt;br /&gt;
fgDefaultAttributes.keys();&lt;br /&gt;
else&lt;br /&gt;
return fAttributes.keys(); &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;2. Several figures are sub-classes of AbstractFigure &lt;br /&gt;
directly rather then AttributeFigure and therefore can't &lt;br /&gt;
have attributes assigned to them.  We've modified all &lt;br /&gt;
the visible figures to derive from AttributeFigure to get &lt;br /&gt;
around this problem although more elegant solutions &lt;br /&gt;
undoubtly exist.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Andrew</dc:creator><pubDate>Tue, 18 May 2004 16:23:22 -0000</pubDate><guid>https://sourceforge.netcc02e7ee17d8f13f3e5e165b71ac400ecfa11d6f</guid></item><item><title>Group circles/spheres</title><link>https://sourceforge.net/p/jhotdraw/feature-requests/22/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Can objects in the graphics be placed on circles or spheres? I propose that elements can be grouped with their relationships by this layout feature into "bubbles". Each object can be connected with straight lines or "rays".&lt;br /&gt;
I assume that it can become difficult to draw a lot of bended lines in big diagrams.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Markus Elfring</dc:creator><pubDate>Sun, 18 Apr 2004 15:54:37 -0000</pubDate><guid>https://sourceforge.net36fe6eb2bc0712176fea0ae865174ed2643ece22</guid></item><item><title>DrawApplication -JPanel not JFrame</title><link>https://sourceforge.net/p/jhotdraw/feature-requests/21/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I (pmorch)  suggest (with a working large patch) that&lt;br /&gt;
the JFrame in JHotDraw's DrawApplication gets split out&lt;br /&gt;
into another class, allowing for applets to run&lt;br /&gt;
DrawApplications too.&lt;/p&gt;
&lt;p&gt;See &lt;a href="http://demo.capmon.dk/~pvm/jhotdraw/main.html" rel="nofollow"&gt;http://demo.capmon.dk/~pvm/jhotdraw/main.html&lt;/a&gt; for&lt;br /&gt;
working examples.&lt;/p&gt;
&lt;p&gt;What do you think? Is this for inclusion in standard&lt;br /&gt;
JHotDraw or does nobody care?&lt;/p&gt;
&lt;p&gt;Background: I have a need to run the samme application&lt;br /&gt;
in both an applet and as an application. I noticed&lt;br /&gt;
quite a lot of differences between DrawApplication and&lt;br /&gt;
DrawApplet. Especially that DrawApplication uses&lt;br /&gt;
PullDown menus and as been extended into a&lt;br /&gt;
MDI_DrawApplication and a SplitPaneDrawApplication. I&lt;br /&gt;
need that in my applet, regardless whether anyone else&lt;br /&gt;
does too...&lt;/p&gt;
&lt;p&gt;The basic idea is that I've made DrawApplication extend&lt;br /&gt;
JPanel and not JFrame. DrawApplication now has a&lt;br /&gt;
reference to an ApplicationContext interface&lt;br /&gt;
(suggestions for a better name are welcome...) The&lt;br /&gt;
ApplicationContext does the things that the JPanel&lt;br /&gt;
can't do (e.g. setJMenuBar, setTitle()...). Two new&lt;br /&gt;
classes: CH.ifa.draw.application.DrawFrame and&lt;br /&gt;
CH.ifa.draw.application.DrawApplet both implement&lt;br /&gt;
ApplicationContext and extend JFrame and JApplet&lt;br /&gt;
respectively. They are short and simple. The bulk of&lt;br /&gt;
the intelligence still resides in DrawApplication.&lt;/p&gt;
&lt;p&gt;Voila. DrawApplications can now run fine in both&lt;br /&gt;
JFrames and in JApplets.&lt;/p&gt;
&lt;p&gt;Backwards compatibility consequences:&lt;/p&gt;
&lt;p&gt;1) Several protected methods are now public, since they&lt;br /&gt;
need to be accessed from the ApplicationContext and not&lt;br /&gt;
directly from inside the class. If derivatives of&lt;br /&gt;
DrawApplication override these methods, they will get&lt;br /&gt;
compile-time errors. Change &amp;amp;quot;protected&amp;amp;quot; to &amp;amp;quot;public&amp;amp;quot; and&lt;br /&gt;
all is fine.&lt;/p&gt;
&lt;p&gt;2) Calls in derived classes directly to JFrame methods&lt;br /&gt;
will fail. When DrawApplication no longer derives from&lt;br /&gt;
JFrame, obviously calls specific to a JFrame will no&lt;br /&gt;
longer work. Override DrawFrame for that functionality&lt;br /&gt;
instead.&lt;/p&gt;
&lt;p&gt;3) Constructor to DrawApplication now takes an&lt;br /&gt;
ApplicationContext instance. So instead of:&lt;/p&gt;
&lt;p&gt;public static void main(String[] args) {&lt;br /&gt;
MayDrawApp window = new MyDrawApp();&lt;br /&gt;
window.open();&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;it is now:&lt;br /&gt;
public static void main(String[] args) {&lt;br /&gt;
DrawFrame frame = new DrawFrame();&lt;br /&gt;
MayDrawApp application = new MyDrawApp(frame);&lt;br /&gt;
application.open();&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;I have provided a deprecated constructor with no&lt;br /&gt;
arguments that calls&lt;br /&gt;
this(new DrawFrame)&lt;br /&gt;
but that is for short-term deprecation, so this&lt;br /&gt;
consequence is still real.&lt;/p&gt;
&lt;p&gt;4) Confusion about DrawApplet. There is now both a&lt;br /&gt;
applet.DrawApplet and an application.DrawApplet. Oh&lt;br /&gt;
well. If it bothers anyone we could call it&lt;br /&gt;
DrawApplicationApplet, I guess.&lt;/p&gt;
&lt;p&gt;For application.DrawApplets, it is so now so easy:&lt;/p&gt;
&lt;p&gt;public class MyApplet extends DrawApplet {&lt;br /&gt;
public void init() {&lt;br /&gt;
MyDrawApp appl = new MyDrawApp(this);&lt;br /&gt;
appl.open();&lt;br /&gt;
setContentPane(appl);&lt;br /&gt;
}&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;I've taken a look at&lt;br /&gt;
&amp;amp;quot;Future plans forJHotDraw&amp;amp;quot;&lt;br /&gt;
&lt;a href="https://sourceforge.net/forum/forum.php?thread_id=676270&amp;amp;amp;forum_id=39888"&gt;https://sourceforge.net/forum/forum.php?thread_id=676270&amp;amp;amp;forum_id=39888&lt;/a&gt;&lt;br /&gt;
and to me it seems that this idea would apply equally&lt;br /&gt;
well to version 6. The actual code would have to change&lt;br /&gt;
to match the code changes in version6/DrawApplication.java&lt;/p&gt;
&lt;p&gt;Sincerely,&lt;/p&gt;
&lt;p&gt;Peter&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wolfram Kaiser</dc:creator><pubDate>Wed, 28 May 2003 11:19:23 -0000</pubDate><guid>https://sourceforge.neta5b25ff1b9484c6f067f9eae18a6ab9572663913</guid></item><item><title>Pluggable FigureAttributes</title><link>https://sourceforge.net/p/jhotdraw/feature-requests/20/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Have the functionality of attribute maintainance in an&lt;br /&gt;
own component (not FigureAttribute) which could be used&lt;br /&gt;
by all other figures. &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wolfram Kaiser</dc:creator><pubDate>Mon, 27 Jan 2003 23:45:17 -0000</pubDate><guid>https://sourceforge.net1da3c80d03d39a20a600436addbf08283ea7fa9e</guid></item></channel></rss>