def __init__(self, parent): JDialog.__init__(self, parent) e = c.resource('entry') self.encoding = PyComboBox(c.SUPPORTED_ENCODINGS) self.select_button = JButton(_d['select'], actionPerformed=self.action_select) self.font_label = JLabel(_d['select_font'] + ' : ' + _d['no_font_selected']) self.font = None self.font_name = JTextField(12) self.chooser = JFontChooser(parent) self.chooser.locationRelativeTo = self self.rb_normal = JRadioButton() self.rb_antialiased = JRadioButton() self.rb_subpixel = JRadioButton() self.rb_subpixel_aa = JRadioButton() rb_group = ButtonGroup() rb_group.add(self.rb_normal) rb_group.add(self.rb_antialiased) rb_group.add(self.rb_subpixel) rb_group.add(self.rb_subpixel_aa) self.rb_normal.selected = 1 main_panel = PyGridBagPanel(title='') main_panel.add(self.font_label, gridx=0, gridy=0, anchor='LINE_START', weightx=0.5) main_panel.add(self.select_button, gridx=1, gridy=0, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.add(JLabel(_d['normal']), gridx=0, gridy=1, anchor='LINE_START', weightx=0.5) main_panel.add(self.rb_normal, gridx=1, gridy=1, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.add(JLabel(_d['antialiased']), gridx=0, gridy=2, anchor='LINE_START', weightx=0.5) main_panel.add(self.rb_antialiased, gridx=1, gridy=2, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.add(JLabel(_d['subpixel']), gridx=0, gridy=3, anchor='LINE_START', weightx=0.5) main_panel.add(self.rb_subpixel, gridx=1, gridy=3, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.add(JLabel(_d['subpixel_aa']), gridx=0, gridy=4, anchor='LINE_START', weightx=0.5) main_panel.add(self.rb_subpixel_aa, gridx=1, gridy=4, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.add(JLabel(e['encoding']), gridx=0, gridy=5, anchor='LINE_START', weightx=0.5) main_panel.add(self.encoding, gridx=1, gridy=5, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.add(JLabel(_d['font_name']), gridx=0, gridy=6, anchor='LINE_START', weightx=0.5) main_panel.add(self.font_name, gridx=1, gridy=6, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.setPreferredSize(Dimension(300, 150)) self.button_import = JButton(_d['import'], actionPerformed=self.action_ok, enabled=0) button_panel=PyPanel([self.button_import, JButton(_d['discard'], actionPerformed=self.action_cancel)]) panel=PyGridBagPanel(title='') panel.add(main_panel) panel.add(button_panel, gridy=1) self.title = _d['font_import_title'] self.contentPane.add(panel)
class SystemFontImport(JDialog): def __init__(self, parent): JDialog.__init__(self, parent) e = c.resource('entry') self.encoding = PyComboBox(c.SUPPORTED_ENCODINGS) self.select_button = JButton(_d['select'], actionPerformed=self.action_select) self.font_label = JLabel(_d['select_font'] + ' : ' + _d['no_font_selected']) self.font = None self.font_name = JTextField(12) self.chooser = JFontChooser(parent) self.chooser.locationRelativeTo = self self.rb_normal = JRadioButton() self.rb_antialiased = JRadioButton() self.rb_subpixel = JRadioButton() self.rb_subpixel_aa = JRadioButton() rb_group = ButtonGroup() rb_group.add(self.rb_normal) rb_group.add(self.rb_antialiased) rb_group.add(self.rb_subpixel) rb_group.add(self.rb_subpixel_aa) self.rb_normal.selected = 1 main_panel = PyGridBagPanel(title='') main_panel.add(self.font_label, gridx=0, gridy=0, anchor='LINE_START', weightx=0.5) main_panel.add(self.select_button, gridx=1, gridy=0, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.add(JLabel(_d['normal']), gridx=0, gridy=1, anchor='LINE_START', weightx=0.5) main_panel.add(self.rb_normal, gridx=1, gridy=1, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.add(JLabel(_d['antialiased']), gridx=0, gridy=2, anchor='LINE_START', weightx=0.5) main_panel.add(self.rb_antialiased, gridx=1, gridy=2, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.add(JLabel(_d['subpixel']), gridx=0, gridy=3, anchor='LINE_START', weightx=0.5) main_panel.add(self.rb_subpixel, gridx=1, gridy=3, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.add(JLabel(_d['subpixel_aa']), gridx=0, gridy=4, anchor='LINE_START', weightx=0.5) main_panel.add(self.rb_subpixel_aa, gridx=1, gridy=4, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.add(JLabel(e['encoding']), gridx=0, gridy=5, anchor='LINE_START', weightx=0.5) main_panel.add(self.encoding, gridx=1, gridy=5, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.add(JLabel(_d['font_name']), gridx=0, gridy=6, anchor='LINE_START', weightx=0.5) main_panel.add(self.font_name, gridx=1, gridy=6, anchor='LINE_END', weightx=0.1, fill='HORIZONTAL') main_panel.setPreferredSize(Dimension(300, 150)) self.button_import = JButton(_d['import'], actionPerformed=self.action_ok, enabled=0) button_panel=PyPanel([self.button_import, JButton(_d['discard'], actionPerformed=self.action_cancel)]) panel=PyGridBagPanel(title='') panel.add(main_panel) panel.add(button_panel, gridy=1) self.title = _d['font_import_title'] self.contentPane.add(panel) def action_ok(self, event): fabric = FontFabric() if self.rb_normal.selected: font = fabric.loadNormal(self.font, self.encoding.get_selection()) elif self.rb_antialiased.selected: font = fabric.loadAntialiased(self.font, self.encoding.get_selection()) elif self.rb_subpixel.selected: font = fabric.loadSubpixel(self.font, self.encoding.get_selection()) elif self.rb_subpixel_aa.selected: font = fabric.loadSubpixelAntialiased(self.font, self.encoding.get_selection()) font_name = String(self.font_name.text).replaceAll(' ', '') font.name = font_name font_file = c.config('FONT_DIRECTORY') + '/' + font_name o = ObjectOutputStream(FileOutputStream(font_file)) o.writeObject(font) o.close() self.dispose() self.parent.refresh_fonts() def action_select(self, event): if self.font is not None: result = self.chooser.showDialog(self.font) else: result = self.chooser.showDialog() if result == JFontChooser.OK_OPTION: self.font = self.chooser.font self.font_label.text = _d['select_font'] + ' : ' + self.font.name self.font_name.text = self.font.name + '-' + str(self.font.size) self.button_import.enabled = 1 def action_cancel(self, event): self.dispose()