예제 #1
0
class AutomataState(JCircle):
    def __init__(self, name):
        JCircle.__init__(self, 200)
        self._label = Label(name)
        self._label.translate(-self._label.getWidth() / 2.0,
                              -self._label.getHeight() / 2.0)
        self._links_to = []
        self._arcs = []

    def get_name(self):
        return self._label.get_text()

    def add_arc(self, a):
        self._arcs.append(a)

    def translate(self, tx, ty, lock_control_points=False):
        JCircle.translate(self, tx, ty)

        if not lock_control_points:
            for arc in self._links_to:
                arc.translate_2central_points(tx, ty)

    def set_name(self, name):
        self._label.set_text(name)

    def get_selected(self, x, y):
        result = None

        if self._visible:
            if self.isSelected(x, y):
                return self

        return result

    def add_link_to(self, link):
        self._links_to.append(link)

    def paint(self, paintHidden=False):
        #self.setOpenGlColor()
        if self.getVisibility() or paintHidden:
            JCircle.paint(self)
            glPushMatrix()
            glTranslatef(self._tx, self._ty, 0)
            self._label.paint()
            glPopMatrix()
예제 #2
0
class Attribute(JCircle):
	def __init__(self, name):
		JCircle.__init__(self, 40)
		self._label = Label(name)
		self._primary_key = False

	def setPrimaryKey(self, value):
		self._primary_key = value
		if value:
			self._background_color = QColor(255,255,255)
		else:
			self._background_color = QColor(0, 0, 0)

	def get_name(self):
		return self._label.get_text()

	def set_name(self, name):
		self._label.set_text(name)

	def get_selected(self, x, y):
		result = None
		if self._visible or True:
			result = self._label.get_selected(x - self._tx, y - self._ty)

			if result != None:
				return result

			elif self.isSelected(x, y):
				return self

		return result

	def paint(self, paintHidden=False):
		#self.setOpenGlColor()
		if self.getVisibility() or paintHidden:
			JCircle.paint(self)
			glPushMatrix()
			glTranslatef(self._tx, self._ty, 0)
			self._label.paint()
			glPopMatrix()