Class: Studium::GUI::Gtk::EctsPerUniversity

Inherits:
Gtk::Box
  • Object
show all
Includes:
Gtk::BaseModule
Defined in:
lib/studium/gui/gtk3/ects_per_university/ects_per_university.rb

Overview

Studium::GUI::Gtk::EctsPerUniversity

Constant Summary collapse

NAMESPACE =
#

NAMESPACE

#
inspect
TITLE =
#

TITLE

#
'ECTS per University'
WIDTH =
#

WIDTH

#
1200
HEIGHT =
#

HEIGHT

#
'40% or minimum 500px'
USE_THIS_FONT =
#

USE_THIS_FONT

#
:hack_20

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(run_already = true) ⇒ EctsPerUniversity

#

initialize

#


53
54
55
56
57
58
59
# File 'lib/studium/gui/gtk3/ects_per_university/ects_per_university.rb', line 53

def initialize(
    run_already = true
  )
  super(:vertical)
  reset
  run if run_already
end

Class Method Details

.run(i = ARGV) ⇒ Object

#

Studium::GUI::Gtk::EctsPerUniversityModule.run

#


201
202
203
204
205
206
207
208
209
210
211
# File 'lib/studium/gui/gtk3/ects_per_university/ects_per_university.rb', line 201

def self.run(
    i = ARGV
  )
  require 'gtk_paradise/run'
  _ = ::Studium::GUI::Gtk::EctsPerUniversity.new(i)
  r = ::Gtk.run
  r << _
  r.determine_the_title_automatically
  r.set_size_request(_.width?, _.height?)
  r.top_left_then_run
end

Instance Method Details

#border_size?Boolean

#

border_size?

#

Returns:

  • (Boolean)


97
98
99
# File 'lib/studium/gui/gtk3/ects_per_university/ects_per_university.rb', line 97

def border_size?
  4
end

#connect_skeletonObject

#

connect_skeleton (connect tag)

#


174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# File 'lib/studium/gui/gtk3/ects_per_university/ects_per_university.rb', line 174

def connect_skeleton
  abort_on_exception
  obtain_the_main_dataset
  @list_store = two_strings
  create_the_tree_view
  @dataset = @dataset.select {|line| line.include? 'ECTS points' }.map {|line|
    if line.include? ':'
      line = line.split(':').map(&:strip)
      line[1] = line[1].rjust(17,' ')
    end
    line
  }
  populate_this_list_store2(@list_store, @dataset)
  maximal(@tree_view, 5)
  set_border_width(5)
end

#create_skeletonObject

#

create_skeleton (create tag)

#


104
105
# File 'lib/studium/gui/gtk3/ects_per_university/ects_per_university.rb', line 104

def create_skeleton
end

#create_the_tree_viewObject

#

create_the_tree_view

#


149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# File 'lib/studium/gui/gtk3/ects_per_university/ects_per_university.rb', line 149

def create_the_tree_view
  # ======================================================================= #
  # === @tree_view
  # ======================================================================= #
  @tree_view = gtk_tree_view(@list_store) { :clickable_headers }
  @tree_view.set_font(USE_THIS_FONT)
  @tree_view.use_these_headers = ['University', 'n ECTS points']
  @tree_view.the_headers_are_clickable
  @tree_view.can_be_resized
  @tree_view.enable_search
  @tree_view.rubber_banding
  @tree_view.enable_dragging
  @tree_view.reorderable = true
  columns = @tree_view.columns?
  columns[1].sortable_based_on(1)
  @list_store.set_sort_func(1) { |_model, before, after|
    ects_before = before[1].strip.sub(/ ECTS points/,'').to_f
    ects_after = after[1].strip.sub(/ ECTS points/,'').to_f
    ects_before <=> ects_after
  }
end

#handle_CSS_rulesObject

#

handle_CSS_rules (CSS tag)

#


110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/studium/gui/gtk3/ects_per_university/ects_per_university.rb', line 110

def handle_CSS_rules
  append_project_css_file
  more_CSS_then_apply_it '
  
 treeview.view  button {
   font-size: 42px;
   color: darkblue;
   background: lightblue;
   font-weight: bold;
   text-shadow: none;
   box-shadow: none;
   border: 1px solid black;
 }
 '
end

#obtain_the_main_datasetObject

#

obtain_the_main_dataset

#


142
143
144
# File 'lib/studium/gui/gtk3/ects_per_university/ects_per_university.rb', line 142

def obtain_the_main_dataset
  @dataset = return_dataset_from_the_main_class
end

#padding?Boolean

#

padding?

#

Returns:

  • (Boolean)


90
91
92
# File 'lib/studium/gui/gtk3/ects_per_university/ects_per_university.rb', line 90

def padding?
  8
end

#resetObject

#

reset (reset tag)

#


64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/studium/gui/gtk3/ects_per_university/ects_per_university.rb', line 64

def reset
  reset_the_internal_variables
  # ======================================================================= #
  # === @configuration
  # ======================================================================= #
  @configuration = [true, __dir__, NAMESPACE]
  # ======================================================================= #
  # === @title
  # ======================================================================= #
  set_title(TITLE)
  # ======================================================================= #
  # === @width
  # ======================================================================= #
  set_width(WIDTH)
  # ======================================================================= #
  # === @height
  # ======================================================================= #
  set_height(HEIGHT)
  set_use_this_font(USE_THIS_FONT)
  handle_CSS_rules
  infer_the_size_automatically
end

#return_dataset_from_the_main_classObject

#

return_dataset_from_the_main_class

#


129
130
131
132
133
134
135
136
137
# File 'lib/studium/gui/gtk3/ects_per_university/ects_per_university.rb', line 129

def return_dataset_from_the_main_class
  dataset = Studium::EctsPerUniversity.new {
    :sort_by_highest_first_and_be_quiet_and_no_colours
  }.result?
  dataset = dataset.split("\n").map {|entry|
    entry.strip
  }.reject {|line| line.empty? }.compact
  return dataset
end

#runObject

#

run (run tag)

#


194
195
196
# File 'lib/studium/gui/gtk3/ects_per_university/ects_per_university.rb', line 194

def run
  create_skeleton_then_connect_skeleton
end