Request signature and custom fields

Hello

I just spent 3 weeks on the customization of most of the components used in my application for LabelField and ObjectChoiceField on the screen together, but when I install the application on the device, it throws 'Exception API blocked' and closes.

Can someone tell me what is the solution for this?

Note 1: I used custom MenuItem and it was working fine, but I don't know what happened with HorizontalFieldManager, VerticalFieldManager, LabelField, and ObjectChoiceField! (is it possible because I tried to override the method paint them?)

Note 2: I learned that I have to sign the application to continue. Is it possible apart from that?

Help, please!

The view class must sign.
The signing key is $ 20 for a lifetime, even amateur developers should be able to afford it.
Other then that you could probably use Graphics.getScreenHeight (), but it is deprecated in future versions of the JDE, use at your own risk.

Tags: BlackBerry Developers

Similar Questions

  • Create a Multiple Signature and Date fields with a custom toolbar button

    First of all, thank you in advance!  I'm a newbie script and I trudged my way through with very little experience with the scripts of any kind.  I'm good at taking and other scripts and them forming into something I need, but I can't seem to find something to do what I want.

    Use Adobe Acrobat X, I am trying to create a button in toolbar that I can press to create several signature fields and date with predetermined places.

    Here is the script that I have which strives to create a unique signature box, but I can't seem to understand the exact syntax to have this same button create several fields.  In total, it's 9 signature fields and 9 date fields must be created.  If you can give me just one example of what the button would look like with several scripts?  I'm assuming that I put multiple variables, then in ownership cExec toolbar button that I could just scream all these variables?

    var sigswm = "addField ('sigSWM', 'signature', '0', [108, 198, 494.64, 72])"

    app.addToolButton ({cName: "dotbutton", cExec: sigswm, cLabel: "place Signature and Date blocks",});

    Thanks in advance for any help you can provide.

    Billy Sweeney

    This is what works for me:

    function addSignatureAndDateFields (doc) {}

    Add a signature field and a date field

    var swmsig = doc.addField ('sigSWM', 'signature', '0', [108, 198, 494.64, 72]);

    swmsig.setAction ("MouseDown", "getField(\"dateSWM\").value = util.printd (\"mm/dd/yyyy\ ', Date() ");" ') new;

    doc.addField ('dateSWM', 'text', '0', [162, 72, 234, 54]);

    }

    app.addToolButton({)

    cName: "dotbutton."

    cLabel: "place Signature and Date blocks."

    cExec: "addSignatureAndDateFields (this)."

    cEnable: ' event.rc = app.doc; "

    cTooltext: "blocks of Signature and Date place.

    });

  • Custome Field took a nullpointexception in the labefiled and 7.1 paint method only you have this problem! Pls help me?

    KIM I create a custom entry field as below:

    public class AddEditField extends HorizontalFieldManager {
        private LabelField labelField;
        private EditField contentField;
        private RichTextField wrapaddField;
        HorizontalFieldManager textMgr;
        HorizontalFieldManager wrapMgr;
        private static final int HPADDING = Display.getWidth() <= 320 ? 6 : 8;
        Font font;
    
        public AddEditField(String label, Font font, int maxSpace) {
            this(label, 0, font, maxSpace);
        }
    
        public AddEditField(String label, long style, Font cfont, int maxSpace) {
            super(NO_HORIZONTAL_SCROLL);
            this.font = cfont;
            textMgr = new HorizontalFieldManager(HORIZONTAL_SCROLL | FIELD_VCENTER);
            wrapMgr = new HorizontalFieldManager(FIELD_VCENTER);
            wrapaddField = new RichTextField(RichTextField.TEXT_ALIGN_LEFT);
            long cstyle = 0;
            if (style == 0) {
                cstyle = EditField.NO_NEWLINE | EditField.FOCUSABLE
                        | EditField.EDITABLE | FIELD_VCENTER;
            } else {
                cstyle = EditField.NO_NEWLINE | EditField.FOCUSABLE
                        | EditField.EDITABLE | style | FIELD_VCENTER;
            }
            contentField = new EditField(cstyle) {
                protected void paint(Graphics graphics) {
    
                    // Font font = getFont().derive(Font.PLAIN, fontSize);
                    graphics.setFont(font);
                    graphics.setColor(0x666666);
                    super.paint(graphics);
                }
    
                protected void onFocus(int direction) {
                    super.onFocus(direction);
                    invalidate();
                }
    
                protected void onUnfocus() {
                    super.onUnfocus();
                    // if (VirtualKeyboard.isSupported()) {
                    // VirtualKeyboard vKeyboard =getVirtualKeyboard();
                    // vKeyboard.setVisibility(VirtualKeyboard.HIDE);
                    // }
    
                }
            };
            labelField = new LabelField(label, FIELD_LEFT | FIELD_VCENTER) {
                protected void paint(Graphics graphics) {
                    graphics.setColor(0x006699);
                    graphics.setFont(font);
                    super.paint(graphics);
                }
            };
            LabelField spaceF = new LabelField() {
    
                protected void layout(int width, int height) {
                    // TODO Auto-generated method stub
                    //super.layout(HPADDING, font.getHeight() + 10);
                    setExtent(HPADDING, font.getHeight() + 10);
                }
            };
            add(spaceF);
            add(labelField);
            final int space = maxSpace - font.getAdvance(labelField.getText());
            LabelField spaceF2 = new LabelField() {
    
                protected void layout(int width, int height) {
                    // TODO Auto-generated method stub
                    // super.layout(space, font.getHeight() + 10);
                    setExtent(space, font.getHeight() + 10);
                }
            };
            add(spaceF2);
            textMgr.add(contentField);
            wrapMgr.add(wrapaddField);
            add(textMgr);
        }
    
        public String getText() {
            return contentField.getText();
        }
    
        public void setText(String text) {
            synchronized (UiApplication.getEventLock()) {
                wrapaddField.setText(text);
                contentField.setText(text);
            }
        }
    
        public void setEditMode(boolean editable) {
            String text = wrapaddField.getText();
            synchronized (UiApplication.getEventLock()) {
                if (editable) {
                    contentField.setText(text);
                    if (wrapMgr.getManager() == this) {
                        delete(wrapMgr);
                    }
                    if (textMgr.getManager() != this) {
                        add(textMgr);
                    }
                } else {
                    if (textMgr.getManager() == this) {
                        delete(textMgr);
                    }
                    if (wrapMgr.getManager() != this) {
                        add(wrapMgr);
                    }
                }
            }
        }
    
    }
    

    Then I create: new AddEditField ("address:", cFont, maxSpace);  and add it to a screen.

    When I try to open this form. It is nullpointexception: the eclipse debugger show the info such as:

    AddEditField$ 4labelfield.paint line 385.

    Please help me to check the code. why it can run in 0 s 7.0 and before, only 7.1 has had this problem?

    Thank you

    Hi Flybrid,

    I checked at the time of your code,

    I am able to run your code by deleting page layout override methods in two fields of the label.

    The problem with the substitution of the method of layout in the spaceF and spaceF2 fields.

    But I can't explain why.

    I think that you can achieve the same thing by replacing getPrefferedWidth() and getPrefferedHeight() above the fields instead of page layout.

    Thank you.

  • Question regarding setExtent and getPreferredWidth for the custom field

    I am trying to understand the difference between getPreferredWidth and setExtent, which relate to the width of a custom field.

    I create a field that may be greater than the width of the screen. The field is made up of cells (for example columns and lines or cells, such as a table). The cells contain text, shapes, lines, color, etc. When I display the field I only paint the visible columns on the screen and allow the user to use the trackball to accomplish the columns out of the screen.

    At present, getPreferredWidth returns the total width of the field without all the empty columns, is longer than the width of the screen. I use the same value in setExtent for width. GetPreferredWidth must return the size of the field that is painted on the screen - the total width less the width of the columns out of the screen? I have the same question about setExtent - width either in total, longer than the screen width or the width of the part of the field that is painted on the screen?

    If I use the width of what is painted on the screen or the other of these methods, then the width changes when the user scrolls through the field. As the user scrolls, I calculate the number of columns will agree to a width of the screen and paint these columns. Is it a problem to have the PreferredWidth and the setExtent change width? I read that setExtent is called only when the Manager sets this field, so that the changes will not be recognized.

    It seems to work in two ways in a few simple tests, but I was just curious as the value of width that is right.

    Thank you!

    Mark

    When a field has changed in a way that requires the update of the screen (for example, after scrolling offset changes), simply call invalidate() from this area. That will eventually lead to paint (Graphics) for the field. At this point, you return the update field. (If only part of a field - as a single cell - needs to be updated, there invalidate() versions that accept arguments where, for efficiency, you can limit the update for just this part.)

    If I understand your needs, you can achieve the effect desired in the paint method. You can use the current dimensions of the field, the cutting of the graphics area, and your internal roll compensates to decide what to paint and what to delete. Let your custom field leave white space where you decide of doesn't make is not part of a cell. There is no need to change the scope of the field.

    If you go about it by changing the dimensions of the field, and then you ask the system to play much more work he has to do. If the custom field is the only field on the screen, it won't make much difference in the behavior (although there may be performance). With more than one field, it can be weird effects. For example, suppose that your custom field is one of several fields in a HorizontalFieldManager and you change the field width. When the HorizontalFieldManager recalculates its own layout, it will change the horizontal position of the fields to the right. The effect on the user, I think, would be really confusing: as the custom field parade, parties to the right of the screen could bounce left and right as the changed width field. I can't imagine that's what you want.

    Here's another way to think about this: absent some bit of style, your custom field would prefer be exactly wide and high enough to show all without scrolling. So the width and height would be based on adding the appropriate cell widths and heights, regardless of what actually is on the display. (It's also a long time that you do not have something fanciful.) If the optimum height is a function of the width available - as with sheathed on the line of text - you would implement this logic in the layout method. You then have no use for autonomous preferred width and height).

  • How can I uninstall the CD player and return to my Acrobat Reader 11 prior who already had custom content (signatures and stamps) already charge on it?

    I have Windows Mobile 8.1.  I was running Acrobat Reader 11 and had over time to measure it with signatures and stamps.  I've recently been van to update Acrobat Reader only learn the installation CD is a new interface.  Both and so that it will be as a new program.  Worse still, I quickly learned that ALL my custom content for the Reader 11 is now GONE!  I tried to do a system restore to go back but Reader 11 would not work correctly after you did.  I really want to get 11 player works again WITH ANY of MY CUSTOM CONTENT.


    Can anyone help?

    Hi sharifa70055101,

    Uninstall it by using this Download Adobe Reader and Acrobat tool - Adobe Labscleanup tool, reboot your system and install Reader 11 using this link Adobe - Adobe Acrobat Reader DC Distribution.

    Kind regards
    Nicos

  • I need to create a PDf form with specific editable fields, including the ability to insert an electronic signature and to be able to save the completed form. What version of adobe supports this?

    I need to create a PDF form with specific editable fields, including the ability to insert an electronic signature and to be able to save the completed form. What version of adobe supports this?

    subscription dc Acrobat or purchase, Plans and prices | Adobe Acrobat DC

  • Custom export and inmopt fields

    Hi all

    I would like to export to CSV, all virtual machines with custom fields (6) and their values, something like VMname | Value1 | Value2 | etc. Value6. and second script that will allow me to import custom report to VM field values.

    No idea how to do it?

    You can use the first PowerCLI script to export annotations (custom fields) in a .csv VMAnnotations.csv file:

    Get-VM | ForEach-Object {
      $VM = $_
      $VM | Get-Annotation |`
        ForEach-Object {
          $Report = "" | Select-Object VM,Name,Value
          $Report.VM = $VM.Name
          $Report.Name = $_.Name
          $Report.Value = $_.Value
          $Report
        }
    } | Export-Csv -Path VMAnnotations.csv -NoTypeInformation
    

    And you can use the second script to import:

    Import-Csv -Path VMAnnotations.csv | Where-Object {$_.Value} | ForEach-Object {
      Get-VM $_.VM | Set-Annotation -CustomAttribute $_.Name -Value $_.Value
    }
    

    Best regards, Robert

  • Refresh children Manager custom fields

    Hi all

    I have implemented my own handler class and substituted its scrollChanged() method. And I have a screen class with this custom as its child domain administrator. The handler class has a few bitmaps and label fields.

    Now, scrollChanged, I honor that the Manager will update itself as well as all of its fields of children. I try it by calling the manager.invalidate () method, but it only updates the scroll position, it doesn't redraw / update the label contained by the handler class and fields of bitmaps.

    How can I achieve this?

    Thank you!

    -arun

    Hello

    Just so you guys know that my request is resolved. I drove my screen invalidate() methods too and the class Manager. And whenever I wanted to refresh my screen, I used:

    UiApplication.getUiApplication () .getActiveScreen () .invalidate ();

    As a result, by calling the invalidate the screen class. which in turn calls the method invaildate() of my handler class.

    I am always grateful to everyone of u :-)

  • In Windows Mdia Player 11 - how to import my music and custom to a new computer columns.

    The title is my question.

    Hi Robin Maroney.

    You cannot copy the custom Windows media player to another computer columns.

    The custom 1 and custom 2 fields are saved only in the database of the library and is written in current music files, so they cannot be transferred to another computer.

    If you want to import all songs from the Windows media on another drive, you will need to copy the music files to the location where they are saved on the computer and then transfer them to the new computer.

    Using Windows Media Player 11 for Windows XP

    http://Windows.Microsoft.com/en-us/Windows-XP/help/Windows-Media-Player/11

    Transfer files from another computer

    http://Windows.Microsoft.com/en-us/Windows-Vista/transfer-files-from-another-computer

  • Media Player custom 1 and custom 2

    I use the custom 2 columns and custom 1 windows media player.  These data be saved somewhere?
    I always save my music on an external hard drive.  When I buy new computers I load into the media player, but the data in two columns are never there, so I have to re-enter all the data.
    How can I save these data please?

    Thank you

    The custom 1 and custom 2 fields are saved only in the library database and is written in current music files. This explains why you don't see their content on other computers.

    To save these fields and transfer them to another computer, you can use the backup of the metadata tool. This tool exports all information in the library in an XML file and can also import an XML of this type in the library.

    Tim Baets
    http://www.BM-productions.TK

  • Background color of the custom field

    Hello

    I create a custom field that is as shown in the attached display a bar graph.

    I don't want to change the background color of the field of another color. I tried to overridding method paintBackground of the field as shown below:

    protected void paintBackground(Graphics arg0) {
            arg0.setColor(Color.DARKGRAY);
            super.paintBackground(arg0);
        }
    

    but it seems to have no effect. Could someone kindly help me with this. Thanks in advance.

    Kind regards

    S.A.Norton Stanley

    Try this...

    Create a class that extends the scope and implements DrawStyle

    and override its Paint method... to set the background color

    Draw the shape you want with the graphics object and either fill the area or set the background color.

    THX

    Rabi Ray

  • Question view screen with custom fields

    I've developed a class that extends the scope and Implements DrawStyle. The field contains a bitmap with text drawn on the left of the it... nothing too complicated. I made focasable, has erased layout and drawFocus, painting, etc., but I'm having a Visual anomaly.

    On my screen (no title), I added a LabelField (non-active), and then a BitmapField (non-Focus), followed by a number of my custom fields. When the first screen, everything looks great. My first custom control has focus and is drawn as such.

    The problem occurs when I scroll through the custom control 3rd to 4th (causing the screen scroll), the 2nd custom control appears twice, the 3rd is missing and the 4th has the focus. There are also some white background that starts to show through (my controls are all black and is so the bottom of the screen and other controls).

    Of course, I'm having some trouble of painting, but it is certainly related to scrolling.

    What methods should be overritten in a custom control to ensure the scrolling will work properly?

    Which must be defined in the screen?

    1. prepare your screen unscrollable as:

    Super (NO_VERTICAL_SCROLL);

    2 use a VerticalFieldManager to add all of your components.

    Make sure verticalManager Scrollable and set its size and background color.

    Something like:

            mainManager = new VerticalFieldManager(Manager.VERTICAL_SCROLL | Manager.VERTICAL_SCROLLBAR)
            {
                //setting background color
                protected void paintBackground(Graphics graphics)
                {
                    graphics.setBackgroundColor(0x00000000);
                    graphics.clear();
                    super.paint(graphics);
                }
                //setting its height and width
                protected void sublayout( int maxWidth, int maxHeight )
                {
                    int width = Display.getWidth();
                    int height = Display.getHeight();
                    super.sublayout( width, height);
                    setExtent( width, height);
                }
            };
    

    3. now add this to your screen.

    Now your screen does not scroll and you will not get the white background at the end.

    Let me know if you have any questions.

    Concerning

    Bika

  • Changing custom field problem Listener

    I created a custom field that works as a button. He painted a bitmap to the screen. And when it focuses it changes the color of the image. However, I try to add a field change listener to it. I looked on the forum and found this code.

    protected boolean navigationClick(int status, int time)
    {
         fieldChangeNotify(1);
         return super.navigationClick(status, time);
    }
    

    It works but I have a problem. You see, my button now push a small screen, thin in the stack that has another button of the same type on it (custom button). At the moment it is the only button on this screen, which means that it has the focus. But it seems that once my button has the focus, I can click anywhere and it is always enabled. I only want to be activated when I touch it. Any suggestions? Here is my code

    public class MenuButtonField extends Field
    {
        Bitmap imagePic;
        Bitmap highlightedPic;
        public MenuButtonField(String imageName, String focusedImg)
        {
            super();
            imagePic=Bitmap.getBitmapResource(imageName);
            highlightedPic=Bitmap.getBitmapResource(focusedImg);
        }
    
        public void layout(int width,int height)
        {
            setExtent(20,80);
        }
    
        public boolean isFocusable()
        {
            return true;
        }
    
        public void drawFocus(Graphics graphics, boolean on)
        {
            paint(graphics);
        }
    
        public boolean touchEvent(TouchEvent message)
        {
            int type=0;
            type=message.getEvent();
            if(type==TouchEvent.CLICK)
            {
                fieldChangeNotify(1);
                return true;
            }
            else{
                return false;
            }
        }
    
        protected boolean navigationClick(int status, int time) {
            fieldChangeNotify(1);
            return super.navigationClick(status, time);
        }
    
        protected void paint(Graphics g)
        {
    
            g.drawBitmap(0, 20, 20, 80, imagePic, 0, 0);
    
            if(this.isFocus())
            {
                g.drawBitmap(0, 20, 20, 80, highlightedPic, 0, 0);
            }
    
        }
    }
    

    PLEASE HELP ME

    I found help here
    http://supportforums.BlackBerry.com/T5/Java-development/navigationClick-invoked-when-clicking-outsid...

    The position of Scribe the Lion was the solution.

  • Two sliders in the custom field definition

    Hi guys,.

    First of all, I want to thank all those who helped me to this day. This forum has been essential for blackberry dev work I do, and I would be screwed without you guys. That being said, I'm having a problem. I install a custom like this text entry field.

    (1) creates a vertical field Manager, assigned a background and resized image with setExtent(). (works fine)

    (2) created a new type of field and inserted in the vertical field Manager to make native look (almost works)

    The problem I have is that two sliders are appearing. Cursor #2 is dynamically updated as it should be, but the #1 cursor seems to be a "flawed slider. Please see the image below for details.

    The custom field is defined using the following code. If I remove the custom field, or cursors comes, so I am positive that it is the source of the problem.

        public class JustifiedEditField extends HorizontalFieldManager implements FieldChangeListener {
            BasicEditField ef;
    
            public JustifiedEditField(long style) {
                super(USE_ALL_WIDTH);
                ef = new BasicEditField(style) {
    
                    protected void onDisplay() {
                        setPosition(10, 17);
                        update(0);
                        //invalidate();
                    }
    
                    protected void update(int d) {
                        super.update(d);
                        setPosition(10, 17);
                        //invalidate();
                    }
    
                    protected void paint(Graphics graphics) {
                        graphics.setColor(Color.WHITE);
                        getFocusRect(new XYRect());
                        drawFocus(graphics, true);
                        super.paint(graphics);
                    }
    
                    protected void onUnfocus() {
                        invalidate();
                    }
    
                    protected void onFocus(int direction) {
                        invalidate();
                    }
    
                    /**
                     * Intercepts ESCAPE key.
                     * @see net.rim.device.api.ui.component.TextField#keyChar(char,int,int)
                     */
                    protected boolean keyChar(char ch, int status, int time) {
                        switch(ch) {
                            case Characters.ESCAPE:
                                // Clear keyword.
                                if(super.getTextLength() > 0)
                                {
                                    setText("");
                                    return true;
                                }
                        }
                        return super.keyChar(ch, status, time);
                    }
                };
                add(ef);
            }
    
            protected void sublayout(int width, int height) {
                super.sublayout(width, height);
                setExtent(width, 57);
            }
    
            public BasicEditField getEditField() {
                return ef;
            }
    
            public String getText() {
                return ef.getText();
            }
    
            public void setText(String value) {
                ef.setText(value);
                invalidate();
            }
    
            public void setChangeListener(FieldChangeListener changer ){
                ef.setChangeListener(changer);
            }
    
            public void fieldChanged(Field field, int context) {
                invalidate();
            }
        }
    

    I am totally stuck on this issue, any help would be really appreciated. TIA!

    I came up with an alternative solution. It turns out that I can use a transparent border to set the offsets to where the edit field must be located within the input Manager; thus eliminating the need to use setPosition.

  • typed letters are not visible after the end of the custom field in editfield

    class CustomEditField extends EditField {}

    CustomEditField (String text) {}

    Super("",Text);

    }

    public void layout (int width, int height) {}

    Super.Layout (getPreferredWidth (), getPreferredHeight ());

    setExtent (getPreferredWidth (), getPreferredHeight ());

    }

    public int getPreferredHeight() {}

    Return super.getPreferredHeight ();

    }

    public int getPreferredWidth() {}

    return (Display.getWidth () * 2/3);

    }

    }

    It's my edit custom field.

    When I type on this field and reached end of the field, can't see the letters after that, but I can type (the only thing is to type letters are not visible after the end of the field)

    What is the solution

    I'm sure that you must explicitly enable scrolling. See Manager javadocs.

    In addition, you limit the scope of your field, which may also fail to scroll.

Maybe you are looking for