Open existing view in the same dataTree
/*
* Open existing view in the same dataTree based on its name
*
* @author David Pech <dpech@chemaxon.com>
*/
 
import com.im.df.api.dml.*
import com.im.df.api.dll.*
import com.im.df.api.support.SelectionDescription
import com.im.ijc.core.api.util.IJCCoreUtils
import com.im.ijc.core.api.views.AbstractViewTopComponent
 
// this is a skeleton of a button script
 
// init is called when the button is initialized
//
// widget is IJCWidget instance
init = { widget ->
}
 
// destroy is called when the button is disposed to do clean-up if necessary
//
// widget is IJCWidget instance
destroy = { widget ->
}
 
// evaluate is called when the button is clicked to perform action
//
// widget is IJCWidget instance
evaluate = { widget ->
 
    def rs = widget.form.resultSet
    def dataTree = rs.dataTree
    def views = dataTree.getViews().getItems()
    // define the view name you want to open
    def viewToOpen = "yourViewName"
    for (view in views) {
        // if a view of a given name is found
        if (view.getName().toLowerCase().contains(viewToOpen.toLowerCase())) {
            // open the view
            AbstractViewTopComponent.getViewRegistry().open(view);
            break;
        }
    }
}
 
// on_change is called when some vertex state is changed to make it possible to update button state
//
// widget is IJCWidget instance
// button JButton object used in browse mode
on_change = { widget, button ->
}