I might have run into the same issues with List numbering. I had to do the same types of work around to modify anything because all of the classes were internal or final. I don't know if I solved the issue you were mentioning. If you describe it in more detail I can see if it's the same and share what I have.
On Fri, May 31, 2013 at 9:36 AM, Compton, Tony <anthony.ste.comp...@hp.com>wrote: > Hello, everyone. > > My name is Tony Compton, a developer for HP Exstream, a division of > Hewlett-Packard, Inc. I've spent the last year working on a product that > relies on Flex and TLF. I'm writing today because I work with TLF almost > daily and I would like to help contribute to the project, but before I > spend the time making the kinds of changes that I think will make TLF an > easier framework to extend and develop using I wanted to make sure that > they were welcome changes. > > There are a number of things about TLF that make it difficult to extend > and otherwise alter its behavior. Please keep in mind that some of the > changes I'm about to suggest stem from a personal design philosophy that if > I, as a developer, attempt to extend via inheritance or otherwise alter the > behavior of an object or class that works and it does not continue to work > with my extensions then I am at fault-not the framework. > > Here are some improvements I would like to make: > > There are a few classes within TLF that are marked as "final." This > creates a unnecessary barrier to extension. One example of this is the > InlineGraphicElement class. I would like to extend this class, but I > cannot, so in order to add any additional behaviors or features to the > class I am forced to do something like extend SubParagraphGroupElementBase > (SubParagraphGroupElement is also marked final, which I feel is > unnecessary, although I wasn't especially inconvenienced by that). This > seems to already by an issue in Apache's Jira ( > https://issues.apache.org/jira/browse/FLEX-21488) which is closed to be > tracked by the Adobe Jira, but it seems the Adobe Jira has already been > decommissioned. Perhaps we should open it back up-or maybe I'm missing > something. > > There are many hidden classes sprinkled throughout TLF. Where I > encountered particular hindrance is in attempting to extend > TextFieldHtmlmporter to handle more advanced HTML pasting. While a the > class is not marked final, there are still some areas I feel can be > improved. For instance, if I wanted to inherit from TextFieldHtmlImporter > and allow it to interpret a custom font-related attribute I can't simply > inherit from the hidden FontImporter class and make my changes, then > configure the TextFieldHtmlImporter to use my newly created class. I am > forced to create a new class that does everything FontImporter does (plus > my extra stuff) then create a class that extends TextFieldHtmlImporter and > jump through the necessary hoops to make sure that my importer gets used > instead of FontImporter (which, on its own is more difficult than I think > it needs to be). I would like to see situations like this be more > strategy-like pattern wherein I can supply the importer with a FontImporter > to use and if I do not it will use the default, but make the default > FontImporter publicly visible and therefore extendable. > > Similarly, I'd like to apply the same notion of using the strategy pattern > to TLF's creation of TextLines/TextFlowLines and child TextLines for list > numberings. Currently I've been unable to find a way to affect how TLF lays > out its list markers. It's been a while since I looked at this problem, but > if I recall correctly, somewhere in TLF it's calling a static factory > method on a class by name, so there is no way for me to modify the behavior > of TLF with regards to how it creates TextLines. It would be nice if there > was a configurable property that I could set (that implements > ITextFlowLineFactory or something like that) that TLF would then access and > use to create TextFlowLines, thereby giving me at least some means of > altering its behavior (although, as I said, it's been a while-so there may > be some details of the current implementation that I'm not remembering > quite right). (This type of customization may need to go in the > Configuration class.) > > To summarize things, I'd like to make the following general categories of > changes to TLF: > Remove many final classes, giving developers the ability to extend them. > Attempt to make many hidden classes publicly visible so that they can be > extended and use in the type of configuration described below. > Make TLF more configurable, so that in places where TLF would create an > instance of a TLF-type class, it instead accesses a user-configured factory > for creating that type of class so that developers can inject their > extended classes into their text with ease. (Probably in the Configuration > class.) > > I'd be interested in hearing your thoughts on these topics. Hopefully they > are well received so that I can begin working on them. > > Thanks and best wishes, > > Tony Compton > Developer > HP Exstream >