Project

General

Profile

Feature #6438

frame attributes, methods and options

Added by Greg Shah almost 2 years ago. Updated 9 months ago.

Status:
Closed
Priority:
Normal
Target version:
-
Start date:
Due date:
% Done:

100%

billable:
No
vendor_id:
GCD
version:

Related issues

Related to User Interface - Feature #2373: implemented output to redirected, paged terminal via (un)named streams in GUI mode New

History

#1 Updated by Greg Shah almost 2 years ago

  • LINE attribute
  • CURRENT-ITERATION attribute
  • GET-ITERATION() method
  • STREAM-IO option
  • SCROLL option
  • NO-ATTR-SPACE option

#3 Updated by Greg Shah 9 months ago

  • Assignee set to Eugenie Lyzenko

#4 Updated by Eugenie Lyzenko 9 months ago

Created task branch 6438a from trunk revision 14696.

#5 Updated by Eugenie Lyzenko 9 months ago

Greg Shah wrote:

  • STREAM-IO option
  • SCROLL option
  • NO-ATTR-SPACE option

All of these options to implement as part of the DEFINE FRAME ... WITH .. statement, right?

#6 Updated by Eugenie Lyzenko 9 months ago

The 6438a updated for review to revision 14697.

This change adds conversion support and partial runtime support for attributes/methods/options noted above.

The following options have partial runtime support:
SCROLL, STREAM-IO - need to clarify how it actually works.
NO-ATTR-SPACE - this option is obsolete and is not supported in 4GL. I think we have nothing to implement for this.

So if we need urgent support for GET-ITERATION() method in other project we can merge 6438a into trunk and continue work here with new 6438b.

#7 Updated by Eugenie Lyzenko 9 months ago

Also GET-ITERATION() method for Buffer object has only stub at runtime. I think we need to ask the persistence expert for implementation.

#8 Updated by Eugenie Lyzenko 9 months ago

  • Status changed from New to WIP

#9 Updated by Eugenie Lyzenko 9 months ago

The 6438a rebased with recent trunk 14698. The new revision is 14699.

#10 Updated by Greg Shah 9 months ago

Code Review Task Branch 6438a Revision 14699

Overall the changes are good. The only problem I see is with the implementation of GenericFrame.line(). It has been implemented as a rendering of dynDown but I think it is supposed to just call frameLineWorker(). Per the 4GL documentation, LINE should be the same as the FRAME-LINE built-in function instead of a reporting of the DOWN value.

#11 Updated by Greg Shah 9 months ago

Also GET-ITERATION() method for Buffer object has only stub at runtime. I think we need to ask the persistence expert for implementation.

It is OK to have a stub there. In the gap analysis, mark the runtime support as partial and put a comment into the gap rules that the buffer implementation is a stub.

#12 Updated by Eugenie Lyzenko 9 months ago

Greg Shah wrote:

Code Review Task Branch 6438a Revision 14699

Overall the changes are good. The only problem I see is with the implementation of GenericFrame.line(). It has been implemented as a rendering of dynDown but I think it is supposed to just call frameLineWorker(). Per the 4GL documentation, LINE should be the same as the FRAME-LINE built-in function instead of a reporting of the DOWN value.

Agreed.

The 6438a updated for review to revision 14700.

Notes resolution.

#13 Updated by Greg Shah 9 months ago

Code Review Task Branch 6438a Revision 14700

The change is fine. I've edited the comments and history in revision 14701. If you've tested this, it can be merged to trunk.

#14 Updated by Eugenie Lyzenko 9 months ago

Greg Shah wrote:

Code Review Task Branch 6438a Revision 14700

The change is fine. I've edited the comments and history in revision 14701. If you've tested this, it can be merged to trunk.

OK. Starting merge into trunk.

#15 Updated by Eugenie Lyzenko 9 months ago

Branch 6438a was merged to trunk as revno 14699 then it was archived.

#16 Updated by Eugenie Lyzenko 9 months ago

Further investigations shows the following:
1. Seems like the SCROLL option is currently supported at runtime. At least for testcase used SCROLL frame option the FWD behaves the same as 4GL.
2. The STREAM-IO is not supported. The following change adds basic implementation FrameGuiImpl.java:

...
   public void initialize(WidgetId id, FrameConfig wcfg)
   {
...      
      // the frame's title uses the window title font
      LabelConfig tcfg = new LabelConfig();
-      tcfg.font = FontManager.WINDOW_TITLE_FONT;
-      gf = new GuiFontResolver(window(), gd, tcfg, false);
+      if (config().screenIO)
+      {
+         tcfg.font = FontManager.WINDOW_TITLE_FONT;
+         gf = new GuiFontResolver(window(), gd, tcfg, false);
+      }
+      else
+      {
+         tcfg.font = FontManager.DEFAULT_FIXED_FONT;
+         gf = new GuiFontResolver(window(), gd, tcfg, true);
+      }

      // frameScroll height can be computed only after gf is created/assigned
      updateScrollPaneSize();
...

The idea is to always use default fixed font if the STREAM-IO(which is logically !SCREEN-IO) is in use.

So we could open 6438b, commit the FrameGuiImpl and consider the base runtime is implemented for SCROLL and STREAM-IO options.

#17 Updated by Greg Shah 9 months ago

  • Related to Feature #2373: implemented output to redirected, paged terminal via (un)named streams in GUI mode added

#18 Updated by Greg Shah 9 months ago

Is forcing the use of the fixed width font really the only thing that needs to happen to support STREAM-IO?

#19 Updated by Eugenie Lyzenko 9 months ago

Greg Shah wrote:

Is forcing the use of the fixed width font really the only thing that needs to happen to support STREAM-IO?

I think yes. The other thing to be happen is setting USE-TEXT frame option to true. But it is already implemented.

As general note this mode is designed for frame output to be easily converted to printer friendly format to provide the simple text formatting to make hardcopy on paper (or PDF). Probably we need some significant time to spend if something does not work out of the box at this time. This can become a big task. We need scenarios, baseline samples and so on...

#20 Updated by Greg Shah 9 months ago

The other thing to be happen is setting USE-TEXT frame option to true. But it is already implemented.

You mean that we already set USE-TEXT to true when the STREAM-IO option is present? Or that we do support USE-TEXT already but still need to set it to true when the STREAM-IO option is present?

As general note this mode is designed for frame output to be easily converted to printer friendly format to provide the simple text formatting to make hardcopy on paper (or PDF). Probably we need some significant time to spend if something does not work out of the box at this time. This can become a big task. We need scenarios, baseline samples and so on...

We can set the runtime support level to "basic" and defer the testcases until later.

#21 Updated by Eugenie Lyzenko 9 months ago

Greg Shah wrote:

The other thing to be happen is setting USE-TEXT frame option to true. But it is already implemented.

You mean that we already set USE-TEXT to true when the STREAM-IO option is present?

Yes we already made USE-TEXT in sync with STREAM-IO. No need more changes here.

Or that we do support USE-TEXT already but still need to set it to true when the STREAM-IO option is present?

But I do not know how USE-TEXT option changes are processing at runtime now.

As general note this mode is designed for frame output to be easily converted to printer friendly format to provide the simple text formatting to make hardcopy on paper (or PDF). Probably we need some significant time to spend if something does not work out of the box at this time. This can become a big task. We need scenarios, baseline samples and so on...

We can set the runtime support level to "basic" and defer the testcases until later.

Yes, I think this is what we need at this time.

#22 Updated by Greg Shah 9 months ago

Go ahead with these changes.

Constantin: What do you think?

#23 Updated by Constantin Asofiei 9 months ago

Eugenie, the priority of these attributes is for ChUI, although if any missing GUI support can be added easily to be 'basic or better', we should do so.

For STREAM-IO, there was work done at #2368 (for ChUI), but the GUI behavior was deferred.

For NO-ATTR-SPACE - this is already implemented in FWD I think, is the opposite of ATTR-SPACE attribute. There is a mark as 'deprecated' in latest docs for OpenEdge ATTR-SPACE attribute, but I don't think this means is no longer backwards-compatible. In ChUI, this test shows different layout:

def var ch as char.
display "test" ch with frame f1 side-labels attr-space.
display "test" ch with frame f2 side-labels no-attr-space.

About GET-ITERATION - does this convert/compile properly in FWD?

message frame f1:get-iteration(i).

#24 Updated by Eugenie Lyzenko 9 months ago

Constantin Asofiei wrote:

About GET-ITERATION - does this convert/compile properly in FWD?
[...]

Yes it does.

#25 Updated by Eugenie Lyzenko 9 months ago

Created task branch 6438b from trunk revision 14703.

#26 Updated by Eugenie Lyzenko 9 months ago

  • Status changed from WIP to Review
  • % Done changed from 0 to 100

The 6438b updated for review to revision 14704.

Added basic support for STREAM-IO/SCREEN-IO frame option. We can merge this into trunk if no objections and postpone further investigation to convenient moment in a future.

#27 Updated by Eugenie Lyzenko 9 months ago

Rebased 6438b with recent trunk 14706. New revision is 14707.

Guys,

Can I merge this into trunk?

#28 Updated by Eugenie Lyzenko 9 months ago

Rebased 6438b with recent trunk 14707. New revision is 14708.

Greg,

I have no plans to add new changes here. So probably we need to merge the current version to trunk? What do you think?

#29 Updated by Eugenie Lyzenko 9 months ago

Rebased 6438b with recent trunk 14709. New revision is 14710.

#30 Updated by Greg Shah 9 months ago

Code Review Task Branch 6438b Revision 14710

The changes are good.

#31 Updated by Greg Shah 9 months ago

You can merge to trunk after 7589a.

#32 Updated by Eugenie Lyzenko 9 months ago

Greg Shah wrote:

You can merge to trunk after 7589a.

OK. I'm starting.

#33 Updated by Eugenie Lyzenko 9 months ago

Branch 6438b was merged to trunk as revno 14711 then it was archived.

#34 Updated by Greg Shah 9 months ago

  • Status changed from Review to Closed

Also available in: Atom PDF