[Spedit-commits] CVS: prototype/Support Application.py,1.4,1.5 SP-Configuration.xml,1.2,1.3
Status: Planning
Brought to you by:
krunte
|
From: S?bastien P. <kaz...@us...> - 2001-12-06 10:11:46
|
Update of /cvsroot/spedit/prototype/Support
In directory usw-pr-cvs1:/tmp/cvs-serv12456
Modified Files:
Application.py SP-Configuration.xml
Log Message:
Small improvement in configuration.
Index: Application.py
===================================================================
RCS file: /cvsroot/spedit/prototype/Support/Application.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** Application.py 2001/11/28 13:12:58 1.4
--- Application.py 2001/12/06 10:11:43 1.5
***************
*** 12,15 ****
--- 12,17 ----
# Last mod. : 27-Nov-2001
# History :
+ # 29-Nov-2001 Added documentation, improved presentation
+ # and added the EventPanel class for the JDocumentFrame
# 27-Nov-2001 Added the getInstance and the checkAncestors
# methods.(sp)
***************
*** 29,32 ****
--- 31,74 ----
from javax.swing import *
+
+ #------------------------------------------------------------------------------
+ #
+ # Generic application utilities
+ #
+ #------------------------------------------------------------------------------
+
+ def getInstance( name, parameters ):
+ """Generates a new instance of the fully qualified Python class
+ given by the 'name' paremeter. The 'parameters' is the tuple that
+ will be given to the constructor.
+
+ In case the constructor fails or that the class has not been found
+ None is returned, otherwise the new instance is returned."""
+
+ module = None
+ for i in range(0,len(name)):
+ if name[i]=='.':
+ module = name[:i]
+ break
+
+ if module!=None:
+ constructor = None
+ try:
+ constructor = eval(name)
+ except:
+ exec "import %s" % (module)
+ constructor = eval(name)
+ instance = apply(eval(name), parameters)
+ return instance
+ else:
+ return None
+
+
+ #------------------------------------------------------------------------------
+ #
+ # Menus management functions
+ #
+ #------------------------------------------------------------------------------
+
menus = [
['File',
***************
*** 80,126 ****
return menubar
- def getInstance( name, parameters ):
- """Generates a new instance of the fully qualified Python class
- given by the 'name' paremeter. The 'parameters' is the tuple that
- will be given to the constructor.
-
- In case the constructor fails or that the class has not been found
- None is returned, otherwise the new instance is returned."""
-
- module = None
- for i in range(0,len(name)):
- if name[i]=='.':
- module = name[:i]
- break
-
- if module!=None:
- constructor = None
- try:
- constructor = eval(name)
- except:
- exec "import %s" % (module)
- constructor = eval(name)
- instance = apply(eval(name), parameters)
- return instance
- else:
- return None
-
- def checkAncestors( ancestors, element ):
- """Checks if the given element has the ancestor list given by the
- expression. The expression is a descendant list like 'document/section/title',
- which means that the current element must be a title, that its parent must be a section
- and its grandparent a document."""
- if type(ancestors)==type(""):
- ancestors = string.split(ancestors,"/")
- if element==None: return 0
- if len(ancestors)==1:
- if element.getName()==ancestors[0]: return 1
- else: return 0
- else:
- if checkAncestors(ancestors[:-1], element.getParent()) and\
- element.getName()==ancestors[-1]: return 1
- else: return 0
-
class MenuListener( java.awt.event.ActionListener ):
def __init__( self, documentWindow ):
--- 122,127 ----
return menubar
class MenuListener( java.awt.event.ActionListener ):
+ """This class sets up the listener that react to menus action events."""
def __init__( self, documentWindow ):
***************
*** 183,247 ****
f.getContentPane().add(JScrollPane(tree))
f.setVisible(1)
!
! class ElementItem ( JButton, java.awt.event.MouseListener):
! """The ElementItem represents an element in the hierarchy of elements
! displayed in the status bar. It allows selection of elements that are not
! selectable otherwise, as addition of new elements."""
! def __init__( self, element, viewFactory, docframe):
! JButton.__init__(self, element.getName())
! self.viewFactory = viewFactory
! self.element = element
! self.docframe = docframe
! self.plain = java.awt.Font("Helvetica",java.awt.Font.PLAIN,9)
! self.bold = java.awt.Font("Helvetica",java.awt.Font.BOLD,9)
! self.setFont(self.plain)
! self.setHorizontalAlignment(SwingConstants.LEFT)
! self.setMargin(java.awt.Insets(0,0,0,0))
! self.setBorderPainted(0)
self.addMouseListener(self)
!
def mouseClicked(self, e):
! if SwingUtilities.isRightMouseButton(e) or e.isControlDown():
! self.popUpMenu(e)
! else:
! view = self.viewFactory.getElementView(self.element)
! try:
! #view.setSelected(not view.isSelected())
! if view.isCollapsed():
! view.expand()
! else:
! view.collapse()
! except:
! pass
def mouseEntered(self, e):
! view = self.viewFactory.getElementView(self.element)
! try:
! self.setFont(self.bold)
! view.setFocused(1)
! except:
! pass
def mouseExited(self, e):
! view = self.viewFactory.getElementView(self.element)
! try:
! self.setFont(self.plain)
! view.setFocused(0)
! except:
! pass
!
! def mousesPressed(self, e):
pass
! def mouseReleased(self, e):
pass
! def popUpMenu(self, e):
! menu = self.docframe.getElementMenu(self.element, self.element.getEndOffset()-1)
! menu.show(self, e.getX(), e.getY())
class StatusBar ( JPanel, javax.swing.event.CaretListener,\
javax.swing.event.ChangeListener ):
def __init__(self, parent):
--- 184,236 ----
f.getContentPane().add(JScrollPane(tree))
f.setVisible(1)
! #------------------------------------------------------------------------------
! #
! # EventPane
! #
! #------------------------------------------------------------------------------
! class EventPane ( JPanel, java.awt.event.MouseListener,\
! java.awt.event.MouseMotionListener ):
! """The EventPane is used to intercept events from the DocumentFrame
! and dispatch them to the views that will then delegate them to the
! registered AttributesDisplay."""
!
! def __init__ ( self ):
! JPanel.__init__(self)
self.addMouseListener(self)
! self.add(JButton("qajdhak"))
! self.setVisible(1)
! self.setOpaque(1)
! print "Created EventPane"
!
def mouseClicked(self, e):
! print "askdasjld"
! pass
def mouseEntered(self, e):
! print "askdasjld"
! pass
def mouseExited(self, e):
! print "askdasjld"
pass
! def mousePressed(self, e):
! print "askdasjld"
pass
! def mouseReleased(self, e):
! print "askdasjld"
! pass
! #------------------------------------------------------------------------------
! #
! # StatusBar
! #
! #------------------------------------------------------------------------------
class StatusBar ( JPanel, javax.swing.event.CaretListener,\
javax.swing.event.ChangeListener ):
+ """This class defines the behaviour and appearance of the status bar at
+ the bottom of the document frame"""
def __init__(self, parent):
***************
*** 269,272 ****
--- 258,263 ----
else:
self.caret = "[ %s-%s ]" % ( mark, dot)
+ #FIXME: The return is for DEBUG
+ return
element = self._parent.getDocument().getElementAt(dot)
self.caret += " <%s,%s>" % (element.getStartOffset(), element.getEndOffset())
***************
*** 295,298 ****
--- 286,348 ----
self.doLayout()
self.repaint()
+
+
+ class ElementItem ( JButton, java.awt.event.MouseListener):
+ """The ElementItem represents an element in the hierarchy of elements
+ displayed in the status bar. It allows selection of elements that are not
+ selectable otherwise, as addition of new elements."""
+
+ def __init__( self, element, viewFactory, docframe):
+ JButton.__init__(self, element.getName())
+ self.viewFactory = viewFactory
+ self.element = element
+ self.docframe = docframe
+ self.plain = java.awt.Font("Helvetica",java.awt.Font.PLAIN,9)
+ self.bold = java.awt.Font("Helvetica",java.awt.Font.BOLD,9)
+ self.setFont(self.plain)
+ self.setHorizontalAlignment(SwingConstants.LEFT)
+ self.setMargin(java.awt.Insets(0,0,0,0))
+ self.setBorderPainted(0)
+ self.addMouseListener(self)
+
+ def mouseClicked(self, e):
+ if SwingUtilities.isRightMouseButton(e) or e.isControlDown():
+ self.popUpMenu(e)
+ else:
+ view = self.viewFactory.getElementView(self.element)
+ try:
+ #view.setSelected(not view.isSelected())
+ if view.isCollapsed():
+ view.expand()
+ else:
+ view.collapse()
+ except:
+ pass
+
+ def mouseEntered(self, e):
+ view = self.viewFactory.getElementView(self.element)
+ try:
+ self.setFont(self.bold)
+ view.setFocused(1)
+ except:
+ pass
+
+ def mouseExited(self, e):
+ view = self.viewFactory.getElementView(self.element)
+ try:
+ self.setFont(self.plain)
+ view.setFocused(0)
+ except:
+ pass
+
+ def mousePressed(self, e):
+ pass
+
+ def mouseReleased(self, e):
+ pass
+
+ def popUpMenu(self, e):
+ menu = self.docframe.getElementMenu(self.element, self.element.getEndOffset()-1)
+ menu.show(self, e.getX(), e.getY())
# EOF-Unix/ASCII------------------------------------@RisingSun//Jython//1.0//EN
Index: SP-Configuration.xml
===================================================================
RCS file: /cvsroot/spedit/prototype/Support/SP-Configuration.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** SP-Configuration.xml 2001/11/28 13:12:58 1.2
--- SP-Configuration.xml 2001/12/06 10:11:43 1.3
***************
*** 157,162 ****
--- 157,187 ----
<use name="block"/>
</Views>
+ <Children>
+ <element name='secondaryEntryNames'/>
+ <element name='secondaryAccNos'/>
+ <element name='proteinName'/>
+ <element name='genes'/>
+ <element name='organisms'/>
+ <element name='organelle'/>
+ <element name='plasmids'/>
+ <element name='references'/>
+ <element name='comments'/>
+ <element name='dbreferences'/>
+ <element name='keywords'/>
+ <element name='features'/>
+ <element name='sequence'/>
+ <element name='evidences'/>
+ <element name='internal'/>
+ <element name='source'/>
+ </Children>
+
</element>
+ <element name='secondaryEntryNames'>
+ <Children>
+ <element name='name'/>
+ </Children>
+ </element>
+
<element name='secondaryAccNos'>
<Style>
***************
*** 165,168 ****
--- 190,196 ----
</Style>
<Views><use name="xblock"/></Views>
+ <Children>
+ <element name='ac'/>
+ </Children>
</element>
***************
*** 221,224 ****
--- 249,257 ----
</Style>
<Views><use name="block"/></Views>
+ <Children>
+ <element name='name'/>
+ <element name='taxId'/>
+ <element name='classification'/>
+ </Children>
</element>
***************
*** 260,263 ****
--- 293,301 ----
</Style>
<Views><use name="block"/></Views>
+ <Children>
+ <element name='name'/>
+ <element name='taxId'/>
+ <element name='classification'/>
+ </Children>
</element>
***************
*** 308,311 ****
--- 346,354 ----
</Style>
<Views><use name="paragraph"/></Views>
+ <Children>
+ <element name='name'/>
+ <element name='taxId'/>
+ <element name='classification'/>
+ </Children>
</element>
***************
*** 321,325 ****
<Style>
<inherit from="listItem"/>
- <Attributes><display string="net.sourceforge.spedit.spml.DataBaseDisplay"/></Attributes>
</Style>
<Views><use name="label"/></Views>
--- 364,367 ----
|