Updating model behind the editor when file has been refreshed - eclipse

I am writing multi-tab editor for Eclipse. This plug-in has several tabs and the last one is the text source - something similar to the plugin.xml editor in PDE.
There is some model behind it which is used to show some information in tabs which are base on the data in the text source. User may edit source and when he/she switches to another tab the model is updated. That works fine.
The problem is when someone edits source file in an external editor. Then refresh project and the model should be also refreshed. But how can I achieve this?
I tried to use addResourceChangeListener, it notifies my with pre-refresh events, but it doesn't contain information if my file is going to be updated (e.g. only project resource if someone tried to refresh the whole project).
Other idea I had was to add document listener when a pre-refresh event comes and to remove it in the post-change handler. However here the problem is that if file hasn't changed and hasn't been updated no post-change event is sent, so I stay with unnecessary document listener which will be informed about all edits done by user in the last (source) tab.
I will appreciate any help.

A Refresh, when it finds changed files, will report them as having been changed. You probably mean to listen to the POST_CHANGE notification as shown at http://www.eclipse.org/articles/Article-Resource-deltas/resource-deltas.html .

Related

K2: How may I open a file in a new window unless I already have such a window open?

I have a K2 Smartform that displays a list of file names. When the user clicks a file name, the program opens that file (all of them are PDFs) in a new tab in the browser (IE). This is good so far. If you click on a second file from the list, it opens in a third tab. That is not what the user wants.
They want the second file selection to open in the same window as the first file.
This is the process I can see:
Click on the file in the list.
Open in a tab.
Click on a second file in the list.
If there is already a tab open with a file from the list, open this file there. Otherwise, open a new tab for the file.
I suppose automatically closing the first tab when they click on the second file would accomplish the same thing.
How can this be done?
When you deal with opening links, first of all, what you can do is limited. Indeed, browsers (IE, Chrome, etc...) can be configured by the users to open links in new tabs, windows, etc... and you as form developer cannot change that.
I have made a jsfiddle to reproduce your situation and propose a solution you can test. I don´t guaranty it will work as I use a Mac but I also describe a better solution below.
You can find it here:
https://jsfiddle.net/chevdor/45k40npv/
I guess the first example (#1) is what happens for you at the moment.
Using the 'target' attribute, I tried to implement a solution that may work for you. Click on #2 and #3 and check whether this work.
I cannot test that since I use a Mac.
You can read more about the target attribute here:
http://www.w3schools.com/tags/att_a_target.asp
Another solution that would give you more control is to use an iFrame control. I think it comes in standard with SmartForms now. If not, you can for sure get it from the community site. I recommend you create a new View with this iFrame and define one parameter (string) called "url".
Let´s speak in K2 rules languages :)
"When the parameter changed", "and the parameters is defined", if you 'Transfer data' passing your URL to the iFrame control, it will display your doc. If the user clicks another document, it will update the SAME iFrame. With this solution, no tab will ever be involved.
Please note that it will work great for any document supported by your browser. Some types may require a plugin. Other documents (ie zip, etc..) will NOT appear but be downloaded instead.
I hope this helps.
Best regards,
-chevdor

Smart Form changes not reflecting in site. #Ektron

I have edited my existing smart form in smart form configurations in settings menu.
Then I have published and updated the smart form in contents folder properties.
Now I went to particular content which is using that particular smart form in CMS 400 editor and I can see the changes.
But when I go through the page in browser it still shows the old smart form.Unable to reflect changes in browser. please help me.
Thanks in advance
It would help to know what version you're running. That being said, there are a few things that could be going on here...
Caching
FrameworkAPI caching might be turned on, in which case you'd have to wait for the cache expiration or recycle the app pool in order to see updated content. Caching is enabled in web.config by changing the defaultContainer property in this section to Cache.
<ektron.framework.services>
<unity configSource="ektron.cms.framework.unity.config"/>
<framework defaultContainer="Default" childContainer="BusinessObjects"/>
</ektron.framework.services>
Republish the content
Changes to a smart form definition won't immediately trickle down to all content blocks using that particular smart form. If you add a field (for instance), that field won't exist on any content blocks unless you open up that content block in edit mode and republish it. It will automatically be added to the content block when you click Edit, but that change won't be saved until you click publish.

Libre Office Writer: Strike-out on delete rather than remove?

We occasionally see revision-suggestions for documents (usually from our attorneys) where removed content gets color coded and has a strike through it. Added content also gets its own color coding.
I had always presumed that some specialty software was used to achieve such versioning effects, but one of our salespeople just received a document from their customer and it seems to be in that "mode".
When he tries to delete anything, it simply turns lime green and gets stricken out.
Is this a feature that can get turned on/off in Libre or Open Office?
If so, where/how?
Main Menu - Edit - Changes submenu
This feature is called Track Changes and it allows you to pass documents back and forth and see who made changes. The feature is accessible under the Edit -> Changes menu. Within this menu are 6 items:
Record
Protect Records...
Show
Accept or Reject...
Comment...
Merge Documents...
I should mention I'm using LibreOffice Version 3.6.4.3 (Build ID: 2ef5aff), but this menu should be identical in previous versions as well as OpenOffice.
You can see other peoples changes by checking/unchecking the Show item. If you want to disable/enable the recording of changes you check/uncheck Record. Finally if you want to incorporate other peoples changes you check/uncheck Accept or Reject....
Here are some additional resources to get you started if you want to actually do more than just disable this feature.
Collaborate Using LibreOffice Writer Changes and Comments
Recording and Displaying Changes
Screencast demoing Track Changes
Taming Apache OpenOffice - Tracking changes
LibreOffice 5.4.1.2.0
Edit -> Track Changes -> Record (uncheck Record)

Stop form from open when no records

I have a data entry form that when it closes opens another form for further updating the just newly entered data. However, at times no further update is necessary. How can I suppress the 2nd form from opening when there is no need for further update? Presently the form opens even when there are no recordsets present. (need a similar Event like for the report "On No Data")
Have a bit field such as a checkbox with default set to true open second form. Uncheck it to avoid the system from opening the next form. You will need to handle this in your code and check if that check box is checked or not.
Of course we will need more details such as why you are currently opening this second form...in addition, cant you check if any changes were made and if they were then open that second form else dont? Also what lang ?
Without knowing more about what you're working on, I'd say you would have to modify the process that shuts down the first form to check if the second form is needed. In .NET, for example, you could add code to the OnClosing event for a WinForm to check. If it's needed, open it as normal, if not then don't.
Subject: Tool Kits. Tool Kits consist of 1 or more tools. If tools already exist, no need for 2nd form to pop up. If tools are new, I need to fill in one of the 3 fields in the drop down listing. I like the idea of adding code to the OnClosing event, but do not understand what you mean by WinForm.

How to create custom pages in dasBlog?

I know I've seen this in the past, but I can't seem to find it now.
Basically I want to create a page that I can host on a dasBlog instance that contains the layout from my theme, but the content of the page I control.
Ideally the content is a user control or ASPX that I write. Anybody know how I can accomplish this?
The easist way to do this is to "hijack" the FormatPage functionality.
First add the following to your web.config in the newtelligence.DasBlog.UrlMapper section:
<add matchExpression="(?<basedir>.*?)/Static\.aspx\?=(?<value>.+)" mapTo="{basedir}/FormatPage.aspx?path=content/static/{value}.format.html" />
Now you can create a directory in your content directory called static. From there, you can create html files and the file name will map to the url like this:
http://BASEURL/Static.aspx?=FILENAME
will map to a file called:
/content/static/FILENAME.format.html
You can place anything in that file that you would normally place in itemTemplate.blogtemplate, except it obviously won't have any post data. But you can essentially use this to put other macros, and still have it use the hometemplate.blogtemplate to keep the rest of your theme wrapped around the page.
I did something similar setting up a handler to stream video files from the blog on my home server. I ended up ditching it because it killed my bandwidth whenever someone would view a video, but I did have it up and working for a while.
To get it to work I had to check dasBlog out from source control and open it in visual studio. I had VS2008 and it was built using VS2005, so it took some work to get everything to build. Once I could get the unaltered solution to build I added a new class library project to hold my code. This is to make sure my code stays separate across dasBlog updates.
I don't have access to the code here at work so I can't tell you exact names right now, but if you want your pages to be able to use the themes then they need to inherit from a class in the newtelligence.dasBlog.Web namespace, and I believe also implement an interface. A good place to look is in FormatPage and FormatControl.