(How) can TLF recognize custom attributes/format/data?

Is there anyway we can associate custom data with specific range/span/elements of text?

The FlowElement class, which is the base class for all elements that make up a TextFlow in TLF, has the ability to store 'custom' data in at least three places:
1. The 'id' property.  The 'id' property is a simple string property on all FlowElement descendents.  You can set it directly on the flow elements or by using the ApplyElementIDOperation through the EditManager of the TextFlow containing the element.  There are some methods on TextFlow for locating elements by their ID (recursive iteration over the child elements).
2. The 'stylename' property.  The 'stylename' property can be utilized to implement named styles for text formats, etc., possibly in conjunction with a class that implements IFormatResolver.  Although it's intended for that type of behavior, it could be used for other purposes.  The TextFlow class has some utility methods to find elements by stylename, etc., so it can be a useful way to attach a 'category' or other designation to certain flow elements that you would like to locate as a group or things along those lines.  Similarly to the 'id' property, 'stylename' can be set directly on flow elements or via the ApplyElementStyleNameOperation.
3. User styles.  Every flow element has the capability to store key/value pair user data via getStyle()/setStyle() methods.  There is also a corresponding operation called ApplyElementUserStyleOperation for user styles.  This is the most flexible way to add additional data to flow elements.  You can put almost anything you like in here.
See ASDoc API Reference for the FlowElement class here:
http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flashx/textLayout/ elements/FlowElement.html
There are some notes (outdated, but still somewhat useful) from back when these capabilities were added to TLF in this blog post:
http://blogs.adobe.com/tlf/2009/02/tlf-api-changes-in-build-370-1.html
Keep in mind that if you set id/stylename/userstyles on a flow element directly (without using an operation via the edit manager), that causes a model change to be dispatched up through the TextFlow, which causes 'damage'.  This is not a big deal, but you would need to call compose/update methods on the flow composer manually to recompose the TextFlow after the 'model' changes.
One other thing to keep in mind is that if you are using an edit manager that has an undo manager assigned, any changes that are performed via operations are automatically undoable/redoable.  You can also avoid some of the headache that will result if you try to modify the flow elements directly, as mentioned in the previous paragraph.  The edit manager will automatically trigger composition after an operation is performed.
And another thing is inheritance.  Certain styles and properties are inherited down the text flow child tree.  I believe that includes user styles.  If you decide to use any of these methods for storing custom data, you'll probably want to understand how the inheritance is going to affect what you're trying to implement before you go too far.  I don't have a good enough grasp on inheritance rules to give you an understandable explanation.
Hope this helps.  My info may not be 100% accurate, but this is what things look like for custom data from my point of view.
Good luck,
Brent

Similar Messages

  • How can i add custom attributes to a new Class Object using the API ?

    Hello everyone,
    Here is my problem. I just created a subclass of Document using the API (not XML), by creating a ClassObjectDefinition and a ClassObject. Here is the code :
    // doc is an instance of Document
    ClassObject co = doc.getClassObject();
    ClassObjectDefinition cod = new ClassObjectDefinition(ifsSession);
    cod.setSuperclass(co);
    cod.setSuperclassName(co.getName());
    cod.setName("MYDocument");
    ClassObject c = (ClassObject)ifsSession.createSchemaObject(cod);
    Everything seems to be OK since i can see the new class when i use ifsmgr. But my question is : how can i add custom attributes to this new class ? Here is what i tried :
    AttributeDefinition value = new AttributeDefinition(ifsSession);
    value.setAttribute("FOO", AttributeValue.newAttributeValue("bar"));
    c.addAttribute(value);
    But i got the following error message :
    oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
    java.sql.SQLException: ORA-01400: impossible d'insirer NULL dans ("IFSSYS"."ODM_ATTRIBUTE"."DATATYPE")
    oracle.ifs.server.S_LibraryObjectData oracle.ifs.beans.LibrarySession.DMNewSchemaObject(oracle.ifs.server.S_LibraryObjectDefinition)
    oracle.ifs.beans.SchemaObject oracle.ifs.beans.LibrarySession.NewSchemaObject(oracle.ifs.beans.SchemaObjectDefinition)
    oracle.ifs.beans.SchemaObject oracle.ifs.beans.LibrarySession.createSchemaObject(oracle.ifs.beans.SchemaObjectDefinition)
    void fr.sword.ifs.GestionDocument.IFSDocument.createDocument(java.lang.String)
    void fr.sword.ifs.GestionDocument.IFSDocument.main(java.lang.String[])
    So, what am i doing wrong ?
    More generally, are we restricted in the types of the attributes ? (for example, would it be possible to add an attribute that would be an inputStream ? Or an object that i have already created ?).
    Any help would be appreciated. Thanks in advance.
    Guillaume
    PS : i'm using Oracle iFS 1.1.9 on NT4 SP6 and Oracle 8.1.7
    null

    Hi Guillaume,
    you're welcome. Don't know exactly, but assume that ATTRIBUTEDATATYPE_UNKNOWN
    is used to check for erronous cases only
    and it shouldn't be used otherwise.
    Creating your own objects could be simply done via
    ClassObject ifsClassObject;
    DocumentDefinition ifsDocDef = new DocumentDefinition(ifsSession);
    // get class object for my very own document
    ifsClassObject = ClassObject.getClassObjectFromLabel(ifsSession, "MYDOCUMENT");
    // set the class for the document i'd like to create
    ifsDocDef.setClassObject(ifsClassObject);
    // set attributes and content for the document...
    ifsDocDef.setAttribute("MYFOO_ATTRIBUTE",....);
    ifsDocDef.setContent("This is the content of my document");
    // create the document...
    PublicObject doc = ifsSession.createPublicObject(ifsDocDef);
    null

  • How can I edit custom query in Data Insight

    1.  Whenever I click the edit sql query by right clicking on the custom query, the system hangs up and does not proceed further
    2.  Once you create a query without retrieving data results, is it possible to change to retrieve the data and how.
    Thanks -   Mahrukh

    Hi Mahrukh,
    I do not have this issue.  What version of Data Insight are you using?  What database is your metadata repository?  What database is your source data in for the Data Insight query you are writing?  Have you tried double clicking on the custom query - this should open it up for you to be able to edit it as well!
    You should be able to open the query to edit it and either click the return data box or un-check it for any type of query.
    Thanks,
    Denise

  • How can i set  "Createdby" attribute  When using Custom JheadStart Security

    Hello
    We do not use JASS for Authentication , please help us how can i set createtby attributes with jhs.username in application for any entity object?
    thanks

    See a similar question at History Attributes when using Custom Authentication Type

  • How can I take minutes from mysql date format

    how can I take minutes from mysql date format??
    example 10:30:00 is stored in my sql and I want to create 3 variables which will store hours, minutes and seconds..
    Cheers..

    "use application date format" is the choice you want.
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://apex.oracle.com/pls/otn/f?p=31517:1
    http://www.amazon.de/Oracle-APEX-XE-Praxis/dp/3826655494
    -------------------------------------------------------------------

  • How can we transfer huge amount of data from database server to xml format

    hi guru
    how can we transfer huge amount of data from database server to xml format.
    regards
    subhasis.

    Create ABAP coding
    At first we create the internal table TYPES and DATA definition, we want to fill with the XML data. I have declared the table "it_airplus" like the structure from XML file definition for a better overview, because it is a long XML Definition (see the XSD file in the sample ZIP container by airplus.com)
    *the declaration
    TYPES: BEGIN OF t_sum_vat_sum,
              a_rate(5),
              net_value(15),
              vat_value(15),
             END OF t_sum_vat_sum.
    TYPES: BEGIN OF t_sum_total_sale,
            a_currency(3),
            net_total(15),
            vat_total(15),
            vat_sum TYPE REF TO t_sum_vat_sum,
           END OF t_sum_total_sale.
    TYPES: BEGIN OF t_sum_total_bill,
            net_total(15),
            vat_total(15),
            vat_sum TYPE t_sum_vat_sum,
            add_ins_val(15),
            total_bill_amount(15),
           END OF t_sum_total_bill.TYPES: BEGIN OF t_ap_summary,
            a_num_inv_det(5),
            total_sale_values TYPE t_sum_total_sale,
            total_bill_values TYPE t_sum_total_bill,
           END OF t_ap_summary.TYPES: BEGIN OF t_ap,
            head    TYPE t_ap_head,
            details TYPE t_ap_details,
            summary TYPE t_ap_summary,
           END OF t_ap.DATA: it_airplus TYPE STANDARD TABLE OF t_ap
    *call the transformation
    CALL TRANSFORMATION ZFI_AIRPLUS
         SOURCE xml l_xml_x1
         RESULT xml_output = it_airplus
         .see the complete report: Read data from XML file via XSLT program
    Create XSLT program
    There are two options to create a XSLT program:
    Tcode: SE80 -> create/choose packet -> right click on it | Create -> Others -> XSL Transformation
    Tcode: XSLT_TOOL
    For a quick overview you can watch at the SXSLTDEMO* programs.
    In this example we already use the three XSLT options explained later.
    As you can see we define a XSL and ASX (ABAP) tags to handle the ABAP and XML variables/tags. After "

  • How can i recognize mixed format of text?

    Mission:
    if some text has "regular" fontstyle, i apply to it Bold style. And if it have mixed fontstyle (both bold and regular) i would like apply the Bold Italic style. But i discovered, that property FontStyle of text with mixed style is "Regular"! Then how can i recognize mixed format of text?
    Thanks.

    When you have a text reference, check to see how many textStyleRanges it has. If more than one, you have mixed formatting. Check the style of each textStyleRange.
    Dave

  • How can I convert the attribut lastLogon ...

    Hi,
    How can I convert the attribut lastLogon on an Active
    Directory Microsoft?
    Attributes ar = ctx.getAttributes(dn, attrs);
    if (ar != null) {
    for (int i=0; i<attrs.length; i++) {
    Attribute attr = ar.get(attrs);
    if (attr != null) {
    String values="";
    for ( Enumeration vals=attr.getAll();
    vals.hasMoreElements(); ) {
    values += vals.nextElement();
    if ( vals.hasMoreElements() )
    values += "\t";
    entry += SRV.SEPARATOR + values;
    When I take the value of the restrained attribut of the
    enumeration how I make convert it for example in a date ?
    I am using Windows2000 Advanced server.
    An example of lastLogon attribue is "126949578544450976".
    Any help is greatly appreciated.
    R.F.

    It looks to be the same format at accountExpires.
    If so, your in luck, I worked that one out back in January:
    http://forum.java.sun.com/thread.jsp?forum=51&thread=346718

  • How can I make a query by date with several TDMS files?

    Hi,
    I have a project that can write and read TDMS files everyday (a file for each day with date and time). There, I can import those files to excel (I choose a file and load it). But, I have a question: How can I make a query by date with those TDMS files? I'd like make a time stamp for start date and stop date, where I could compare the TDMS file dates and sum the values that are in the channels where these files are similar. For example, I save a file with "02/01/2013" name, in other day "03/01/2013", in other day "04/01/2013"... so, i'd like put in time stamp for start date "02/01/2013" file and to stop date "04/01/2013" file, than, sum all values that range with my TDMS files existing. How can I make that? 
    Thanks all,
    Val 

    Hello Val_Auto.
    You're Brazilian, no? Me too. = ^ - ^ =
    I converted VI to version of your LabVIEW (8.5). Is attached in this reply.
    This VI search all your TDMS in a range of dates and join them in a single TDMS. I hope this is what you wanted.
    Query TDMS is the main VI. The TDMS VI Search changes the date format that out from calendar control (which is DD / MM / YYYY) to DD-MM-YYYY. This is because you can't name files using "/". I chose "-" but, if necessary, you should change to keep the same format of your TDMS files.
    If you have any doubt as to its operation or how to make changes to adapt VI for your application, keep at your disposal.
    Thank you for your contact; I hope have helped you and succeed in your application.
    Wesley Rocha
    Application Engineer
    National Instruments Brazil
    Visite a nossa comunidade em PORTUGUÊS!!!
    Attachments:
    Query TDMS.vi ‏62 KB
    tdms search.vi ‏24 KB

  • How to retrieve user custom attributes in OID programmatically

    Hi,
    I created a custom attribute named "location" in OID. Could someone give indication/portion of code showing how to retrieve this custom attribute "location" of a user programmatically?
    For the moment, I just found sample code (using oracle.ldap.*) showing how to retrieve "uid" attribute of a user programmatically. I tried to get me inspired of this portion of code, but never succeed.
    Thanks a lot for any help.
    Jeff

    Use below code to get all attributes in user profile including UDF.
    OIMInternalClient objOimInternalClient = null;
    User user = null;
              UserManager usrService = null;
    objOimInternalClient = new OIMInternalClient();
              if (objOimInternalClient != null) {
                        try {
                             objOimInternalClient.loginAsAdmin();
                             usrService = objOimInternalClient
                                       .getService(UserManager.class);
                             user = usrService.getDetails("usr_key", strUserKey, null);
                             endDate = (Date) user.getAttribute("End Date");
                        } catch (Exception e) {
                             e.printStackTrace();
                        } finally {
                             if (objOimInternalClient != null)
                                  objOimInternalClient.logout();
                             if (user != null)
                                  user = null;
                             if (usrService != null)
                                  usrService = null;
    In order to see all UDF's in User profile, please create Authorization Policy.

  • How can we transfer product attributes from an already existing site?  We have thousands of items and it would be tedious to do them one at a time.  Is this possible through a CSV?

    How can we transfer product attributes from an already existing site?  We have thousands of items and it would be tedious to do them one at a time.  Is this possible through a CSV?

    There are two parts to this:
    1) It may be that you should have an Apple Education Support person helping you with this. If you have enough computers for this to be a problem, you may benefit from a Server, a site license, and an occasional visit from an Education Support Specialist.
    2) The brief answer, if you want Individual Apple_IDs to control each computer, is to buy new copies of Mac OS X under those new Apple_IDs and re-download and re-Install. Mac OS X is customized to the Apple_ID before it is downloaded.

  • How can I modify the High Speed Data Reader VI to show the time information in x-axis?

    I am just a beginner learning the LabVIEW programming currently.
    I have a PXI 6115 DAQ card and have to make a hardware timed acquisition VI for maximum performance. Thus I use the High Speed Data Logger VI for data acquisition.
    However, when I read my data by using the High Speed Data Reader VI, it doesn't show its time information in the graph.
    How can I modify the High Speed Data Reader VI to show the time information in x-axis?
    I hope you can explain easily because I am a beginner.

    Format the x axis to either absoulte or relative time.
    You can do this by right clickingo n the graph and selecting x axis then formatting from the menu.
    Thanks,
    Naresh

  • How can I pass a Presentation Variable (Date) into a prompt

    Hello
    How can I pass a Presentation Variable (date) into a prompt? I seem to be able to do this successfully for a non-date value but have had no luck with a Date variable.
    Here's a simplistic version of what I'm trying to do:
    1. I have a Presentation Variable called startDate which is a Date that defaults to this SQL - SELECT "Reporting Dates"."Measure Date" FROM Trading WHERE "Reporting Dates"."Date Name" = 'Current'.
    2. I now want to pass this variable into a prompt with SQL like this: SELECT "Position Date"."Position Date" FROM Trading where "Position Date"."Position Date" = date'@{startDate}{2009-04-24}'
    I get this error: Datetime value @{startDate}{2009-04-24} from @{startDate}{2009-04-24} does not match the specified format.
    Now I can use the exact same syntax in a filter. For example, a simple Answers request where I pick Position Date with a filter saying "Position Date"."Position Date" = date'@{startDate}{2009-04-24}' works fine.
    What am I doing wrong?
    Thanks!

    Can you provide more information please?
    1. What is the format of the first date prompt, is it YYYY-MM-DD or?
    2. Which data type is Position Date."Position Date" in the physical layer, date or date time?
    3. What is the column formula in the first prompt?
    4. The first prompt is set to drop-down or?
    5. If you are using this SQL Results in the second prompt:
    SELECT "Position Date"."Position Date" FROM Trading where "Position Date"."Position Date" = date '@{startDate}{2009-04-24}'
    then @{startDate} must be in YYYY-MM-DD format to work properly, otherwise (for example):
    datetime value 01/01/2000 from 01/01/2000 does not match the specified format.
    This doesn't work for example:
    SELECT Times.time_id FROM "Normal model" where Times.time_id =date '01/01/2000'
    Regards
    Goran
    http://108obiee.blogspot.com

  • How can we get Dynamic columns and data with RTF Templates in BI Publisher

    How can we get Dynamic columns and data with RTf Templates.
    My requirement is :
    create table xxinv_item_pei_taginfo(item_id number,
    Organization_id number,
    item varchar2(4000),
    record_type varchar2(4000),
    record_value CLOB,
    State varchar2(4000));
    insert into xxinv_item_pei_taginfo values( 493991 ,224, '1265-D30', 'USES','fever','TX');
    insert into xxinv_item_pei_taginfo values( 493991 ,224, '1265-D30', 'HOW TO USE','one tablet daily','TX');
    insert into xxinv_item_pei_taginfo values( 493991 ,224, '1265-D30', 'SIDE EFFECTS','XYZ','TX');
    insert into xxinv_item_pei_taginfo values( 493991 ,224, '1265-D30', 'DRUG INTERACTION','ABC','TX');
    insert into xxinv_item_pei_taginfo values( 493991 ,224, '1265-D30', 'OVERDOSE','Go and see doctor','TX');
    insert into xxinv_item_pei_taginfo values( 493991 ,224, '1265-D30', 'NOTES','Take after meal','TX');
    select * from xxinv_item_pei_taginfo;
    Item id Org Id Item Record_type Record_value State
    493991     224     1265-D30     USES     fever     TX
    493991     224     1265-D30     HOW TO USE     one tablet daily     TX
    493991     224     1265-D30     SIDE EFFECTS     XYZ     TX
    493991     224     1265-D30     DRUG INTERACTION     ABC     TX
    493991     224     1265-D30     OVERDOSE      Go and see doctor     TX
    493991     224     1265-D30     NOTES     Take after meal     TX
    Above is my data
    I have to fetch the record_type from a lookup where I can have any of the record type, sometime USES, HOW TO USE, SIDE EFFECTS and sometimes some other set of record types
    In my report I have to get these record typpes as field name dynamically whichever is available in that lookup and record values against them.
    its a BI Publisher report.
    please suggest

    if you have data in db then you can create xml with needed structure
    and so you can create bip report
    do you have errors or .... ?

  • How can we define custom error page in protal application

    How can we define custom error page in protal application, like we define "jsp Error page " in JSPs

    Hi,
    Check these:
    Customization of Portal Runtime Errors and portal standard error codes
    http://help.sap.com/saphelp_nw04/helpdata/en/9a/e74d426332bd30e10000000a155106/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/ec/1273b2c413b2449e554eb7b910bce7/frameset.htm
    Regards,
    Praveen Gudapati

Maybe you are looking for

  • How to call a custom method of same view?

    Hello I am developing a WDA on ABAP. I kept 3 LTA (Link To Action, kind of hyper link) on the initial_view, they perform the below functions (pls. note all the below 3 are on the initial_view ONLY), 1) LTA_1 -> Creates 'A' -> The linked EVENT for thi

  • When Photoshop CS6 is invoked from PSE 11 Organizer why is a new file created with _edited-1 appende

    I just converted a large PSE 10 catalog to work with a downloaded trial version of PSE 11.  When I brought up the Organizer and clicked on the Editor button I selected Photoshop CS 6.  At that point the Organizer created an image stack with a new fil

  • Import and default values for columns

    Hi guys I have a table in which there are default values for some columns. I take export of this table. I go to another database where this table structure is already there (but default values are not set). I run the import of table with ignore=Y. It

  • Lightning camera connection kit causing crashes (iPad mini)

    I ordered an lighting camera connection kit (with a usb input) from amazon, new. http://www.amazon.com/Apple-Lightning-Camera-Adapter-MD821ZM/dp/B009WHV3XA/ref=s r_1_1?ie=UTF8&qid=1361988752&sr=8-1&keywords=lightning+camera+connection+kit It came in

  • Seeking advice on a heavy hash join

    We have to self-join a 190 million row table 160 times. On our production 9i database we give "RULE" hint and it finishes in about an hour using nested loop join, On our test 10g database, since "RULE" is not available any more. The optimiser chooses