GXT 2.x - TreePanel / TreeStore / TreeLoader / RpcProxy - gxt

I'm attempting to populate a tree structure with simple ModelData returned by a RpcProxy call (nothing fancy, no Json, no Hibernate, just simple Java) My code looks very similar to the AsyncTree example).
I used the 'BasicTree' example to get started and then modified to look like the 'AsyncTree'. I assumed that the server-side should return the whole tree (as in the BasicTree Example but I see it's really supposed to only return the children of the node passed in the Rpc call (silly me).
Me thinks I'm not understanding TreePanel, Tree... etc. Please, anybody know of a decent online doc. or book that explains this is detail?

You'll find there's actually a nice concise example of serving up async based tree content that's included with the GXT 2.x library.
Extract the gxt.xxx.zip file somewhere, and take a look at samples\examples\src\com\extjs\gxt\samples\server\FileServiceImpl.java
It only contains a few methods, where it simply builds up 1 layer of the tree model at a time.
You can view the corresponding client-side code in examples\src\com\extjs\gxt\samples\client\examples\treepanel\AsyncTreePanelExample.java

Related

Defining API class in component based structure

I have been reading the 'Node JS Best Practices' Github article. One point that I I found interesting was the very first best practice. Here they split up the project structure based on components. One of the advises was to use functions and classes outside the component by defining them in an API class. But I can't find any examples on how such class should be build.
This is the link to the Github article:
Component bases project structure
You Just Connect Your Main Index file .
every script File Then AutoLoad Practices.
Var myVar2 = require('./your_file')
You can have a look at this, if you wanna structure your project in different parts and make that more readable.
Im attaching one of the boilerplate link of github since, it will be huge to tell you everything here, just look at this setup you will know everything.
check this link for boilerplate.
If you have doubts let me know.

FPC/Lazarus component like TImageList, but for generic files?

Just like TImageList contains a collection of images, is there a similar component for generic files?
I know I can embed files as resources, but I'd like the convenience of storing different groups of files in different "TFileList" components, and to be able to retrieve files by name or by their position in the list.
Extra points if such a component allowed some sort of design time preview of the file content (just like TImageList lets you see what each image looks like, at design time).
(I come from Delphi where I wrote my own component to do the above, but before I rewrite and port the property editor and all that to Lazarus, maybe there is already something that is tried and tested...)
Thanks!
You can use pre-defined lazarus TFPGList to specialize list of the type, that you want, for example - UTF8String
But, there's no T<>List as a component, only as object.
So, yes, this feature will be useful and i can implement, if have time,
also, there's a very limited RTTI, which has been updated only a few months ago, so you can access Methods and Properties now, so FP is more systemized, than delphi pascal, but also not so enterprise-developed, which limits it to implementations for common opensource and shareware project problems.
Nevertheless, it is more stable and supported, even my friends can contribute.

Mako rendering recipe from cherrypy docs does not work. What is wrong?

I have copy-pasted the tool and plugin files from the Mako rendering recipe pointed to by the Cherrypy docs, and it simply does not work out of the box.
I have tried to track the problem and apparently, the response.finalize() method is called before the Mako tool is called, which modifies the response.body dictionary and gives a wrong input to the template. Why is this happening if the tool is configured with the 'before_finalize' option?
Another strange thing is that I need to set the response.status to 200 manually in the normal handler, as opposed to other examples.
I am using Python-3.4.3 and Cherrypy-3.7.0.
After #saaj's help and looking through the Cherrypy source code I have come to the conclusion that the recipe is no longer correct. My guess is that since it's a couple of years old, changes in newer versions might have rendered the recipe unusable. This is based on these facts:
I have observed that the dictionary returned by the exposed handler gets converted into a list (in my basic test) so the renderer does not receive what it should.
The json_out tool uses a different approach, which is actually very similar to what the HandlerWrapperTool does. Its hook point is 'before_handler' instead of 'before_finalize'.
The response.status needs to be set in the exposed handler, as opposed to what happens here.
So in the end, I will use the snippet posted here, but I could also use something simpler, such as this example.

ExtLibUtil documentation - where do you find what the available functions are?

As I have asked questions in this form - thanks for your many helpful answers - i have found many really neat things that one can do using ExtLibUtil.???? however, other than a bit here and a bit there I have not found anything that gives a listing on the various functions. I one post I read that it is all in the source of the extension Library, and it might be if you really understand where in the source to look. Sure would appreciate a pointer and starting point.
I've been unable to find a JavaDoc for it. The library slipped passed us when we wrote the book - certainly I was not as au fait with Java to be aware of it and all the strength within it. So the best option currently is to look at the source code in Eclipse. Many of the methods are helper methods to easily access things like viewScope etc, which is easy from SSJS but less easy from Java. Most are pretty self-explanatory.
Content assist doesn't seem to work from SSJS, but will from any Java class or, alternatively, open up one of the Java classes created for XPages / Custom Controls under the "local" package in Package Explorer, type "ExtLibUtil." in any method and you'll see the list.

Any way in Expression Engine to simulate Wordpress' shortcode functionality?

I'm relatively new to Expression Engine, and as I'm learning it I am seeing some stuff missing that WordPress has had for a while. A big one for me is shortcodes, since I will use these to allow CMS users to place more complex content in place with their other content.
I'm not seeing any real equivalent to this in EE, apart from a forthcoming plugin that's in private beta.
As an initial test I'm attempting to fake shortcodes by using delimited strings (e.g. #foo#) in the content field, then using a regex to pull those out and pass them to a function that can retrieve the content out of EE's database.
This brings me to a second question, which is that in looking at EE's API docs, there doesn't appear to be a simple means of retrieving the channel entries programmatically (thinking of something akin to WP's built-in get_posts function).
So my questions are:
a) Can this be done?
b) If so, is my method of approaching it reasonable? Or is there something stupidly obvious I'm missing in my approach?
To reiterate, my main objective here is to have some means of allowing people managing content to drop a code in place in their content that will be replaced with channel content.
Thanks for any advice or help you can give me.
Here's a simple example of the functionality you're looking for.
1) Start by installing Low Replace.
2) Create two Global Variables called gv_hello and gv_goodbye with the values "Hello" and "Goodbye" respectively.
3) Put this text into the body of an entry:
[say_hello]
Nice to see you.
[say_goodbye]
4) Put this into your template, wrapping the Low Replace tag around your body field.
{exp:low_replace
find="[say_hello]|[say_goodbye]"
replace="{gv_hello}|{gv_goodbye}"
multiple="yes"
}
{body}
{/exp:low_replace}
5) It should output this into your browser:
Hello
Nice to see you.
Goodbye
Obviously, this is a really simple example. You can put full blown HTML into your global variable. For example, we've used that to render a complex, interactive graphic that isn't editable but can be easily dropped into a page by any editor.
Unfortunately, due to parse order issues, EE tags won't work inside Global Variables. If you need EE tags in your short code output, you'll need to use Low Variables addon instead of Global Variables.
Continued from the comment:
Do you have examples of the kind of shortcodes you want to support/include? Because i have doubts if controlling the page-layout from a text-field or wysiwyg-field is the way to go.
If you want editors to be able to adjust layout or show/hide extra parts on the page, giving them access to some extra fields in the channel, is (imo) much more manageable and future-proof. For instance some selectfields, a relationship (or playa) field, or a matrix, to let them choose which parts to include/exclude on a page, or which entry from another channel to pull content from.
As said in the comment: i totally understand if you want to replace some #foo# tags with images or data from another field (see other answers: nsm-transplant, low_replace). But, giving an editor access to shortcodes and picking them out, is like writing a template-engine to generate ee-template code for the ee-template-engine.
Using some custom fields to let editors pick and choose parts to embed is, i think, much more manageable.
That being said, you could make a plugin to parse the shortcodes from a textareas content, and then program a lot, to fetch data from other modules you want to support. For channel entries you could build out of the channel data library by objectiveHTML. https://github.com/objectivehtml/Channel-Data
I hear you, I too miss shortcodes from WP -- though the reason they work so easily there is the ubiquity of the_content(). With the great flexibility of EE comes fewer blanket solutions.
I'd suggest looking at NSM Transplant. It should fit the bill for you.
There is also a plugin called Shortcode, which you can find here at
Devot-ee
A quote from the page:
Shortcode aims to allow for more dynamic use of content by authors and
editors, allowing for injection of reusable bits of content or even
whole pieces of functionality into any field in EE

Resources